Ich möchte Ihre Hilfe, um ein wenig Code zu verstehen, der mir in meinem Projekt enorm helfen würde. Ohne zu sehr ins Detail zu gehen, hier ist das, was mir so viele Probleme verursacht:Brauchen Sie Hilfe zum Verständnis Writefile
bool Serial::WriteData(char *buffer, unsigned int nbChar)
{
DWORD bytesSend;
//Try to write the buffer on the Serial port
if(!WriteFile(this->hSerial, (void *)buffer, nbChar, &bytesSend, 0))
{
//In case it don't work get comm error and return false
ClearCommError(this->hSerial, &this->errors, &this->status);
return false;
}
else
return true;
}
ich diese Funktion verwenden, um eine Variable zu meinem Arduino Uno über die serielle Schnittstelle wie folgt senden:
snprintf(Data, sizeof(Data) - 1, "%3.1f", (int)(pf->speedKmh)*1.0);
SP->WriteData(Data, sizeof(Data) - 1); printf("\nData\n");
Einig hilfreiche Informationen:
speedkmh ist ein Schwimmer
char Daten [8] = "";
Also meine Frage ist: Ich genau wissen möchte, was mit dem Arduino gesendet wird. Im Moment weiß ich nicht wirklich, ob es ein Array sendet, Bits eins nach dem anderen, wenn es einen Float usw. sendet ... Könntest du mir helfen, das zu verstehen?
Danke!
Bestimmt wollten Sie strlen (Daten) anstelle von sizeof (Daten) verwenden. Im Moment senden Sie Müll-Bytes, was immer jenseits des String-Terminators ist. Fügen Sie die Protokollierung hinzu, wenn Sie wissen möchten, was tatsächlich gesendet wird. Obwohl es unwahrscheinlich ist, den Fehler zu zeigen, ist ein Spionageprogramm für serielle Ports die bessere Waffe der Wahl. –