优化idIndex=1; if frameCnt(idIndex) ~= 0 for frameNumIndex=1:frameCnt(idIndex) dataTypeIndex = 4; for j=1:length(fclogJson.fcLogInfo(idIndex).payLoad)
时间: 2023-05-31 15:05:27 浏览: 51
if strcmp(fclogJson.fcLogInfo(idIndex).payLoad(j).name,'dataType') dataTypeIndex = j; break; end end
for frameDataIndex=1:length(fclogJson.fcLogInfo(idIndex).payLoad(dataTypeIndex).fields) dataFieldName = fclogJson.fcLogInfo(idIndex).payLoad(dataTypeIndex).fields(frameDataIndex).name; dataFieldBytes = fclogJson.fcLogInfo(idIndex).payLoad(dataTypeIndex).fields(frameDataIndex).bytes; dataFieldOffset = fclogJson.fcLogInfo(idIndex).payLoad(dataTypeIndex).fields(frameDataIndex).offset;
switch dataFieldName case 'timestamp' frame.timestamp = typecast(frameData(dataFieldOffset+1:dataFieldOffset+dataFieldBytes),'uint64'); case 'position' frame.positionX = typecast(frameData(dataFieldOffset+1:dataFieldOffset+dataFieldBytes),'single'); frame.positionY = typecast(frameData(dataFieldOffset+dataFieldBytes+1:dataFieldOffset+2*dataFieldBytes),'single'); frame.positionZ = typecast(frameData(dataFieldOffset+2*dataFieldBytes+1:dataFieldOffset+3*dataFieldBytes),'single'); case 'orientation' frame.orientationW = typecast(frameData(dataFieldOffset+1:dataFieldOffset+dataFieldBytes),'single'); frame.orientationX = typecast(frameData(dataFieldOffset+dataFieldBytes+1:dataFieldOffset+2*dataFieldBytes),'single'); frame.orientationY = typecast(frameData(dataFieldOffset+2*dataFieldBytes+1:dataFieldOffset+3*dataFieldBytes),'single'); frame.orientationZ = typecast(frameData(dataFieldOffset+3*dataFieldBytes+1:dataFieldOffset+4*dataFieldBytes),'single'); end end end