|
|
@ -456,6 +456,15 @@ class CarStateBase(ABC): |
|
|
|
return None |
|
|
|
return None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SendCan = tuple[int, int, bytes, int] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CarControllerBase(ABC): |
|
|
|
|
|
|
|
@abstractmethod |
|
|
|
|
|
|
|
def update(self, CC, CS, now_nanos) -> tuple[car.CarControl.Actuators, list[SendCan]]: |
|
|
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INTERFACE_ATTR_FILE = { |
|
|
|
INTERFACE_ATTR_FILE = { |
|
|
|
"FINGERPRINTS": "fingerprints", |
|
|
|
"FINGERPRINTS": "fingerprints", |
|
|
|
"FW_VERSIONS": "fingerprints", |
|
|
|
"FW_VERSIONS": "fingerprints", |
|
|
@ -519,12 +528,3 @@ class NanoFFModel: |
|
|
|
pred = x[0] |
|
|
|
pred = x[0] |
|
|
|
pred = pred * (self.weights['output_norm_mat'][1] - self.weights['output_norm_mat'][0]) + self.weights['output_norm_mat'][0] |
|
|
|
pred = pred * (self.weights['output_norm_mat'][1] - self.weights['output_norm_mat'][0]) + self.weights['output_norm_mat'][0] |
|
|
|
return pred |
|
|
|
return pred |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SendCan = tuple[int, int, bytes, int] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CarControllerBase(ABC): |
|
|
|
|
|
|
|
@abstractmethod |
|
|
|
|
|
|
|
def update(self, CC, CS, now_nanos) -> tuple[car.CarControl.Actuators, list[SendCan]]: |
|
|
|
|
|
|
|
pass |
|
|
|
|
|
|
|