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