2010-06-14 13 views
0

Je participe au développement d'une application personnalisée pour le Motorola MC75. Il est bien réglé, sauf pour un bug aléatoire avec le lecteur de code-barres. Périodiquement, le lecteur de code-barres ne sera activé (démarrer une lecture) que si vous appuyez sur le bouton droit de l'épaule. Les boutons de l'épaule du milieu et de l'épaule gauche deviennent handicapés. C'est un bug unique en ce sens qu'il se produit aléatoirement et que seuls les effets 2 des trois boutons. L'EMDK active tous les boutons simultanément, donc je n'ai aucune idée de l'origine (interne ou liée au code). Si quelqu'un a des commentaires ou des suggestions, s'il vous plaît faites le moi savoir et merci d'avance.Lecteur de code-barres MC75 Édition

Merci,

Zach

Répondre

1

J'ai travaillé avec le Motorola EMDK avant le MC55. Je ne suis pas sûr de savoir pourquoi les boutons sont désactivés, et puisque vous avez posté cela en Juin, vous n'avez probablement plus besoin de la réponse, mais voici une solution possible:

Au lieu de laisser l'EMDK gérer les déclencheurs de son propre chef , vous pouvez capturer tous les déclencheurs en mettant en place un événement:

// 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; 

Ensuite, dans votre méthode de OnTrigger, vous pouvez gérer la gâchette et effectuer l'action appropriée. Par exemple, vous pouvez activer votre lecteur de codes à barres lorsque vous appuyez sur un déclencheur:

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(); 
    } 
}