#include "vn-interface/vn200.h" namespace VN200 { namespace SPI { // payload_size_t::payload_size_t() { // group1 = {{BinaryGroups::Group1::TimeStartup, 8}, {BinaryGroups::Group1::TimeGps, 8}, {BinaryGroups::Group1::TimeSyncIn, 8}, // {BinaryGroups::Group1::YawPitchRoll, 12}, {BinaryGroups::Group1::Quaternion, 16}, {BinaryGroups::Group1::AngularRate, 12}, // {BinaryGroups::Group1::Position, 24}, {BinaryGroups::Group1::Velocity, 12}, {BinaryGroups::Group1::Accel, 12}, // {BinaryGroups::Group1::Imu, 24}, {BinaryGroups::Group1::MagPres, 20}, {BinaryGroups::Group1::DeltaTheta, 28}, // {BinaryGroups::Group1::InsStatus, 2}, {BinaryGroups::Group1::SyncInCnt, 4}, {BinaryGroups::Group1::TimeGpsPps, 8}, // {BinaryGroups::Group1::EMPTY15, 0}}; // } // uint16_t configuration_t::size() { return sizeof(AsyncMode) + sizeof(RateDivisor) + sizeof(OutputGroup) + NumOutputFields * sizeof(uint16_t); } // uint8_t *configuration_t::to_array() { // v.clear(); // v.push_back(AsyncMode && 0xFF); // v.push_back(AsyncMode >> 8); // v.push_back(RateDivisor && 0xFF); // v.push_back(RateDivisor >> 8); // v.push_back(OutputGroup && 0xFF); // v.push_back(OutputGroup >> 8); // for (uint8_t i = 0; i < NumOutputFields; i++) { // v.push_back(OutputFields[i] && 0xFF); // v.push_back(OutputFields[i] >> 8); // } // return &v[0]; // } // void configuration_t::setBinaryGroups(std::vector desired_groups) { // bool hit = false; // /* Iterate over every bit of the OutputGroup */ // for (uint8_t i = 0; i < 8; i++) { // for (auto desired_group : desired_groups) { // if (desired_group == i) { // hit = true; // break; // } // } // if (hit) { // OutputGroup++; // hit = false; // } // OutputGroup = OutputGroup << 1; // } // } // void configuration_t::setOutputFields(SPI::BinaryGroups::bit_offset_t group_bit_offset, std::vector desired_output_fields) { // bool hit = false; // /* Iterate over every bit of the OutputGroup */ // for (uint8_t i = 0; i < 16; i++) { // for (auto desired_output_field : desired_output_fields) { // if (desired_output_field == i) { // hit = true; // break; // } // } // if (hit) { // OutputFields[group_bit_offset]++; // hit = false; // } // OutputFields[group_bit_offset] = OutputFields[group_bit_offset] << 1; // } // } } // namespace SPI // namespace SPI } // namespace VN200