mavromatis
Member
- Joined
- Feb 7, 2006
- Messages
- 19
- Programming Experience
- 1-3
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 them in VB.NET. Ideally, I'd like to see an example using the code I have below, so I it can start me off or is there a better way to handle this type of structure in VB.NET?
Thanks,
Danny
VB.NET:
' ----- VC.NET CODE THAT I NEED TO CONVERT TO VB.NET ----
struct R_OMNI_LINK_MESSAGE {
//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_DATA */ {
unsigned char EventNumber; // (1-N, With 1 Being Most Recent)
unsigned char EventTimeDateValid;
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 EventParameter2High;
unsigned char EventParameter2Low;
};
struct /* olmCOMMAND_MESSAGE */ {
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_INFORMATION */ {
unsigned char ModelNumber;
unsigned char MajorVersion;
unsigned char MinorVersion;
unsigned char Revision;
unsigned char LocalPhoneNumber[25];
};
struct /* olmSYSTEM_STATUS */ {
unsigned char TimeDateValidFlag;
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 DaylightSavingsTimeFlag;
unsigned char CalculatedSunriseHour; // (0-23)
unsigned char CalculatedSunriseMinute; // (0-59)
unsigned char CalculatedSunsetHour; // (0-23)
unsigned char CalculatedSunsetMinute; // (0-59)
unsigned char BatteryReading;
unsigned char AreaSecurityMode[8]; // index 0-7
struct {
unsigned char Status;
unsigned char BatteryReading;
} ExpansionEnclosure[8]; // index 0-7
};
struct /* olmREQUEST_ZONE_STATUS */ {
unsigned char StartingZone;
unsigned char EndingZone;
};
struct /* olmZONE_STATUS */ {
unsigned char ZoneStatus;
unsigned char AnalogLoopReading;
} 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 CurrentCondition;
unsigned char HighByteOfTime;
unsigned char LowByteOfTime;
} Unit[84];
struct /* olmREQUEST_AUXILIARY_STATUS */ {
unsigned char StartingTemperatureSensor;
unsigned char EndingTemperatureSensor;
};
struct /* olmAUXILIARY_STATUS */ {
unsigned char RelayStatus;
unsigned char CurrentTemperature;
unsigned char LowHeatTemperatureSetpoint;
unsigned char HighCoolTemperatureSetpoint;
} TempSensor[63];
struct /* olmREQUEST_THERMOSTAT_STATUS */ {
unsigned char StartingThermostat;
unsigned char EndingThermostat;
};
struct /* olmTHERMOSTAT_STATUS */ {
unsigned char StatusByte;
unsigned char CurrentTemperature;
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_EVENTS */ {
unsigned char High;
unsigned char Low;
} SystemEvent[127];
struct /* olmMESSAGE_STATUS */ {
unsigned char Data;
} MessageStatus[33];
struct /* olmREQUEST_SECURITY_CODE_VALIDATION */ {
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_CODE_VALIDATION */ {
unsigned char UserCodeNumber; // (1-99, 251 for duress, 0 if
invalid)
unsigned char AuthorityLevel;
//(0=Invalid,1=Master,2=Manager,3=User)
};
}; // union
}; // struct
}; // union
};
Thanks,
Danny
Last edited: