Forum: PC-Programmierung Brauche kurz eine Erklärung zu dieser Zeile Codes


von C_noob (Gast)


Lesenswert?

Hallo, habe schwierigkeiten diesen code zu verstehen.
1
#define COMMAND 1
2
#define WRITE 16
3
#define QUANTITY 4
4
5
unsigned int modbus_uint16(unsigned int * i);
6
unsigned int tx_buf[300];
7
8
n = (rx_buf[COMMAND] == WRITE) ? (modbus_uint16(rx_buf+QUANTITY))*2+3 : 2;

Könnte mir bitte einer sagen was mit der Zeile beabsichtigt ist, bzw. 
diese kurz auseinander nehmen!

Danke

von Roland P. (pram)


Lesenswert?

WENN (rx_buf[COMMAND] == WRITE)
DANN n = (modbus_uint16(rx_buf+QUANTITY))*2+3
SONST n = 2

Also, wenn im Puffer an der Stelle an der der Befehl steht, ein 
Schreibbefehl steht, dann übergebe den Pointer an Puffer+4Bytes an eine 
Schreibroutine. Den Rückgabewert *2+3 rechnen...

Gruß
Roland

von C_noob (Gast)


Lesenswert?

Thanks

Nacht!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.