// This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
# include "glonass.h"
glonass_t : : glonass_t ( kaitai : : kstream * p__io , kaitai : : kstruct * p__parent , glonass_t * p__root ) : kaitai : : kstruct ( p__io ) {
m__parent = p__parent ;
m__root = this ;
try {
_read ( ) ;
} catch ( . . . ) {
_clean_up ( ) ;
throw ;
}
}
void glonass_t : : _read ( ) {
m_idle_chip = m__io - > read_bits_int_be ( 1 ) ;
m_string_number = m__io - > read_bits_int_be ( 4 ) ;
//m__io->align_to_byte();
switch ( string_number ( ) ) {
case 4 : {
m_data = new string_4_t ( m__io , this , m__root ) ;
break ;
}
case 1 : {
m_data = new string_1_t ( m__io , this , m__root ) ;
break ;
}
case 3 : {
m_data = new string_3_t ( m__io , this , m__root ) ;
break ;
}
case 2 : {
m_data = new string_2_t ( m__io , this , m__root ) ;
break ;
}
default : {
m_data = new string_non_immediate_t ( m__io , this , m__root ) ;
break ;
}
}
m_hamming_code = m__io - > read_bits_int_be ( 8 ) ;
m_pad_1 = m__io - > read_bits_int_be ( 11 ) ;
m_superframe_number = m__io - > read_bits_int_be ( 16 ) ;
m_pad_2 = m__io - > read_bits_int_be ( 8 ) ;
m_frame_number = m__io - > read_bits_int_be ( 8 ) ;
}
glonass_t : : ~ glonass_t ( ) {
_clean_up ( ) ;
}
void glonass_t : : _clean_up ( ) {
if ( m_data ) {
delete m_data ; m_data = 0 ;
}
}
glonass_t : : string_4_t : : string_4_t ( kaitai : : kstream * p__io , glonass_t * p__parent , glonass_t * p__root ) : kaitai : : kstruct ( p__io ) {
m__parent = p__parent ;
m__root = p__root ;
try {
_read ( ) ;
} catch ( . . . ) {
_clean_up ( ) ;
throw ;
}
}
void glonass_t : : string_4_t : : _read ( ) {
m_tau_n = m__io - > read_bits_int_be ( 22 ) ;
m_delta_tau_n = m__io - > read_bits_int_be ( 5 ) ;
m_e_n = m__io - > read_bits_int_be ( 5 ) ;
m_not_used_1 = m__io - > read_bits_int_be ( 14 ) ;
m_p4 = m__io - > read_bits_int_be ( 1 ) ;
m_f_t = m__io - > read_bits_int_be ( 4 ) ;
m_not_used_2 = m__io - > read_bits_int_be ( 3 ) ;
m_n_t = m__io - > read_bits_int_be ( 11 ) ;
m_n = m__io - > read_bits_int_be ( 5 ) ;
m_m = m__io - > read_bits_int_be ( 2 ) ;
}
glonass_t : : string_4_t : : ~ string_4_t ( ) {
_clean_up ( ) ;
}
void glonass_t : : string_4_t : : _clean_up ( ) {
}
glonass_t : : string_non_immediate_t : : string_non_immediate_t ( kaitai : : kstream * p__io , glonass_t * p__parent , glonass_t * p__root ) : kaitai : : kstruct ( p__io ) {
m__parent = p__parent ;
m__root = p__root ;
try {
_read ( ) ;
} catch ( . . . ) {
_clean_up ( ) ;
throw ;
}
}
void glonass_t : : string_non_immediate_t : : _read ( ) {
m_data_1 = m__io - > read_bits_int_be ( 64 ) ;
m_data_2 = m__io - > read_bits_int_be ( 8 ) ;
}
glonass_t : : string_non_immediate_t : : ~ string_non_immediate_t ( ) {
_clean_up ( ) ;
}
void glonass_t : : string_non_immediate_t : : _clean_up ( ) {
}
glonass_t : : string_1_t : : string_1_t ( kaitai : : kstream * p__io , glonass_t * p__parent , glonass_t * p__root ) : kaitai : : kstruct ( p__io ) {
m__parent = p__parent ;
m__root = p__root ;
try {
_read ( ) ;
} catch ( . . . ) {
_clean_up ( ) ;
throw ;
}
}
void glonass_t : : string_1_t : : _read ( ) {
m_not_used = m__io - > read_bits_int_be ( 2 ) ;
m_p1 = m__io - > read_bits_int_be ( 2 ) ;
m_t_k = m__io - > read_bits_int_be ( 12 ) ;
m_x_vel = m__io - > read_bits_int_be ( 24 ) ;
m_x_speedup = m__io - > read_bits_int_be ( 5 ) ;
m_x = m__io - > read_bits_int_be ( 27 ) ;
}
glonass_t : : string_1_t : : ~ string_1_t ( ) {
_clean_up ( ) ;
}
void glonass_t : : string_1_t : : _clean_up ( ) {
}
glonass_t : : string_2_t : : string_2_t ( kaitai : : kstream * p__io , glonass_t * p__parent , glonass_t * p__root ) : kaitai : : kstruct ( p__io ) {
m__parent = p__parent ;
m__root = p__root ;
try {
_read ( ) ;
} catch ( . . . ) {
_clean_up ( ) ;
throw ;
}
}
void glonass_t : : string_2_t : : _read ( ) {
m_b_n = m__io - > read_bits_int_be ( 3 ) ;
m_p2 = m__io - > read_bits_int_be ( 1 ) ;
m_t_b = m__io - > read_bits_int_be ( 7 ) ;
m_not_used = m__io - > read_bits_int_be ( 5 ) ;
m_y_vel = m__io - > read_bits_int_be ( 24 ) ;
m_y_speedup = m__io - > read_bits_int_be ( 5 ) ;
m_y = m__io - > read_bits_int_be ( 27 ) ;
}
glonass_t : : string_2_t : : ~ string_2_t ( ) {
_clean_up ( ) ;
}
void glonass_t : : string_2_t : : _clean_up ( ) {
}
glonass_t : : string_3_t : : string_3_t ( kaitai : : kstream * p__io , glonass_t * p__parent , glonass_t * p__root ) : kaitai : : kstruct ( p__io ) {
m__parent = p__parent ;
m__root = p__root ;
try {
_read ( ) ;
} catch ( . . . ) {
_clean_up ( ) ;
throw ;
}
}
void glonass_t : : string_3_t : : _read ( ) {
m_p3 = m__io - > read_bits_int_be ( 1 ) ;
m_gamma_n = m__io - > read_bits_int_be ( 11 ) ;
m_not_used = m__io - > read_bits_int_be ( 1 ) ;
m_p = m__io - > read_bits_int_be ( 2 ) ;
m_l_n = m__io - > read_bits_int_be ( 1 ) ;
m_z_vel = m__io - > read_bits_int_be ( 24 ) ;
m_z_speedup = m__io - > read_bits_int_be ( 5 ) ;
m_z = m__io - > read_bits_int_be ( 27 ) ;
}
glonass_t : : string_3_t : : ~ string_3_t ( ) {
_clean_up ( ) ;
}
void glonass_t : : string_3_t : : _clean_up ( ) {
}