禁用然后重新启用符号条形码扫描仪

时间:2013-12-02 20:01:26

标签: c#-3.0 barcode-scanner windows-mobile-6.5 motorola

好的......所以这似乎应该是一个非常简单的 - 我需要禁用符号条形码扫描仪,做一些工作,然后重新启用扫描仪。

我有一个工作正常的扫描仪类,所以我在项目查找类中尝试了以下代码

 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()之后是否需要添加一些内容?

我已经搜索了几个小时而没有运气这个问题。

由于

1 个答案:

答案 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);

可能您需要按扫描按钮才能触发扫描仪点亮。