Port série COM : initialisation ?

Port série COM : initialisation ? - Win 7 - Windows & Software

Marsh Posté le 02-03-2018 à 12:38:54    

Salut à tous!
 
J'ai un script qui envoie des données sur le port COM. J'ai aussi un logiciel du commerce qui l'utilise. Quand je lance en premier mon script, l'imprimante me sort des ((C. Quand je fais echo texte > COM1 dans le terminal, c'est idem. Si je lance le logiciel commercial ça imprime bien, et le script fonctionne bien aussi.
 
Quelle est la solution ? Sachant que le script est en PHP sous WAMPSERVER mais ce n'est pas lui le coupable puisque echo dans le terminal fait la même chose.
 
Je précise : démarrage système avec imprimante allumée, ou éteinte : pareil.


---------------
fan d'asus
Reply

Marsh Posté le 02-03-2018 à 12:38:54   

Reply

Marsh Posté le 02-03-2018 à 16:04:41    

J'ai rien compris.
 
Il y a quoi sur le port COM (RS232 j'imagine ?) l'imprimante ?
Tes scripts fonctionnaient avant ?
Ils font que des "echo" redirigés sur le port COM ? avec quel protocole ?


---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

Marsh Posté le 03-03-2018 à 11:21:34    

Excuse-moi de mon manque de précision.

 

J'ai actuellement une imprimante matricielle série RS 232 connectée sur un port série qui se nomme COM1 sur l'ordinateur. Elle est la seule à pouvoir imprimer sur des supports professionnels que j'utilise, et elle fonctionne toujours très bien. Windows 7 la reconnait très bien.

 

Depuis plusieurs années j'utilise un ordinateur avec un port série COM1 implanté sur la carte mère, et doté d'un logiciel commercial qui imprime de manière native sur le port COM sans aucun réglage, et surtout sans aucun driver. Ce logiciel reconnait le port COM comme COM1 sans aucune manip de ma part, et imprime très bien dessus. Il est à noter que le fait d'éteindre ou même de débrancher l'imprimante n'a aucune influence, il ne fait donc que reconnaitre le port, sans dialoguer avec l'imprimante, en tout cas je le suppose : si je lance l'impression avec l'imprimante éteinte et déconnectée, le logiciel n'affiche strictement aucune erreur. Quand je reconnecte l'imprimante et la rallume, je peux lancer une autre impression, aucun autre message d'erreur, et l'impression se déroule très bien.

 

J'ai voulu essayer un script écrit en PHP pour certaines raisons, entre autres le fait que le logicel commercial n'autorise pas autant de réglages que je souhaiterais, et que j'aimerais maintenant changer. J'ai installé WAMP qui permet d'émuler une installation Apache (serveur Web) et installé le script pour qu'il envoie des commandes sur le port série. Le résultat est que l'imprimante n'imprime que des signes abscons. Aucune erreur PHP.

 

D'autre part. Si je fais le test d'envoyer un signal via le terminal CMD (la commande :

 

echo Test > COM1

 

), l'imprimante sort également des signes abscons. Je n'avais pas fait ce test avant, parce que jamais je n'en avais eu besoin...

 

Si chronologiquement, je lance le logiciel commercial sus cité, et que je lance une impression, tout se passe normalement.

 

Puis, à partir de ce moment, si je lance le script, tout fonctionne bien ! Si je lance la commande echo via CMD, l'imprimante imprimera "Test" comme elle aurait dû le faire avant.

 

--

 

Pour en avoir le coeur net, j'ai acheté un convertisseur USB série que j'ai installé sur mon ordinateur. A part le numéro de port qui change, tout le comportement reste strictement identique. Le port COM série de la carte mère est donc certainement en bon état.

 

--

 

Est-ce que le problème vient du fait que le logiciel commercial initialiserait le port série, ce que ne fait pas le script en PHP, ni la commande echo via CMD ?

  


**
Précision 1: le logiciel est réglé pour envoyer à 9600 bauds, 8 bits sans parité, contrôle DTS DSR. Quand j'allume l'imprimante avec le bouton FF appuyé, l'imprimante me sort ces mêmes réglages.

 

Précision 2: j'ai installé le convertisseur USB série sur mon ordinateur portable. J'ai mis une version de démo du logiciel commercial ainsi que le script. Tout le comportement que j'ai décrit ci avant est identique. Cet ordinateur est sous windows 10.

 

J'ai tenté sur un ordinateur sous XP : l'imprimante ne fonctionne pas du tout, dans aucun des cas. Aucun message d'erreur. Mais ce n'est pas grave, je ne compte pas l'utiliser, cet ordinateur est bien trop lent, je n'ai fait cela que pour les tests.

 

Précision 3: j'ai étudié le script en PHP, il envoie des commandes en ESC étant donné que mon imprimante est compatible avec le standard ESC (les commandes commencent par escape). Mis à part le fait que le script est donné pour une imprimante donnée et que la mienne gère la couleur différemment, et que donc j'ai adapté les commandes, le script fonctionne bien après que j'ai imprimé avec le logiciel commercial. Donc ça ne vient probablement pas du script. Ou alors celui-ci est incomplet. Pourtant, il envoie bien une commande d'initialisation (ESC @) au tout début d'impression comme l'indique la doc de l'imprimante.

Message cité 1 fois
Message édité par aseries le 03-03-2018 à 11:34:32

---------------
fan d'asus
Reply

Marsh Posté le 05-03-2018 à 09:47:45    

aseries a écrit :


Est-ce que le problème vient du fait que le logiciel commercial initialiserait le port série, ce que ne fait pas le script en PHP, ni la commande echo via CMD ?


Oui je pense que tu as un début de piste.
 
Je pense que le logiciel envoie certaines commandes d'initialisation vers l'imprimante.
Commandes qui ne sont plus nécessaires par la suite pour imprimer avec.
 
A moins de trouver ces commandes dans la doc de l'imprimant et être capable de les envoyer avec ton script php, tu es coincé.
Sachant que probablement ces commandes sont des suites de bits bien déterminés.
Est-ce que ton script php règle la connexion avec les paramêtres que tu as cité ? (même si je doute qu'il n'y ait que ca)


---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

Marsh Posté le 05-03-2018 à 18:02:53    

si non documenté, tu met un autre Pc en écoute a la place de l'imprimante et tu regarde ce qui est transmis a l'initialisation.
a part ça.... je vois pas.


Message édité par dims le 05-03-2018 à 18:03:09
Reply

Marsh Posté le 09-03-2018 à 08:14:14    

Bonjour,

 

Je vous remercie de vos réponses. Mettre un autre Pc en écoute me paraît très bien mais. Comment fait-on? Je sais relier deux Pc en null modem pour faire un mini réseau mais c'est après que j'ignore. Et en plus j'ai plus de câble null modem depuis que j'ai un switch gigabit :/ Je sais même pas si ça se fabrique encore.

 

Editions fautes de frappe.


Message édité par aseries le 09-03-2018 à 08:15:44

---------------
fan d'asus
Reply

Marsh Posté le 16-03-2018 à 10:12:39    

Up ;)


---------------
fan d'asus
Reply

Marsh Posté le 08-11-2019 à 19:15:49    

Bonsoir
Cela m'intéresse aussi ! Je n'arrive jamais à avoir un envoi convenable de données sur un port RS232. Je suppose qu'il existe une commande spécifique Windows à effectuer ?
En installant un logiciel commercial, j'obtiens un bon envoi de données, puis ensuite je peux envoyer les commandes sans probblèmes.
Vraiment curieux !


Message édité par luigimario le 08-11-2019 à 19:17:48

---------------
Une personne qui peint avec sa bouche ou ses pieds n'a généralement plus de bras, ce qui n'est pas forcément le cas de celui qui code avec ses pieds.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed