var tt=msg.payload[0].payload;
var shotCurveName = tt.slice(12,93).toString().replace(/\0/g, ‘’);//曲线名称
var dataAndTime = tt.slice(93, 107).toString().replace(/\0/g, ‘’);//时间
let buf1 = tt.slice(176, 180);
var duration = buf1.readFloatLE(0); //曲线毫秒值
var team=tt.slice(180,261).toString().replace(/\0/g, ‘’); //组
var number=tt.slice(264,268).readInt32LE(0); //序列号
var recipe=tt.slice(268,349).toString().replace(/\0/g, ‘’); //曲线配方
var result = tt.slice(350, 352).readInt16LE(0); //曲线品质
var shotResultWayCurveInjectionClinder=[]; //位移
var shotResultInjectionCylinderPistonPressureCurve = []; //入口压力
var shotResultInjectionCylinderAnnulusPressureCurve = []; //出口压力
var shotResultPNaccCurve = []; //氮气压力
var shotResultSpoolPositionInletAnnularValveCurve = []; //V1阀芯反馈开度
var shotResultSpoolPositionOutletAnnularValveCurve = []; //V2阀芯反馈开度
var shotResultSpeedCurveInjectionCylinder = []; //速度
var shotResultMetalPressureCurve = []; //铸造压力
var shotTargetPressureCurve = []; //目标压力
var shotTargetSpeedCurve = []; //目标速度
var shotTargetWayCurveInjectionCylinder = []; //目标位置 /料管真空
var shotOpeningInletAnnularValveCurve = []; //V1阀芯设定开度 /动模真空
var shotOpeningOutletAnnularValveCurve = []; //V2阀芯设定开度 /定模真空
//曲线部分
for(var i=0;i<=30000;i++){
shotResultWayCurveInjectionClinder.push(tt.slice(352+i*4, 356+i*4).readFloatLE(0).toFixed(1));
shotResultInjectionCylinderPistonPressureCurve.push(tt.slice(352 + 120004 + i * 4, 356+120004 + i * 4).readFloatLE(0).toFixed(1));
shotResultInjectionCylinderAnnulusPressureCurve.push(tt.slice(352 + 120004 * 2 + i * 4, 356+120004*2 + i * 4).readFloatLE(0).toFixed(1));
shotResultPNaccCurve.push(tt.slice(352 + 120004 * 3 + i * 4, 356 + 120004 * 3 + i * 4).readFloatLE(0).toFixed(1));
shotResultSpoolPositionInletAnnularValveCurve.push(tt.slice(352 + 120004 * 4 + i * 4, 356 + 120004 * 4 + i * 4).readFloatLE(0).toFixed(1));
shotResultSpoolPositionOutletAnnularValveCurve.push(tt.slice(352 + 120004 * 5 + i * 4, 356 + 120004 * 5 + i * 4).readFloatLE(0).toFixed(1));
shotResultSpeedCurveInjectionCylinder.push(tt.slice(352 + 120004 * 6 + i * 4, 356 + 120004 * 6 + i * 4).readFloatLE(0).toFixed(2));
shotResultMetalPressureCurve.push(tt.slice(352 + 120004 * 7 + i * 4, 356 + 120004 * 7 + i * 4).readFloatLE(0).toFixed(1));
shotTargetPressureCurve.push(tt.slice(352 + 120004 * 8 + i * 4, 356 + 120004 * 8 + i * 4).readFloatLE(0).toFixed(0));
shotTargetSpeedCurve.push(tt.slice(352 + 120004 * 9 + i * 4, 356 + 120004 * 9 + i * 4).readFloatLE(0).toFixed(2));
shotTargetWayCurveInjectionCylinder.push(tt.slice(352 + 120004 * 10 + i * 4, 356 + 120004 * 10 + i * 4).readFloatLE(0).toFixed(0));
shotOpeningInletAnnularValveCurve.push(tt.slice(352 + 120004 * 11 + i * 4, 356 + 120004 * 11 + i * 4).readFloatLE(0));
shotOpeningOutletAnnularValveCurve.push(tt.slice(352 + 120004 * 12 + i * 4, 356 + 120004 * 12 + i * 4).readFloatLE(0));
}
var curveArray=[];
var durationAr=[];
durationAr.push(duration);
curveArray.push(durationAr);
curveArray.push(shotResultSpeedCurveInjectionCylinder);
curveArray.push(shotResultWayCurveInjectionClinder);
curveArray.push(shotResultInjectionCylinderPistonPressureCurve);
curveArray.push(shotResultInjectionCylinderAnnulusPressureCurve);
curveArray.push(shotResultPNaccCurve);
curveArray.push(shotResultMetalPressureCurve);
curveArray.push(shotResultSpoolPositionInletAnnularValveCurve);
curveArray.push(shotResultSpoolPositionOutletAnnularValveCurve);
curveArray.push(shotTargetSpeedCurve);
curveArray.push(shotTargetPressureCurve);
curveArray.push(dataAndTime);
combineArray.push(curveArray);
combineArray.push(spcArray);
combineArray.push(array3);
msg.payload =JSON.stringify(combineArray);
上面是node-red中对二进制数据流的处理,现在我要上面代码的功能,然后在VS中,用C#来实现。