|
|
|
@ -31,6 +31,10 @@ void glonass_t::_read() { |
|
|
|
|
m_data = new string_3_t(m__io, this, m__root); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 5: { |
|
|
|
|
m_data = new string_5_t(m__io, this, m__root); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 2: { |
|
|
|
|
m_data = new string_2_t(m__io, this, m__root); |
|
|
|
|
break; |
|
|
|
@ -60,6 +64,8 @@ void glonass_t::_clean_up() { |
|
|
|
|
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; |
|
|
|
|
f_tau_n = false; |
|
|
|
|
f_delta_tau_n = false; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
_read(); |
|
|
|
@ -70,8 +76,10 @@ glonass_t::string_4_t::string_4_t(kaitai::kstream* p__io, glonass_t* p__parent, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
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_tau_n_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_tau_n_value = m__io->read_bits_int_be(21); |
|
|
|
|
m_delta_tau_n_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_delta_tau_n_value = m__io->read_bits_int_be(4); |
|
|
|
|
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); |
|
|
|
@ -89,6 +97,22 @@ glonass_t::string_4_t::~string_4_t() { |
|
|
|
|
void glonass_t::string_4_t::_clean_up() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_4_t::tau_n() { |
|
|
|
|
if (f_tau_n) |
|
|
|
|
return m_tau_n; |
|
|
|
|
m_tau_n = ((tau_n_sign()) ? ((tau_n_value() - (1 << 21))) : (tau_n_value())); |
|
|
|
|
f_tau_n = true; |
|
|
|
|
return m_tau_n; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_4_t::delta_tau_n() { |
|
|
|
|
if (f_delta_tau_n) |
|
|
|
|
return m_delta_tau_n; |
|
|
|
|
m_delta_tau_n = ((delta_tau_n_sign()) ? ((delta_tau_n_value() - (1 << 4))) : (delta_tau_n_value())); |
|
|
|
|
f_delta_tau_n = true; |
|
|
|
|
return m_delta_tau_n; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
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; |
|
|
|
@ -113,9 +137,40 @@ glonass_t::string_non_immediate_t::~string_non_immediate_t() { |
|
|
|
|
void glonass_t::string_non_immediate_t::_clean_up() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
glonass_t::string_5_t::string_5_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_5_t::_read() { |
|
|
|
|
m_n_a = m__io->read_bits_int_be(11); |
|
|
|
|
m_tau_e = m__io->read_bits_int_be(32); |
|
|
|
|
m_not_used = m__io->read_bits_int_be(1); |
|
|
|
|
m_n_4 = m__io->read_bits_int_be(5); |
|
|
|
|
m_tau_gps = m__io->read_bits_int_be(22); |
|
|
|
|
m_l_n = m__io->read_bits_int_be(1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
glonass_t::string_5_t::~string_5_t() { |
|
|
|
|
_clean_up(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void glonass_t::string_5_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; |
|
|
|
|
f_x_vel = false; |
|
|
|
|
f_x_accel = false; |
|
|
|
|
f_x = false; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
_read(); |
|
|
|
@ -129,9 +184,12 @@ 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); |
|
|
|
|
m_x_vel_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_x_vel_value = m__io->read_bits_int_be(23); |
|
|
|
|
m_x_accel_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_x_accel_value = m__io->read_bits_int_be(4); |
|
|
|
|
m_x_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_x_value = m__io->read_bits_int_be(26); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
glonass_t::string_1_t::~string_1_t() { |
|
|
|
@ -141,9 +199,36 @@ glonass_t::string_1_t::~string_1_t() { |
|
|
|
|
void glonass_t::string_1_t::_clean_up() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_1_t::x_vel() { |
|
|
|
|
if (f_x_vel) |
|
|
|
|
return m_x_vel; |
|
|
|
|
m_x_vel = ((x_vel_sign()) ? ((x_vel_value() - (1 << 23))) : (x_vel_value())); |
|
|
|
|
f_x_vel = true; |
|
|
|
|
return m_x_vel; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_1_t::x_accel() { |
|
|
|
|
if (f_x_accel) |
|
|
|
|
return m_x_accel; |
|
|
|
|
m_x_accel = ((x_accel_sign()) ? ((x_accel_value() - (1 << 4))) : (x_accel_value())); |
|
|
|
|
f_x_accel = true; |
|
|
|
|
return m_x_accel; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_1_t::x() { |
|
|
|
|
if (f_x) |
|
|
|
|
return m_x; |
|
|
|
|
m_x = ((x_sign()) ? ((x_value() - (1 << 26))) : (x_value())); |
|
|
|
|
f_x = true; |
|
|
|
|
return m_x; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
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; |
|
|
|
|
f_y_vel = false; |
|
|
|
|
f_y_accel = false; |
|
|
|
|
f_y = false; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
_read(); |
|
|
|
@ -158,9 +243,12 @@ void glonass_t::string_2_t::_read() { |
|
|
|
|
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); |
|
|
|
|
m_y_vel_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_y_vel_value = m__io->read_bits_int_be(23); |
|
|
|
|
m_y_accel_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_y_accel_value = m__io->read_bits_int_be(4); |
|
|
|
|
m_y_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_y_value = m__io->read_bits_int_be(26); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
glonass_t::string_2_t::~string_2_t() { |
|
|
|
@ -170,9 +258,37 @@ glonass_t::string_2_t::~string_2_t() { |
|
|
|
|
void glonass_t::string_2_t::_clean_up() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_2_t::y_vel() { |
|
|
|
|
if (f_y_vel) |
|
|
|
|
return m_y_vel; |
|
|
|
|
m_y_vel = ((y_vel_sign()) ? ((y_vel_value() - (1 << 23))) : (y_vel_value())); |
|
|
|
|
f_y_vel = true; |
|
|
|
|
return m_y_vel; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_2_t::y_accel() { |
|
|
|
|
if (f_y_accel) |
|
|
|
|
return m_y_accel; |
|
|
|
|
m_y_accel = ((y_accel_sign()) ? ((y_accel_value() - (1 << 4))) : (y_accel_value())); |
|
|
|
|
f_y_accel = true; |
|
|
|
|
return m_y_accel; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_2_t::y() { |
|
|
|
|
if (f_y) |
|
|
|
|
return m_y; |
|
|
|
|
m_y = ((y_sign()) ? ((y_value() - (1 << 26))) : (y_value())); |
|
|
|
|
f_y = true; |
|
|
|
|
return m_y; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
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; |
|
|
|
|
f_gamma_n = false; |
|
|
|
|
f_z_vel = false; |
|
|
|
|
f_z_accel = false; |
|
|
|
|
f_z = false; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
_read(); |
|
|
|
@ -184,13 +300,17 @@ glonass_t::string_3_t::string_3_t(kaitai::kstream* p__io, glonass_t* p__parent, |
|
|
|
|
|
|
|
|
|
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_gamma_n_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_gamma_n_value = m__io->read_bits_int_be(10); |
|
|
|
|
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); |
|
|
|
|
m_z_vel_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_z_vel_value = m__io->read_bits_int_be(23); |
|
|
|
|
m_z_accel_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_z_accel_value = m__io->read_bits_int_be(4); |
|
|
|
|
m_z_sign = m__io->read_bits_int_be(1); |
|
|
|
|
m_z_value = m__io->read_bits_int_be(26); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
glonass_t::string_3_t::~string_3_t() { |
|
|
|
@ -199,3 +319,35 @@ glonass_t::string_3_t::~string_3_t() { |
|
|
|
|
|
|
|
|
|
void glonass_t::string_3_t::_clean_up() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_3_t::gamma_n() { |
|
|
|
|
if (f_gamma_n) |
|
|
|
|
return m_gamma_n; |
|
|
|
|
m_gamma_n = ((gamma_n_sign()) ? ((gamma_n_value() - (1 << 10))) : (gamma_n_value())); |
|
|
|
|
f_gamma_n = true; |
|
|
|
|
return m_gamma_n; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_3_t::z_vel() { |
|
|
|
|
if (f_z_vel) |
|
|
|
|
return m_z_vel; |
|
|
|
|
m_z_vel = ((z_vel_sign()) ? ((z_vel_value() - (1 << 23))) : (z_vel_value())); |
|
|
|
|
f_z_vel = true; |
|
|
|
|
return m_z_vel; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_3_t::z_accel() { |
|
|
|
|
if (f_z_accel) |
|
|
|
|
return m_z_accel; |
|
|
|
|
m_z_accel = ((z_accel_sign()) ? ((z_accel_value() - (1 << 4))) : (z_accel_value())); |
|
|
|
|
f_z_accel = true; |
|
|
|
|
return m_z_accel; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int32_t glonass_t::string_3_t::z() { |
|
|
|
|
if (f_z) |
|
|
|
|
return m_z; |
|
|
|
|
m_z = ((z_sign()) ? ((z_value() - (1 << 26))) : (z_value())); |
|
|
|
|
f_z = true; |
|
|
|
|
return m_z; |
|
|
|
|
} |
|
|
|
|