数据打包上传时在C脚本中遇到的问题!

我从下位机给上位机打包上传一组float型数据,上传时是以字节打包形式上传的,在C脚本中进行解包时需要把每四个字节的数据转换为一个float型数据,如何转换呢?

最佳答案

我自己写的一个项目函数,读取raw组数据,转换成float放到中间变量中。三个参数
 RawTagName---raw变量的名字
 RawTagSize---变量的长度(byte)
 FloatTagNameHeader---转换成float后,存放数据中间变量的名字头,尾是_1...._2..._3这样格式的

 void ReadRawFloat(char* RawTagName,int RawTagSize,char* FloatTagNameHeader)
 {
 BYTE ReadData[200];
 BYTE ConvertData[200];
 char  FloatTagName[200];
 char FloatTagTail[200];
 float* intArray;
 int i,j;

 if (RawTagSize>200) return;

 GetTagRaw(RawTagName,ReadData,RawTagSize);
 for (i=0;i<50;i++)
  for (j=0;j<4;j++)
      ConvertData[4*i+3-j]=ReadData[4*i+j];

 intArray=(float*)ConvertData;
 for (i=0;i<RawTagSize/4;i++)
  {
  strcpy(FloatTagName,FloatTagNameHeader);
  sprintf(FloatTagTail,"_%d",i+1);
  strcat(FloatTagName,FloatTagTail);
  SetTagFloat(FloatTagName,intArray[i]);
  } 
 }
 

提问者对于答案的评价:
谢谢!
 

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午10:12
下一篇 2019年6月11日 上午10:13

相关推荐