Brauche kurz eine Erklärung zu dieser Zeile Codes

Gast #2294362
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
#2294366
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren