2010-06-14 143 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(); 
    } 
}