Question

Contexte: Windows Server 2003 R2, port virtuel de service de câble créé avec un logiciel Realport, Port série configuré en tant que COM5, 9600 Baud, 8 bits de données, sans bits de parité, 1 bit d'arrêt, aucun contrôle de débit, Utilisation de RXTX 2.1-7.

Le port COM5 est trouvé, le port série est créé à l'aide de la méthode PORTID.OPEN et les paramètres de port et la commande de flux sont définis pour correspondre aux paramètres du pilote de périphérique ci-dessus. Je reçois l'intipream Serialport et enveloppez-le dans un entréeStreamreader afin que je puisse contrôler l'encodage d'entrée. Le codage par défaut est bien sûr CP1252 J'ai lu que si vous utilisez 8 bits de données, le codage devrait être ISO-8859-1 AKA Latin1. et j'utilise la méthode InputStreamReader: int c= isr.read (); dans une boucle de temps dans l'affaire Serialport.event.data_AntAnable Imprimer l'entier C et il est lancé à un personnage ((char) c); Le problème est que les chiffres et les caractères résultants sont trop élevés (la portée est de 135 à 250) Les messages finissent par "tous les droits réservés.)" Et les derniers caractères de chaque message sont les mêmes. Cependant, le changement n'est pas cohérent du caractère à caractère. Ont essayé d'autres codages: UTF8 / UTF-8 déplace les chiffres encore plus élevés. Comme ASCII / US-ASCII. CP1252 déplace les chiffres à la plage 130 à 350, à l'exception de 3 caractères décalés sur 65533, 82222 et 8240. Remarque: Utilisation de l'UTF8 et UTF-8 est UTF8 et ASCII et US-ASCII sont ASCII.

Y a-t-il d'autres codages que je devrais essayer? Quelqu'un d'autre a vu ce genre de chose?

Était-ce utile?

La solution

Je fais presque exactement la même chose.9600 Baud, 8N1 (8 bits de données, sans parité, 1 bit d'arrêt) et nous n'avons aucun problème avec le changement de caractère.Nous ne fixons même pas le codage, n'importe où.

Notre flux d'entrée est simplement de type Inpurstream et il est défini avec Serialport.getInputStream ();

Essayez de reculer de InputStreamreader et d'utiliser simplement une "INPUTREAM INPUTRES".Le codage devrait prendre soin de lui-même.

espère que cela aide d'une manière ou d'une autre,

- GMALE

Autres conseils

avoir deux des ports de service de fil.J'aimerai être un conflit entre la configuration matérielle du TCP sur le périphérique série appelé Digi.J'ai pu remédier au problème sur ce port en modifiant les paramètres série COM5 sur 9600,7,1,0,0.Le changement de valeurs était dû à l'utilisation de 8 bits de données vs 7. Cela signifiait bien sûr que je devais modifier les paramètres du port dans le code pour correspondre.Vous êtes correct en ce que le lecteur était inutile, mais cela m'a aidé à arriver à la solution en regardant le changement de changement avec le codage, jusqu'à ce qu'il me soit accueilli sur le fait que moins de bits de données auraient également le même effet.

Maintenant, je cherche la magie sur le deuxième port.

Les deuxièmes réglages du port étaient de 1200,8,1,0,0 à l'aide de 9600 ont provoqué le flux surtout 0s avec environ 128s.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top