为什么 "fifoBuffer" 索引 2,3,6,7,10,11 的值没有传递到 teapotPacket[] 数组中?

Why "fifoBuffer" values of indexes 2,3,6,7,10,11 are not passed in the teapotPacket[] array ?

我正在使用 Jeff Rowberg 的 MPU6050 库。在代码中,整个 fifobuffer 没有传递给 'teapotPacket' 数组(用于处理,即图形仿真)。为什么在'teapotPacket'数组中只传递了某些索引?(准确的说,只传递了下面给出的索引)

teapotPacket[2] = fifoBuffer[0];
teapotPacket[3] = fifoBuffer[1];
teapotPacket[4] = fifoBuffer[4];
teapotPacket[5] = fifoBuffer[5];
teapotPacket[6] = fifoBuffer[8];
teapotPacket[7] = fifoBuffer[9];
teapotPacket[8] = fifoBuffer[12];
teapotPacket[9] = fifoBuffer[13];

请再澄清一件事,为什么 'teapotPacket' 数组是用 $ 、十六进制数字和 '\n' 和 '\r' 字符初始化的?

uint8_t teapotPacket[14] = { '$', 0x02, 0,0, 0,0, 0,0, 0,0, 0x00, 0x00, '\r', '\n' };

问题重复:

为了完整性再次引用我的回答:

In the code, while passing data to the Teapot library(for processing,i.e, graphics emulation), whole fifobuffer is not passed. Why is that so ?

深入研究库代码,我发现它只是一种用于显示四元数值的 "InvenSense Teapot demo" 格式。

Why the teapotPacket[14] array is initialised with these weird hex numbers ?

它是 InvenSense teapot 的数据包结构格式,用于存储四元数等传感器读数。

更多信息:"Quaternion values":

四元数是一种数字系统,它扩展了复数,用于涉及三维旋转的计算,例如三维计算机图形学、计算机视觉和晶体结构分析。