|
|
|
@ -1,16 +1,10 @@ |
|
|
|
|
import copy |
|
|
|
|
from cereal import car |
|
|
|
|
from selfdrive.car.subaru.values import CAR |
|
|
|
|
|
|
|
|
|
VisualAlert = car.CarControl.HUDControl.VisualAlert |
|
|
|
|
|
|
|
|
|
def subaru_checksum(packer, values, addr): |
|
|
|
|
dat = packer.make_can_msg(addr, 0, values)[2] |
|
|
|
|
return (sum(dat[1:]) + (addr >> 8) + addr) & 0xff |
|
|
|
|
def create_steering_control(packer, apply_steer, frame, steer_step): |
|
|
|
|
|
|
|
|
|
def create_steering_control(packer, car_fingerprint, apply_steer, frame, steer_step): |
|
|
|
|
|
|
|
|
|
if car_fingerprint == CAR.IMPREZA: |
|
|
|
|
# counts from 0 to 15 then back to 0 + 16 for enable bit |
|
|
|
|
idx = ((frame // steer_step) % 16) |
|
|
|
|
|
|
|
|
@ -20,17 +14,11 @@ def create_steering_control(packer, car_fingerprint, apply_steer, frame, steer_s |
|
|
|
|
"LKAS_Request": 1 if apply_steer != 0 else 0, |
|
|
|
|
"SET_1": 1 |
|
|
|
|
} |
|
|
|
|
values["Checksum"] = subaru_checksum(packer, values, 0x122) |
|
|
|
|
|
|
|
|
|
return packer.make_can_msg("ES_LKAS", 0, values) |
|
|
|
|
|
|
|
|
|
def create_steering_status(packer, car_fingerprint, apply_steer, frame, steer_step): |
|
|
|
|
|
|
|
|
|
if car_fingerprint == CAR.IMPREZA: |
|
|
|
|
values = {} |
|
|
|
|
values["Checksum"] = subaru_checksum(packer, {}, 0x322) |
|
|
|
|
|
|
|
|
|
return packer.make_can_msg("ES_LKAS_State", 0, values) |
|
|
|
|
def create_steering_status(packer, apply_steer, frame, steer_step): |
|
|
|
|
return packer.make_can_msg("ES_LKAS_State", 0, {}) |
|
|
|
|
|
|
|
|
|
def create_es_distance(packer, es_distance_msg, pcm_cancel_cmd): |
|
|
|
|
|
|
|
|
@ -38,8 +26,6 @@ def create_es_distance(packer, es_distance_msg, pcm_cancel_cmd): |
|
|
|
|
if pcm_cancel_cmd: |
|
|
|
|
values["Main"] = 1 |
|
|
|
|
|
|
|
|
|
values["Checksum"] = subaru_checksum(packer, values, 545) |
|
|
|
|
|
|
|
|
|
return packer.make_can_msg("ES_Distance", 0, values) |
|
|
|
|
|
|
|
|
|
def create_es_lkas(packer, es_lkas_msg, visual_alert, left_line, right_line): |
|
|
|
@ -51,6 +37,4 @@ def create_es_lkas(packer, es_lkas_msg, visual_alert, left_line, right_line): |
|
|
|
|
values["LKAS_Left_Line_Visible"] = int(left_line) |
|
|
|
|
values["LKAS_Right_Line_Visible"] = int(right_line) |
|
|
|
|
|
|
|
|
|
values["Checksum"] = subaru_checksum(packer, values, 802) |
|
|
|
|
|
|
|
|
|
return packer.make_can_msg("ES_LKAS_State", 0, values) |
|
|
|
|