Connect IoT - 键盘楔子驱动程序#
此驱动程序旨在将键盘以外的设备(如磁条、条码读取器或其他此类扫描设备)读取的数据处理到键盘数据中。借助此驱动程序,便可使用一些更具成本效率的读取器(条码、rfid等)。
Warning
非常重要:要接收键盘楔子设备发送的数据,必须在操作系统中侦听特定事件。这也称为键盘记录器,但不能在Microsoft Windows操作系统中使用。因此,此驱动程序只应在Linux操作系统中执行,以管理员权限(sudo)运行,并安装libusb模块。
数据类型#
这些是受支持的特定数据类型:
| 名称 | 描述 |
|---|---|
| 字符串 | 字符串值 |
| 布尔值 | 布尔值 |
| 整数 | 整数值 |
| 十进制 | 十进制值 |
| 对象 | 结构化值 |
异常流程参数#
异常流程支持以下参数:
| 名称 | 类型 | 可能的值 | 默认值 | 描述 |
|---|---|---|---|---|
| deviceIdentifierType | 枚举 | VendorAndProductId 路径 DeviceIndex | VendorAndProductId | 用于确定驱动程序将连接到哪个设备的标识类型 |
| 路径 | 字符串 | 对操作系统已知的设备路径。当deviceIdentifierType为以下项时使用 Path | ||
| vendorId | 整数 | 0 | 要使用的设备的供应商ID。当deviceIdentifierType为VendorAndProductId时使用。使用“-1”值可以使用任何供应商ID。预期值为十进制格式(非十六进制)。 | |
| productId | 整数 | 0 | 要使用的设备的产品ID。当deviceIdentifierType为VendorAndProductId时使用。使用“-1”值可以使用任何产品ID。预期值为十进制格式(非十六进制)。 | |
| deviceIndex | 整数 | 0 | 要使用的设备的索引。当deviceIdentifierType为DeviceIndex时,所选设备将是与所有设备上的索引匹配的设备。当deviceIdentifierType为VendorAndProductId时,将在与供应商和产品ID匹配的设备中选择设备索引。 | |
| parserType | 枚举 | Raw Readline ByteLength Delimiter InterByteTimeout 准备就绪 Regex | ReadLine | 选择用于确定何时识别从设备接收到的数据并准备好处理的解析器(有关详细信息,请查看每个解析器的特定部分)。 |
| delimiter | 字符串 | "\r\n" | 在解析器Readline、Delimiter、Ready、RegularExpression中使用:用于拆分传入文本的字符串分隔符。简单的字符串替换可以像\r\n\t一样使用如果解析器为RegularExpression,则可以使用正则表达式,例如:[\r\n]+ | |
| encoding | 枚举 | ascii utf8 utf16le ucs2 base64 binary hex | ascii | 在解析器Readline、Regex中使用:接收到的数据的文本编码 |
| 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)或更改值(事件触发模式为AllValues或DifferentValues)时触发事件 |
备注/行为#
- 当事件具有多个属性带
isTrigger标志时:- 每次任何属性值更改时都会触发它。
- 其他属性的值将是事件发生时可用的值。
- 可能有多个触发器具有相同的设置值(因为它们未更改)。如果不希望出现这种行为,请将其分成多个事件,每个事件都有自己的触发器集。
- 如果事件没有带有
isTrigger标志的属性,则永远不会触发该事件(除非事件被定义为Periodic) -
如果不确定是否安装了libusb,请输入以下命令
-
根据Linux文档,无需sudo/root权限即可访问设备。有关更多信息,请参阅您的操作系统的udev设备权限文档。