小红球udp
This commit is contained in:
parent
afb59d0611
commit
71d803a242
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 1,
|
||||||
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
||||||
"specifiers": {},
|
"specifiers": {},
|
||||||
"packages": {}
|
"packages": {}
|
||||||
|
|||||||
@ -1,6 +1,14 @@
|
|||||||
import { CarInfoType, CenterCallBackMsgType, EnvironmentConfigurationType, JudgePerformInfo, UDPParamType } from '.';
|
import { CarInfoType, CenterCallBackMsgType, EnvironmentConfigurationType, JudgePerformInfo,
|
||||||
|
MarkRule,
|
||||||
|
UDPParamType } from '.';
|
||||||
import JudgeBusiness from '../pages/Judge/JudgeBusiness';
|
import JudgeBusiness from '../pages/Judge/JudgeBusiness';
|
||||||
|
|
||||||
|
export interface JudgeUDPData {
|
||||||
|
totalScore: number
|
||||||
|
kfArr: MarkRule[]
|
||||||
|
examTime: number
|
||||||
|
}
|
||||||
|
|
||||||
interface WorkerMessageData {
|
interface WorkerMessageData {
|
||||||
config?: EnvironmentConfigurationType;
|
config?: EnvironmentConfigurationType;
|
||||||
carInfo?: CarInfoType;
|
carInfo?: CarInfoType;
|
||||||
@ -10,7 +18,7 @@ interface WorkerMessageData {
|
|||||||
judgeUdp?: string
|
judgeUdp?: string
|
||||||
judgeUdpEnd?: string,
|
judgeUdpEnd?: string,
|
||||||
performInfo?: JudgePerformInfo,
|
performInfo?: JudgePerformInfo,
|
||||||
business?: JudgeBusiness
|
business?: JudgeUDPData
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface WorkerMessage {
|
export interface WorkerMessage {
|
||||||
|
|||||||
@ -305,7 +305,6 @@ export struct JudgePage {
|
|||||||
}
|
}
|
||||||
tempObj.markserial = mark.markserial
|
tempObj.markserial = mark.markserial
|
||||||
Reflect.set(this.markRuleListObj, `${mark.itemno}_${mark.markserial}`, tempObj)
|
Reflect.set(this.markRuleListObj, `${mark.itemno}_${mark.markserial}`, tempObj)
|
||||||
dConsole.log(JudgeTag, 'markRuleListObj' + JSON.stringify(this.markRuleListObj))
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -356,7 +356,9 @@ export class BaseJudge {
|
|||||||
judgeUI.isAllProjectsEnd = (allProjectNum - allEndProjectsNum === 0)
|
judgeUI.isAllProjectsEnd = (allProjectNum - allEndProjectsNum === 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 结束考试 */
|
/**
|
||||||
|
* 结束考试
|
||||||
|
*/
|
||||||
async handEndExam(judgeUI: JudgePage, that: JudgeBusiness) {
|
async handEndExam(judgeUI: JudgePage, that: JudgeBusiness) {
|
||||||
judgeUI.endExamDialogController.close();
|
judgeUI.endExamDialogController.close();
|
||||||
judgeUI.generateExamRecordsDialogController.open();
|
judgeUI.generateExamRecordsDialogController.open();
|
||||||
@ -513,7 +515,6 @@ export class BaseJudge {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 检测扣分、结束项目时该项目是否开始
|
* 检测扣分、结束项目时该项目是否开始
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
// async checkProjectIsStart(xmdm: number, currentType: 1 | 2, judgeUI: JudgePage, that: JudgeBusiness, kf?: MarkRule[]): Promise<boolean> {
|
// async checkProjectIsStart(xmdm: number, currentType: 1 | 2, judgeUI: JudgePage, that: JudgeBusiness, kf?: MarkRule[]): Promise<boolean> {
|
||||||
// if (xmdm == 20) {
|
// if (xmdm == 20) {
|
||||||
@ -565,6 +566,7 @@ export class BaseJudge {
|
|||||||
// }
|
// }
|
||||||
// return true
|
// return true
|
||||||
// }
|
// }
|
||||||
|
|
||||||
async judgeStart(callBack: Function, judgeUI: JudgePage, that: JudgeBusiness, beginExamInfo: JudgeBeginObj, initInfo: JudgeInitObj) {
|
async judgeStart(callBack: Function, judgeUI: JudgePage, that: JudgeBusiness, beginExamInfo: JudgeBeginObj, initInfo: JudgeInitObj) {
|
||||||
const name = judgeUI.name
|
const name = judgeUI.name
|
||||||
const kssycs = judgeUI.kssycs
|
const kssycs = judgeUI.kssycs
|
||||||
|
|||||||
@ -175,7 +175,11 @@ export default class JudgeBusiness {
|
|||||||
type: "data", data: {
|
type: "data", data: {
|
||||||
judgeUdp: msg,
|
judgeUdp: msg,
|
||||||
performInfo: this.performInfo,
|
performInfo: this.performInfo,
|
||||||
business: this as JudgeBusiness
|
business: {
|
||||||
|
totalScore: this.judgeUI.totalScore,
|
||||||
|
kfArr: this.judgeUI.kfArr,
|
||||||
|
examTime: this.judgeUI.examTime
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -289,7 +289,7 @@ export default struct DeductedPopup {
|
|||||||
//获取sysset表数据
|
//获取sysset表数据
|
||||||
async initSysset(sysset?: MASYSSETTableType[]) {
|
async initSysset(sysset?: MASYSSETTableType[]) {
|
||||||
const syssetParams = sysset || await GetSyncData<MASYSSETTableType>('MA_SYSSET');
|
const syssetParams = sysset || await GetSyncData<MASYSSETTableType>('MA_SYSSET');
|
||||||
dConsole.info('surenjun syssetParams', JSON.stringify(syssetParams));
|
// dConsole.info('surenjun syssetParams', JSON.stringify(syssetParams));
|
||||||
syssetParams.forEach(sys => {
|
syssetParams.forEach(sys => {
|
||||||
//监管序列号
|
//监管序列号
|
||||||
if (sys.v_no == '901') {
|
if (sys.v_no == '901') {
|
||||||
|
|||||||
@ -53,7 +53,7 @@ export const SendSerialPortData = (fd: number, data: number[]) => {
|
|||||||
// console.log(SerialPortTag, "wzj-----发送数据")
|
// console.log(SerialPortTag, "wzj-----发送数据")
|
||||||
return new Promise<number>((resolve, reject) => {
|
return new Promise<number>((resolve, reject) => {
|
||||||
HiSerialSDK.SerialSendAsync(fd, data, (value: number) => {
|
HiSerialSDK.SerialSendAsync(fd, data, (value: number) => {
|
||||||
console.log(SerialPortTag, "发送数据完成!")
|
// console.log(SerialPortTag, "发送数据完成!")
|
||||||
if (value === -1) {
|
if (value === -1) {
|
||||||
console.error(SerialPortTag, "发送失败!")
|
console.error(SerialPortTag, "发送失败!")
|
||||||
reject(-1)
|
reject(-1)
|
||||||
@ -70,7 +70,7 @@ export const SendSerialPortData = (fd: number, data: number[]) => {
|
|||||||
* @returns Promise<HiSerialSDK.receiveInfo> 成功返回接收到的数据,失败返回-1
|
* @returns Promise<HiSerialSDK.receiveInfo> 成功返回接收到的数据,失败返回-1
|
||||||
*/
|
*/
|
||||||
export const ReceiveSerialPortData = (fd: number, timeout: number,) => {
|
export const ReceiveSerialPortData = (fd: number, timeout: number,) => {
|
||||||
console.log(SerialPortTag, "wzj-----接受数据")
|
// console.log(SerialPortTag, "wzj-----接受数据")
|
||||||
return new Promise<HiSerialSDK.receiveInfo>((resolve) => {
|
return new Promise<HiSerialSDK.receiveInfo>((resolve) => {
|
||||||
HiSerialSDK.SerialRecvAsync(fd, timeout, (value: HiSerialSDK.receiveInfo) => {
|
HiSerialSDK.SerialRecvAsync(fd, timeout, (value: HiSerialSDK.receiveInfo) => {
|
||||||
resolve(value)
|
resolve(value)
|
||||||
|
|||||||
@ -12,12 +12,9 @@ interface MsgExt {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function generateHead(param: MsgExt, lsh: number): number[] {
|
function generateHead(param: MsgExt, lsh: number): number[] {
|
||||||
// let a = new Uint16Array(StringToASCII(`${param.id}${FillZero(param.placeId, 3)}`))
|
|
||||||
let a = new Uint8Array(new Uint16Array([Number(`${param.id}${FillZero(param.placeId, 3)}`)]).buffer)
|
let a = new Uint8Array(new Uint16Array([Number(`${param.id}${FillZero(param.placeId, 3)}`)]).buffer)
|
||||||
// let b = new Uint32Array(StringToASCII(`${FillZero(param.carNo, 4)}${lsh}`))
|
let b = new Uint8Array(new Uint32Array([Number(`${FillZero(param.carNo, 4)}${FillZero(lsh, 6)}`)]).buffer)
|
||||||
let b = new Uint8Array(new Uint32Array([Number(`${FillZero(param.carNo, 4)}${lsh}`)]).buffer)
|
let c = new Uint8Array(new Uint16Array([param.list.length]).buffer)
|
||||||
// let c = new Uint16Array(param.list.length)
|
|
||||||
let c = new Uint8Array(new Uint16Array(param.list.length).buffer)
|
|
||||||
return [...a, ...b, ...c];
|
return [...a, ...b, ...c];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,8 +81,8 @@ export default class UdpClient {
|
|||||||
address: {
|
address: {
|
||||||
address: this.oppositeIp, port: parseInt(this.oppositeIpPort), family: 1
|
address: this.oppositeIp, port: parseInt(this.oppositeIpPort), family: 1
|
||||||
}
|
}
|
||||||
}).then(res => {
|
}).then(() => {
|
||||||
// console.log(UDPTag, "udp发送成功", JSON.stringify(res))
|
// console.log(UDPTag, "udp发送成功")
|
||||||
}).catch((e: BusinessError) => {
|
}).catch((e: BusinessError) => {
|
||||||
console.error(UDPTag, "udp发送失败", JSON.stringify(e))
|
console.error(UDPTag, "udp发送失败", JSON.stringify(e))
|
||||||
})
|
})
|
||||||
@ -110,9 +107,8 @@ export default class UdpClient {
|
|||||||
|
|
||||||
// 发送消息
|
// 发送消息
|
||||||
sendMsgExt(param: MsgExt, lsh: number) {
|
sendMsgExt(param: MsgExt, lsh: number) {
|
||||||
dConsole.info(UDPTag, "组装前小红球数据", param, lsh)
|
|
||||||
const msgData = this.setWholeMsg(param, lsh)
|
const msgData = this.setWholeMsg(param, lsh)
|
||||||
dConsole.info(UDPTag, "组装后小红球数据", msgData.byteLength)
|
dConsole.info(UDPTag, "组装后小红球数据", new Uint8Array(msgData))
|
||||||
this.sendMsg(msgData)
|
this.sendMsg(msgData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import {
|
|||||||
EnvironmentConfigurationType,
|
EnvironmentConfigurationType,
|
||||||
Gps,
|
Gps,
|
||||||
JudgePerformInfo,
|
JudgePerformInfo,
|
||||||
|
JudgeUDPData,
|
||||||
PLCDataType,
|
PLCDataType,
|
||||||
ProjectDataType,
|
ProjectDataType,
|
||||||
ProjectItemType,
|
ProjectItemType,
|
||||||
@ -26,9 +27,7 @@ import JudgeBusiness from '../../pages/Judge/JudgeBusiness';
|
|||||||
|
|
||||||
class JudgeUdpBusiness {
|
class JudgeUdpBusiness {
|
||||||
private static instance: JudgeUdpBusiness
|
private static instance: JudgeUdpBusiness
|
||||||
// public udpIndex = 1;
|
|
||||||
private udp: UdpClient = new UdpClient()
|
private udp: UdpClient = new UdpClient()
|
||||||
// private currentUdpIndex = 0;
|
|
||||||
private carInfo: CarInfoType = {}
|
private carInfo: CarInfoType = {}
|
||||||
private singlePlay: boolean = false
|
private singlePlay: boolean = false
|
||||||
private lsh: string = ""
|
private lsh: string = ""
|
||||||
@ -43,7 +42,7 @@ class JudgeUdpBusiness {
|
|||||||
return JudgeUdpBusiness.instance
|
return JudgeUdpBusiness.instance
|
||||||
}
|
}
|
||||||
|
|
||||||
async getMessageHeartbeat(business: JudgeBusiness, msg: string, performInfo: JudgePerformInfo, isEnd: boolean = false): Promise<number[]> {
|
async getMessageHeartbeat(business: JudgeUDPData, msg: string, performInfo: JudgePerformInfo, isEnd: boolean = false): Promise<number[]> {
|
||||||
let gpsDigit = JudgeConfig.fourInOneScreen.gpsDigit
|
let gpsDigit = JudgeConfig.fourInOneScreen.gpsDigit
|
||||||
const asclshArr = StringToASCII(FillZero(
|
const asclshArr = StringToASCII(FillZero(
|
||||||
this.singlePlay
|
this.singlePlay
|
||||||
@ -107,9 +106,9 @@ class JudgeUdpBusiness {
|
|||||||
//扣分值
|
//扣分值
|
||||||
NumberToByteArray(100 - Math.abs(business.totalScore), 2 * 8),
|
NumberToByteArray(100 - Math.abs(business.totalScore), 2 * 8),
|
||||||
//扣分数量
|
//扣分数量
|
||||||
NumberToByteArray(business.judgeUI.kfArr.length, 2 * 8),
|
NumberToByteArray(business.kfArr.length, 2 * 8),
|
||||||
//n个扣分序号
|
//n个扣分序号
|
||||||
business.judgeUI.kfArr.map(kf => NumberToByteArray(kf.kfxh, 8)[0]),
|
business.kfArr.map(kf => NumberToByteArray(kf.kfxh!, 8)[0]),
|
||||||
//牵引车第二gps精度、纬度
|
//牵引车第二gps精度、纬度
|
||||||
NumberToByteArray(0, 4 * 8), NumberToByteArray(0, 4 * 8),
|
NumberToByteArray(0, 4 * 8), NumberToByteArray(0, 4 * 8),
|
||||||
//牵引车第二航向角
|
//牵引车第二航向角
|
||||||
@ -117,7 +116,7 @@ class JudgeUdpBusiness {
|
|||||||
//摩托压线 Byte[20],
|
//摩托压线 Byte[20],
|
||||||
NumberToByteArray(0, 20 * 8),
|
NumberToByteArray(0, 20 * 8),
|
||||||
//考试用时
|
//考试用时
|
||||||
NumberToByteArray(business.judgeUI.examTime, 4 * 8),
|
NumberToByteArray(business.examTime, 4 * 8),
|
||||||
//项目用时
|
//项目用时
|
||||||
NumberToByteArray(FillZero(0, 2), 2 * 8),
|
NumberToByteArray(FillZero(0, 2), 2 * 8),
|
||||||
//设备信号状态
|
//设备信号状态
|
||||||
@ -237,7 +236,7 @@ class JudgeUdpBusiness {
|
|||||||
let bodyJudge = this.setMessageExclusive(params.list);
|
let bodyJudge = this.setMessageExclusive(params.list);
|
||||||
let end = [13, 10];
|
let end = [13, 10];
|
||||||
const arr: Array<number> = [...head, ...headJudge, ...params.list, ...bodyJudge, ...end]
|
const arr: Array<number> = [...head, ...headJudge, ...params.list, ...bodyJudge, ...end]
|
||||||
return this.array2Byte(arr).buffer
|
return new Uint8Array(arr).buffer
|
||||||
}
|
}
|
||||||
|
|
||||||
private array2Byte(array: Array<number>) {
|
private array2Byte(array: Array<number>) {
|
||||||
@ -252,7 +251,7 @@ class JudgeUdpBusiness {
|
|||||||
private setMsgHead(params: UDPParamType) {
|
private setMsgHead(params: UDPParamType) {
|
||||||
const lshNo = SerialNumberInstance.get()
|
const lshNo = SerialNumberInstance.get()
|
||||||
let a = NumberToByteArray(Number(`${params.id}${FillZero(params.placeId, 3)}`), 2 * 8);
|
let a = NumberToByteArray(Number(`${params.id}${FillZero(params.placeId, 3)}`), 2 * 8);
|
||||||
let b = NumberToByteArray(Number(`${FillZero(params.carNo, 4)}${lshNo}`), 4 * 8);
|
let b = NumberToByteArray(Number(`${FillZero(params.carNo, 4)}${FillZero(lshNo, 6)}`), 4 * 8);
|
||||||
let c = NumberToByteArray(params.list.length, 2 * 8);
|
let c = NumberToByteArray(params.list.length, 2 * 8);
|
||||||
return [...a, ...b, ...c];
|
return [...a, ...b, ...c];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -83,7 +83,7 @@ function getDataFn(config: EnvironmentConfigurationType) {
|
|||||||
// console.log(WorkerTag, "后置机消息", data)
|
// console.log(WorkerTag, "后置机消息", data)
|
||||||
try {
|
try {
|
||||||
const res = await SerialPortService.getData()
|
const res = await SerialPortService.getData()
|
||||||
console.log(SerialPortTag, "档位原始数据", res)
|
// console.log(SerialPortTag, "档位原始数据", res)
|
||||||
if (res.length > 0) {
|
if (res.length > 0) {
|
||||||
const dataArray = data.split(",");
|
const dataArray = data.split(",");
|
||||||
// 替换data的第28位
|
// 替换data的第28位
|
||||||
|
|||||||
@ -1,20 +1,18 @@
|
|||||||
{
|
{
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 1,
|
||||||
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
||||||
"specifiers": {
|
"specifiers": {
|
||||||
"@ohos/crypto-js@2.0.3": "@ohos/crypto-js@2.0.3",
|
"@ohos/crypto-js@2.0.3": "@ohos/crypto-js@2.0.3",
|
||||||
"@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19"
|
"@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19"
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
"@ohos/hypium@1.0.19": {
|
|
||||||
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har",
|
|
||||||
"integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ==",
|
|
||||||
"registryType": "ohpm"
|
|
||||||
},
|
|
||||||
"@ohos/crypto-js@2.0.3": {
|
"@ohos/crypto-js@2.0.3": {
|
||||||
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/crypto-js/-/crypto-js-2.0.3.har",
|
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/crypto-js/-/crypto-js-2.0.3.har",
|
||||||
"integrity": "sha512-LuHaR1kD5PxnOXnuR1fWvPwGtbed9Q/QGzk6JOh8y5Wdzvi8brPesODZiaWf9scOVRHsbTPOtZw91vWB35p1vQ==",
|
"integrity": "sha512-LuHaR1kD5PxnOXnuR1fWvPwGtbed9Q/QGzk6JOh8y5Wdzvi8brPesODZiaWf9scOVRHsbTPOtZw91vWB35p1vQ=="
|
||||||
"registryType": "ohpm"
|
},
|
||||||
|
"@ohos/hypium@1.0.19": {
|
||||||
|
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har",
|
||||||
|
"integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user