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:
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
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
pour pouvoir activer cette tache je dois ajouter à mon code la ligne "serialPort1.WriteLine("chr10");"
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
mon code:
la j'arrive a envoyer les données via le port série mais la commande d'axe ne reçois rien.
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); } }
est ce que vous pouvez m'aidez a comprendre le code source de recvfil ?????
Partager