MVC++6 && Com port komponent
Jeg har via et indlæg her på eksperten fundet følgende com port komponent (hedder det komponent i c++?):http://codeguru.developer.com/network/serial.shtml
Jeg har brugt den, ved at modificere eksemplet der står på siden, som følger:
void CSyncTestDlg::OnConnectionOpen()
{
CSerial serial;
if (serial.Open(2, 9600))
{
char teststr[256];
char buffer[20];
static char* szMessage = "AT\r";
AfxMessageBox("");//Workaround???
int nBytesSent = serial.SendData(szMessage, strlen(szMessage));
ASSERT(nBytesSent == strlen(szMessage));
sprintf(teststr, "Sent: \"");
strcat(teststr,szMessage);
strcat(teststr,"\", size=");
itoa(nBytesSent,buffer,10);
strcat(teststr,buffer);
AfxMessageBox(teststr);
char* lpBuffer = new char[500];
int nBytesRead = serial.ReadData(lpBuffer, 500);
sprintf(teststr, "Returned: ");
strcat(teststr,lpBuffer);
AfxMessageBox(teststr);
delete []lpBuffer;
}
else
AfxMessageBox("Failed to open port!");
serial.Close();
}
Problemt er linien med kommentaren //Workaround???
Den skal være der for at AT kommandoen giver et resultat.
Bemærk desuden at jeg i forhold til eksemplet har modificeret linien:
static char* szMessage[] = "AT\r";
fra eksemplet, til
static char* szMessage = "AT\r";
(naturligvis med min egen streng!)
Jeg har nu 3 spørgsmål i en:
1) Hvorfor virker det kun når jeg bruger linien med kommentaren //Workaround??? ? (100 point)
2) Kalder man Serial.cpp og Serial.h for en komponent eller hvad kalder man dem? (Ja, jeg er vant til Delphi :) (5 point)
3) Kan min måde at håndtere strenge på forbedres og hvordan? (15 point)
Svante
