Gast
#1159919
Hallo,
ich habe eine UDP Verbindung, über die verschiedene Datensätze von
einem Microcontroller empfangen werden. Der ist in C programmiert
und die Struktur sieht so aus (jetzt 4 Strukturen), dann Frage:
//allgemeiner Header, gleich für alle Datensätze
typedef struct headerCommon
{
UINT8 protocolVersion;
UINT8 typeOfFrame; //1: key message 2:RcCmd 3:DataMsg
} HEADER_COMMON;
//Datensatz 1
typedef struct sKeyMsg
{
HEADER_COMMON info;
UINT8 keyEvent; //0:up 1:down
UINT8 keyCode;
} KEY_MSG;
//Datensatz 2
typedef struct sRcCmd
{
HEADER_COMMON info;
UINT8 keyCode;
} RC_MSG;
//Datensatz 3
typedef struct sDataMsg
{
HEADER_COMMON info;
UINT8 length;
//data to follow according to length
} DATA_MSG;
Frage:
------
In C# bekomme ich ein Byte-Array vom UDP Socket. In C bzw. C++ würde ich
den Byte-Stream zunächst auf HEADER_COMMON casten und an typeOfFrame
sehen, welcher Datensatz (1, 2 oder 3) es tatsächlich ist. Dann könnte
ich das Byte-Array auf die passende Struktur casten.
Wie geht das in C#?