5#ifndef MIMOSISMESSAGE_H
6#define MIMOSISMESSAGE_H
WordType GetWordType() const
– Type
uint16_t GetPixelAddress() const
— Pixel address data (valid if PixelData)
std::string ToString() const
— For debugging: human readable string
Message(const Message &)=default
static std::string PrintWordType(WordType type)
bool IsRegionHeader() const
uint8_t GetTrailerFlags() const
bool IsFrameHeader() const
— Frame header helpers
bool IsValidPixelAddress() const
True if pixel address is 0..504.
bool IsFrameTrailer() const
— Frame trailer
uint32_t GetFrameNumber() const
Only valid on the correct header word.
uint8_t GetPEAddress() const
static constexpr uint16_t kMaxPixelAddress
uint8_t GetRegionNumber() const
— Region header (valid if RegionHeader)
Message & operator=(const Message &)=default
@ FrameHeader
0xFE00 - 0xFEFF, part of 8-word frame header
@ PixelData
0x0000 - 0xFBFF, pixel address (0..504 used, up to 0xFBFF)
@ FrameTrailer
0xFF00 - 0xFFFF, trailer (checksum, flags)
@ Spare
0xFC00 - 0xFC7F, unused, reserved (excluding 0xFCAA)
@ Empty
0xFCAA, specific empty word for padding
@ RegionHeader
0xFD00 - 0xFD3F, region header (region # in 6 lsb)
static constexpr WordField kCodeField(13, 3)
TrailerFlags
— Frame Trailer Flags (see format image)
static constexpr WordField kFrameNumField(0, 24)
static constexpr WordField kRegionNumField(0, 6)
static constexpr WordField kTrailerFlagsField(8, 8)
static constexpr WordField kPixelAddrField(0, 10)
static constexpr WordField kPEAddrField(10, 3)
Helper for word field decoding (bit ranges)
constexpr WordField(uint8_t s, uint8_t w)