次のパケット ヘッダーの C++ コードを作成する必要がありました。
上記のパケット形式用に私が書いた構造体コードを次に示します。uint8_t または uint16_t ビット フィールドが正しいかどうかを知りたい
struct TelemetryTransferFramePrimaryHeader
{
//-- 6 Ocets Long --//
//-- Master Channel ID (2 octets)--//
uint16_t TransferFrameVersionNumber : 2;
uint16_t SpacecraftID : 10;
uint16_t VirtualChannelID : 3;
uint16_t OCFFlag : 1;
//-----------------//
uint8_t MasterChannelFrameCount;
uint8_t VirtualChannelFrameCount;
//-- Transfer Frame Data Field Status (2 octets) --//
uint16_t TransferFrameSecondaryHeaderFlag : 1;
uint16_t SyncFlag : 1;
uint16_t PacketOrderFlag : 1;
uint16_t SegmentLengthID : 2;
uint16_t FirstHeaderPointer : 11;
//-----------------//
};
LSB -> MSB が struct に確実に保持されるようにするにはどうすればよいですか?
私は混乱し続け、読んでみましたが、さらに混乱してしまいました。
PS: 私は 32 ビット プロセッサを使用しています。