Pour une connexion PC / Caisse de magasin via le port serie...
Je dois envoyer des signaux de controle d'envoi et de reception de
type DC1, DC3, ACK, NAK, et là je bloque...
J'ai ecris la procédure suivante mais rien à faire le buffer d'entrée me
renvoie le contenu du buffer de sortie !!!!!
Si j'envoie "C'est rigolo" il me renvoie "c'est rigolo"
//____________________________________________________________
// Ouverture du port spécifié
sOuvre(2, 20000, 20000)
// Initialise les paramètres du port série
sFixeParamètre(...
2, ... // Port
9600, ... // Taux
2, ... // Parité : 0=aucune, 1=paire, 2=impaire
8, ... // Nb bit de données
0, ... // Nb bit de stop
// 0=1 bit de stop, 1=1,5 bits de stop, 2=2 bits de stop
SI ErreurDétectée ALORS
Erreur("Impossible d'initialiser le port", ErreurInfo())
FIN
//Envoi de la chaine de controle
chEnv est une chaîne = "DC1"
SI sEcrit(2,chEnv)=Taille(chEnv) ALORS
Trace("ENV:"+chEnv)
SINON
Info("PB ecriture")
FIN
//Lecture du BufferIn
ChaineRecue est une chaîne = ""
DateHeureDepart est une chaîne = DateSys()+HeureSys()
TANTQUE Val(Droite(DateHeureDifférence(DateHeureDepart,DateSys()+
HeureSys()), 4))<0600
// 04secondes de timeout
SI sDansFileEntrée(2)>0 ALORS
ChaineRecue += sLit(2,sDansFileEntrée(2))
DateHeureDepart = DateSys()+HeureSys()
nCrcLu est un entier // Caractère de contrôle lu
LigneLue est une chaîne // Chaîne lue
SI ChaineRecue<>"" ALORS
SORTIR
SINON
Info("la chaine est vide")
FIN
FIN
FIN
SI ChaineRecue<>"" ALORS
Trace("REC:"+ChaineRecue)
Un génie du port série aurait il une idée pour éclairer ma lanterne ???
???????
Merci d'avance et désolé pour la taille du message
Ci dessous le protocole de com utilisé
Sio 85-98 1st must be set 53
1st digit 1 ; 600, 2 ;1200, 3 ;
2400
4 ;4800, 5 ;9600, 6 ;
19200
2nd digit 3 ;P.C Mode
2nd must be set 00110111b
bit0 ; parity check y/n bit1 ; odd/
even
bit2-3 ; stop bit 1/1/1.5/2
bit4-5; character 5/6/7/8
** Signal DTR and RTS of Terminal which is connected with
ET-6600 must be "ON".
2. Transmission Protocol
The Data are "Text Data" and "Control Code Data".
Text Data : start data ... STX
end data ... CR & LF
STX ..... CR LF
Control Code Data : ACK, NAK, DC1, DC3, STX, CR, LF
** STX, CR and LF are used as start and end data.
** When "Text Data" is received, Terminal and ET-6600
must transmit "ACK" or "NAK".
Terminal ET-6600
DC1 ----------> . Transmission Requirement
<---------- DC1 . Receive Enable Answer
TEXT ----------> . Require TEXT DATA
<---------- ACK or NAK . ACK/NAK Requirement
*
DC1 ----------> . Receive Enable
<---------- TEXT . Transmit "Text Data"
ACK/NAK ----------> . ACK/NAK of Transmitted Data
*
DC1 ----------> . Receive Enable
<---------- TEXT . Transmit "Text Data"
ACK/NAK ----------> . ACK/NAK of Transmitted Data
*
DC1 ----------> . Receive Enable
<---------- TEXT . Transmit final "Text Data"
with "ETX" code
ACK/NAK ----------> . ACK/NAK of final "Text Data"
Note : This time (* mark) is PC (Terminal) processing time
of the received data from ET-6600.
The time period between "ACK/NAK" (for receiving of
Text from ET-6600) and next "DC1" (for reguiring of
next Text) from PC (Terminal) needs minimum 6.0 ms.
3. Configuration of Transmission Data
. Control Code : ACK NAK DC1 DC3
. Text Data : STX ID DATA CR LF
. The code value of each Control Code are showed in page.
. ID code identifys the Text Data.
. The data length is different, it depends on "ID code".
. Data Code is ASCII except "ID code".
* Refer to Code Table.
* Text Format
-----------------------------
Basic Format : | STX | ID | DATA | CR | LF |
|----------------------------
Final Data : | STX | ID | ETX | CR | LF |
---------------------------
* only the case of all data request
//
________________________________________________________________________
______
--
Article posté depuis le site FORUMS WINDEV® :
http://forums.wdscript.com
Une archive de plus de 120000 articles sur Windev® et Webdev®
--
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Romain PETIT
Christian CDAGFreelanc a pensé très fort :
Bonjour,
Pour une connexion PC / Caisse de magasin via le port serie...
Je dois envoyer des signaux de controle d'envoi et de reception de type DC1, DC3, ACK, NAK, et là je bloque... J'ai ecris la procédure suivante mais rien à faire le buffer d'entrée me renvoie le contenu du buffer de sortie !!!!! Si j'envoie "C'est rigolo" il me renvoie "c'est rigolo"
Ton câble est très probablement en cause.
Si tu es en DB9 des 2 côtés, tu devrais avoir (au minimum) les pins suivants :
2 ----- 3 3 ----- 2 5 ----- 5
Quand aux caractères de contrôle, il ne faut pas envoyer des chaines (!!) mais le caractère correspondant :
Exemple, pour envoyer ACK, il faudra utiliser sEcrit(eNumPort, caract(6))
Voir la table ASCII ici (par exemple) : http://www.asciitable.com/
Et des infos sur les liaisons série : http://www.beyondlogic.org/serial/serial.htm www.aggsoft.com/rs232-pinout-cable/ serial-port-interface.htm http://eintr.net/serial/
etc...
A+
-- Romain PETIT http://cerbermail.com/?IJmancZl88 (cliquez sur le lien ci-dessus pour me contacter en privé)
Christian CDAGFreelanc a pensé très fort :
Bonjour,
Pour une connexion PC / Caisse de magasin via le port serie...
Je dois envoyer des signaux de controle d'envoi et de reception de
type DC1, DC3, ACK, NAK, et là je bloque...
J'ai ecris la procédure suivante mais rien à faire le buffer d'entrée me
renvoie le contenu du buffer de sortie !!!!!
Si j'envoie "C'est rigolo" il me renvoie "c'est rigolo"
Ton câble est très probablement en cause.
Si tu es en DB9 des 2 côtés, tu devrais avoir (au minimum) les pins
suivants :
2 ----- 3
3 ----- 2
5 ----- 5
Quand aux caractères de contrôle, il ne faut pas envoyer des chaines
(!!) mais le caractère correspondant :
Exemple, pour envoyer ACK, il faudra utiliser
sEcrit(eNumPort, caract(6))
Voir la table ASCII ici (par exemple) :
http://www.asciitable.com/
Et des infos sur les liaisons série :
http://www.beyondlogic.org/serial/serial.htm
www.aggsoft.com/rs232-pinout-cable/ serial-port-interface.htm
http://eintr.net/serial/
etc...
A+
--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Pour une connexion PC / Caisse de magasin via le port serie...
Je dois envoyer des signaux de controle d'envoi et de reception de type DC1, DC3, ACK, NAK, et là je bloque... J'ai ecris la procédure suivante mais rien à faire le buffer d'entrée me renvoie le contenu du buffer de sortie !!!!! Si j'envoie "C'est rigolo" il me renvoie "c'est rigolo"
Ton câble est très probablement en cause.
Si tu es en DB9 des 2 côtés, tu devrais avoir (au minimum) les pins suivants :
2 ----- 3 3 ----- 2 5 ----- 5
Quand aux caractères de contrôle, il ne faut pas envoyer des chaines (!!) mais le caractère correspondant :
Exemple, pour envoyer ACK, il faudra utiliser sEcrit(eNumPort, caract(6))
Voir la table ASCII ici (par exemple) : http://www.asciitable.com/
Et des infos sur les liaisons série : http://www.beyondlogic.org/serial/serial.htm www.aggsoft.com/rs232-pinout-cable/ serial-port-interface.htm http://eintr.net/serial/
etc...
A+
-- Romain PETIT http://cerbermail.com/?IJmancZl88 (cliquez sur le lien ci-dessus pour me contacter en privé)