python控制继电器
源码
import serial
import time
portx = "COM3"
bps = 9600
timex = 10
def getRsp():
# 停止、等待数据,这一步非常关键。timeout压根没用
time.sleep(1)
count = ser.inWaiting()
# 数据的接收
if count > 0:
data = ser.read(count)
if data != b'':
# 将接受的16进制数据格式如b'hx12x90xV5x12hx91n4737Exc3xabx89hExe0x16'
# 转换成b'6812907856351268910a3437333745c3ab896845e016'
# 通过[]去除前后的b'',得到我们真正想要的数据
# print("receive", str(binascii.b2a_hex(data))[2:-1])
print(data)
return data
def serialReq(param):
time.sleep(1)
# result = ser.write("0x24x01x02x00x27")
# result = ser.write(b'x24x01x02x00x27')
# result = ser.write(b'x24xFFx02xA0xC5')
result = ser.write(param)
print(result)
open1 = b'x01x05x00x00xFFx00x8Cx3A'
close1 = b'x01x05x00x00x00x00xCDxCA'
open2 = b'x01x05x00x01xFFx00xDDxFA'
close2 = b'x01x05x00x01x00x00x9Cx0A'
open3 = b'x01x05x00x02xFFx00x2DxFA'
close3 = b'x01x05x00x02x00x00x6Cx0A'
open4 = b'x01x05x00x03xFFx00x7Cx3A'
close4 = b'x01x05x00x03x00x00x3DxCA'
if __name__ == '__main__':
ser = serial.Serial(portx, bps, timeout=timex)
serialReq(open1)
serialReq(open2)
serialReq(open3)
serialReq(open4)
serialReq(close1)
serialReq(close2)
serialReq(close3)
serialReq(close4)
print(getRsp())
# 关闭串口
ser.close()