Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef MTMESSAGES_HPP_
00039 #define MTMESSAGES_HPP_
00040 #include <labust/tritech/tritechfwd.hpp>
00041 #include <labust/preprocessor/mem_serialized_struct.hpp>
00042
00043 #include <iostream>
00044 #include <sstream>
00045 #include <cstdint>
00046
00047 namespace labust
00048 {
00049 namespace tritech
00050 {
00057 struct HexHeader
00058 {
00059 enum {default_size=4};
00060
00061 static inline size_t length(uint8_t* data, std::size_t len = default_size)
00062 {
00063 size_t retVal;
00064 std::stringstream in(std::string(reinterpret_cast<char*>(data),4));
00065 in>>std::hex>>retVal;
00066 return retVal;
00067 }
00068 };
00069
00070 struct MTMsg
00071 {
00072 enum {default_size=8};
00073 enum {count_diff=5};
00074
00075 enum mtMessage
00076 {
00078 mtNull = 0,
00080 mtHeadData = 2,
00082 mtAlive = 4,
00084 mtReboot = 16,
00086 mtHeadCmd = 19,
00088 mtSendData = 25,
00090 mtGPSData = 36,
00092 mtAMNavData = 52,
00094 mtAMNavRaw = 77,
00096 mtMiniModemCmd = 78,
00098 mtMiniModemData,
00100 mtMiniAttCmd,
00102 mtMiniAttData,
00104 mtAMNavDataV2 = 94
00105 };
00106
00107 MTMsg():
00108 size(default_size),
00109 txNode(255),
00110 rxNode(255),
00111 byteCount(3),
00112 msgType(0),
00113 seq(128),
00114 node(255),
00115 data(new boost::asio::streambuf()){};
00116
00120 inline void setup()
00121 {
00122 this->size = data->size()+ default_size;
00123 this->byteCount = this->size-count_diff;
00124 }
00125
00126 uint16_t size;
00127 uint8_t txNode, rxNode;
00128 uint8_t byteCount;
00129 uint8_t msgType;
00130 uint8_t seq;
00131 uint8_t node;
00132
00133 StreamPtr data;
00134 };
00135 }
00136 }
00137
00139 PP_LABUST_MAKE_BOOST_SERIALIZATOR_CLEAN(labust::tritech::MTMsg,
00140 (uint16_t, size)
00141 (uint8_t, txNode)
00142 (uint8_t, rxNode)
00143 (uint8_t, byteCount)
00144 (uint8_t, msgType)
00145 (uint8_t, seq)
00146 (uint8_t, node))
00147
00148
00149 #endif