예제 #1
0
def get_inputs(msgs, process):
    for config in CONFIGS:
        if config.proc_name == process:
            sub_socks = list(config.pub_sub.keys())
            trigger = sub_socks[0]
            break

    sm = SubMaster(msgs, trigger, sub_socks)
    pm = PubMaster()
    can_sock = SubSocket(msgs, 'can')
    return sm, pm, can_sock
예제 #2
0
def get_inputs(msgs, process):
    for config in CONFIGS:
        if config.proc_name == process:
            sub_socks = list(config.pub_sub.keys())
            trigger = sub_socks[0]
            break

    # some procs block on CarParams
    for msg in msgs:
        if msg.which() == 'carParams':
            Params().put("CarParams", msg.as_builder().to_bytes())
            break

    sm = SubMaster(msgs, trigger, sub_socks)
    pm = PubMaster()
    if 'can' in sub_socks:
        can_sock = SubSocket(msgs, 'can')
    else:
        can_sock = None
    return sm, pm, can_sock
예제 #3
0
SEGMENT = "99c94dc769b5d96e|2019-08-03--14-19-59/2"

if __name__ == "__main__":
    segment = SEGMENT.replace('|', '/')
    rlog_url = f"{BASE_URL}{segment}/rlog.bz2"
    msgs = list(LogReader(rlog_url))

    pm = PubMaster([
        'sendcan', 'controlsState', 'carState', 'carControl', 'carEvents',
        'carParams'
    ])
    sm = SubMaster(msgs, 'can', [
        'thermal', 'health', 'liveCalibration', 'dMonitoringState', 'plan',
        'pathPlan', 'model'
    ])
    can_sock = SubSocket(msgs, 'can')

    # Statistical
    with pprofile.StatisticalProfile()(period=0.00001) as pr:
        try:
            controlsd_thread(sm, pm, can_sock)
        except ReplayDone:
            pass
    pr.dump_stats('cachegrind.out.controlsd_statistical')

    # Deterministic
    pm = PubMaster([
        'sendcan', 'controlsState', 'carState', 'carControl', 'carEvents',
        'carParams'
    ])
    sm = SubMaster(msgs, 'can', [