|
| Communication Port COM / WINDEV |
| Iniciado por yohann.michel, 04,ago. 2020 16:21 - 2 respuestas |
| |
| | | |
|
| |
| Publicado el 04,agosto 2020 - 16:21 |
Bonjour tout le monde,
je découvre la communication entre un appareil et le PC, et j'essaie de comprendre et decouvrir les fonction sEcrit, slit, sEvenement etc...
j'ai essayé avec Hyperterminal, et si j'envois "SN" l'appareil me reponds par son numero de Serie.
j'essaie de reproduire cela sous Windev :
J'ai donc une fenetre, avec une commande a envoyer, un zone pour le retour et un champs pour le numero du port.
Niveau code j'ai :
SAI_retour = "" NumPort = SAI_NUM_PORT_COM
sFerme(NumPort) BufferRx = "" SI sOuvre(NumPort, 3000, 3000,sTimeoutDéfaut,Vrai) ALORS sEvénement(NumPort,sEveCaractèreReçu, Lecturecom) sFixeParamètre(NumPort, 38400, 0, 8, 0) sEcrit(NumPort,SAI_Commande) SINON Erreur("Erreur d'ouverture du port COM"+NumPort) FIN
Procedure Lecturecom()
Trace("Lecturecom") i est un entier BufferRx += sLit(NumPort,sDansFileEntrée(NumPort))
i = Position(BufferRx, Caract(0x0d)) IF i > 0 THEN Trace(BufferRx[[1 À i-1]]) BufferRx = BufferRx[[i+1 À]] END
Le code Lecturecom a été trouvé sur ce forum d'ailleurs. Mais il ne se déclenche pas. C'est la que je ne comprends pas...
La doc de l'appareil préconise :
Bits per second: 38,400 Data bits: 8 Stop bits: 1 Flow control: None
Donc je pense que mon sFixeParamètre est Ok
Du coup, je sais pas d'ou cela peux venir. Si jamais vous avez des idées, je suis preneur,
Merci d'avance ! |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 04,agosto 2020 - 17:36 |
Bonjour Si vous remplacez : sEcrit(NumPort,SAI_Commande) par sEcrit(NumPort, "SN") avez-vous la trace : Lecturecom ? il faut peutetre un CR ou un LF voir un CR et LF après la commande : dans ce cas, ajoutez le : sEcrit(NumPort, "SN"+Caract(0x0d))) sEcrit(NumPort, "SN"+Caract(0x0a)))
-- « L'erreur ne devient pas vérité parce qu'elle se propage et se multiplie ; la vérité ne devient pas erreur parce que nul ne la voit. » Gandhi |
| |
| |
| | | |
|
| | |
| |
| Publicado el 05,agosto 2020 - 11:10 |
Merci Philiipe,
c'est bien le caractère CR qui manquait.
sEcrit(NumPort, "SN"+Caract(0x0d))
j'ai une réponse, et j'ai le Numero de Serie. y'a plus qu'a maintenant
Merci encore ! |
| |
| |
| | | |
|
| | | | |
| | |
|