我想让我的摩托罗拉MC3190读取条形码。但遗憾的是,按下硬件扫描按钮后没有响应。我正在使用EMDK for .net 2.0版。
这是我的代码:
private void Form1_Load(object sender, EventArgs e)
{
// Get the first scanning device (Its named SCN1 in my device)
myDevice = Symbol.Barcode.Device.AvailableDevices[0];
myReader = new Reader(myDevice);
// Make sure the Code-128 decoder is enabled!
myReader.Decoders.CODE128.Enabled = true;
// Create an instance of reader
myReaderData = new Symbol.Barcode.ReaderData(Symbol.Barcode.ReaderDataTypes.Text, Symbol.Barcode.ReaderDataLengths.MaximumLabel);
// Set the event handler
myReader.ReadNotify += new EventHandler(myReader_ReadNotify);
// enable and get ready to read
myReader.Actions.Enable();
myReader.Actions.Read(myReaderData);
}
在我的活动中,我只想尝试显示已解码的文本:
void myReader_ReadNotify(object sender, EventArgs e)
{
Symbol.Barcode.ReaderData nextReaderData = myReader.GetNextReaderData();
this.listBox1.Items.Add(nextReaderData.Text);
switch (nextReaderData.Result)
{
case Symbol.Results.SUCCESS:
this.listBox1.Items.Add(nextReaderData.Text);
myReader.Actions.Read(myReaderData);
break;
case Symbol.Results.CANCELED:
this.listBox1.Items.Add("Canceled!!");
break;
default:
string sMsg = "Read Failed\n"
+ "Result = "
+ ((int)nextReaderData.Result).ToString("X8");
MessageBox.Show(sMsg, "ReadNotify");
break;
}
}
我不获取任何错误消息。同时,如果我列出可用的扫描设备,我就可以看到我的设备(SCN1)。触发硬件密钥需要做些什么特别的事情吗?
我们非常感谢您解决此问题的任何帮助/想法。谢谢!
答案 0 :(得分:2)
有时,motorola单元安装了DataWedge应用程序。在使用EMDK时,它可以声称可以访问扫描仪并导致许多问题。确保已禁用或卸载它。
答案 1 :(得分:1)
在您的设备设置中,BarCode Reader是否已打开? (只是先把呐喊!因素排除在外)
在我们的设备中,我们只是将条形码阅读器视为任何其他形式的文本输入。
我的表单上有TextBox
控件,客户(我们的员工)选择TextBox
,将设备指向标签,然后扫描条形码。
我所做的就是阅读TextBox1.Text
字段。
答案 2 :(得分:0)
我不太确定此设备是否为不同的硬件使用相同的COM端口。如果选择了COM端口以使用条形码扫描仪,请检入“设置”。在具有大量硬件的设备中,COM端口是共享的。
此外,如果您关闭应用程序并按黄色按钮,条形码光束是否显示?
设备是否支持您的条形码类型?
正如@ jp2code所说的基本功能,您可以使用DataWedge并以文本形式接收数据。
答案 3 :(得分:0)
在myReader_ReadNotify
功能中,在第4行之后和第5行(开关)之前放置此行:
myReader.Actions.Read(myReaderData);