2

我想在成功扫描之前和/或之后用不同的音调播放来自滑板的声音。

与使用 ipod 扬声器相比,它具有更高音调的扬声器或压电设备,在我们当前的环境中更容易听到。

另外,我熟悉 Linea Pro 设备,他们可以通过调用 DTDevice playSound 方法来播放声音。

有没有人能够通过 Honeywell Captuvo 设备按需播放声音?

场景 1:当我扫描任何东西时,扫描仪会发出哔哔声,然后如果物品不在库存中,我想从 API 播放不同的音调,并播放类似高/低/高/低音的声音。

这很容易通过 Linea Pro 的 API 使用他们的 DTDevice.h playSound 方法完成。

4

2 回答 2

2

我收到了霍尼韦尔支持的解决方案。该解决方案不如 LineaPro API 好,因为您无法向其发送声音频率和持续时间的字节流。

这是来自技术支持的片段。

“我们没有任何即将推出的 SDK 可以为 Captuvo 添加相同类型的功能。我认为您可以做的是使用 SDK 直通模式直接向 Captuvo 扫描仪的蜂鸣器发送蜂鸣命令。重要的部分是了解如何使用直通模式。帮助文件中应该有一些文档,但我可以在这里尝试解释。使用直通模式时,您可以发送 Captuvo 扫描仪支持的任何固件命令。如果您想让扫描仪发出哔声或razz 您可以发送固件命令 [syn]M[cr]bepexe1. 以获得良好的读取蜂鸣声和 [syn]M[cr]bepexe4. 以获得 RAZZ 音调。您可以发送这些命令的字符串以将声音更改为独特的各种情况。”

这是一个代码片段。通过传递功能发送的菜单命令如下:[syn]M[cr]bepexe1。[syn]M[cr]bepexe4.

[syn] 是十六进制值 16。M 是十六进制值 4D,[cr] 是十六进制值 0D。

const Byte msg[]= {0x16,0x4d,0x0d,'B','E','P','E','X','E','1'.'};
NSData* msgData = [NSMutableData dataWithBytes:&msg length:sizeof(msg)]; [[Captuvo sharedCaptuvoDevice]decoderPassThrough:msgData expectingReturnData:YES];

这是我的替代声音代码实现的简短片段。我认为我只能从 Honeywell 设备中找到两个音高。

// 1 = 良好的哔声 // 4 = 刺耳的哔声

    const Byte msg1[]= {0x16,0x4d,0x0d,'B','E','P','E','X','E','1','.'};
    NSData* msgData1 = [NSMutableData dataWithBytes:&msg1 length:sizeof(msg1)];


    const Byte msg4[]= {0x16,0x4d,0x0d,'B','E','P','E','X','E','4','.'};
    NSData* msgData4 = [NSMutableData dataWithBytes:&msg4 length:sizeof(msg4)];


    [[Captuvo sharedCaptuvoDevice]decoderPassThrough:msgData1 expectingReturnData:YES];
    [[Captuvo sharedCaptuvoDevice]decoderPassThrough:msgData4 expectingReturnData:YES];


    [[Captuvo sharedCaptuvoDevice]decoderPassThrough:msgData1 expectingReturnData:YES];
    [[Captuvo sharedCaptuvoDevice]decoderPassThrough:msgData4 expectingReturnData:YES];
于 2014-08-14T16:43:33.377 回答
0

我已将 Nick N 的出色解决方案转换为与 Swift 3 一起使用:

let goodBeep = NSData(bytes: [0x16,0x4d,0x0d,0x42,0x45,0x50,0x45,0x58,0x45,0x31,0x2e] as [UInt8], length: 11)
let badBeep = NSData(bytes: [0x16,0x4d,0x0d,0x42,0x45,0x50,0x45,0x58,0x45,0x34,0x2e] as [UInt8], length: 11)

if(isInInventory){
    Captuvo.sharedCaptuvoDevice().decoderPassThrough(goodBeep as Data!, expectingReturnData: false)
}
else{
    Captuvo.sharedCaptuvoDevice().decoderPassThrough(badBeep as Data!, expectingReturnData: false)
}

goodBeep高音和badBeep爵士音的十六进制数组在哪里,isInInventory是一个布尔值,您可以根据自己的情况设置真或假

于 2017-03-20T12:45:23.220 回答