add Openpilot lane line indicators to Subaru LKAS HUD

This commit is contained in:
Martin Lillepuu
2019-05-11 13:42:19 +03:00
parent 3f9059fea8
commit cbc73e55a2
4 changed files with 16 additions and 4 deletions
+1
View File
@@ -116,6 +116,7 @@ static int subaru_fwd_hook(int bus_num, CAN_FIFOMailBox_TypeDef *to_fwd) {
return -1;
}
// global platform
// ES LKAS
if (addr == 0x122) {
return -1;
}
+2 -2
View File
@@ -36,7 +36,7 @@ class CarController(object):
print(DBC)
self.packer = CANPacker(DBC[car_fingerprint]['pt'])
def update(self, sendcan, enabled, CS, frame, actuators, pcm_cancel_cmd, visual_alert):
def update(self, sendcan, enabled, CS, frame, actuators, pcm_cancel_cmd, visual_alert, left_line, right_line):
""" Controls thread """
P = self.params
@@ -70,7 +70,7 @@ class CarController(object):
self.es_distance_cnt = CS.es_distance_msg["Counter"]
if self.es_lkas_cnt != CS.es_lkas_msg["Counter"]:
can_sends.append(subarucan.create_es_lkas(self.packer, CS.es_lkas_msg, visual_alert))
can_sends.append(subarucan.create_es_lkas(self.packer, CS.es_lkas_msg, visual_alert, left_line, right_line))
self.es_lkas_cnt = CS.es_lkas_msg["Counter"]
sendcan.send(can_list_to_can_capnp(can_sends, msgtype='sendcan'))
+2 -1
View File
@@ -217,5 +217,6 @@ class CarInterface(object):
def apply(self, c):
self.CC.update(self.sendcan, c.enabled, self.CS, self.frame, c.actuators,
c.cruiseControl.cancel, c.hudControl.visualAlert)
c.cruiseControl.cancel, c.hudControl.visualAlert,
c.hudControl.leftLaneVisible, c.hudControl.rightLaneVisible)
self.frame += 1
+11 -1
View File
@@ -43,12 +43,22 @@ def create_es_distance(packer, es_distance_msg, pcm_cancel_cmd):
return packer.make_can_msg("ES_Distance", 0, values)
def create_es_lkas(packer, es_lkas_msg, visual_alert):
def create_es_lkas(packer, es_lkas_msg, visual_alert, left_line, right_line):
values = copy.copy(es_lkas_msg)
if visual_alert == VisualAlert.steerRequired:
values["Keep_Hands_On_Wheel"] = 1
if left_line:
values["LKAS_Left_Line_Visible"] = 1
else:
values["LKAS_Left_Line_Visible"] = 0
if right_line:
values["LKAS_Right_Line_Visible"] = 1
else:
values["LKAS_Right_Line_Visible"] = 0
values["Checksum"] = subaru_checksum(packer, values, 802)
return packer.make_can_msg("ES_LKAS_State", 0, values)