2010-06-14 145 views
0

我正在为摩托罗拉MC75的定制应用程序的开发提供帮助。除了随条形码阅读器出现的随机错误之外,它很好地进行了调整。如果按下右肩按钮,条形码阅读器将定期启动(开始阅读)。中间和左肩按钮以某种方式被禁用。这是一个独特的错误,它随机发生,只影响三个按钮中的2个。 EMDK可以同时启用所有按钮,所以我无法确定这是来自哪里(内部或代码相关)。如果任何人有任何意见或建议,请让我知道并且事先感谢你。MC75条形码阅读器问题

感谢,

扎克

回答

1

我已经与摩托罗拉EMDK之前的MC55工作。我不确定为什么这些按钮被禁用,并且自从您在六月份发布此代码后,您可能不再需要该答案,但可以采取以下解决方法:

而不是让EMDK自行处理触发器,你可以通过设置事件捕获所有触发器:

// Create a trigger device to handle all trigger events of stage 2 (pressed) or RELEASED 
var device = new TriggerDevice(TriggerID.ALL_TRIGGERS, new[] { TriggerState.RELEASED, TriggerState.STAGE2 }); 
var trigger = new Trigger(device); 
trigger.Stage2Notify += OnTrigger; 

然后,在你OnTrigger方法,你可以处理的触发,并执行相应的操作。例如,您可以在按下任何触发器时激活条形码读取器:

private void OnTrigger(object sender, TriggerEventArgs e) 
{ 
    if (e.NewState == e.PreviousState) 
     return; 

    // Pseudocode 
    if (e.NewState == TriggerState.RELEASED) 
    { 
     myBarcodeReader.Actions.ToggleSoftTrigger(); 
     myBarcodeReader.Actions.Flush(); 
     myBarcodeReader.Actions.Disable(); 
    } 
    else if (e.NewState == TriggerState.STAGE2) 
    { 
     // Prepare the barcode reader for scanning 
     // This initializes various objects but does not actually enable the scanner device 
     // The scanner device would still need to be triggered either via hardware or software 
     myBarcodeReader.Actions.Enable(); 
     myBarcodeReader.Actions.Read(data); 
     // Finally, turn on the scanner via software 
     myBarcodeReader.Actions.ToggleSoftTrigger(); 
    } 
}