对于指定的通信标准RTCM SC104 3.1,我需要将数据跨字节分割为一对12位数据段.因此,对于给定的消息,我需要将消息类型号放在第一个字节和第二个字节的一半上.然后我需要在第二个字节的一半上启动一个ID整数并继续第三个字节.这种模式继续到消息的末尾,削减20位,5位和其他大小的其他整数,基本上削减0,通常填充整数值的MSB结束.
我没有看到一个明确的定义,但我认为它必须以网络字节顺序出去,所以在复制位之前我必须在内存中反转我的整数.我仍然是cpp的新手,我想知道如何在内存中找到构成整数的单个字节?如果我可以访问字节,那么我可以使用按位或将2个字节的位拆分为一个用于消息.
这是在添加数据之前构建消息的开始:
//build message 1002 gps 00111110 1010
char buf1002[BUFFERSIZE];
buf1002[0] = 0x3E; //00111110
buf1002[1] = 0xA0; //10100000
//ref station id 12 bits of 16
//ex unsigned short m = 1100;
//m would be byte2 00000100 byte1 01001100
//buf1002[1] would be 10100100
//buf1002[2] would be 01001100
//reverse bit order for network after building?
Run Code Online (Sandbox Code Playgroud)
参考站将来自无符号短路,因此是2字节整数.那么如何从中读取单个字节呢?我是否从内存位置指针开始?如果是那么什么?
任何帮助将不胜感激.