PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : *solved* Probleme mit ReadData() von Serial.h der winapi



Illuminon
17.12.2005, 21:56
Hallo zusammen

Ich möchte einen IR-Transceiver über die serielle Schnittstelle konfigurieren. Das Senden funktioniert auch bereits ohne Probleme, allerdings das Lesen bereitet mir Schwierigkeiten. Wenn man mit einem solchen Transceiver sendet und dann liest, bekommt man normalerweise das soeben gesendete Zeichen wieder zurück, weil es von der Umgebung zurückgeworfen wird (Ich nehme an, dass es so funktioniert. Ich habe mit dem Hyperterminal Versuche gemacht und herausgefunden, dass das getippte Zeichen nur dann im Terminal erscheint, wenn das Potentiometer auf der Senderplatine "offen" ist). Ich habe nun eine Konsolenanwendung geschrieben, die das Gleiche wie das Hyperterminal tun sollte. Das Senden funktioniert wie gesagt, aber das zurückgelesene Zeichen ist absoluter Schwachsinn. Es erscheinen verschiedene Sonderzeichen und manchmal auch gar nichts...

#include <iostream>
#include "Serial.h"
#include <iostream>


using namespace std;


int main()
{


CSerial Serial;

unsigned char a;
char* lpBuffer = new char[10];

Serial.Open(2,2400,8,1,0);

while (true)
{
cout << "Eingabe ?" << endl;
cin >> a;

Serial.WriteCommByte(a);


int nBytesRead = Serial.ReadData(lpBuffer,1);
cout << lpBuffer[1] << endl;
delete []lpBuffer;

}

Serial.~CSerial();
return 0;
}

Ich verwende Serial.h der standard winapi. Hat irgendjemand eine Erklärung oder noch besser eine Lösung für dieses Problem?

gruss
Illuminon

ps: Ist das das richtige Forum für diese Frage? Ich finde das Roboternetz super, aber es ist verwirrend gross :-)

Illuminon
18.12.2005, 13:11
Ich habe das Problem gefunden...

cout << lpBuffer[1] << endl;

sollte

cout << lpBuffer[0] << endl;

sein. Was für ein idiotischer Fehler...