Считыватель штрих-кодов MC75 - PullRequest
0 голосов
/ 14 июня 2010

Я помогаю в разработке специального приложения для Motorola MC75. Он хорошо настроен, за исключением случайной ошибки со считывателем штрих-кода. Периодически считыватель штрих-кода активируется (начинает считывание) только при нажатии правой кнопки плеча. Кнопки среднего и левого плеча как-то отключаются. Это уникальная ошибка в том, что это происходит случайно и влияет только на 2 из трех кнопок. EMDK включает все кнопки одновременно, поэтому я не знаю, откуда это происходит (внутренний или связанный с кодом). Если у кого-либо есть какие-либо предложения или советы, пожалуйста, дайте мне знать и заранее поблагодарить вас.

Спасибо

Zach

1 Ответ

1 голос
/ 10 сентября 2010

Я работал с Motorola 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();
    }
}
...