2009-05-21 6 views
2

J'utilise un script importation pyserial à lire COM4fonction readline Python pyserial mauvaise utilisation

messages Je voudrais intercepter fin avec un couple de #

donc j'ai essayé d'utiliser

bus.readline(eol='##') 

où bus est ma connexion.

Je pensais lire comme:

  1. * # * 3 ##
  2. * # * 3 ##
  3. * # * 3 ##

Unfortunalyy J'ai aussi trouvé

  1. * # * 1 ## * 1 * 1 * 99 ##

que je pensais à lire spleetted en 2 lignes

  1. * # * 1 ##
  2. * 1 * 1 * 99 ##

Il est clair que readline ne fonctionne pas, mais pourquoi?

+0

Je n'ai jamais utilisé PySerial, mais si cela fonctionne comme vous l'avez dit, il pourrait interpréter ces deux "#" au milieu de "* # * 1 ## * 1 * 1 * 99 ## "comme une fin de vie. –

+0

oui il devrait faire ce travail – DrFalk3n

+0

résolu en utilisant EnhancedSerial dans pySerial y compris la fonction readline re-implémenté. – DrFalk3n

Répondre

3

La méthode readline() dans pyserial lit un caractère à la fois et le compare au caractère EOL. Vous ne pouvez pas spécifier plusieurs caractères comme EOL. Vous devrez lire et diviser plus tard en utilisant string.split() ou re.split()

+0

résolu en utilisant EnhancedSerial dans pySerial y compris la fonction readline ré-implémentée. – DrFalk3n

Questions connexes