Files
bd-short-message-platform/app/middleware/parseDataPackage/parseDataPackage.js

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;
};