def req(self, dst, grp, rid): t = time.time() fid = nxr_conv.encode_id(ptp=True, dst=dst, src=0xf0, grp=grp) fdt = nxr_conv.encode_data(func=0x10, rid=rid, rdt=0, isfloat=False) self.sendlist.append({"fid": fid, "fdt": fdt}) for _ in range(10): time.sleep(0.2) if rid in self.return_buf[grp][dst]: if self.return_buf[grp][dst][rid]["time"] > t: print('got reply', self.return_buf[grp][dst][rid]["rdt"]) return True, self.return_buf[grp][dst][rid]["rdt"] return False, None
def __init__(self, event, dev='/dev/ttyUSB0'): self.can_con = can_comm.CanComm(event, dev) self.sendlist = [] self.return_buf = [[{}] * 256] * 8 self.event = event self.lastsend = 0 self.bc_id = nxr_conv.encode_id(ptp=False, dst=0xff, src=0xf0, grp=0x3) self.bc_dt = nxr_conv.encode_data(func=0x10, rid=0x43, rdt=0, isfloat=False) self.th = Thread(target=self.loop) self.th.start() #self.sendlist.append({"fid":self.bc_id, "fdt":self.bc_dt}) return
def __init__(self, lib_file='./ControlCAN.dll', can_dev=[1]): self.can_con = can_comm.CanComm(lib_file=lib_file, can_dev=can_dev) self.can_ch = can_dev[0] self.sendlist = [] self.return_buf = [[{}] * 256] * 8 self.loop_ret = True self.lastsend = 0 self.bc_id = nxr_conv.encode_id(ptp=False, dst=0xfe, src=0xf0, grp=0x3) self.bc_dt = nxr_conv.encode_data(func=0x10, rid=0x43, rdt=0, isfloat=False) self.th = Thread(target=self.loop) self.th.start() #self.sendlist.append({"fid":self.bc_id, "fdt":self.bc_dt}) return
from utils import can_comm, nxr_conv import struct device = can_comm.CanComm(lib_file='./utils/ControlCAN.dll', can_dev=[1]) bc_id = nxr_conv.encode_id(ptp=False, dst=0xfe, src=0xf0, grp=0x3) bc_dt = nxr_conv.encode_data(func=0x10, rid=0x43, rdt=0, isfloat=False) print(struct.pack(">I", bc_id)) for i in bc_dt: print(hex(i), end=' ') print() device.send(1, bc_id, bc_dt)