|
[x]
Posted via EE Mobile
|
||
Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again. |
||
| Question |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: |
/// This structure is defined for a little endian platform.
///
/// 0 1 2 3
/// 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/// | RadioId | RS | DS |T| ACN | RRRR |
/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/// | MMI | memberId |
/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/// | |memberId... | memberId... | memberId... |
/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/// ...
/// </summary>
struct RadioEvStruct
{
/////////////////////////////////////////////////////////////////////
// First Line of packet
/////////////////////////////////////////////////////////////////////
unsigned __int16 RadioId:8; //0-255 possible patch Id
unsigned __int16 RadioState:4; //(1)Keyed,(0)Not Keyed
unsigned __int16 DimState:4; //(1)Active,(0)Deactive
unsigned __int16 MMI:1; //(0)group,(1)group (tetra)
unsigned __int16 MemberNb:11; // The number of members
// up to 1024
unsigned __int16 Reserved:4; // Reserved bits for future use.
/////////////////////////////////////////////////////////////////////
// The rest of the packet
/////////////////////////////////////////////////////////////////////
unsigned char* aMemberList; // Contains 0 or 1 MMI (24 bits)
// + 0 to 50 members (10 bits each)
// members + (optional) required
// padding to avoid alignment problem.
/// <summary>
/// Comparison operator.
/// </summary>
//////////////////////////////////////////////////////////////////////////
// memberwise comparison is safer because of the potential padding problem
// Here we assume there is no padding or alignment problems as well as
// everything is little indian.
// The length of the MemberList + 4 is multiple of 4.
bool operator == (RadioEvStruct RadioEvStatus)
{
return memcmp (this, & RadioEvStatus, getMemberListSize() + 4);
}
/// <summary>
/// Inverse Comparaison operator.
/// </summary>
bool operator != (RadioEvStruct RadioEvStatus)
{
return !(*this == RadioEvStatus);
}
unsigned __int16 getMemberListSize()
{
// calculates and returns the size of the memberList based
// on the values of MMI and MemberNb fields.
unsigned __int16 uGroupSize = this.MMI ? 3:2;
unsigned __int16 uTotalBitsSize = (uGroupSize + this.MemberNb)*32;
return (uTotalBitsSize + (( 4 - uTotalBitsSize % 4)%4))/8;
}
};
|
Advertisement
| Hall of Fame |