| | |
| | | import logging |
| | | from can import BusABC, Message |
| | | import time |
| | | from multiprocessing import Queue, Value |
| | | from multiprocessing import Queue, Value, Pipe |
| | | |
| | | USBCAN_DEVICE_TYPE = c_uint |
| | | |
| | |
| | | needClose {Value} -- disconnect when needed |
| | | msgQueue {Queue} -- received data |
| | | ''' |
| | | loopCnt = 0 |
| | | while True: |
| | | while connectRet.value == 1: |
| | | # print(connectRet.value, needClose.value, start.value) |
| | | if needClose.value == 1: |
| | |
| | | needClose.value = 0 |
| | | connectRet.value = 0 |
| | | return |
| | | msgToSendCnt = sendQueue.qsize() |
| | | if msgToSendCnt > 0: |
| | | msg = Message() |
| | | for i in range(msgToSendCnt): |
| | | msg = sendQueue.get() |
| | | self.send(msg, 1) |
| | | time.sleep(0.001) |
| | | loopCnt += 1 |
| | | if loopCnt >= 15: |
| | | loopCnt = 0 |
| | | # restNum = self.GetReceiveNum() if self.GetReceiveNum() <= 10 else 10 |
| | | # msgToSendCnt = sendQueue.qsize() |
| | | # if msgToSendCnt > 0: |
| | | # msg = Message() |
| | | # for i in range(msgToSendCnt): |
| | | # msg = sendQueue.get() |
| | | # self.send(msg, 1) |
| | | # time.sleep(0.001) |
| | | # loopCnt += 1 |
| | | revRet, num = self.Receive(len=10) |
| | | if num == 0: |
| | | pass |
| | |
| | | msgQueue.put(revRet[i]) |
| | | self.logger.info( |
| | | "received can message.it't id is:{}".format(str(revRet[i].arbitration_id))) |
| | | time.sleep(0.05) |