Ein Teil meines Codes wird nicht ausgeführt... (seh' den Fehler nicht)
-
Hallo Leute.
Ich habe gerade vor mein Prog mit diversen Schnittstellen Kommunikationen auszurüsten. Bisher war für jede Schnittstelle (RS232,GPIB,USB) je eine einzelne Version erstellt worden, nun möchte alles in eine packen. Ich hab dazu eigentlich ganz simpel eine switch case Routine erstellst, und meine zentrale send(char); Funktion gepasst. Eigentlich ziemlich einfach. Nun wird aber -abgesehen von anderen Schnittsellen - keine rs232 Übertragung mehr vorgenommen.
Woran kann das liegen (?), ich weiss, dass bei rs232 ich alles terminieren muss (\n). Die Befehle hab ich auch alle in einer führerer Version hardcodiert eingesetzt und es klappte.
void Send(char *buf) { //[...] //Comval wird aus der Konfigurations .ini oder Win Reg gelesen. Habs aber für den test hardcodiert. zB 2 . Nehme später auch noch case 1 bis 4 zusammen. switch (comval){ case 1: port.Init(1/*iPort*/,9600/*iBaud*/,8/*iSize*/,0/*iParity*/,1/*stopbit*/,0/*fRtsControl*/,100/*iTimeout*/,1000/*iTotalTimeout*/); sprintf(rs232tr,"%c\n",buf); bytes=strlen(rs232tr); port.Send(rs232tr,bytes); port.Close(); break; //Test Case case 2: port.Init(2/*iPort*/,9600/*iBaud*/,8/*iSize*/,0/*iParity*/,1/*stopbit*/,0/*fRtsControl*/,100/*iTimeout*/,1000/*iTotalTimeout*/); Sleep(50); sprintf(rs232tr,"%s\n",buf); bytes=strlen(rs232tr); port.Send(rs232tr,bytes); port.Send("MKA?;\n",6); AfxMessageBox(rs232tr); Sleep(50); port.Close(); break; case 3: port.Init(3/*iPort*/,9600/*iBaud*/,8/*iSize*/,0/*iParity*/,1/*stopbit*/,0/*fRtsControl*/,100/*iTimeout*/,1000/*iTotalTimeout*/); sprintf(rs232tr,"%c\n",buf); bytes=strlen(rs232tr); port.Send(rs232tr,bytes); port.Close(); break; case 4: port.Init(4/*iPort*/,9600/*iBaud*/,8/*iSize*/,0/*iParity*/,1/*stopbit*/,0/*fRtsControl*/,100/*iTimeout*/,1000/*iTotalTimeout*/); sprintf(rs232tr,"%c\n",buf); bytes=strlen(rs232tr); port.Send(rs232tr,bytes); port.Close(); break; //gpib case 5: ibwrt(ud, buf, (long)strlen(buf)); if (ibsta & ERR) AfxMessageBox("GPIB Error\n"); break; } }
Falls jemand 'ne Idee hat, was ich übersehen haben könnten, oder einen Fehler sind wäre ich um 'ne Antwort superfroh. (Sass den ganzen Nachmittag gestern darn und hab nix gefunden!
)
-
Mit dem was Du schreibst lässt sich nichts anfangen....
Wird einer Deiner Casezweige überhaupt angesprochen ?
-
ja, case 2. Wenn ich diesen Code separiere und in einer kleine mfc anwedung laufen lasse funktioniert er ohne Probleme.
-
Denkst du das nur oder hast du auch wirklich reindebuggt ?