1. 一般情况下,USB继电器都是通过上位机COM口发送HEX命令进行控制,本文也是采用该方法进行
2. 控制命令一般由厂商提供,这里我拿我手里的进行举例
废话少说 上代码
import logging
import time
import serial
from serial.tools import list_ports
class cmd:
ka1_on = bytes.fromhex('A00101A2')
ka1_off = bytes.fromhex('A00100A1')
class KACtrl(cmd):
def __enter__(self):
self.__get_KA()
self.serial = serial.Serial(self.com, 9600, bytesize=8, timeout=0.1)
if not self.serial.isOpen():
self.serial.open()
return self
def __get_KA(self):
for i in list_ports.comports():
if 'USB-SERIAL CH340' in i.description: # 设备管理器中 继电器串口的描述(唯一)
self.com = i.name
logging.debug(f'KA port:{self.com}')
def __exit__(self, exc_type, exc_val, exc_tb):
self.serial.close()
def poweron(self):
self.serial.write(cmd.ka1_on)
def poweroff(self):
self.serial.write(cmd.ka1_off)
if __name__ == '__main__':
with KACtrl() as kac:
kac.poweron()
time.sleep(1)
kac.poweroff()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)