好的......所以这似乎应该是一个非常简单的 - 我需要禁用符号条形码扫描仪,做一些工作,然后重新启用扫描仪。
我有一个工作正常的扫描仪类,所以我在项目查找类中尝试了以下代码
private Symbol.Barcode.Reader MyReader = Scanner.GetMyReader;//gets the reader
.....
......
private method()
{
MyReader.Actions.Disable();
...do some work here
MyReader.Actions.Enable()
}
上述代码的问题是读者似乎永远不会重新启用,尤其是激光永远不会再次亮起,读取通知事件再也不会激发。
我也试过MyReader.ReadNotify - = MyReader_ReadNotify; 然后将其添加回来,但这不起作用,因为当扫描按钮被击中时,扫描仪仍会构建扫描事件。
我确实尝试过MyReader.Actions.Read(MyReaderData),这再次触发了读取事件,但仍未启用扫描程序。
在MyReader.Actions.Enable()之后是否需要添加一些内容?
我已经搜索了几个小时而没有运气这个问题。
由于
答案 0 :(得分:1)
根据摩托罗拉EMDK指南,您只需要三种方法和事件处理程序:
QUOTE
启用阅读器
启用扫描仪硬件。此方法不会扫描仪扫描或打开激光。
// Enable the Reader
MyReader.Actions.Enable();
提交阅读请求
开始待处理的阅读。该方法不会打开激光。但是,它会将扫描仪放入 通过按下硬件触发器或执行操作可以打开激光的状态 assoftware触发器。
// Submit a read
MyReader.Actions.Read(this.MyReaderData);
即使提交了读取请求并且成功读取完成,获取数据也需要一个事件 处理程序。请参阅注册到扫描程序通知部分以创建事件处理程序。
禁用阅读器
禁用扫描仪硬件。撤消启用过程。必须在扫描仪之前重新启用扫描仪 如果已被禁用则使用。
// Disable the reader
this.MyReader.Actions.Disable();
注意:禁用阅读器时,必须考虑以下通知处理程序。对于 有关通知的信息,请参阅“注册到扫描仪通知”部分。
Status notification handler: A previously attached StatusNotify event handler will be automatically
detached. When the reader is re-enabled, the event handler must be re-attached to get further status
notifications.
Read notification handler: A previously attached ReadNotify event handler will not be detached. It
gets detached only when the reader is disposed.
/ QUOTE
这意味着您必须使用:
this.MyReader.Actions.Disable();
和
MyReader.Actions.Enable();
并重新附加通知处理程序。 当你发出
时,扫描仪会亮起MyReader.Actions.Read(this.MyReaderData);
可能您需要按扫描按钮才能触发扫描仪点亮。