我从下位机给上位机打包上传一组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