Essayez sudo screen /dev/ttyUSB2 115200,cs8,parenb,-parodd,-cstopb
À partir de la page de manuel pour stty
:
- csN - définit la taille des caractères sur N bits, N dans [5..8]
- [-]parenb - génère un bit de parité en sortie et attend un bit de parité en entrée
- [-]parodd - définit une parité impaire (même avec '-')
- [-]cstopb - utilise deux bits d'arrêt par caractère (un avec '-')
Pour faire court, il semble que screen
ne prend pas en charge la définition de ces drapeaux. L'alternative serait d'exécuter stty
pour définir les drapeaux pendant que l'écran est connecté au port, comme vous l'avez fait. Alternativement, vous pouvez exécuter kermit ou un autre programme d'émulation de terminal dans une session de ligne de commande screen conventionnelle, au lieu que screen se connecte directement au port série.
Le screen
le code source est à http://git.savannah.gnu.org/cgit/screen.git. Il semble que le fichier qui vous intéresse soit tty.sh. Il s'agit d'un script shell qui s'exécute pendant le processus de construction pour produire "tty.c". tty.c contient le code d'accès aux ports série.
La fonction SttyMode()
semble être ce qui analyse les options tty et définit le mode tty. Il me semble qu'il gère un petit ensemble fixe d'options. "parenb" et "parodd" n'en font pas partie.
Il semble qu'il serait simple pour un développeur expérimenté en C d'ajouter la prise en charge de ces options, si c'est une option pour vous.