mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-06-20 21:42:05 +08:00
add ignition cycling to can replay script
This commit is contained in:
@@ -7,7 +7,7 @@ from tqdm import tqdm
|
||||
os.environ['TESTING_CLOSET'] = '1'
|
||||
os.environ['FILEREADER_CACHE'] = '1'
|
||||
|
||||
from common.realtime import config_realtime_process, Ratekeeper
|
||||
from common.realtime import config_realtime_process, Ratekeeper, DT_CTRL
|
||||
from selfdrive.boardd.boardd import can_capnp_to_can_list
|
||||
from tools.lib.logreader import LogReader
|
||||
|
||||
@@ -27,6 +27,10 @@ for i in tqdm(list(range(1, NUM_SEGS+1))):
|
||||
lr = LogReader(log_url)
|
||||
CAN_MSGS += [can_capnp_to_can_list(m.can) for m in lr if m.which() == 'can']
|
||||
|
||||
# set both to cycle ignition
|
||||
IGN_ON = int(os.getenv("ON", "0"))
|
||||
IGN_OFF = int(os.getenv("OFF", "0"))
|
||||
|
||||
def send_thread(sender, core):
|
||||
config_realtime_process(core, 55)
|
||||
|
||||
@@ -41,9 +45,21 @@ def send_thread(sender, core):
|
||||
sender.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
sender.set_can_loopback(False)
|
||||
|
||||
ignition = None
|
||||
if IGN_ON > 0 and IGN_OFF > 0:
|
||||
ignition = True
|
||||
print(f"Cycling ignition: on for {IGN_ON}s, off for {IGN_OFF}s")
|
||||
|
||||
log_idx = 0
|
||||
rk = Ratekeeper(100)
|
||||
rk = Ratekeeper(1 / DT_CTRL, print_delay_threshold=None)
|
||||
while True:
|
||||
# handle ignition cycling
|
||||
if ignition is not None:
|
||||
ign = (rk.frame*DT_CTRL) % (IGN_ON + IGN_OFF) < IGN_ON
|
||||
if ign != ignition:
|
||||
ignition = ign
|
||||
sender.set_ignition(ignition)
|
||||
|
||||
snd = CAN_MSGS[log_idx]
|
||||
log_idx = (log_idx + 1) % len(CAN_MSGS)
|
||||
snd = list(filter(lambda x: x[-1] <= 2, snd))
|
||||
|
||||
Reference in New Issue
Block a user