示例#1
0
    (94, 0, 1),
]

if __name__ == '__main__':
    fr = FrBus()
    fr_bus = ComFr(fr)
    fr_tp = FrTp(rx_slots=rx_slots,
                 tx_slots=tx_slots[:1],
                 source_addr=0x0e80,
                 target_addr=0x1c01)
    uds_client = DiagClient(fr_tp)
    diag = BaseDiagnostic(uds_client=uds_client)
    fr_1s = FrFrame(slot_id=0, base_cycle=0, repetition_cycle=1, data=[])
    fr_sender = Sender(1.0, fr_1s)
    fr_bus.add_fr_cycle_setter(fr_tp.update_fr_cycle)
    #fr_bus.add_sender(fr_sender)
    fr_bus.add_sender(fr_tp.sender)
    fr_bus.add_reader(fr_tp.reader)
    MessageLog.start(log_level=0)
    with ThreadSafety(fr_bus):
        for i in range(100):
            resp = diag.ReadDataByIdentifier(0xFD39)
            print(i, resp)
            dtc = diag.ReadDtcInformation(0x0A)
            print(i, dtc)
            dids = diag.WriteDataByIdentifier(0xFD39, *[0x00] * 1000)
            print(i, dids)
            if dids is None: break

    msg_list = MessageLog.get_logs()
    MessageLog.stop()
示例#2
0
        event_dict = {x[0]: x[1] for x in event_list}
        if 1294 in event_dict:
            row = (i, v, 1294, event_dict[1294])
    f.write("{:d},'{:0.3f},'{:d},'{:02X}\n".format(*row))


if __name__ == '__main__':
    can = CanBus(app_name='CANalyzer', channel=0, bitrate=500000)
    bus = ComCan(can)
    can_tp = CanTp(phy_id=0x1A000020, func_id=0x1A000021, resp_id=0x7A7)
    uds_client = DiagClient(can_tp)
    diag = BaseDiagnostic(uds_client=uds_client)
    bus.add_sender(can_tp.sender)
    bus.add_reader(can_tp.reader)
    ms_count = 0
    with ThreadSafety(bus):
        aiglent = E364xA("COM6")
        #aiglent.reset()
        aiglent.setonoff(True)
        f = open('log.csv', 'a+')
        for i in range(10):
            print("current test cycle is %d" % (i))
            #    aiglent.setonoff(False)
            #    ran = random.uniform(0.1,10.0)
            #    time.sleep(ran)
            #    aiglent.setonoff(True)
            #aiglent.setv()
            ran = random.uniform(0.0, 15.0)
            aiglent.setv(ran)
            time.sleep(0.1)
            resp = diag.ReadDataByIdentifier(0xFD39)
示例#3
0
from pyuds.PyUds import CanBus, ComCan, CanTp, DiagRequest, DiagClient, ThreadSafety, BaseDiagnostic
from pyuds.Scripts import InternalKeyGen
from pyuds.PyUds import MessageLog

if __name__ == '__main__':
    can = CanBus(app_name='CANalyzer', channel=0, bitrate=500000)
    can_bus = ComCan(can)
    can_tp = CanTp(phy_id=0x1A000020, func_id=0x7DF, resp_id=0x1A000021)
    uds_client = DiagClient(can_tp)
    diag = BaseDiagnostic(uds_client=uds_client)
    can_bus.add_sender(can_tp.sender)
    can_bus.add_reader(can_tp.reader)
    key_gen = InternalKeyGen(0x61)
    MessageLog.start(log_level=3)
    can_bus.set_filters(filters=[0x1A000020, 0x1A000021])
    with ThreadSafety(can_bus):
        for i in range(100):
            print("current test count %d" % (i))
            resp = diag.SessionControl(0x03)
            print(resp)
            #print(resp)
            #dtc = diag.ReadDtcInformation(0x0A)
            #print(dtc)
            resp = diag.SecurityAccess(0x61)
            key = key_gen.KenGen(0x61, resp.DataRecord)
            diag.SecurityAccess(0x62, *key)
            resp = diag.WriteDataByIdentifier(0xF18C, *([0x30] * 16))
            print(resp)
            if not resp.IsPositiveResponse:
                pass
            can_bus.wait(0.2)