M
Die Einstellungen des COM-Port sind und waren korrekt.
Zwei COM-Ports im selben Code verwenden muss man unter zu Hilfe von OVERLAPPED-Strukturen erledigen. Dies muss bereits beim Aufruf vom CreateFile(...) den 'file attributes' mittgeteilt werden und bei ReadFile (...) die entsprechende Struktur übergeben werden.
HANDLE CreateFile(
LPCTSTR lpFileName, // pointer to name of the file
DWORD dwDesiredAccess, // access (read-write) mode
DWORD dwShareMode, // share mode
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
// pointer to security attributes
DWORD dwCreationDisposition, // how to create
DWORD dwFlagsAndAttributes, // file attributes
HANDLE hTemplateFile // handle to file with attributes to
// copy
);
BOOL ReadFile(
HANDLE hFile, // handle of file to read
LPVOID lpBuffer, // pointer to buffer that receives data
DWORD nNumberOfBytesToRead, // number of bytes to read
LPDWORD lpNumberOfBytesRead, // pointer to number of bytes read
LPOVERLAPPED lpOverlapped // pointer to structure for data
);
Da ich schlicht keine Zeit hatte mich damit näher zu beschäftigen, habe ich die Funktionalität aufgeteilt. Ein Programm zum lesen der entsprechenden GPS-Daten und erzeugen einer Datei mit selbigen, und ein zweites welches eben diese Datei lesend öffnet um die aktuellsten Daten auf den COM-Port des RF-Device zu schreiben. Funzt ohne Probleme. ( Zugriffsverletzungen werden einfach ignoriert )
//...
BOOL ret ( FALSE );
//...
Ist ein expliziter Konstruktor-Aufruf (keine Ahnung ob das die korrekte Bezeichnung ist...). Objekte wie folgt
class foo
{
private:
foo ( bool a_barg, unsigned a_uarg, long a_larg );
//...
};
class bar
{
private:
bar ( bool a_barg );
//...
};
würdest du (vermutlich) so erzeugen:
//...
bar obj01 = true;
bar obj02 ( true );
foo obj03 ( true, 0xdead, 0xbeef );
//...
Was mit komplexen Typen funktioniert, funktioniert auch mir einfachen Typen. Hab mir das während des Studiums angewohnt und so zieht sich das stetig durch meinen Code. Warum das nochmal war, is mir leider entfallen. Kritik wird gerne entgegengenommen!
Vielen Dank für die anderen Hinweise!
m
m.