32 lines
1.5 KiB
JavaScript
32 lines
1.5 KiB
JavaScript
// 解析数据包
|
|
module.exports = (middleware, data) => {
|
|
const utils = middleware.utils;
|
|
const shunt = middleware.shunt;
|
|
let msg;
|
|
if (data == 'e5bf83e8b7b3') {
|
|
msg = 'e5bf83e8b7b37878787888888888';
|
|
} else {
|
|
let regex = /..?/g,
|
|
arr = data.match(regex),
|
|
baseArr = utils.getArr(arr, 0, 14),
|
|
baseObj = {
|
|
infoSource: { label: "信源", data: parseInt(baseArr[0] + baseArr[1], 16) },
|
|
destination: { label: "信宿", data: parseInt(baseArr[2] + baseArr[3], 16) },
|
|
packageNumber: { label: "包序号", data: parseInt(baseArr[4] + baseArr[5] + baseArr[6] + baseArr[7], 16) },
|
|
dataItem: { label: "当前数据项", data: parseInt(baseArr[8], 16) },
|
|
dataLength: { label: "当前数据段总长度", data: parseInt(baseArr[9] + baseArr[10], 16) },
|
|
resendFlag: { label: "重发标志", data: parseInt(baseArr[11], 16) },
|
|
resendItem: { label: "重发数据项", data: parseInt(baseArr[12], 16) },
|
|
resendLength: { label: "重发数据段总长度", data: parseInt(baseArr[13] + baseArr[14], 16) },
|
|
dataContent: { label: "数据段", }
|
|
};
|
|
if (baseObj.dataItem.data !== 0) {
|
|
shunt.selectXFType(middleware, 'now', baseObj, arr);
|
|
}
|
|
if (baseObj.resendFlag.data !== 0) {
|
|
shunt.selectXFType(middleware, 'resend', baseObj, arr);
|
|
}
|
|
msg = baseObj;
|
|
}
|
|
return msg;
|
|
}; |