0

Motorola MC75 用のカスタム アプリケーションの開発を支援しています。バーコードリーダーのランダムなバグを除いて、よく調整されています。定期的に、バーコード リーダーは、右肩のボタンが押された場合にのみアクティブになります (読み取りを開始します)。真ん中と左の肩のボタンがなぜか無効になります。これは、ランダムに発生し、3 つのボタンのうち 2 つにしか影響しないという点で、固有のバグです。EMDK はすべてのボタンを同時に有効にするため、これがどこから来ているのか (内部またはコード関連) はわかりません。誰かが意見やアドバイスを持っている場合は、お知らせください。事前に感謝します。

ありがとう、

ザック

4

1 に答える 1

1

MC55 で Motorola EMDK を使用したことがあります。ボタンが無効になっている理由はわかりません.6月にこれを投稿したので、おそらくもう答えは必要ありませんが、考えられる回避策は次のとおりです。

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();
    }
}
于 2010-09-10T13:23:57.853 に答える