You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							359 lines
						
					
					
						
							9.5 KiB
						
					
					
				
			
		
		
	
	
							359 lines
						
					
					
						
							9.5 KiB
						
					
					
				| #ifndef GPS_H_
 | |
| #define GPS_H_
 | |
| 
 | |
| // This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
 | |
| 
 | |
| #include "kaitai/kaitaistruct.h"
 | |
| #include <stdint.h>
 | |
| 
 | |
| #if KAITAI_STRUCT_VERSION < 9000L
 | |
| #error "Incompatible Kaitai Struct C++/STL API: version 0.9 or later is required"
 | |
| #endif
 | |
| 
 | |
| class gps_t : public kaitai::kstruct {
 | |
| 
 | |
| public:
 | |
|     class subframe_1_t;
 | |
|     class subframe_3_t;
 | |
|     class subframe_4_t;
 | |
|     class how_t;
 | |
|     class tlm_t;
 | |
|     class subframe_2_t;
 | |
| 
 | |
|     gps_t(kaitai::kstream* p__io, kaitai::kstruct* p__parent = 0, gps_t* p__root = 0);
 | |
| 
 | |
| private:
 | |
|     void _read();
 | |
|     void _clean_up();
 | |
| 
 | |
| public:
 | |
|     ~gps_t();
 | |
| 
 | |
|     class subframe_1_t : public kaitai::kstruct {
 | |
| 
 | |
|     public:
 | |
| 
 | |
|         subframe_1_t(kaitai::kstream* p__io, gps_t* p__parent = 0, gps_t* p__root = 0);
 | |
| 
 | |
|     private:
 | |
|         void _read();
 | |
|         void _clean_up();
 | |
| 
 | |
|     public:
 | |
|         ~subframe_1_t();
 | |
| 
 | |
|     private:
 | |
|         bool f_af_0;
 | |
|         int32_t m_af_0;
 | |
| 
 | |
|     public:
 | |
|         int32_t af_0();
 | |
| 
 | |
|     private:
 | |
|         uint64_t m_week_no;
 | |
|         uint64_t m_code;
 | |
|         uint64_t m_sv_accuracy;
 | |
|         uint64_t m_sv_health;
 | |
|         uint64_t m_iodc_msb;
 | |
|         bool m_l2_p_data_flag;
 | |
|         uint64_t m_reserved1;
 | |
|         uint64_t m_reserved2;
 | |
|         uint64_t m_reserved3;
 | |
|         uint64_t m_reserved4;
 | |
|         int8_t m_t_gd;
 | |
|         uint8_t m_iodc_lsb;
 | |
|         uint16_t m_t_oc;
 | |
|         int8_t m_af_2;
 | |
|         int16_t m_af_1;
 | |
|         bool m_af_0_sign;
 | |
|         uint64_t m_af_0_value;
 | |
|         uint64_t m_reserved5;
 | |
|         gps_t* m__root;
 | |
|         gps_t* m__parent;
 | |
| 
 | |
|     public:
 | |
|         uint64_t week_no() const { return m_week_no; }
 | |
|         uint64_t code() const { return m_code; }
 | |
|         uint64_t sv_accuracy() const { return m_sv_accuracy; }
 | |
|         uint64_t sv_health() const { return m_sv_health; }
 | |
|         uint64_t iodc_msb() const { return m_iodc_msb; }
 | |
|         bool l2_p_data_flag() const { return m_l2_p_data_flag; }
 | |
|         uint64_t reserved1() const { return m_reserved1; }
 | |
|         uint64_t reserved2() const { return m_reserved2; }
 | |
|         uint64_t reserved3() const { return m_reserved3; }
 | |
|         uint64_t reserved4() const { return m_reserved4; }
 | |
|         int8_t t_gd() const { return m_t_gd; }
 | |
|         uint8_t iodc_lsb() const { return m_iodc_lsb; }
 | |
|         uint16_t t_oc() const { return m_t_oc; }
 | |
|         int8_t af_2() const { return m_af_2; }
 | |
|         int16_t af_1() const { return m_af_1; }
 | |
|         bool af_0_sign() const { return m_af_0_sign; }
 | |
|         uint64_t af_0_value() const { return m_af_0_value; }
 | |
|         uint64_t reserved5() const { return m_reserved5; }
 | |
|         gps_t* _root() const { return m__root; }
 | |
|         gps_t* _parent() const { return m__parent; }
 | |
|     };
 | |
| 
 | |
|     class subframe_3_t : public kaitai::kstruct {
 | |
| 
 | |
|     public:
 | |
| 
 | |
|         subframe_3_t(kaitai::kstream* p__io, gps_t* p__parent = 0, gps_t* p__root = 0);
 | |
| 
 | |
|     private:
 | |
|         void _read();
 | |
|         void _clean_up();
 | |
| 
 | |
|     public:
 | |
|         ~subframe_3_t();
 | |
| 
 | |
|     private:
 | |
|         bool f_omega_dot;
 | |
|         int32_t m_omega_dot;
 | |
| 
 | |
|     public:
 | |
|         int32_t omega_dot();
 | |
| 
 | |
|     private:
 | |
|         bool f_idot;
 | |
|         int32_t m_idot;
 | |
| 
 | |
|     public:
 | |
|         int32_t idot();
 | |
| 
 | |
|     private:
 | |
|         int16_t m_c_ic;
 | |
|         int32_t m_omega_0;
 | |
|         int16_t m_c_is;
 | |
|         int32_t m_i_0;
 | |
|         int16_t m_c_rc;
 | |
|         int32_t m_omega;
 | |
|         bool m_omega_dot_sign;
 | |
|         uint64_t m_omega_dot_value;
 | |
|         uint8_t m_iode;
 | |
|         bool m_idot_sign;
 | |
|         uint64_t m_idot_value;
 | |
|         uint64_t m_reserved;
 | |
|         gps_t* m__root;
 | |
|         gps_t* m__parent;
 | |
| 
 | |
|     public:
 | |
|         int16_t c_ic() const { return m_c_ic; }
 | |
|         int32_t omega_0() const { return m_omega_0; }
 | |
|         int16_t c_is() const { return m_c_is; }
 | |
|         int32_t i_0() const { return m_i_0; }
 | |
|         int16_t c_rc() const { return m_c_rc; }
 | |
|         int32_t omega() const { return m_omega; }
 | |
|         bool omega_dot_sign() const { return m_omega_dot_sign; }
 | |
|         uint64_t omega_dot_value() const { return m_omega_dot_value; }
 | |
|         uint8_t iode() const { return m_iode; }
 | |
|         bool idot_sign() const { return m_idot_sign; }
 | |
|         uint64_t idot_value() const { return m_idot_value; }
 | |
|         uint64_t reserved() const { return m_reserved; }
 | |
|         gps_t* _root() const { return m__root; }
 | |
|         gps_t* _parent() const { return m__parent; }
 | |
|     };
 | |
| 
 | |
|     class subframe_4_t : public kaitai::kstruct {
 | |
| 
 | |
|     public:
 | |
|         class ionosphere_data_t;
 | |
| 
 | |
|         subframe_4_t(kaitai::kstream* p__io, gps_t* p__parent = 0, gps_t* p__root = 0);
 | |
| 
 | |
|     private:
 | |
|         void _read();
 | |
|         void _clean_up();
 | |
| 
 | |
|     public:
 | |
|         ~subframe_4_t();
 | |
| 
 | |
|         class ionosphere_data_t : public kaitai::kstruct {
 | |
| 
 | |
|         public:
 | |
| 
 | |
|             ionosphere_data_t(kaitai::kstream* p__io, gps_t::subframe_4_t* p__parent = 0, gps_t* p__root = 0);
 | |
| 
 | |
|         private:
 | |
|             void _read();
 | |
|             void _clean_up();
 | |
| 
 | |
|         public:
 | |
|             ~ionosphere_data_t();
 | |
| 
 | |
|         private:
 | |
|             int8_t m_a0;
 | |
|             int8_t m_a1;
 | |
|             int8_t m_a2;
 | |
|             int8_t m_a3;
 | |
|             int8_t m_b0;
 | |
|             int8_t m_b1;
 | |
|             int8_t m_b2;
 | |
|             int8_t m_b3;
 | |
|             gps_t* m__root;
 | |
|             gps_t::subframe_4_t* m__parent;
 | |
| 
 | |
|         public:
 | |
|             int8_t a0() const { return m_a0; }
 | |
|             int8_t a1() const { return m_a1; }
 | |
|             int8_t a2() const { return m_a2; }
 | |
|             int8_t a3() const { return m_a3; }
 | |
|             int8_t b0() const { return m_b0; }
 | |
|             int8_t b1() const { return m_b1; }
 | |
|             int8_t b2() const { return m_b2; }
 | |
|             int8_t b3() const { return m_b3; }
 | |
|             gps_t* _root() const { return m__root; }
 | |
|             gps_t::subframe_4_t* _parent() const { return m__parent; }
 | |
|         };
 | |
| 
 | |
|     private:
 | |
|         uint64_t m_data_id;
 | |
|         uint64_t m_page_id;
 | |
|         ionosphere_data_t* m_body;
 | |
|         bool n_body;
 | |
| 
 | |
|     public:
 | |
|         bool _is_null_body() { body(); return n_body; };
 | |
| 
 | |
|     private:
 | |
|         gps_t* m__root;
 | |
|         gps_t* m__parent;
 | |
| 
 | |
|     public:
 | |
|         uint64_t data_id() const { return m_data_id; }
 | |
|         uint64_t page_id() const { return m_page_id; }
 | |
|         ionosphere_data_t* body() const { return m_body; }
 | |
|         gps_t* _root() const { return m__root; }
 | |
|         gps_t* _parent() const { return m__parent; }
 | |
|     };
 | |
| 
 | |
|     class how_t : public kaitai::kstruct {
 | |
| 
 | |
|     public:
 | |
| 
 | |
|         how_t(kaitai::kstream* p__io, gps_t* p__parent = 0, gps_t* p__root = 0);
 | |
| 
 | |
|     private:
 | |
|         void _read();
 | |
|         void _clean_up();
 | |
| 
 | |
|     public:
 | |
|         ~how_t();
 | |
| 
 | |
|     private:
 | |
|         uint64_t m_tow_count;
 | |
|         bool m_alert;
 | |
|         bool m_anti_spoof;
 | |
|         uint64_t m_subframe_id;
 | |
|         uint64_t m_reserved;
 | |
|         gps_t* m__root;
 | |
|         gps_t* m__parent;
 | |
| 
 | |
|     public:
 | |
|         uint64_t tow_count() const { return m_tow_count; }
 | |
|         bool alert() const { return m_alert; }
 | |
|         bool anti_spoof() const { return m_anti_spoof; }
 | |
|         uint64_t subframe_id() const { return m_subframe_id; }
 | |
|         uint64_t reserved() const { return m_reserved; }
 | |
|         gps_t* _root() const { return m__root; }
 | |
|         gps_t* _parent() const { return m__parent; }
 | |
|     };
 | |
| 
 | |
|     class tlm_t : public kaitai::kstruct {
 | |
| 
 | |
|     public:
 | |
| 
 | |
|         tlm_t(kaitai::kstream* p__io, gps_t* p__parent = 0, gps_t* p__root = 0);
 | |
| 
 | |
|     private:
 | |
|         void _read();
 | |
|         void _clean_up();
 | |
| 
 | |
|     public:
 | |
|         ~tlm_t();
 | |
| 
 | |
|     private:
 | |
|         std::string m_preamble;
 | |
|         uint64_t m_tlm;
 | |
|         bool m_integrity_status;
 | |
|         bool m_reserved;
 | |
|         gps_t* m__root;
 | |
|         gps_t* m__parent;
 | |
| 
 | |
|     public:
 | |
|         std::string preamble() const { return m_preamble; }
 | |
|         uint64_t tlm() const { return m_tlm; }
 | |
|         bool integrity_status() const { return m_integrity_status; }
 | |
|         bool reserved() const { return m_reserved; }
 | |
|         gps_t* _root() const { return m__root; }
 | |
|         gps_t* _parent() const { return m__parent; }
 | |
|     };
 | |
| 
 | |
|     class subframe_2_t : public kaitai::kstruct {
 | |
| 
 | |
|     public:
 | |
| 
 | |
|         subframe_2_t(kaitai::kstream* p__io, gps_t* p__parent = 0, gps_t* p__root = 0);
 | |
| 
 | |
|     private:
 | |
|         void _read();
 | |
|         void _clean_up();
 | |
| 
 | |
|     public:
 | |
|         ~subframe_2_t();
 | |
| 
 | |
|     private:
 | |
|         uint8_t m_iode;
 | |
|         int16_t m_c_rs;
 | |
|         int16_t m_delta_n;
 | |
|         int32_t m_m_0;
 | |
|         int16_t m_c_uc;
 | |
|         int32_t m_e;
 | |
|         int16_t m_c_us;
 | |
|         uint32_t m_sqrt_a;
 | |
|         uint16_t m_t_oe;
 | |
|         bool m_fit_interval_flag;
 | |
|         uint64_t m_aoda;
 | |
|         uint64_t m_reserved;
 | |
|         gps_t* m__root;
 | |
|         gps_t* m__parent;
 | |
| 
 | |
|     public:
 | |
|         uint8_t iode() const { return m_iode; }
 | |
|         int16_t c_rs() const { return m_c_rs; }
 | |
|         int16_t delta_n() const { return m_delta_n; }
 | |
|         int32_t m_0() const { return m_m_0; }
 | |
|         int16_t c_uc() const { return m_c_uc; }
 | |
|         int32_t e() const { return m_e; }
 | |
|         int16_t c_us() const { return m_c_us; }
 | |
|         uint32_t sqrt_a() const { return m_sqrt_a; }
 | |
|         uint16_t t_oe() const { return m_t_oe; }
 | |
|         bool fit_interval_flag() const { return m_fit_interval_flag; }
 | |
|         uint64_t aoda() const { return m_aoda; }
 | |
|         uint64_t reserved() const { return m_reserved; }
 | |
|         gps_t* _root() const { return m__root; }
 | |
|         gps_t* _parent() const { return m__parent; }
 | |
|     };
 | |
| 
 | |
| private:
 | |
|     tlm_t* m_tlm;
 | |
|     how_t* m_how;
 | |
|     kaitai::kstruct* m_body;
 | |
|     bool n_body;
 | |
| 
 | |
| public:
 | |
|     bool _is_null_body() { body(); return n_body; };
 | |
| 
 | |
| private:
 | |
|     gps_t* m__root;
 | |
|     kaitai::kstruct* m__parent;
 | |
| 
 | |
| public:
 | |
|     tlm_t* tlm() const { return m_tlm; }
 | |
|     how_t* how() const { return m_how; }
 | |
|     kaitai::kstruct* body() const { return m_body; }
 | |
|     gps_t* _root() const { return m__root; }
 | |
|     kaitai::kstruct* _parent() const { return m__parent; }
 | |
| };
 | |
| 
 | |
| #endif  // GPS_H_
 | |
| 
 |