(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()
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)
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)