小红球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