优化tcp
This commit is contained in:
		
							parent
							
								
									16e035713b
								
							
						
					
					
						commit
						6c45615d8c
					
				
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										35
									
								
								entry/src/main/ets/ ServiceExtAbility/ServiceExtAbility.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								entry/src/main/ets/ ServiceExtAbility/ServiceExtAbility.ets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| import ServiceExtension from '@ohos.app.ability.ServiceExtensionAbility' | ||||
| 
 | ||||
| import hilog from '@ohos.hilog'; | ||||
| import { getTCP } from '../common/utils/GlobalTcp'; | ||||
| import ServiceExtImpl from '../IdlServiceExt/idl_service_ext_impl'; | ||||
| 
 | ||||
| const TAG: string = '[ServiceExtAbility]'; | ||||
| const DOMAIN_NUMBER: number = 0xFF00; | ||||
| 
 | ||||
| export default class ServiceExtAbility extends ServiceExtension { | ||||
|   serviceExtImpl: ServiceExtImpl = new ServiceExtImpl('ExtImpl', this.context); | ||||
| 
 | ||||
|   async onCreate(want): Promise<void> { | ||||
|     getTCP() | ||||
|     hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility-- onCreate, want: ${want.abilityName}`); | ||||
|   }; | ||||
| 
 | ||||
|   onRequest(want, startId: number): void { | ||||
|     hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--onRequest, want: ${want.abilityName}`); | ||||
|   }; | ||||
| 
 | ||||
|   onConnect(want) { | ||||
|     hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--onConnect, want: ${want.abilityName}`); | ||||
|     // 返回ServiceExtImpl对象,客户端获取后便可以与ServiceExtensionAbility进行通信 | ||||
|     return this.serviceExtImpl; | ||||
|   }; | ||||
| 
 | ||||
|   onDisconnect(want): void { | ||||
|     hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--onDisconnect, want: ${want.abilityName}`); | ||||
|   }; | ||||
| 
 | ||||
|   onDestroy(): void { | ||||
|     hilog.info(DOMAIN_NUMBER, TAG, 'js-test ServiceExtensionAbility--onDestroy'); | ||||
|   }; | ||||
| }; | ||||
							
								
								
									
										18
									
								
								entry/src/main/ets/ ServiceExtAbility/ServiceInteractive.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								entry/src/main/ets/ ServiceExtAbility/ServiceInteractive.ets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| import common from '@ohos.app.ability.common'; | ||||
| import hilog from '@ohos.hilog'; | ||||
| import Want from '@ohos.app.ability.Want'; | ||||
| 
 | ||||
| const DOMAIN_NUMBER: number = 0xFF00; | ||||
| 
 | ||||
| const TAG: string = '[tcp转发服务]'; | ||||
| let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; // UIAbilityContext | ||||
| let want: Want = { | ||||
|   deviceId: '', | ||||
|   bundleName: 'com.oh.dts', | ||||
|   abilityName: 'ServiceExtAbility' | ||||
| }; | ||||
| context.startServiceExtensionAbility(want).then(() => { | ||||
|   hilog.info(DOMAIN_NUMBER, TAG, `启动成功`); | ||||
| }).catch((err) => { | ||||
|   hilog.error(DOMAIN_NUMBER, TAG, `启动失败`); | ||||
| }); | ||||
							
								
								
									
										7
									
								
								entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| export default interface IIdlServiceExt { | ||||
|   processData(data: string, callback: processDataCallback): void; | ||||
|   insertDataToMap(key: string, val: number, callback: insertDataToMapCallback): void; | ||||
| } | ||||
| export type processDataCallback = (errCode: number, returnValue: string) => void; | ||||
| export type insertDataToMapCallback = (errCode: number) => void; | ||||
| 
 | ||||
							
								
								
									
										23
									
								
								entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | ||||
| import IdlServiceExtStub from './idl_service_ext_stub'; | ||||
| import hilog from '@ohos.hilog'; | ||||
| import type { insertDataToMapCallback } from './i_idl_service_ext'; | ||||
| import type { processDataCallback } from './i_idl_service_ext'; | ||||
| import { getTCP } from '../common/utils/GlobalTcp'; | ||||
| 
 | ||||
| const ERR_OK = 0; | ||||
| const TAG: string = "[IdlServiceExtImpl]"; | ||||
| const DOMAIN_NUMBER: number = 0xFF00; | ||||
| 
 | ||||
| // 开发者需要在这个类型里对接口进行实现
 | ||||
| export default class ServiceExtImpl extends IdlServiceExtStub { | ||||
|   processData(data: string, callback: processDataCallback): void { | ||||
|     // 开发者自行实现业务逻辑
 | ||||
|     hilog.info(DOMAIN_NUMBER, TAG, `收到主进程信息`); | ||||
|   } | ||||
| 
 | ||||
|   insertDataToMap(key: string, val: number, callback: insertDataToMapCallback): void { | ||||
|     // 开发者自行实现业务逻辑
 | ||||
|     hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--insertDataToMap, key: ${key}  val: ${val}`); | ||||
|     callback(ERR_OK); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										57
									
								
								entry/src/main/ets/IdlServiceExt/idl_service_ext_proxy.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								entry/src/main/ets/IdlServiceExt/idl_service_ext_proxy.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | ||||
| 
 | ||||
| 
 | ||||
| import {processDataCallback} from "./i_idl_service_ext"; | ||||
| import {insertDataToMapCallback} from "./i_idl_service_ext"; | ||||
| import IIdlServiceExt from "./i_idl_service_ext"; | ||||
| import rpc from "@ohos.rpc"; | ||||
| 
 | ||||
| export default class IdlServiceExtProxy implements IIdlServiceExt { | ||||
|   constructor(proxy) { | ||||
|     this.proxy = proxy; | ||||
|   } | ||||
| 
 | ||||
|   processData(data: string, callback: processDataCallback): void | ||||
|   { | ||||
|     let _option = new rpc.MessageOption(); | ||||
|     let _data = new rpc.MessageParcel(); | ||||
|     let _reply = new rpc.MessageParcel(); | ||||
|     // _data.writeString(data);
 | ||||
|     _data.writeString(data) | ||||
|     this.proxy.sendRequest(IdlServiceExtProxy.COMMAND_PROCESS_DATA, _data, _reply, _option).then(function(result) { | ||||
|       if (result.errCode === 0) { | ||||
|         let _errCode = result.reply.readInt(); | ||||
|         if (_errCode != 0) { | ||||
|           let _returnValue = undefined; | ||||
|           callback(_errCode, _returnValue); | ||||
|           return; | ||||
|         } | ||||
|         let _returnValue = result.reply.readString(); | ||||
|         callback(_errCode, _returnValue); | ||||
|       } else { | ||||
|         console.log("sendRequest failed, errCode: " + result.errCode); | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   insertDataToMap(key: string, val: number, callback: insertDataToMapCallback): void | ||||
|   { | ||||
|     let _option = new rpc.MessageOption(); | ||||
|     let _data = new rpc.MessageParcel(); | ||||
|     let _reply = new rpc.MessageParcel(); | ||||
|     _data.writeString(key); | ||||
|     _data.writeInt(val); | ||||
|     this.proxy.sendRequest(IdlServiceExtProxy.COMMAND_INSERT_DATA_TO_MAP, _data, _reply, _option).then(function(result) { | ||||
|       if (result.errCode === 0) { | ||||
|         let _errCode = result.reply.readInt(); | ||||
|         callback(_errCode); | ||||
|       } else { | ||||
|         console.log("sendRequest failed, errCode: " + result.errCode); | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   static readonly COMMAND_PROCESS_DATA = 1; | ||||
|   static readonly COMMAND_INSERT_DATA_TO_MAP = 2; | ||||
|   private proxy | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										55
									
								
								entry/src/main/ets/IdlServiceExt/idl_service_ext_stub.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								entry/src/main/ets/IdlServiceExt/idl_service_ext_stub.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,55 @@ | ||||
| import { processDataCallback } from "./i_idl_service_ext"; | ||||
| import { insertDataToMapCallback } from "./i_idl_service_ext"; | ||||
| import IIdlServiceExt from "./i_idl_service_ext"; | ||||
| import rpc from "@ohos.rpc"; | ||||
| import common from '@ohos.app.ability.common'; | ||||
| 
 | ||||
| export default class IdlServiceExtStub extends rpc.RemoteObject implements IIdlServiceExt { | ||||
|   protected context: common.ServiceExtensionContext | ||||
| 
 | ||||
|   constructor(des: string, context: common.ServiceExtensionContext) { | ||||
|     super(des); | ||||
|     this.context = context; | ||||
|   } | ||||
| 
 | ||||
|   onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option): Promise<boolean> { | ||||
|     console.log("lixiao onRemoteRequest called, code = " + code); | ||||
|     return new Promise<boolean>((resolve, reject) => { | ||||
|       switch (code) { | ||||
|         case IdlServiceExtStub.COMMAND_PROCESS_DATA: { | ||||
|           let _data = data.readString() | ||||
|           this.processData(_data, (errCode, returnValue) => { | ||||
|             console.log("lixiao callback", returnValue); | ||||
|             reply.writeInt(errCode); | ||||
|             reply.writeString(returnValue); | ||||
|             resolve(true) | ||||
|           }); | ||||
|           break | ||||
|         } | ||||
|         case IdlServiceExtStub.COMMAND_INSERT_DATA_TO_MAP: { | ||||
|           let _key = data.readString(); | ||||
|           let _val = data.readInt(); | ||||
|           this.insertDataToMap(_key, _val, (errCode) => { | ||||
|             reply.writeInt(errCode); | ||||
|             resolve(true) | ||||
|           }); | ||||
|           break | ||||
|         } | ||||
|         default: { | ||||
|           console.log("invalid request code" + code); | ||||
|           reject(true) | ||||
|         } | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   processData(data: string, callback: processDataCallback): void { | ||||
|   } | ||||
| 
 | ||||
|   insertDataToMap(key: string, val: number, callback: insertDataToMapCallback): void { | ||||
|   } | ||||
| 
 | ||||
|   static readonly COMMAND_PROCESS_DATA = 1; | ||||
|   static readonly COMMAND_INSERT_DATA_TO_MAP = 2; | ||||
| } | ||||
| 
 | ||||
| @ -26,29 +26,31 @@ export async function getTCP(flag = false) { | ||||
|     await globalThis.TcpClient.sendMsg(globalThis.carInfo.carNo) //1002
 | ||||
| 
 | ||||
|     clearInterval(globalThis.intervalSendMsg) | ||||
| 
 | ||||
|     globalThis.intervalSendMsg = setInterval(() => { | ||||
|       if (!globalThis.getCloseTcp) { | ||||
|         globalThis.TcpClient.sendMsg(globalThis.carInfo.carNo) //1002
 | ||||
|         globalThis.tcpStep += 1 | ||||
|         if (globalThis.tcpStep > 30) { | ||||
|         if (globalThis.tcpStep > 4) { | ||||
|           globalThis.tcpStep = 0 | ||||
|           getTCP() | ||||
|           getTCP(true) | ||||
|           console.log('tcp重连开始') | ||||
|         } | ||||
|       } | ||||
|     }, 1000 / 3) | ||||
|     }, 1000 * 2) | ||||
|     globalThis.TcpClient.onError((val) => { | ||||
|       setTimeout(() => { | ||||
|         getTCP() | ||||
|         getTCP(true) | ||||
|       }, 1000) | ||||
|     }) | ||||
|     await globalThis.TcpClient.onMessage((val) => { | ||||
|       setTimeout(() => { | ||||
|         if (val && globalThis.udpClient?.sendMsg) { | ||||
|           globalThis.udpClient?.sendMsg(val) | ||||
|           globalThis.udpClientGps2?.sendMsg(val) | ||||
|         } | ||||
|       }, 1000) | ||||
|       console.log("tcp test 收到差分改正数 length: ", val.byteLength) | ||||
|       if (val) { | ||||
|         globalThis.udpClient?.sendMsg(val, () => { | ||||
|           console.log("tcp test 后置机写入改正数成功") | ||||
|         }) | ||||
|         globalThis.udpClientGps2?.sendMsg(val) | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|   return | ||||
|  | ||||
| @ -105,13 +105,13 @@ export default class TcpClient { | ||||
|         console.log(`${TAG} TCP send error ${JSON.stringify(err)}`) | ||||
|         this.tcpSendNum++ | ||||
|         if (!globalThis.getCloseTcp && this.tcpSendNum > 10) { | ||||
|           globalThis.getCloseTcp = true | ||||
|           setTimeout(async () => { | ||||
|             getTCP(true) | ||||
|           }, 3000) | ||||
|           this.tcpSendNum = 0 | ||||
|           return | ||||
|         } | ||||
|         globalThis.getCloseTcp = true | ||||
|         reject(false) | ||||
|       }); | ||||
|     }) | ||||
|  | ||||
| @ -281,10 +281,6 @@ export default class UdpClientByCenter { | ||||
|       const newArr = JSON.parse(JSON.stringify(strachArr)) | ||||
|       if (strachArr[83] != '4') { | ||||
|         console.log('差分状态异常', strachArr[83], strachArr[92]) | ||||
|         this.writeLog({ | ||||
|           time: dateFormat(new Date()), | ||||
|           PLC: `${TAG}差分状态异常,${strachArr[83]},${strachArr[92]}`, | ||||
|         }) | ||||
|       } else { | ||||
|         globalThis.dialogOpen = false | ||||
|         this.chafenFlag = 0 | ||||
| @ -298,10 +294,6 @@ export default class UdpClientByCenter { | ||||
|     this.testIfUdpConnetced(callback) | ||||
|   } | ||||
| 
 | ||||
|   async writeLog(param) { | ||||
|     // const fileUtil = new FileUtil(globalThis.context)
 | ||||
|     // fileUtil.editFile(`${this.folderPath}/plcLog.txt`, JSON.stringify(param)+`\n`)
 | ||||
|   } | ||||
| 
 | ||||
|   async initPath() { | ||||
|     // const fileUtil = new FileUtil(globalThis.context)
 | ||||
| @ -334,10 +326,6 @@ export default class UdpClientByCenter { | ||||
|         lightLineUdp?.send(this.plcUdpError ? arrRedBuffer : (isJudge ? arrGreenBugger : arrBlueBuffer)); | ||||
|         if (this.plcUdpError) { | ||||
|           num++ | ||||
|           this.writeLog({ | ||||
|             time: dateFormat(new Date()), | ||||
|             PLC: 'plc udp信号丢失', | ||||
|           }) | ||||
|           if (num == 3) { | ||||
|             getUDP(globalThis.context, true) | ||||
|             globalThis.title = 'plc udp信号丢失' | ||||
|  | ||||
| @ -8,6 +8,7 @@ import DB from '../common/database/DbSql'; | ||||
| import { initTable } from '../common/service/initable'; | ||||
| import { examPeerOccupy } from "../pages/judgeSDK/api" | ||||
| import { judgeConfig } from '../pages/judgeSDK/utils/judgeConfig'; | ||||
| import Want from '@ohos.app.ability.Want'; | ||||
| 
 | ||||
| export default class EntryAbility extends UIAbility { | ||||
|   async onCreate(want, launchParam) { | ||||
| @ -24,15 +25,20 @@ export default class EntryAbility extends UIAbility { | ||||
|     hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); | ||||
|   } | ||||
| 
 | ||||
|   onDestroy() { | ||||
|   async onDestroy() { | ||||
|     const arrClose = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00] | ||||
|     const arrCloseBuffer = Array2Byte(arrClose).buffer | ||||
|     globalThis?.lightLineUdp?.send(arrCloseBuffer); | ||||
|     let want: Want = { | ||||
|       deviceId: '', | ||||
|       bundleName: 'com.oh.dts', | ||||
|       abilityName: 'ServiceExtAbility' | ||||
|     }; | ||||
|     await this.context.stopServiceExtensionAbility(want) | ||||
|     hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); | ||||
|   } | ||||
| 
 | ||||
|   async onWindowStageCreate(windowStage: window.WindowStage) { | ||||
|     // this.context | ||||
|     // Main window is created, set main page for this ability | ||||
|     hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); | ||||
| 
 | ||||
| @ -40,7 +46,6 @@ export default class EntryAbility extends UIAbility { | ||||
|     //   console.log("examPeerOccupy", examPeerOccupy()) | ||||
|     // }, 5000) | ||||
| 
 | ||||
| 
 | ||||
|     globalThis.carInfo = {} | ||||
|     globalThis.examinerInfo = {} | ||||
|     globalThis.deviceNo = ''; | ||||
|  | ||||
| @ -19,6 +19,8 @@ import { delPic } from '../common/service/videoService'; | ||||
| import imageBtn from './compontents/imageBtn'; | ||||
| import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; | ||||
| import { examJudgeVersion } from './judgeSDK/api'; | ||||
| import IdlServiceExtProxy from '../IdlServiceExt/idl_service_ext_proxy'; | ||||
| import Want from '@ohos.app.ability.Want'; | ||||
| 
 | ||||
| @Entry | ||||
| @Component | ||||
| @ -39,6 +41,7 @@ struct Index { | ||||
|   @State initParamFlag: boolean = false | ||||
|   @State fd: number = -1; | ||||
|   @State num: number = 0; | ||||
|   private serviceExtProxy: IdlServiceExtProxy | ||||
|   private fileHelper = null; | ||||
|   private errorDialog: CustomDialogController = new CustomDialogController({ | ||||
|     builder: errorMsgDialog({ | ||||
| @ -76,6 +79,8 @@ struct Index { | ||||
|     globalThis.lsh = '1111111111111' | ||||
|     globalThis.errorDialog = this.errorDialog | ||||
|     globalThis.udpEvent = new UdpEvent(); | ||||
|     await this.startServiceAbility() | ||||
| 
 | ||||
|     getSyncData('MA_SYSSET').then(async (data: any[]) => { | ||||
|       data.forEach(async sys => { | ||||
|         //判断是否能点开始考试 | ||||
| @ -89,6 +94,51 @@ struct Index { | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
|   async startServiceAbility() { | ||||
|     let want: Want = { | ||||
|       deviceId: '', | ||||
|       bundleName: 'com.oh.dts', | ||||
|       abilityName: 'ServiceExtAbility' | ||||
|     }; | ||||
| 
 | ||||
|     await this.context.startServiceExtensionAbility(want).then(() => { | ||||
|       // 成功启动后台服务 | ||||
|       console.log('js-test index.ets Succeeded in starting ServiceExtensionAbility.'); | ||||
|       let self = this; | ||||
|       let options: common.ConnectOptions = { | ||||
|         onConnect(elementName, remote): void { | ||||
|           console.log('js-test index.ets onConnect callback'); | ||||
|           if (remote === null) { | ||||
|             console.log(`js-test index.ets onConnect remote is null`); | ||||
|             return; | ||||
|           } | ||||
|           self.serviceExtProxy = new IdlServiceExtProxy(remote); | ||||
|           globalThis.serviceExtProxy = self.serviceExtProxy | ||||
|           console.log(`js-test index.ets processData, this.serviceExtProxy == `, self.serviceExtProxy); | ||||
|         }, | ||||
|         onDisconnect(elementName): void { | ||||
|           console.log('js-test index.ets onDisconnect callback'); | ||||
|         }, | ||||
|         onFailed(code): void { | ||||
|           console.log('js-test index.ets onFailed callback', JSON.stringify(code)); | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       // 建立连接后返回的Id需要保存下来,在解绑服务时需要作为参数传入 | ||||
|       // let connectionId = context.connectServiceExtensionAbility(want, options); | ||||
|       try { | ||||
|         this.context.connectServiceExtensionAbility(want, options); | ||||
|       } catch (e) { | ||||
|         console.log('js-test index.ets connectServiceExtensionAbility err == ', JSON.stringify(e)); | ||||
|       } | ||||
|       // 成功连接后台服务 | ||||
|       console.log('js-test index.ets connectServiceExtensionAbility success'); | ||||
| 
 | ||||
|     }).catch((err) => { | ||||
|       console.log(`js-test index.ets Failed to start ServiceExtensionAbility. Code is ${err.code}, message is ${err.message}`); | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
|   async networkExam(isSingle: boolean = false) { | ||||
|     if (this.loading) { | ||||
|       return | ||||
| @ -183,9 +233,7 @@ struct Index { | ||||
|       globalThis.singlePlay = false | ||||
|     } | ||||
|     this.isSingle = globalThis.singlePlay | ||||
|     // this.loading = false | ||||
|     this.num = 0 | ||||
|     // const TcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) | ||||
|     globalThis.lsh = '1111111111111' | ||||
|   } | ||||
| 
 | ||||
| @ -201,11 +249,10 @@ struct Index { | ||||
|   } | ||||
| 
 | ||||
|   userAuth() { | ||||
|     return new Promise((reslove, reject) => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       const permissions: Array<Permissions> = ["ohos.permission.SET_TIME", "ohos.permission.READ_IMAGEVIDEO", "ohos.permission.DISTRIBUTED_DATASYNC", 'ohos.permission.CONNECTIVITY_INTERNAL', 'ohos.permission.CAMERA', 'ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA', 'ohos.permission.FILE_ACCESS_MANAGER']; | ||||
|       let context = this.context; | ||||
|       let atManager = abilityAccessCtrl.createAtManager(); | ||||
|       // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗 | ||||
| 
 | ||||
|       atManager.requestPermissionsFromUser(context, permissions).then((data) => { | ||||
|         this.initParams() | ||||
| @ -213,11 +260,9 @@ struct Index { | ||||
|         let length: number = grantStatus.length; | ||||
|         for (let i = 0; i < length; i++) { | ||||
|           if (grantStatus[i] === 0) { | ||||
|             // 用户授权,可以继续访问目标操作 | ||||
|             reslove(true) | ||||
|             resolve(true) | ||||
|           } else { | ||||
|             reject() | ||||
|             // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限 | ||||
|             return; | ||||
|           } | ||||
|         } | ||||
| @ -245,7 +290,6 @@ struct Index { | ||||
|     await getDeviceInfo(this.context) | ||||
|     await getCarInfo() | ||||
|     await getUDP2(this.context, false) | ||||
|     getTCP() | ||||
|     this.deviceId = globalThis.carInfo.carNo | ||||
|     await setCurrentTime(); | ||||
|     if (!globalThis.distanceClass) { | ||||
|  | ||||
| @ -198,7 +198,7 @@ export default struct SignDisplayCom { | ||||
|               Text('收星数:' + this.signArr[84]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio) | ||||
|               Text('海拔高:' + this.signArr[85]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio) | ||||
|               Text('高度差:' + this.signArr[86]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio) | ||||
|               Text('龄期:' + this.signArr[87]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio) | ||||
|               Text('龄期:' + this.signArr[87]).fontColor(Color.Red).fontSize(14 * this.ratio).height(18 * this.ratio) | ||||
|               Text('维度因子:' + this.signArr[88]) | ||||
|                 .fontColor('#FFB433') | ||||
|                 .fontSize(14 * this.ratio) | ||||
| @ -262,7 +262,7 @@ export default struct SignDisplayCom { | ||||
|         Row() { | ||||
|           Flex({ direction: FlexDirection.Column }) { | ||||
|             Row() { | ||||
|               if(this.isA2) { | ||||
|               if (this.isA2) { | ||||
|                 ForEach(["GPS", "GPS2"], (item, i) => { | ||||
|                   Row() { | ||||
|                     Text(item).fontColor(this.gpsActive == i ? '#2D3C5A' : '#fff') | ||||
| @ -299,9 +299,9 @@ export default struct SignDisplayCom { | ||||
|               ForEach(this.GPSColum, (item) => { | ||||
|                 Column() { | ||||
|                   Text(`${item.key}:${item.value}`) | ||||
|                     .fontSize(12 * this.ratio) | ||||
|                     .fontSize((item.key === '龄期' ? 20 : 12) * this.ratio) | ||||
|                     .lineHeight(20 * this.ratio) | ||||
|                     .fontColor('#fff') | ||||
|                     .fontColor(item.key === '龄期' ? "#6b96f2" : '#fff') | ||||
|                 }.height(20 * this.ratio).justifyContent(FlexAlign.Start).width('100%') | ||||
|               }) | ||||
|             } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| //考试回放开关
 | ||||
| export const judgeConfig = { | ||||
|   // 外壳版本号
 | ||||
|   version: "2025.05.14.01", | ||||
|   version: "2025.05.15.01", | ||||
|   // 是否A1A3共用一车
 | ||||
|   isUseSameCar: false, | ||||
|   //本地目录开关
 | ||||
|  | ||||
| @ -1,5 +1,3 @@ | ||||
| 
 | ||||
| 
 | ||||
| { | ||||
|   "module": { | ||||
|     "name": "entry", | ||||
| @ -13,7 +11,16 @@ | ||||
|     "deliveryWithInstall": true, | ||||
|     "installationFree": false, | ||||
|     "pages": "$profile:main_pages", | ||||
| 
 | ||||
|     "extensionAbilities": [ | ||||
|       { | ||||
|         "name": "ServiceExtAbility", | ||||
|         "icon": "$media:icon", | ||||
|         "description": "service", | ||||
|         "type": "service", | ||||
|         "exported": true, | ||||
|         "srcEntry": "./ets/ServiceExtAbility/ServiceExtAbility.ets" | ||||
|       } | ||||
|     ], | ||||
|     "abilities": [ | ||||
|       { | ||||
|         "name": "EntryAbility", | ||||
| @ -36,9 +43,13 @@ | ||||
|         ] | ||||
|       } | ||||
|     ], | ||||
|     "requestPermissions":[ | ||||
|       {"name": "ohos.permission.CONNECTIVITY_INTERNAL"}, | ||||
|       {"name": "ohos.permission.SET_TIME"}, | ||||
|     "requestPermissions": [ | ||||
|       { | ||||
|         "name": "ohos.permission.CONNECTIVITY_INTERNAL" | ||||
|       }, | ||||
|       { | ||||
|         "name": "ohos.permission.SET_TIME" | ||||
|       }, | ||||
|       { | ||||
|         "name": "ohos.permission.INTERNET" | ||||
|       }, | ||||
| @ -135,7 +146,6 @@ | ||||
|       { | ||||
|         "name": "ohos.permission.STORAGE_MANAGER" | ||||
|       }, | ||||
| 
 | ||||
|       { | ||||
|         "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", | ||||
|         "reason": "$string:module_desc", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user