当前位置:网站首页>Vofa+ software usage record

Vofa+ software usage record

2022-07-05 07:59:00 feiyingzaishi

1) Software version 1.3.10

2) Description of three communication protocols

RawData: The most basic communication protocol , Received something , Just print something , Do not parse the data , Only for viewing byte stream data .

JustFloat: This protocol is a byte stream protocol in the form of small end floating point array , Pure hexadecimal floating point transmission , Save bandwidth . This protocol is very suitable for a large number of channels 、 When the transmission frequency is high .

FireWater: This agreement is CSV Style character streaming , Intuitive and concise , Programming image printf Simple . But because string parsing consumes more computing resources ( No matter in the upper computer or the lower computer ), It is recommended only when the number of channels is small 、 Use when the transmission frequency is not high .
3) This test uses JustFloat: agreement , Serial communication sending data test , Use STM32 test

Pay attention to the communication protocol format .float Type needs to be transformed into char Type send .

void float_char(float f,unsigned char *s)
{
 union change
    {
        float d;

     unsigned char dat[4];
    }r1;

 r1.d = f;

    *s = r1.dat[0];

    *(s+1) = r1.dat[1];

    *(s+2) = r1.dat[2];

    *(s+3) = r1.dat[3];  
}
float testsindatau1 = 0;
float testsindatau2 = 0;
float testsindatau3 = 0;
float testsindatau4 = 0;
float testsindatau5 = 0;
//²âÊÔVOFA+´¿Ú·¢ËÍ
u8 testdataarraytemp[4] = {0};
u8 testdataarray[24] = {0};










testsindatau1 += 1;
			testsindatau2 += 2;
			testsindatau3 += 3;
			testsindatau4 += 4;
			testsindatau5 += 5;
			if(testsindatau1 > 250)
			{
				testsindatau1 = 0;
			}
			if(testsindatau2 > 250)
			{
				testsindatau2 = 0;
			}
			if(testsindatau3 > 250)
			{
				testsindatau3 = 0;
			}
			if(testsindatau4 > 250)
			{
				testsindatau4 = 0;
			}
			if(testsindatau5 > 250)
			{
				testsindatau5 = 0;
			}
			
			float_char(testsindatau1,testdataarraytemp);
			testdataarray[0] = testdataarraytemp[0];
			testdataarray[1] = testdataarraytemp[1];
			testdataarray[2] = testdataarraytemp[2];
			testdataarray[3] = testdataarraytemp[3];
			
			float_char(testsindatau2,testdataarraytemp);
			testdataarray[4] = testdataarraytemp[0];
			testdataarray[5] = testdataarraytemp[1];
			testdataarray[6] = testdataarraytemp[2];
			testdataarray[7] = testdataarraytemp[3];
			
			float_char(testsindatau3,testdataarraytemp);
			testdataarray[8] = testdataarraytemp[0];
			testdataarray[9] = testdataarraytemp[1];
			testdataarray[10] = testdataarraytemp[2];
			testdataarray[11] = testdataarraytemp[3];
			
			float_char(testsindatau4,testdataarraytemp);
			testdataarray[12] = testdataarraytemp[0];
			testdataarray[13] = testdataarraytemp[1];
			testdataarray[14] = testdataarraytemp[2];
			testdataarray[15] = testdataarraytemp[3];
			
			float_char(testsindatau5,testdataarraytemp);
			testdataarray[16] = testdataarraytemp[0];
			testdataarray[17] = testdataarraytemp[1];
			testdataarray[18] = testdataarraytemp[2];
			testdataarray[19] = testdataarraytemp[3];
			
			testdataarray[20] = 0;
			testdataarray[21] = 0;
			testdataarray[22] = 0x80;
			testdataarray[23] = 0x7f;
			My_USARTSendData(testdataarray,24);

 

4) Experience with

It doesn't feel particularly useful , If there is a large difference in the range of data sent , The display is not very friendly , May use Jscope Accustomed to the , It's just personal opinion .

原网站

版权声明
本文为[feiyingzaishi]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140548093433.html