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.
202 lines
4.8 KiB
202 lines
4.8 KiB
2 years ago
|
// 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() {
|
||
|
}
|