I have a chunk of VC.NET code (below) that I need to convert to VB.NET
syntax. Could someone help me get started? I'm new to structures and
unions and I don't understand how to nest then in VB.NET.
' ----- VC.NET CODE THAT I NEED TO CONVERT TO VB.NET ----
struct R_OMNI_LINK_MES SAGE {
//unsigned char StartChar;
unsigned char MessageLength;
union {
unsigned char Data[255];
struct {
unsigned char MessageType;
union {
struct /* olmNAME_DATA (8 bit) */ {
unsigned char ItemType8;
unsigned char ItemNumber8;
unsigned char ItemName8[16];
};
struct /* olmNAME_DATA (16 bit) */ {
unsigned char ItemType16;
unsigned char ItemNumber16MSB ;
unsigned char ItemNumber16LSB ;
unsigned char ItemName16[16];
};
struct /* olmEVENT_LOG_DA TA */ {
unsigned char EventNumber; // (1-N, With 1 Being Most Recent)
unsigned char EventTimeDateVa lid;
unsigned char EventMonth; // (1-12)
unsigned char EventDay; // (1-31)
unsigned char EventHour; // (0-23)
unsigned char EventMinute; // (0-59)
unsigned char EventType;
unsigned char EventParameter1 ;
unsigned char EventParameter2 High;
unsigned char EventParameter2 Low;
};
struct /* olmCOMMAND_MESS AGE */ {
unsigned char Command;
unsigned char Parameter1;
unsigned char Parameter2High;
unsigned char Parameter2Low;
};
struct /* olmSET_TIME */ {
unsigned char stYear;
unsigned char stMonth;
unsigned char stDay;
unsigned char stDOW;
unsigned char stHour;
unsigned char stMinute;
unsigned char stDST;
};
struct /* olmSYSTEM_INFOR MATION */ {
unsigned char ModelNumber;
unsigned char MajorVersion;
unsigned char MinorVersion;
unsigned char Revision;
unsigned char LocalPhoneNumbe r[25];
};
struct /* olmSYSTEM_STATU S */ {
unsigned char TimeDateValidFl ag;
unsigned char Year; // (0-99)
unsigned char Month; // (1-12)
unsigned char Day; // (1-31)
unsigned char DayOfWeek; // (1-7)
unsigned char Hour; // (0-23)
unsigned char Minute; // (0-59)
unsigned char Second; // (0-59)
unsigned char DaylightSavings TimeFlag;
unsigned char CalculatedSunri seHour; // (0-23)
unsigned char CalculatedSunri seMinute; // (0-59)
unsigned char CalculatedSunse tHour; // (0-23)
unsigned char CalculatedSunse tMinute; // (0-59)
unsigned char BatteryReading;
unsigned char AreaSecurityMod e[8]; // index 0-7
struct {
unsigned char Status;
unsigned char BatteryReading;
} ExpansionEnclos ure[8]; // index 0-7
};
struct /* olmREQUEST_ZONE _STATUS */ {
unsigned char StartingZone;
unsigned char EndingZone;
};
struct /* olmZONE_STATUS */ {
unsigned char ZoneStatus;
unsigned char AnalogLoopReadi ng;
} Zone[127];
struct /* olmREQUEST_UNIT _STATUS (8 bit) */ {
unsigned char StartingUnit;
unsigned char EndingUnit;
};
struct /* olmREQUEST_UNIT _STATUS (16 bit) */ {
unsigned char StartingUnitMSB ;
unsigned char StartingUnitLSB ;
unsigned char EndingUnitMSB;
unsigned char EndingUnitLSB;
};
struct /* olmUNIT_STATUS */ {
unsigned char CurrentConditio n;
unsigned char HighByteOfTime;
unsigned char LowByteOfTime;
} Unit[84];
struct /* olmREQUEST_AUXI LIARY_STATUS */ {
unsigned char StartingTempera tureSensor;
unsigned char EndingTemperatu reSensor;
};
struct /* olmAUXILIARY_ST ATUS */ {
unsigned char RelayStatus;
unsigned char CurrentTemperat ure;
unsigned char LowHeatTemperat ureSetpoint;
unsigned char HighCoolTempera tureSetpoint;
} TempSensor[63];
struct /* olmREQUEST_THER MOSTAT_STATUS */ {
unsigned char StartingThermos tat;
unsigned char EndingThermosta t;
};
struct /* olmTHERMOSTAT_S TATUS */ {
unsigned char StatusByte;
unsigned char CurrentTemperat ure;
unsigned char HeatSetpoint;
unsigned char CoolSetpoint;
unsigned char SystemMode;
unsigned char FanMode;
unsigned char HoldStatus;
} Thermostat[36];
struct /* olmLOGIN */ {
unsigned char LoginCode1;
unsigned char LoginCode2;
unsigned char LoginCode3;
unsigned char LoginCode4;
};
struct /* olmSYSTEM_EVENT S */ {
unsigned char High;
unsigned char Low;
} SystemEvent[127];
struct /* olmMESSAGE_STAT US */ {
unsigned char Data;
} MessageStatus[33];
struct /* olmREQUEST_SECU RITY_CODE_VALID ATION */ {
unsigned char AreaNumber; // (1-8)
unsigned char Code1; // First Digit Of Code
unsigned char Code2; // Second Digit Of Code
unsigned char Code3; // Third Digit Of Code
unsigned char Code4; // Fourth Digit Of Code
};
struct /* olmSECURITY_COD E_VALIDATION */ {
unsigned char UserCodeNumber; // (1-99, 251 for duress, 0 if
invalid)
unsigned char AuthorityLevel;
//(0=Invalid,1=Ma ster,2=Manager, 3=User)
};
}; // union
}; // struct
}; // union
};
Thanks,
Danny