@ capgo/ 电容器- 斑马- datawedge
从您的 Capacitor app 中扫描 Zebra Android 设备上的条码和 RFID 标签, 并使用 DataWedge : 管理配置文件, 触发扫描并接收结果 。 作为Ionic的企业斑马扫描仪的开放式替代品.
队长:在几分钟内向您的Capacitor用户推进修正,在没有Mac的情况下构建签名的iOS和Android应用程序,以及
卷回一击.
14天无限自由审判. 不需要信用卡
🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-zebra-datawedge 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 加上@capgo/capor-zebra-datawedge到我的Capacitor应用上并把它接上 代理设置指南 • 妇女 主机磁共振
主要特点
- 扫描事件页:1
scan 听者发送条码和RFID数据.
- 软扫描数字 :
softScanTrigger() 从您的用户界面开始扫描.
- 简介数字 :
createProfile(), (中文(简体) ), cloneProfile(), (中文(简体) ), renameProfile(), (中文(简体) ), deleteProfile() 财务报告和审定财务报表 setConfig()。 。 。 .
- 查询数字 :
enumerateScanners(), (中文(简体) ), getActiveProfile(), (中文(简体) ), getConfig() 财务报告和审定财务报表 getDatawedgeStatus()。 。 。 .
- 通知数字 :
registerForNotification() 与 notification 活动.
- 平台:Android (英语). 仅限Android,在有DataWedge的斑马设备上. iOS和网页返回不可用错误 .
Capgo的斑马 DataWedge插件将斑马的Android条码和RFID捕获API带入Capacitor.
它被设计为Ionic的企业"斑马扫描仪"的开放替代品,提供并曝光了相同的高层次团体:
ZebraConfiguration 配置管理
ZebraNotification 扫描器/显示状态通知
ZebraQuery 用于配置文件、扫描仪和数据界面查询
ZebraRuntime 用于启用/拆卸扫描仪和触发扫描器
文档
文件全文在此公布: https://capgo.app/docs/plugins/zebra-datawedge/ 页面存档备份,存于互联网档案馆
兼容性
| 插件版本 | 电容兼容性 | 维护 |
v8.*.* | v8.*.* | ✅ |
这个插件在实际操作中只有Android,因为Zebra DataWedge本身运行在Zebra Android设备上.
安装
您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins
然后使用下列提示:
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-zebra-datawedge` plugin in my project.
如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:
bun add @capgo/capacitor-zebra-datawedge
bunx cap sync
斑马设置
在扫描前配置斑马设备上的 DataWedge 配置 :
- 将简介与你的应用程序联系起来.
- 启用
Intent Output。 。 。 .
- 设定
Intent delivery 改为 Broadcast Intent。 。 。 .
- 选择意图动作, 如
app.capgo.zebra.SCAN。 。 。 .
基本用途
import {
DataWedgeConfigMode,
DataWedgePlugin,
ZebraConfiguration,
ZebraDataWedge,
ZebraRuntime,
} from '@capgo/capacitor-zebra-datawedge';
const intentAction = 'app.capgo.zebra.SCAN';
await ZebraConfiguration.setConfig({
profileName: 'CapgoZebraProfile',
profileEnabled: true,
configMode: DataWedgeConfigMode.CREATE_IF_NOT_EXIST,
appList: [
{
packageName: 'com.example.app',
activityList: ['*'],
},
],
pluginConfigs: [
{
pluginName: DataWedgePlugin.BARCODE,
resetConfig: true,
paramList: {
scanner_selection: 'auto',
scanner_input_enabled: 'true',
},
},
{
pluginName: DataWedgePlugin.INTENT,
resetConfig: true,
paramList: {
intent_output_enabled: 'true',
intent_action: intentAction,
intent_delivery: 2,
},
},
],
});
await ZebraDataWedge.addListener('scan', (result) => {
console.log('Scanned', result.data, result.labelType);
});
// Physical scan button: intent action is registered automatically from setConfig above.
// You can also register explicitly before listening:
// await ZebraRuntime.registerScanIntentAction(intentAction);
const result = await ZebraRuntime.softScanTrigger(intentAction);
console.log(result);
页:1
- 查询和配置 API 依赖于 Zebra DataWedge 被安装和启用.
setConfig() 登记册扫描意图动作 scanIntentAction 从 INTENT 插件 intent_action 数值 pluginConfigs 成功更新后,无论是否 scanIntentAction 提供.
registerScanIntentAction() 注册自定义意图动作而不调用 registerForNotification() 或者说 softScanTrigger()。在每个应用程序启动时重复一次,因为接收者注册只是记忆.
softScanTrigger() 等待下一次在您提供的意向动作上播放的扫描.
softRfidTrigger() 使用第一个注册扫描意图动作。 如果您需要 RFID 读取, 请先登录扫描动作 .
- Web和iOS返回所有 DataWedge 操作的"不可用"错误.
广播兼容性与安全
DataWedge 无需查询即可返回查询结果 COMMAND_IDENTIFIER。插件只有在其有效载荷类型完全匹配一个等待查询并期望有效载荷形状时才接受这种结果。 避免相同结果有效载荷形状的待呼叫重叠:没有识别码的答复无法可靠地区分其所有人。 譬如说, getAssociatedApps() 财务报告和审定财务报表 getConfig() 都发送 CMD_GET_CONFIG 和预期 CONFIG_RESULTS,因此,每个待调用电话仍然重叠。 如果一个查询出错,对超时查询的延迟的无标识符回复仍然可以匹配一个后继的相继调用,该调用预期相同的有效载荷外形并用被扭曲的数据解决. 使用未知的非空标识符的回复不指定给其他查询.
在Android 14/API 34上及后期,共享平台发件人身份的无标识回复必须识别DataWedge包. 发件人可以在API 34上及以后保留其身份,插件然后接受匹配的无标识符结果. 在Android API 24至33上也找不到身份,插件接受匹配的无标识结果与DataWedge兼容.
查询关联性和有效载荷验证不能保证发送者的真实性. 任何已安装的app都可以在每个Android版本上注入匹配的无标识查询结果,包括将其身份在API 34上和后期. 使用匹配的命令识别器、扫描数据和通知广播的答复也缺乏完整的发送者认证。 见 已知的发件人-认证限制 详细情况.
API 密码
克隆文件(...)
cloneProfile(options: CloneProfileOptions) => Promise<void>
创建Profile (...)
createProfile(options: CreateProfileOptions) => Promise<void>
删除Profile (...)
deleteProfile(options: DeleteProfileOptions) => Promise<void>
导入 Config (...)
importConfig(options: ImportConfigOptions) => Promise<void>
重命名Profile (...)
renameProfile(options: RenameProfileOptions) => Promise<void>
恢复 Config ()
restoreConfig() => Promise<void>
设置 Config (...)
setConfig(options: SetConfigOptions) => Promise<void>
设置DisabledAppList (.)
setDisabledAppList(options: SetDisabledAppListOptions) => Promise<void>
设置无法忽略的Profiles (.)
setIgnoreDisabledProfiles(options: IgnoreDisabledProfilesResult) => Promise<void>
通知(.)
registerForNotification(options: Omit<RegisterForNotificationOptions, 'callback'>) => Promise<void>
通知命令发送到 DataWedge 时完成 .
这不能证实登记、政策批准或扫描仪准备状态;
观察通知事件以确定扫描仪的状态.
注册可选择动作(...)
registerScanIntentAction(options: RegisterScanIntentActionOptions) => Promise<void>
在Android插件接收器中注册一个DataWedge扫描广播意图动作(仅运行时间);
重新调用每个应用程序启动 。 当配置文件使用自定义时使用 intent_action 扫描
从物理触发器.
未注册通知(...)
unRegisterForNotification(options: Omit<RegisterForNotificationOptions, 'callback'>) => Promise<void>
未注册命令发送到 DataWedge 时完成 .
这不能证实未登记或政策批准;通知可能已经排队.
在使用低等API时分别处理本地收听者.
列表扫描器( )
enumerateScanners() => Promise<{ scanners: ZebraDeviceScanner[]; }>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<{ scanners: ZebraDeviceScanner[]; }>
获取主动Profile ()
getActiveProfile() => Promise<{ profileName: string; }>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<{ profileName: string; }>
获取关联Apps(...)
getAssociatedApps(options: { profileName: string; }) => Promise<{ appList: DataWedgeAppConfig[]; }>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 譬如说,
getAssociatedApps() 财务报告和审定财务报表 getConfig() 都发送 CMD_GET_CONFIG 和预期 CONFIG_RESULTS,所以一个
等待调用每个重叠部分。 当发件人身份无法找到时(Android API 24至33或API)
34+ 当平台拒绝时, 匹配无标识符的回复被接受
兼容性。 如果调用时间中断, 延迟的无标识回复仍然可以匹配后一个
依次调用,期望相同的形状并用陈旧的数据解决. 此默认可能
在下一个 Capacitor 主版本中更改;参见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
| 参数 | 类型 |
options | { profileName: string; } |
回返情况: Promise<{ appList: DataWedgeAppConfig[]; }>
获取Config (...)
getConfig(options: GetConfigOptions) => Promise<ZebraProfileConfiguration>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 譬如说,
getAssociatedApps() 财务报告和审定财务报表 getConfig() 都发送 CMD_GET_CONFIG 和预期 CONFIG_RESULTS,所以一个
等待调用每个重叠部分。 当发件人身份无法找到时(Android API 24至33或API)
34+ 当平台拒绝时, 匹配无标识符的回复被接受
兼容性。 如果调用时间中断, 延迟的无标识回复仍然可以匹配后一个
依次调用,期望相同的形状并用陈旧的数据解决. 此默认可能
在下一个 Capacitor 主版本中更改;参见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<ZebraProfileConfiguration>
获取 Datawedge 状态 ()
getDatawedgeStatus() => Promise<DataWedgeStatusResult>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<DataWedgeStatusResult>
获取残废AppList ()
getDisabledAppList() => Promise<{ appList: DataWedgeAppConfig[]; }>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<{ appList: DataWedgeAppConfig[]; }>
获取无法忽略的Profiles ()
getIgnoreDisabledProfiles() => Promise<IgnoreDisabledProfilesResult>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<IgnoreDisabledProfilesResult>
获取ProfileSList ()
getProfilesList() => Promise<{ profiles: string[]; }>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<{ profiles: string[]; }>
获得扫描状态
getScannerStatus() => Promise<{ status: ScannerStatus | string; }>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<{ status: string; }>
获取VersionInfo ()
getVersionInfo() => Promise<ZebraDeviceVersionInfo>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<ZebraDeviceVersionInfo>
禁用 Datawedge ()
disableDatawedge() => Promise<void>
disableScannerInput() => Promise<void>
启用 Datawedge ()
enableDatawedge() => Promise<void>
enableScannerInput() => Promise<void>
引用 Triggers ()
enumerateTriggers() => Promise<{ triggers: string[]; }>
仅限Android. 数据 Wedge 可能会省略 COMMAND_IDENTIFIER 答复。 该插件接受
只有当有效载荷完全匹配一个等待调用并期望
同样的结果有效载荷形状。 避免重复使用相同形状的待呼叫。 发送时
身份不存在(Android API 24至33或API 34+当平台扣留时),
为兼容性接受匹配无标识符的回复。 如果呼叫时间中断, 延迟
无标识符的回复仍然可以匹配期望相同形状的后继调用和
用陈旧的数据解决它。 此默认值可能在下一个 Capacitor 主版本中更改; 见
https://github.com/ Cap-go/concessor-zebra-datawedge/issues/25/ 页面存档备份,存于互联网档案馆。 。 。 .
回返情况: Promise<{ triggers: string[]; }>
通知(...)
notify(options: DataWedgeNotifyOptions) => Promise<void>
重新设置Default Profile ()
resetDefaultProfile() => Promise<void>
设置默认文件(...)
setDefaultProfile(options: { profileName: string; }) => Promise<void>
| 参数 | 类型 |
options | { profileName: string; } |
报告选项(...)
setReportingOptions(options: ReportingOptions) => Promise<void>
软Rfid Trigger ()
softRfidTrigger() => Promise<ZebraScanResult>
回返情况: Promise<ZebraScanResult>
软调试器(...)
softScanTrigger(options: { intentAction: string; }) => Promise<ZebraScanResult>
| 参数 | 类型 |
options | { intentAction: string; } |
回返情况: Promise<ZebraScanResult>
切换扫描器(...)
switchScanner(options: { scannerIndex?: string; scannerIdentifier?: ScannerIdentifier; }) => Promise<void>
切换ScannerParams(...)
switchScannerParams(options: SwitchScannerParamsOptions) => Promise<void>
切换 ToProfile (...)
switchToProfile(options: { profileName: string; }) => Promise<void>
| 参数 | 类型 |
options | { profileName: string; } |
获取 PluginVersion ()
getPluginVersion() => Promise<PluginVersionResult>
回返情况: Promise<PluginVersionResult>
添加倾听器( 扫描,...)
addListener(eventName: 'scan', listenerFunc: (event: ZebraScanResult) => void) => Promise<PluginListenerHandle>
回返情况: Promise<PluginListenerHandle>
添加倾听器( “ 通知 ” ,...)
addListener(eventName: 'notification', listenerFunc: (event: ZebraNotificationEvent) => void) => Promise<PluginListenerHandle>
回返情况: Promise<PluginListenerHandle>
接口
克隆文件选项
| Prop | 类型 |
destProfileName | string |
sourceProfileName | string |
创建Profile 选项
删除Profile 选项
| Prop | 类型 |
profileNames | string[] |
导入配置选项
| Prop | 类型 |
fileList | string[] |
folderPath | string |
重命名Profile 选项
| Prop | 类型 |
currentProfileName | string |
newProfileName | string |
设置配置选项
| Prop | 类型 | 说明 |
appList | DataWedgeAppConfig[] | |
configMode | DataWedgeConfigMode | |
pluginConfigs | DataWedgePluginConfig[] | |
profileEnabled | boolean | |
profileName | string | |
scanIntentAction | string | 成功后在插件接收器中注册此意图动作 setConfig (仅运行时间;再次调用每个应用程序启动). INTENT 输入 pluginConfigs 登记他们 intent_action 成功后自动值 setConfig,无论是否 scanIntentAction 提供. |
数据WedgeAppConfig
| Prop | 类型 |
activityList | string[] |
packageName | string |
数据WedgePlugin 配置
数据接口
设置已失效的 AppList 选项
忽略已禁用的文件
备注
斑马通报晚会
| Prop | 类型 |
notificationType | string |
profileName | string |
scannerStatus | string |
status | string |
raw | Record<string, unknown> |
登记册扫描行动选项
| Prop | 类型 | 说明 |
intentAction | string | 用于条码扫描广播(物理触发或软扫描)的数据Wedge意图动作. |
斑马·德维西斯坎纳
| Prop | 类型 |
connectionState | boolean |
id | string |
index | number |
name | string |
斑马配置
| Prop | 类型 |
appList | DataWedgeAppConfig[] |
pluginConfigList | DataWedgePluginConfig[] |
profileEnabled | boolean |
profileName | string |
获取配置选项
| Prop | 类型 |
pluginConfigs | PluginConfigOptions[] |
profileName | string |
插件配置选项
数据 Wedgestatus Result 数据更新
ZebraDeviceVersionInfo 齐布拉-德维西维西维西永信息
| Prop | 类型 |
barcodeVersion | string |
dataWedgeVersion | string |
decoderVersion | string |
scannerFirmwareVersions | string[] |
simulScanVersion | string |
数据Wedge 通知选项
| Prop | 类型 |
deviceIdentifier | string |
notificationSettings | number[] |
备选报告
| Prop | 类型 |
reportingEnabled | boolean |
reportingGenerateOption | 'manual' | 'auto' | 'both' |
reportingShowForManualImport | boolean |
斑马扫描结果
| Prop | 类型 |
data | string |
decodedMode | string |
intentAction | string |
labelType | string |
source | string |
切换扫描屏
插件变压器
插件听筒
| Prop | 类型 |
remove | () => Promise<void> |
类型异名
奥米
构造具有 T 属性的类型, K 类型除外.
Pick<T, Exclude<keyof T, K>>
选择
从 T 中选择一组键在 C 中的属性
{
[P in K]: T[P];
}
不包括
不包括 从 T 指定为 U 的类型
T extends U ? never : T
记录
构造 T 类型 K 的一组属性类型
{
[P in K]: T;
}
数字
数据界面
| 成员 | 数值 |
CREATE_IF_NOT_EXIST | 'CREATE_IF_NOT_EXIST' |
OVERWRITE | 'OVERWRITE' |
REMOVE | 'REMOVE' |
UPDATE | 'UPDATE' |
数据WedgePlugin
| 成员 | 数值 |
ADF | 'ADF' |
BARCODE | 'BARCODE' |
BDF | 'BDF' |
DCP | 'DCP' |
EKB | 'EKB' |
INTENT | 'INTENT' |
IP | 'IP' |
KEYSTROKE | 'KEYSTROKE' |
MSR | 'MSR' |
RFID | 'RFID' |
SERIAL | 'SERIAL' |
TOKENS | 'TOKENS' |
VOICE | 'VOICE' |
扫描器状态
| 成员 | 数值 |
CONNECTED | 'CONNECTED' |
DISABLED | 'DISABLED' |
DISCONNECTED | 'DISCONNECTED' |
IDLE | 'IDLE' |
SCANNING | 'SCANNING' |
WAITING | 'WAITING' |
数据对接通知Type
| 成员 | 数值 |
CONFIGURATION_UPDATE | 'CONFIGURATION_UPDATE' |
PROFILE_SWITCH | 'PROFILE_SWITCH' |
SCANNER_STATUS | 'SCANNER_STATUS' |
扫描识别器
| 成员 | 数值 |
AUTO | 'AUTO' |
BLUETOOTH_DS3678 | 'BLUETOOTH_DS3678' |
BLUETOOTH_RS6000 | 'BLUETOOTH_RS6000' |
BLUETOOTH_SSI | 'BLUETOOTH_SSI' |
INTERNAL_CAMERA | 'INTERNAL_CAMERA' |
INTERNAL_IMAGER | 'INTERNAL_IMAGER' |
INTERNAL_LASER | 'INTERNAL_LASER' |
PLUGABLE_SSI | 'PLUGABLE_SSI' |
PLUGABLE_SSI_RS5000 | 'PLUGABLE_SSI_RS5000' |
SERIAL_SSI | 'SERIAL_SSI' |
USB_SSI_DS3608 | 'USB_SSI_DS3608' |