|
@@ -5,6 +5,7 @@ import logging
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
+
|
|
|
# https://blog.csdn.net/weixin_44289254/article/details/121583562
|
|
# https://blog.csdn.net/weixin_44289254/article/details/121583562
|
|
|
|
|
|
|
|
|
|
|
|
@@ -68,7 +69,7 @@ class SerialIns(object):
|
|
|
buf.extend(data)
|
|
buf.extend(data)
|
|
|
buf.extend([0xFF & ~sum(data)])
|
|
buf.extend([0xFF & ~sum(data)])
|
|
|
# 55 55 02 5a 01 a4
|
|
# 55 55 02 5a 01 a4
|
|
|
- print("send buf {}".format(self.change_hex_to_int(buf)))
|
|
|
|
|
|
|
+ # print("send buf {}".format(self.change_hex_to_int(buf)))
|
|
|
# logger.info("正在发送命令======>>>>> send buf %s", self.change_hex_to_int(buf))
|
|
# logger.info("正在发送命令======>>>>> send buf %s", self.change_hex_to_int(buf))
|
|
|
try:
|
|
try:
|
|
|
self.serial_handle.write(buf)
|
|
self.serial_handle.write(buf)
|
|
@@ -122,9 +123,9 @@ class SerialIns(object):
|
|
|
if time.time() - s > out_time:
|
|
if time.time() - s > out_time:
|
|
|
time.sleep(0.01)
|
|
time.sleep(0.01)
|
|
|
return
|
|
return
|
|
|
- _data = self.receive_data[3 : data_len + 4]
|
|
|
|
|
|
|
+ _data = self.receive_data[3: data_len + 4]
|
|
|
# 更新缓存区
|
|
# 更新缓存区
|
|
|
- self.receive_data = self.receive_data[data_len + 4 :]
|
|
|
|
|
|
|
+ self.receive_data = self.receive_data[data_len + 4:]
|
|
|
# 校验数据
|
|
# 校验数据
|
|
|
if check is None:
|
|
if check is None:
|
|
|
if 0xFF & ~sum(_data[:-1]) == _data[-1]:
|
|
if 0xFF & ~sum(_data[:-1]) == _data[-1]:
|
|
@@ -151,7 +152,7 @@ class SerialIns(object):
|
|
|
if index >= len(self.receive_data):
|
|
if index >= len(self.receive_data):
|
|
|
self.receive_data = b""
|
|
self.receive_data = b""
|
|
|
else:
|
|
else:
|
|
|
- self.receive_data = self.receive_data[index - 1 :]
|
|
|
|
|
|
|
+ self.receive_data = self.receive_data[index - 1:]
|
|
|
|
|
|
|
|
def read_cmd111(self, out_time=1, check=None):
|
|
def read_cmd111(self, out_time=1, check=None):
|
|
|
while 1:
|
|
while 1:
|
|
@@ -180,7 +181,7 @@ class SerialIns(object):
|
|
|
# return
|
|
# return
|
|
|
return
|
|
return
|
|
|
|
|
|
|
|
- _data = _recv_data[3 : data_len + 4]
|
|
|
|
|
|
|
+ _data = _recv_data[3: data_len + 4]
|
|
|
# 校验数据
|
|
# 校验数据
|
|
|
if check is None:
|
|
if check is None:
|
|
|
if 0xFF & ~sum(_data[:-1]) == _data[-1]:
|
|
if 0xFF & ~sum(_data[:-1]) == _data[-1]:
|
|
@@ -205,8 +206,8 @@ class SerialIns(object):
|
|
|
self.receive_data = b""
|
|
self.receive_data = b""
|
|
|
else:
|
|
else:
|
|
|
if (
|
|
if (
|
|
|
- self.receive_data[0] == 0x55
|
|
|
|
|
- and self.receive_data[1] == 0x55
|
|
|
|
|
|
|
+ self.receive_data[0] == 0x55
|
|
|
|
|
+ and self.receive_data[1] == 0x55
|
|
|
):
|
|
):
|
|
|
break
|
|
break
|
|
|
else:
|
|
else:
|
|
@@ -225,7 +226,8 @@ class SerialIns(object):
|
|
|
|
|
|
|
|
if len(self.receive_data) < 4:
|
|
if len(self.receive_data) < 4:
|
|
|
break
|
|
break
|
|
|
- print("read ori ", self.change_hex_to_int(self.receive_data))
|
|
|
|
|
|
|
+ receive_data = self.change_hex_to_int(self.receive_data)
|
|
|
|
|
+ logger.info(f"read ori {receive_data}")
|
|
|
if self.receive_data[0] == 0x55 and self.receive_data[1] == 0x55:
|
|
if self.receive_data[0] == 0x55 and self.receive_data[1] == 0x55:
|
|
|
# print("read ori ", self.change_hex_to_int(self.receive_data))
|
|
# print("read ori ", self.change_hex_to_int(self.receive_data))
|
|
|
data_len = self.receive_data[2]
|
|
data_len = self.receive_data[2]
|
|
@@ -240,9 +242,9 @@ class SerialIns(object):
|
|
|
# return None
|
|
# return None
|
|
|
# time.sleep(0.01)
|
|
# time.sleep(0.01)
|
|
|
continue
|
|
continue
|
|
|
- _data = self.receive_data[3 : data_len + 4]
|
|
|
|
|
|
|
+ _data = self.receive_data[3: data_len + 4]
|
|
|
# 更新缓存区
|
|
# 更新缓存区
|
|
|
- self.receive_data = self.receive_data[data_len + 4 :]
|
|
|
|
|
|
|
+ self.receive_data = self.receive_data[data_len + 4:]
|
|
|
# 校验数据
|
|
# 校验数据
|
|
|
if 0xFF & ~sum(_data[:-1]) == _data[-1]:
|
|
if 0xFF & ~sum(_data[:-1]) == _data[-1]:
|
|
|
# print("receive_data:", self.change_hex_to_int(self.receive_data[:-1]))
|
|
# print("receive_data:", self.change_hex_to_int(self.receive_data[:-1]))
|
|
@@ -260,8 +262,8 @@ class SerialIns(object):
|
|
|
self.receive_data = b""
|
|
self.receive_data = b""
|
|
|
else:
|
|
else:
|
|
|
if (
|
|
if (
|
|
|
- self.receive_data[0] == 0x55
|
|
|
|
|
- and self.receive_data[1] == 0x55
|
|
|
|
|
|
|
+ self.receive_data[0] == 0x55
|
|
|
|
|
+ and self.receive_data[1] == 0x55
|
|
|
):
|
|
):
|
|
|
break
|
|
break
|
|
|
else:
|
|
else:
|
|
@@ -305,14 +307,15 @@ class SerialIns(object):
|
|
|
def __del__(self):
|
|
def __del__(self):
|
|
|
self.close_serial_port()
|
|
self.close_serial_port()
|
|
|
|
|
|
|
|
|
|
+
|
|
|
if __name__ == "__main__":
|
|
if __name__ == "__main__":
|
|
|
s = SerialIns(port_name="COM5", baud=115200, timeout=0.1)
|
|
s = SerialIns(port_name="COM5", baud=115200, timeout=0.1)
|
|
|
s.scan_serial_port()
|
|
s.scan_serial_port()
|
|
|
s.clearn_flush()
|
|
s.clearn_flush()
|
|
|
print("-" * 30)
|
|
print("-" * 30)
|
|
|
for i in range(2):
|
|
for i in range(2):
|
|
|
- data = [2,99,1]
|
|
|
|
|
-
|
|
|
|
|
|
|
+ data = [2, 99, 1]
|
|
|
|
|
+
|
|
|
s.write_cmd(data)
|
|
s.write_cmd(data)
|
|
|
|
|
|
|
|
time.sleep(0.1)
|
|
time.sleep(0.1)
|