跳转至

Connect IoT - 键盘楔子驱动程序#

此驱动程序旨在将键盘以外的设备(如磁条、条码读取器或其他此类扫描设备)读取的数据处理到键盘数据中。借助此驱动程序,便可使用一些更具成本效率的读取器(条码、rfid等)。

Warning

非常重要:要接收键盘楔子设备发送的数据,必须在操作系统中侦听特定事件。这也称为键盘记录器,但不能在Microsoft Windows操作系统中使用。因此,此驱动程序只应在Linux操作系统中执行,以管理员权限(sudo)运行,并安装libusb模块。

数据类型#

这些是受支持的特定数据类型:

名称 描述
字符串 字符串值
布尔值 布尔值
整数 整数值
十进制 十进制值
对象 结构化值

异常流程参数#

异常流程支持以下参数:

名称 类型 可能的值 默认值 描述
deviceIdentifierType 枚举 VendorAndProductId
路径
DeviceIndex
VendorAndProductId 用于确定驱动程序将连接到哪个设备的标识类型
路径 字符串 对操作系统已知的设备路径。当deviceIdentifierType为以下项时使用 Path
vendorId 整数 0 要使用的设备的供应商ID。当deviceIdentifierTypeVendorAndProductId时使用。使用“-1”值可以使用任何供应商ID。预期值为十进制格式(非十六进制)。
productId 整数 0 要使用的设备的产品ID。当deviceIdentifierTypeVendorAndProductId时使用。使用“-1”值可以使用任何产品ID。预期值为十进制格式(非十六进制)。
deviceIndex 整数 0 要使用的设备的索引。当deviceIdentifierTypeDeviceIndex时,所选设备将是与所有设备上的索引匹配的设备。当deviceIdentifierTypeVendorAndProductId时,将在与供应商和产品ID匹配的设备中选择设备索引。
parserType 枚举 Raw
Readline
ByteLength
Delimiter
InterByteTimeout
准备就绪
Regex
ReadLine 选择用于确定何时识别从设备接收到的数据并准备好处理的解析器(有关详细信息,请查看每个解析器的特定部分)。
delimiter 字符串 "\r\n" 在解析器ReadlineDelimiterReadyRegularExpression中使用:用于拆分传入文本的字符串分隔符。简单的字符串替换可以像\r\n\t一样使用如果解析器为RegularExpression,则可以使用正则表达式,例如:[\r\n]+
encoding 枚举 ascii
utf8
utf16le
ucs2
base64
binary
hex
ascii 在解析器ReadlineRegex中使用:接收到的数据的文本编码
byteLengthSize 整数 8 在解析器ByteLength中使用:触发事件前要接收的字节数
timeoutValue 整数 1000 在解析器InterByteTimeout中使用:发出数据前的静默时间段(以毫秒为单位)
maxBufferSize 整数 65536 在解析器中使用:InterByteTimeout:发出数据前的最大字节数

解析器#

解析器是指用于处理传入数据的转换流的集合。以下解析器可用:

名称 参数 描述
Raw 接收到的任何数据都将立即处理。
Readline delimiter 在接收到配置的换行分隔符后发出数据。
ByteLength byteLengthSize 在接收到特定字节数后立即发出数据。
Delimiter delimiter 每次接收到特定序列时都发出数据。
字节间超时 timeoutValue
maxBufferSize
在指定的时间内未接收任何字节或缓冲区已满后,将发出数据。
准备就绪 delimiter 在发出就绪事件和发出数据事件之前,直到存在ready字节序列(与delimiter参数匹配)才会发出数据
Regex delimiter
encoding
正则表达式(分隔符参数)用于拆分传入文本。匹配项将作为要处理的数据发出。

扩展参数#

与其他异常流程驱动程序一样,还需要一些额外参数来对预期行为提供更多上下文。

属性#

名称 类型 可能的值 默认值 描述
identifierType 枚举
RegularExpression
Token
用于标识属性的方法。如果使用None,则将忽略identifierValue,并且所有消息都将更新该属性。Token 类型将仅匹配消息开头的identifierValue文本,而RegularExpression将匹配配置的正则表达式identifierValue字段。
identifierValue 字符串 属性标识符的值。对RegularExpression(输入有效的正则表达式)或Token(输入预期文本)identifierType有效。

事件#

名称 类型 可能的值 默认值 描述
triggerMode 枚举 AllValues
DifferentValues
Periodic
AllValues 确定数据作为事件发出的方式和时间。
AllValues:每次收到触发器属性值时
DifferentValues:每次收到不同的触发器属性值时
Periodic:定期(每隔periodicDataInterval,以毫秒为单位),忽略属性会更新周期或值。
periodicDataInterval 整数 1000 发布数据的毫秒数。仅对triggerMode有效 Periodic

事件属性#

名称 类型 可能的值 默认值 描述
isTrigger 布尔值 true 接收到属性(事件触发模式为AllValues)或更改值(事件触发模式为AllValuesDifferentValues)时触发事件

备注/行为#

  • 当事件具有多个属性带isTrigger标志时:
    • 每次任何属性值更改时都会触发它。
    • 其他属性的值将是事件发生时可用的值。
    • 可能有多个触发器具有相同的设置值(因为它们未更改)。如果不希望出现这种行为,请将其分成多个事件,每个事件都有自己的触发器集。
  • 如果事件没有带有isTrigger标志的属性,则永远不会触发该事件(除非事件被定义为Periodic
  • 如果不确定是否安装了libusb,请输入以下命令

    sudo apt install libusb-1.0-0 libusb-1.0-0-dev
    
  • 根据Linux文档,无需sudo/root权限即可访问设备。有关更多信息,请参阅您的操作系统的udev设备权限文档。