Hallo,
ich brauche wieder mal Hilfe bei der Übersetzung.
Der Union ist neu für mich und BYTE Abs:1<--- ist das hier ein Initialisierungswert, oder wie verstehe ich die Zahl?
Code:
typedef struct
{
DWORD Version;
DWord FeatureID; //Steht für den Typ z.b. Balance
union
{
struct
{
BYTE Abs:1;
WORD Value;
float Abs_Value;
} Std;
struct
{
BYTE Abs:1;
BYTE On_Off:1;
BYTE Auto_M:1;
float Abs_Value;
} Balance;
BOOL Exec_Flag;
BOOL PowerOn_Flag;
} u;
}ZCL_GETFEATUREVALUE,
Das ist mein Versuch :
Delphi-Quellcode:
type
ZCL_GETFEATUREVALUE= record
Version : DWord;
FeatureID : DWord;
u : record
case integer of
0:
(
std : record
Abs : Byte;
Value : Word;
Abs_Value : Single;
end;
);
1:
(
Balance : record
Abs : Byte;
On_Off: Byte;
Auto_M: Byte;
Abs_Value : single;
end;
);
Exec_Flag : bool;
PowerOn_Flag : bool;
end;
end;
Der Record wird an eine Funktion übergeben, die diesen je nach FeatureID "füllt" .
Ist dieser Funktion durch den Aufbau des Records "u" bekannt, welche Inneren Records mit Werten belegt werden müssen,
oder wie kann ich das verstehen?
Viele Grüße!