Hallo!
Ich würde gerne ein Datenframes sowohl in Form von strukturierten Werten
als auch als Bytearray (zum seriellen Senden) zugreifen. Das ganze sieht
so aus:
1 | typedef struct
|
2 | {
|
3 | uint8_t high;
|
4 | uint8_t low;
|
5 | } be_uint16_t;
|
6 |
|
7 | union rf_frame_t
|
8 | {
|
9 | uint8_t bytes[28];
|
10 | struct values_t
|
11 | {
|
12 | uint8_t dummy[8];
|
13 | be_uint16_t channel1;
|
14 | be_uint16_t channel2;
|
15 | be_uint16_t channel3;
|
16 | be_uint16_t channel4;
|
17 | } values;
|
18 | } rf_frame;
|
Der Zugriff sieht dann so aus:
1 | rf_frame.bytes[5] = 5;
|
2 | rf_frame.values.channel1.low = 5;
|
Mich würde nun interessieren: Geht es besser? So würde ich z.B. gerne
die "values" weglassen und direkt per rf_frame.channel1.low auf den Wert
zugreifen. Kann man anders das BigEndian-Format erzwingen als mit low-
und high-byte?
Gruß
Robert