00001
00002
00003
00004 #ifndef NCOM_CHANNEL_0_H
00005 #define NCOM_CHANNEL_0_H
00006
00007
00008 #include "ncom_channel.H"
00009
00010
00011 namespace ncom
00012 {
00013 class channel_0_t : public channel_t
00014 {
00015 protected:
00016 static unsigned const GPS_MINUTES_OFFSET = 0;
00017 static unsigned const NUM_SATS_OFFSET = 4;
00018 static unsigned const POSITION_MODE_OFFSET = 5;
00019 static unsigned const VELOCITY_MODE_OFFSET = 6;
00020 static unsigned const ORIENTATION_MODE_OFFSET = 7;
00021
00022 public:
00023 channel_0_t (packet_t const *packet) : channel_t (packet)
00024 {
00025 assert (packet->channel () == 0);
00026 }
00027
00028 unsigned gps_minutes (void) const
00029 {
00030 return (letoh<u32_t> (m_data + GPS_MINUTES_OFFSET));
00031 }
00032 unsigned num_sats (void) const
00033 {
00034 return (m_data[NUM_SATS_OFFSET]);
00035 }
00036
00037 enum mode_t
00038 {
00039 MODE_NONE,
00040 MODE_SEARCH,
00041 MODE_DOPPLER,
00042 MODE_STAND_ALONE,
00043 MODE_DIFFERENTIAL,
00044 MODE_RTK_FLOAT,
00045 MODE_RTK_INTEGER,
00046 MODE_WAAS,
00047 MODE_OMNISTAR,
00048 MODE_OMNISTAR_HP,
00049 MODE_UNKNOWN,
00050 MODE_INVALID = 255,
00051 };
00052
00053 mode_t position_mode (void) const
00054 {
00055 return ((mode_t) m_data[POSITION_MODE_OFFSET]);
00056 }
00057 mode_t velocity_mode (void) const
00058 {
00059 return ((mode_t) m_data[VELOCITY_MODE_OFFSET]);
00060 }
00061 mode_t orientation_mode (void) const
00062 {
00063 return ((mode_t) m_data[ORIENTATION_MODE_OFFSET]);
00064 }
00065 };
00066 };
00067
00068
00069 #endif