串口通讯常见问题
C语言编程常见问题
串口指令:
HID模拟指令:
=>hid --help
usage: hid [-c < command >] [-i < index >] [-v < value >]
options:
-c/--cmd info|m|md|mu|k|kp|kr|kl|km
-i/--idx index param
-v/--val value param
=>
示例:
检查当前USB状态,是否连接:
=>hid
usb_state: configured (已连接)
=>
鼠标
移动
=>hid -c m -v 0x01 (向右移动一个像素)
=>hid -c m -v 0x0100 (向下移动一个像素)
=>hid -c m -v 0x0101 (向右下移动一个像素)
=>hid -c m -v 0xFF (向左移动一个像素)
=>hid -c m -v 0xFF00 (向上移动一个像素)
=>hid -c m -v 0xFFFF (向左上移动一个像素)
=>
按键
=>hid -c md -i 1 (按下左键)
=>hid -c mu -i 1 (松开左键)
=>hid -c md -i 2 (按下右键)
=>hid -c mu -i 2 (松开右键)
=>hid -c md -i 4 (按下中键)
=>hid -c mu -i 4 (松开中键)
=>hid -c m -i 1 -v 100 (左键按下,并向右拖拽100个像素)
=>hid -c m -i 0 (拖拽后释放按键)
=>
键盘
=>hid -c k -v 0x2C (按下空格键并松开)
=>hid -c kp -v 0x04 (按下A键不释放,会引起按键连发)
=>hid -c kr -v 0x04 (释放A键)
=>hid -c kl (查询锁定状态)
0 (无任何状态锁定)
=>hid -c km (查询特殊键状态)
0 (无任何特殊键按下)
=>
(模拟WINDOWS下切换输入法)
=>hid -c km -v 1 (按下左CTRL键)
=>hid -c km -v 3 (按下左SHIFT键)
=>hid -c km -v 1 (松开左SHIFT键)
=>hid -c km -v 0 (松开左CTRL键
=>
(模拟ALT-F4关闭窗口)
=>hid -c km -v 4 (按下左ALT键)
=>hid -c k -v 0x3d (点击F4键)
=>hid -c km -v 0 (松开左ALT键)
=>
Python封装:
安装:pip3 install mcush
升级:pip3 install -U mcush
class ShellLabHID(mcush.Mcush.Mcush):
def hid(self, cmd=None, idx=None, val=None ):
# 底层的串口命令封装
def mouse(self, left=True, right=None, middle=None, dx=0, dy=0):
# 底层鼠标消息
def down( self, left=True, right=None, middle=None ):
# 鼠标按下
def up( self, left=True, right=None, middle=None ):
# 鼠标松开
def move( self, dx=0, dy=0, step=1, step_delay=0.05 ):
# 鼠标移动
def click( self, left=True, right=None, middle=None, delay=0.1 ):
# 鼠标单击(发送按下松开两个消息)
def getKeyCode( self, kval ):
# 查询按键码
def key( self, kval ):
# 发送单个按键点击消息
def keyPress( self, kval ):
# 发送单个按键按下消息
def keyRelease( self, kval ):
# 发送单个按键抬起消息
def keys( self, string ):
# 发送多个按键点击消息(输入字符串)
def keyIsNumLocked( self ):
# 检查键盘是否锁定数字模式
def keyIsCapsLocked( self ):
# 检查键盘是否锁定大写模式
def keyIsScrollLocked( self ):
# 检查键盘是否锁定滚动模式
def keyNumLock( self, lock=True ):
# 锁定数字模式
def keyCapsLock( self, lock=True ):
# 锁定大写模式
def keyScrollLock( self, lock=True ):
# 锁定滚动模式
def keyGetModifier( self ):
# 查询键盘的特殊功能键
def keySetModifier( self, lctrl=None, lshift=None, lalt=None, lgui=None,
rctrl=None, rshift=None, ralt=None, rgui=None ):
# 设置键盘的特殊功能键
示例:
import mcush
from mcush.linkong.ShellLab import ShellLabHID
s = ShellLabHID('COM10') # 填入对应的串口号
s.move(100,100,step=10) # 分十步向右下方移动(100,100)个像素
s.click() # 点击鼠标左键
s.keys('HELLO') # 依次输入按键“HELLO”
Shell Lab 测试台软件
CH341虚拟串口驱动(Windows)
|