Bonjour,

je travail sur interface de communication en c# permet d'envoyer et recevoir des données entre mon pc et une commande d'axe via un port série.
la commande d'axe est programmé pour recevoir ou envoyer des données.
voila le programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
'Ouverture des ports de communication
Open "Serial1:9600,8,E,1" AS #2
 
'Vidage des tampons
clearin #1
clearout #1
clearin #2
clearout #2
 
'Arret des taches de communication
 
halt recfile
 
dbtcom=off
carac$=""
char$=""
chaine$=""
 
traitement:
 
'Attente utilisateur appuie sur F6
wait dbtcom=on
 
'Lecture des octets
repeat
  if len(carac$)<=8 then
  char$=input$ #2,1
  end if
  carac$=carac$+char$
until carin(#2)=0
 
'Acquisition du "code opération"
car$=left$(carac$,1)
 
'Si code 10 alors lancer la tache recfile
if car$=chr$(10) then 
halt envfile
RF=right$(left$(carac$,3),2)
run recfile
end if
 
clearin #2
clearout #2
close #2
 
jump init
 
END PROG
voila le programme de rcvfile:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
'Initialisation
Init:
halt initial
LED(@F6)=OFF
pointeur&=1
paquet$=""
clearin #2 //vide le buffer rxd
clearout #2 // vide le buffer tx
print #2,chr$(10);
wait outempty (#2) // outempty indique que le buffert est vide et que le dernier caractére a éte envoyé
 
repete:
 
repeat 
A&=carin(#2)
until A&>=100
paquet$=input$ #2,100
wait carin(#2)=0 // retourne le nbr de caractére présent dans le buffer
 
seek #3,pointeur&
print #3,paquet$;
pointeur&=pointeur&+100
clearin #2
clearout #2
print #2,chr$(10);
wait outempty (#2)
 
if pointeur&<=127801 then
jump repete
else 
jump fin
end if
 
fin:
dbtcom=off
clearin #2
clearout #2
close #2
run initial
 
delay 2000
END PROG
pour pouvoir activer cette tache je dois ajouter à mon code la ligne "serialPort1.WriteLine("chr10");"

mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
toolStripStatusLabel1.Text = "Appuyez sur 'F6' de la commande numérique puis patientez...";
 
            serialPort1.Write("\u000A"); // lance la tache receveFil chr10
            while (!ison) { }
 
 /// recuperation des données de la textBox puis les envoyer sur le port.
 
        string   myValue = textBox1.Text;
 
                 if (myValue.Length > 0)
                 {
                     don = System.Text.Encoding.ASCII.GetBytes(myValue);
 
                     serialPort1.Write(don, 0, don.Length);
            }
}
la j'arrive a envoyer les données via le port série mais la commande d'axe ne reçois rien.
est ce que vous pouvez m'aidez a comprendre le code source de recvfil ?????