dev #65
@ -1,13 +1,15 @@
|
|||||||
{
|
{
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 2,
|
||||||
"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/hypium@1.0.6": "@ohos/hypium@1.0.6"
|
"@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6"
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
"@ohos/hypium@1.0.6": {
|
"@ohos/hypium@1.0.6": {
|
||||||
"resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
|
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
|
||||||
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ=="
|
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==",
|
||||||
|
"registryType": "ohpm",
|
||||||
|
"shasum": "3f5fed65372633233264b3447705b0831dfe7ea1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,41 +1,41 @@
|
|||||||
//import UdpClient from './UdpClient';
|
//import UdpClient from './UdpClient';
|
||||||
import UdpClientByCenter from './UdpClientByCenter';
|
import UdpClientByCenter from './UdpClientByCenter';
|
||||||
import { getSyncData } from '../service/initable'
|
import { getSyncData } from '../service/initable';
|
||||||
import { getChuankouFn } from '../../common/service/indexService'
|
import { getChuankouFn } from '../../common/service/indexService';
|
||||||
import FileUtil from '../../common/utils/File'
|
import FileUtil from '../../common/utils/File';
|
||||||
import { GlobalConfig } from '../../config/index'
|
import { GlobalConfig } from '../../config/index';
|
||||||
import {Array2Byte,fillZero,string2Bytes}from './tools'
|
import { Array2Byte, string2Bytes } from './tools';
|
||||||
import emitter from '@ohos.events.emitter';
|
|
||||||
|
|
||||||
export async function sendMsg(val) {
|
export async function sendMsg(val) {
|
||||||
// globalThis.udpClient1&&globalThis.udpClient1.sendMsg(val)
|
// globalThis.udpClient1&&globalThis.udpClient1.sendMsg(val)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getUDP(context,errorFlag?) {
|
export async function getUDP(context, errorFlag?) {
|
||||||
return new Promise(async (reslove,reject)=>{
|
return new Promise(async (reslove, reject) => {
|
||||||
const fileUtil = new FileUtil(context)
|
const fileUtil = new FileUtil(context)
|
||||||
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt');
|
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt');
|
||||||
console.log('ttttt',data)
|
console.log('ttttt', data)
|
||||||
if (data === '' || data === undefined) {
|
if (data === '' || data === undefined) {
|
||||||
console.log(` getUDP has no IPConfigTable `);
|
console.log(` getUDP has no IPConfigTable `);
|
||||||
globalThis.udpClient = {}
|
globalThis.udpClient = {}
|
||||||
globalThis.host = ''
|
globalThis.host = ''
|
||||||
reslove('')
|
reslove('')
|
||||||
} else {
|
} else {
|
||||||
const result=JSON.parse(data)
|
const result = JSON.parse(data)
|
||||||
console.log(` getUDP has IPConfigTable `);
|
console.log(` getUDP has IPConfigTable `);
|
||||||
if (globalThis.udpClient && globalThis.udpClient.closeUdp) {
|
if (globalThis.udpClient && globalThis.udpClient.closeUdp) {
|
||||||
console.log(` getUDP has udclent close and rebind `);
|
console.log(` getUDP has udclent close and rebind `);
|
||||||
globalThis.udpClient.closeUdp(() => {
|
globalThis.udpClient.closeUdp(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
globalThis.udpClient.rebindUdp(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp, result.udpOppositeIpPort)
|
globalThis.udpClient.rebindUdp(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp,
|
||||||
|
result.udpOppositeIpPort)
|
||||||
globalThis.udpClient.sendMsg('111', null)
|
globalThis.udpClient.sendMsg('111', null)
|
||||||
globalThis.host = `http://${result.centerIp}:${result.centerPort}`
|
globalThis.host = `http://${result.centerIp}:${result.centerPort}`
|
||||||
globalThis.udpClient.onError_Callback(()=>{
|
globalThis.udpClient.onError_Callback(() => {
|
||||||
console.log('getUDPgetUDPgetUDP')
|
console.log('getUDPgetUDPgetUDP')
|
||||||
getUDP(context,true)
|
getUDP(context, true)
|
||||||
if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){
|
if (errorFlag && globalThis.udpClient && globalThis.udpClient.onMessage_1) {
|
||||||
globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1
|
globalThis.udpClient.onMessage_1 = globalThis.udpClient.onMessage_1
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
reslove(`http://${result.centerIp}:${result.centerPort}`)
|
reslove(`http://${result.centerIp}:${result.centerPort}`)
|
||||||
@ -44,25 +44,23 @@ export async function getUDP(context,errorFlag?) {
|
|||||||
}, 1000)
|
}, 1000)
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// 未绑定
|
// 未绑定
|
||||||
console.log(` getUDP has no udclent and bind `);
|
console.log(` getUDP has no udclent and bind `);
|
||||||
console.log('ttttttdata',JSON.stringify(result))
|
console.log('ttttttdata', JSON.stringify(result))
|
||||||
const udpClient: UdpClientByCenter = new UdpClientByCenter(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp, result.udpOppositeIpPort)
|
const udpClient: UdpClientByCenter =
|
||||||
|
new UdpClientByCenter(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp,
|
||||||
|
result.udpOppositeIpPort)
|
||||||
udpClient.bindUdp()
|
udpClient.bindUdp()
|
||||||
udpClient.sendMsg('111')
|
udpClient.sendMsg('111')
|
||||||
globalThis.host = `http://${result.centerIp}:${result.centerPort}`
|
globalThis.host = `http://${result.centerIp}:${result.centerPort}`
|
||||||
globalThis.udpClient = udpClient
|
globalThis.udpClient = udpClient
|
||||||
|
|
||||||
globalThis.udpClient.onMessage_1(()=>{
|
|
||||||
console.log('getUDPonMessage_1msgmsgByGloalUdp')
|
|
||||||
|
|
||||||
})
|
globalThis.udpClient.onError_Callback(() => {
|
||||||
globalThis.udpClient.onError_Callback(()=>{
|
getUDP(context, true)
|
||||||
getUDP(context,true)
|
if (errorFlag && globalThis.udpClient && globalThis.udpClient.onMessage_1) {
|
||||||
if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){
|
globalThis.udpClient.onMessage_1 = globalThis.udpClient.onMessage_1
|
||||||
globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
getChuankouFn()
|
getChuankouFn()
|
||||||
@ -79,14 +77,15 @@ export async function getUDP(context,errorFlag?) {
|
|||||||
console.log(` getUDP has udclent close and rebind `);
|
console.log(` getUDP has udclent close and rebind `);
|
||||||
globalThis.udpClient.closeUdp(() => {
|
globalThis.udpClient.closeUdp(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
globalThis.udpClient.rebindUdp(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp, result[0].udpOppositeIpPort)
|
globalThis.udpClient.rebindUdp(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp,
|
||||||
|
result[0].udpOppositeIpPort)
|
||||||
globalThis.udpClient.sendMsg('111', null)
|
globalThis.udpClient.sendMsg('111', null)
|
||||||
globalThis.host = `http://${result[0].centerIp}:${result[0].centerPort}`
|
globalThis.host = `http://${result[0].centerIp}:${result[0].centerPort}`
|
||||||
globalThis.udpClient.onError_Callback(()=>{
|
globalThis.udpClient.onError_Callback(() => {
|
||||||
console.log('getUDPgetUDPgetUDP')
|
console.log('getUDPgetUDPgetUDP')
|
||||||
getUDP(true,context)
|
getUDP(true, context)
|
||||||
if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){
|
if (errorFlag && globalThis.udpClient && globalThis.udpClient.onMessage_1) {
|
||||||
globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1
|
globalThis.udpClient.onMessage_1 = globalThis.udpClient.onMessage_1
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
reslove(`http://${result[0].centerIp}:${result[0].centerPort}`)
|
reslove(`http://${result[0].centerIp}:${result[0].centerPort}`)
|
||||||
@ -95,24 +94,25 @@ export async function getUDP(context,errorFlag?) {
|
|||||||
}, 1000)
|
}, 1000)
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// 未绑定
|
// 未绑定
|
||||||
console.log(` getUDP has no udclent and bind `);
|
console.log(` getUDP has no udclent and bind `);
|
||||||
const udpClient: UdpClientByCenter = new UdpClientByCenter(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp, result[0].udpOppositeIpPort)
|
const udpClient: UdpClientByCenter =
|
||||||
|
new UdpClientByCenter(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp,
|
||||||
|
result[0].udpOppositeIpPort)
|
||||||
udpClient.bindUdp()
|
udpClient.bindUdp()
|
||||||
udpClient.sendMsg('111')
|
udpClient.sendMsg('111')
|
||||||
globalThis.host = `http://${result[0].centerIp}:${result[0].centerPort}`
|
globalThis.host = `http://${result[0].centerIp}:${result[0].centerPort}`
|
||||||
globalThis.udpClient = udpClient
|
globalThis.udpClient = udpClient
|
||||||
|
|
||||||
globalThis.udpClient.onMessage_1(()=>{
|
globalThis.udpClient.onMessage_1(() => {
|
||||||
console.log('getUDPonMessage_1msgmsgByGloalUdp')
|
console.log('getUDPonMessage_1msgmsgByGloalUdp')
|
||||||
|
|
||||||
})
|
})
|
||||||
globalThis.udpClient.onError_Callback(()=>{
|
globalThis.udpClient.onError_Callback(() => {
|
||||||
getUDP(true,context)
|
getUDP(true, context)
|
||||||
if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){
|
if (errorFlag && globalThis.udpClient && globalThis.udpClient.onMessage_1) {
|
||||||
globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1
|
globalThis.udpClient.onMessage_1 = globalThis.udpClient.onMessage_1
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{})
|
// udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{})
|
||||||
@ -140,61 +140,64 @@ export async function getUDP(context,errorFlag?) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getUDP2(context,errorFlag?) {
|
export async function getUDP2(context, errorFlag?) {
|
||||||
const fileUtil = new FileUtil(context)
|
const fileUtil = new FileUtil(context)
|
||||||
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt');
|
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt');
|
||||||
if (data === '' || data === undefined) {
|
if (data === '' || data === undefined) {
|
||||||
globalThis.udpClient2 = {}
|
globalThis.udpClient2 = {}
|
||||||
globalThis.udpClient2.setMsgCallBack = () => {
|
globalThis.udpClient2.setMsgCallBack = () => {
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
const result=JSON.parse(data)
|
const result = JSON.parse(data)
|
||||||
console.log(` getUDP2 has IPConfigTable `);
|
console.log(` getUDP2 has IPConfigTable `);
|
||||||
if (globalThis.udpClient2 && globalThis.udpClient2.closeUdp) {
|
if (globalThis.udpClient2 && globalThis.udpClient2.closeUdp) {
|
||||||
console.log(` getUDP2 has udclent ,close and rebind `);
|
console.log(` getUDP2 has udclent ,close and rebind `);
|
||||||
globalThis.udpClient2.closeUdp(async () => {
|
globalThis.udpClient2.closeUdp(async () => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
globalThis.udpClient2.rebindUdp(result.udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort)
|
globalThis.udpClient2.rebindUdp(result.udplocalIp, '8800', globalThis.carInfo?.udpAddress,
|
||||||
globalThis.udpClient2.onError_Callback(()=>{
|
globalThis.carInfo?.messagePort)
|
||||||
getUDP2(context,true);
|
globalThis.udpClient2.onError_Callback(() => {
|
||||||
if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){
|
getUDP2(context, true);
|
||||||
globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2
|
if (errorFlag && globalThis.udpClient2 && globalThis.udpClient2.onMessage_2) {
|
||||||
|
globalThis.udpClient2.onMessage_2 = globalThis.udpClient2.onMessage_2
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, 1000)
|
}, 1000)
|
||||||
})
|
})
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// 未绑定
|
// 未绑定
|
||||||
console.log(` getUDP2 has no udclent and bind `);
|
console.log(` getUDP2 has no udclent and bind `);
|
||||||
const udpClient2: UdpClientByCenter = new UdpClientByCenter(result.udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort)
|
const udpClient2: UdpClientByCenter =
|
||||||
|
new UdpClientByCenter(result.udplocalIp, '8800', globalThis.carInfo?.udpAddress,
|
||||||
|
globalThis.carInfo?.messagePort)
|
||||||
console.info('surenjun udp2=> ', globalThis.carInfo?.messagePort)
|
console.info('surenjun udp2=> ', globalThis.carInfo?.messagePort)
|
||||||
await udpClient2.bindUdp()
|
udpClient2.bindUdp()
|
||||||
await udpClient2.onError_Callback(()=>{
|
udpClient2.onError_Callback(() => {
|
||||||
getUDP2(context,true);
|
getUDP2(context, true);
|
||||||
if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){
|
if (errorFlag && globalThis.udpClient2 && globalThis.udpClient2.onMessage_2) {
|
||||||
globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2
|
globalThis.udpClient2.onMessage_2 = globalThis.udpClient2.onMessage_2
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if(!errorFlag){
|
if (!errorFlag) {
|
||||||
await udpClient2.onMessage_2((val) => {
|
udpClient2.onMessage_2((val) => {
|
||||||
if (val.id == '32') {
|
if (val.id == '32') {
|
||||||
globalThis.signNum = val.body[1]
|
globalThis.signNum = val.body[1]
|
||||||
if(val.body[0] == 5){
|
if (val.body[0] == 5) {
|
||||||
console.info('surenjun', `接收到平台扣分请求,请求指令为:${val.body[1]}`)
|
console.info('surenjun', `接收到平台扣分请求,请求指令为:${val.body[1]}`)
|
||||||
globalThis.udpEvent.sendOnKf(val.body[1])
|
globalThis.udpEvent.sendOnKf(val.body[1])
|
||||||
}
|
}
|
||||||
if(val.body[0] == 11){
|
if (val.body[0] == 11) {
|
||||||
console.info('surenjun','GlobalUdp收到beginExam事件')
|
console.info('surenjun', 'GlobalUdp收到beginExam事件')
|
||||||
globalThis.udpEvent.sendBeginExam(val.body[1])
|
globalThis.udpEvent.sendBeginExam(val.body[1])
|
||||||
}
|
}
|
||||||
if(val.body[0] == 12){
|
if (val.body[0] == 12) {
|
||||||
console.info('surenjun','GlobalUdp收到endExam事件')
|
console.info('surenjun', 'GlobalUdp收到endExam事件')
|
||||||
globalThis.udpEvent.sendEndExam(val.body[1])
|
globalThis.udpEvent.sendEndExam(val.body[1])
|
||||||
}
|
}
|
||||||
}if (val.id == '36'){
|
}
|
||||||
|
if (val.id == '36') {
|
||||||
//获取远程扣分内容
|
//获取远程扣分内容
|
||||||
console.info('surenjun','考车收到远程扣分项目内容,扣分代码:' + val.body[0])
|
console.info('surenjun', '考车收到远程扣分项目内容,扣分代码:' + val.body[0])
|
||||||
globalThis.udpEvent.sendKfContent(val.body[0])
|
globalThis.udpEvent.sendKfContent(val.body[0])
|
||||||
} else if (val.id == '46') {
|
} else if (val.id == '46') {
|
||||||
let tmpList = []
|
let tmpList = []
|
||||||
@ -225,28 +228,30 @@ export async function getUDP2(context,errorFlag?) {
|
|||||||
console.log(` getUDP2 has udclent ,close and rebind `);
|
console.log(` getUDP2 has udclent ,close and rebind `);
|
||||||
globalThis.udpClient2.closeUdp(async () => {
|
globalThis.udpClient2.closeUdp(async () => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort)
|
globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800', globalThis.carInfo?.udpAddress,
|
||||||
globalThis.udpClient2.onError_Callback(()=>{
|
globalThis.carInfo?.messagePort)
|
||||||
|
globalThis.udpClient2.onError_Callback(() => {
|
||||||
getUDP2(true);
|
getUDP2(true);
|
||||||
if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){
|
if (errorFlag && globalThis.udpClient2 && globalThis.udpClient2.onMessage_2) {
|
||||||
globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2
|
globalThis.udpClient2.onMessage_2 = globalThis.udpClient2.onMessage_2
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, 1000)
|
}, 1000)
|
||||||
})
|
})
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// 未绑定
|
// 未绑定
|
||||||
console.log(` getUDP2 has no udclent and bind `);
|
console.log(` getUDP2 has no udclent and bind `);
|
||||||
const udpClient2: UdpClientByCenter = new UdpClientByCenter(result[0].udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort)
|
const udpClient2: UdpClientByCenter =
|
||||||
|
new UdpClientByCenter(result[0].udplocalIp, '8800', globalThis.carInfo?.udpAddress,
|
||||||
|
globalThis.carInfo?.messagePort)
|
||||||
await udpClient2.bindUdp()
|
await udpClient2.bindUdp()
|
||||||
await udpClient2.onError_Callback(()=>{
|
await udpClient2.onError_Callback(() => {
|
||||||
getUDP2(true);
|
getUDP2(true);
|
||||||
if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){
|
if (errorFlag && globalThis.udpClient2 && globalThis.udpClient2.onMessage_2) {
|
||||||
globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2
|
globalThis.udpClient2.onMessage_2 = globalThis.udpClient2.onMessage_2
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if(!errorFlag){
|
if (!errorFlag) {
|
||||||
await udpClient2.onMessage_2((val) => {
|
await udpClient2.onMessage_2((val) => {
|
||||||
if (val.id == '32') {
|
if (val.id == '32') {
|
||||||
globalThis.signNum = val.body[1]
|
globalThis.signNum = val.body[1]
|
||||||
@ -285,7 +290,7 @@ export async function setTopLineUdp() {
|
|||||||
|
|
||||||
// const config = await getSyncData('IpConfigTable');
|
// const config = await getSyncData('IpConfigTable');
|
||||||
if (config && config.udplocalIp) {
|
if (config && config.udplocalIp) {
|
||||||
const {udplocalIp,udpOppositeIp,udpOppositeIpPort} = config;
|
const { udplocalIp, udpOppositeIp, udpOppositeIpPort } = config;
|
||||||
const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '55509', udpOppositeIp, udpOppositeIpPort)
|
const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '55509', udpOppositeIp, udpOppositeIpPort)
|
||||||
udpClient.bindUdp()
|
udpClient.bindUdp()
|
||||||
|
|
||||||
@ -314,17 +319,19 @@ export async function setJudgeUdp() {
|
|||||||
}, 1000);
|
}, 1000);
|
||||||
|
|
||||||
if (config && config.udplocalIp) {
|
if (config && config.udplocalIp) {
|
||||||
const {udplocalIp} = config;
|
const { udplocalIp } = config;
|
||||||
const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter(
|
const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter(
|
||||||
udplocalIp, '8080',
|
udplocalIp, '8080',
|
||||||
globalThis.carInfo?.udpAddress,
|
globalThis.carInfo?.udpAddress,
|
||||||
globalThis.carInfo?.hintPort
|
globalThis.carInfo?.hintPort
|
||||||
)
|
)
|
||||||
console.info('surenjun hintPort=> ',globalThis.carInfo?.hintPort)
|
console.info('surenjun hintPort=> ', globalThis.carInfo?.hintPort)
|
||||||
|
|
||||||
await udpClientbyCenter.onError_Callback(()=>{})
|
await udpClientbyCenter.onError_Callback(() => {
|
||||||
|
})
|
||||||
await udpClientbyCenter.bindUdp()
|
await udpClientbyCenter.bindUdp()
|
||||||
await udpClientbyCenter.onMessage_2((val) => {})
|
await udpClientbyCenter.onMessage_2((val) => {
|
||||||
|
})
|
||||||
|
|
||||||
//远程监听开始考试、结束考试、扣分指令
|
//远程监听开始考试、结束考试、扣分指令
|
||||||
|
|
||||||
@ -343,7 +350,7 @@ export async function setJudgeUdp() {
|
|||||||
},
|
},
|
||||||
|
|
||||||
//申请远程扣分查询
|
//申请远程扣分查询
|
||||||
askKf(directives){
|
askKf(directives) {
|
||||||
globalThis.udpClient2.sendMsgExt({
|
globalThis.udpClient2.sendMsgExt({
|
||||||
id: 35,
|
id: 35,
|
||||||
list: [directives],
|
list: [directives],
|
||||||
@ -354,10 +361,10 @@ export async function setJudgeUdp() {
|
|||||||
},
|
},
|
||||||
|
|
||||||
//确定远程扣分
|
//确定远程扣分
|
||||||
confirmKf(directives,code){
|
confirmKf(directives, code) {
|
||||||
globalThis.udpClient2.sendMsgExt({
|
globalThis.udpClient2.sendMsgExt({
|
||||||
id: 37,
|
id: 37,
|
||||||
list: Array2Byte([string2Bytes(directives,8),string2Bytes(code,8)]),
|
list: Array2Byte([string2Bytes(directives, 8), string2Bytes(code, 8)]),
|
||||||
carNo: globalThis.carInfo.carNo,
|
carNo: globalThis.carInfo.carNo,
|
||||||
placeId: globalThis.carInfo.examinationRoomId
|
placeId: globalThis.carInfo.examinationRoomId
|
||||||
})
|
})
|
||||||
@ -367,4 +374,5 @@ export async function setJudgeUdp() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// globalThis.udpClient.bindUdp()
|
// globalThis.udpClient.bindUdp()
|
||||||
|
|||||||
121
entry/src/main/ets/common/utils/UdpByOne.ts
Normal file
121
entry/src/main/ets/common/utils/UdpByOne.ts
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
import socket from '@ohos.net.socket';
|
||||||
|
import { PLCGPSData } from '../../mock';
|
||||||
|
|
||||||
|
export default class UdpByOne {
|
||||||
|
// PLC udp
|
||||||
|
private PLCUDP: any;
|
||||||
|
// PLC localIp
|
||||||
|
private PLCLocalIp: string;
|
||||||
|
// PLC localIpPort
|
||||||
|
private PLCLocalIpPort: string;
|
||||||
|
// PLC oppositeIpPort
|
||||||
|
private PLCOppositeIpPort: string;
|
||||||
|
// PLC消息
|
||||||
|
private PLCMsg: string;
|
||||||
|
// GPS udp
|
||||||
|
private GPSUDP: any;
|
||||||
|
// GPS localIp
|
||||||
|
private GPSLocalIp: string;
|
||||||
|
// GPS localIpPort
|
||||||
|
private GPSLocalIpPort: string;
|
||||||
|
// GPS oppositeIpPort
|
||||||
|
private GPSOppositeIpPort: string;
|
||||||
|
// GPS消息
|
||||||
|
private GPSMsg: string;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
// 初始化UDP
|
||||||
|
this.PLCUDP = socket.constructUDPSocketInstance();
|
||||||
|
this.PLCUDP.bind(this.PLCLocalIp, this.PLCLocalIpPort);
|
||||||
|
this.GPSUDP = socket.constructUDPSocketInstance();
|
||||||
|
this.GPSUDP.bind(this.GPSLocalIp, this.GPSLocalIpPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重新绑定
|
||||||
|
public rebind() {
|
||||||
|
this.PLCUDP.bind(this.PLCLocalIp, this.PLCLocalIpPort);
|
||||||
|
this.GPSUDP.bind(this.GPSLocalIp, this.GPSLocalIpPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
// PLC发送消息
|
||||||
|
public sendPLCMsg(msg: string) {
|
||||||
|
this.PLCUDP.sendTo(msg, this.PLCOppositeIpPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
// GPS发送消息
|
||||||
|
public sendGPSMsg(msg: string) {
|
||||||
|
this.GPSUDP.sendTo(msg, this.GPSOppositeIpPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 接受消息
|
||||||
|
public receiveMsg(callback) {
|
||||||
|
this.GPSUDP.on("message", (message1, remoteInfo) => {
|
||||||
|
this.GPSMsg = message1;
|
||||||
|
this.PLCUDP.on("message", (message2, remoteInfo) => {
|
||||||
|
this.PLCMsg = message2;
|
||||||
|
// 组合数据
|
||||||
|
let newMessage = this.handleMsg()
|
||||||
|
callback(newMessage)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理消息
|
||||||
|
public handleMsg() {
|
||||||
|
this.GPSMsg = `$GPGGA,021126.00,2955.5885178,N,11953.8931034,E,5,12,0.8,13.191,M,6.838,M,2.000,0000*49
|
||||||
|
$GPRMC,021126.00,A,2955.5885178,N,11953.8931034,E,4.881,318.3,170623,0.0,E,F*37
|
||||||
|
$GPGST,021126.00,3.30,1.77,3.30,0.0000,1.77,1.25,3.30*67
|
||||||
|
$PTNL,AVR,021126.00,+47.3119,Yaw,+0.4832,Tilt,,,0.817,3,1.7,25*09`
|
||||||
|
let newMessage = PLCGPSData;
|
||||||
|
// 海拔高度
|
||||||
|
// 原始GPS消息字符串
|
||||||
|
this.GPSMsg = `$GPGGA,021126.00,2955.5885178,N,11953.8931034,E,5,12,0.8,13.191,M,6.838,M,2.000,0000*49$GPRMC,021126.00,A,2955.5885178,N,11953.8931034,E,4.881,318.3,170623,0.0,E,F*37$GPGST,021126.00,3.30,1.77,3.30,0.0000,1.77,1.25,3.30*67$PTNL,AVR,021126.00,+47.3119,Yaw,+0.4832,Tilt,,,0.817,3,1.7,25*09`;
|
||||||
|
// 使用正则表达式提取$GPGGA消息
|
||||||
|
let GPGGAMsg = this.GPSMsg.match(/\$GPGGA[^$]*/)[0];
|
||||||
|
let GPGGAMsgArr = GPGGAMsg.split(',').slice(0, 15);
|
||||||
|
// 使用正则提取$GPRMC消息
|
||||||
|
let GPRMCMsg = this.GPSMsg.match(/\$GPRMC[^$]*/)[0];
|
||||||
|
let GPRMCMsgArr = GPRMCMsg.split(',').slice(0, 14);
|
||||||
|
// 使用正则表达式提取$GPGST消息]
|
||||||
|
let GPGSTMsg = this.GPSMsg.match(/\$GPGST[^$]*/)[0];
|
||||||
|
let GPGSTMsgArr = GPGSTMsg.split(',').slice(0, 9);
|
||||||
|
// 使用正则提取$PTNL消息
|
||||||
|
let PTNLMsg = this.GPSMsg.match(/\$PTNL[^$]*/)[0];
|
||||||
|
let PTNLMsgArr = PTNLMsg.split(',').slice(0, 14);
|
||||||
|
// 组合GPS数据
|
||||||
|
// 状态
|
||||||
|
// 收星数
|
||||||
|
// 海拔高
|
||||||
|
|
||||||
|
// 高度差
|
||||||
|
// 龄期
|
||||||
|
// 维度因子
|
||||||
|
// 经度因子
|
||||||
|
// 航向角
|
||||||
|
// 俯仰角
|
||||||
|
// 航向角状态-收星数
|
||||||
|
// 年月日
|
||||||
|
// 时分秒
|
||||||
|
// 经度
|
||||||
|
// 纬度
|
||||||
|
// 速度
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// PLC接收消息
|
||||||
|
public receivePLCMsg() {
|
||||||
|
this.PLCUDP.on("message", (message, remoteInfo) => {
|
||||||
|
console.log(`PLC receive message from ${remoteInfo.address}:${remoteInfo.port} : ${message}`);
|
||||||
|
this.PLCMsg = message;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// GPS接收消息
|
||||||
|
public receiveGPSMsg() {
|
||||||
|
this.GPSUDP.on("message", (message, remoteInfo) => {
|
||||||
|
console.log(`GPS receive message from ${remoteInfo.address}:${remoteInfo.port} : ${message}`);
|
||||||
|
this.GPSMsg = message;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -13,22 +13,19 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// @ts-ignore
|
|
||||||
import socket, { UDPSocket } from '@ohos.net.socket';
|
import socket, { UDPSocket } from '@ohos.net.socket';
|
||||||
import { Array2Byte } from '../utils/tools'
|
import { Array2Byte, dateFormat, fillZero, string2Bytes } from '../utils/tools';
|
||||||
import FileUtil from '../../common/utils/File'
|
import FileUtil from '../../common/utils/File';
|
||||||
import { fillZero, string2Bytes } from '../utils/tools'
|
import prompt from '@ohos.prompt';
|
||||||
|
|
||||||
const TAG = '[UdpDemo.UdpClient]'
|
|
||||||
import hilog from '@ohos.hilog';
|
|
||||||
import prompt from '@ohos.prompt'
|
|
||||||
import promptAction from '@ohos.promptAction';
|
import promptAction from '@ohos.promptAction';
|
||||||
import { getUDP } from './GlobalUdp';
|
import { getUDP } from './GlobalUdp';
|
||||||
import { dateFormat } from '../utils/tools'
|
import UdpByOne from './UdpByOne';
|
||||||
import { getSyncData } from '../service/initable';
|
|
||||||
|
const TAG = '[UdpDemo.UdpClient]'
|
||||||
|
|
||||||
|
|
||||||
export default class UdpClientByCenter {
|
export default class UdpClientByCenter {
|
||||||
|
public currentValue: string = ''
|
||||||
private localIp: string = ''
|
private localIp: string = ''
|
||||||
private localIpPort: string = ''
|
private localIpPort: string = ''
|
||||||
private oppositeIp: string = ''
|
private oppositeIp: string = ''
|
||||||
@ -43,15 +40,14 @@ export default class UdpClientByCenter {
|
|||||||
private context
|
private context
|
||||||
private folderPath
|
private folderPath
|
||||||
private stashFn: StashFunction
|
private stashFn: StashFunction
|
||||||
private errorStep: number=0
|
private errorStep: number = 0
|
||||||
private interval
|
private interval
|
||||||
private headLenth: number = 9
|
private headLenth: number = 9
|
||||||
//消息头长度
|
//消息头长度
|
||||||
private isWorking: Boolean = false
|
private isWorking: Boolean = false
|
||||||
private plcUdpError = false;
|
private plcUdpError = false;
|
||||||
private initParam
|
private initParam
|
||||||
private onMessage_1Callback:Function = ()=>{}
|
private UPDOne: any
|
||||||
public currentValue:string = ''
|
|
||||||
|
|
||||||
constructor(udplocalIp: string, udplocalIpPort: string, udpOppositeIp: string, udpOppositeIpPort: string) {
|
constructor(udplocalIp: string, udplocalIpPort: string, udpOppositeIp: string, udpOppositeIpPort: string) {
|
||||||
this.localIp = udplocalIp
|
this.localIp = udplocalIp
|
||||||
@ -62,14 +58,14 @@ export default class UdpClientByCenter {
|
|||||||
}
|
}
|
||||||
this.udp = socket.constructUDPSocketInstance();
|
this.udp = socket.constructUDPSocketInstance();
|
||||||
this.initPath()
|
this.initPath()
|
||||||
|
this.UPDOne = new UdpByOne()
|
||||||
}
|
}
|
||||||
|
|
||||||
getStatus() {
|
getStatus() {
|
||||||
return this.isWorking
|
return this.isWorking
|
||||||
}
|
}
|
||||||
|
|
||||||
rebindUdp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string)
|
rebindUdp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string) {
|
||||||
{
|
|
||||||
this.localIp = localIp
|
this.localIp = localIp
|
||||||
this.oppositeIp = oppositeIp
|
this.oppositeIp = oppositeIp
|
||||||
this.localIpPort = localIpPort
|
this.localIpPort = localIpPort
|
||||||
@ -90,10 +86,10 @@ export default class UdpClientByCenter {
|
|||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
//globalThis.closeHeartSocket=true
|
//globalThis.closeHeartSocket=true
|
||||||
this.isWorking = false
|
this.isWorking = false
|
||||||
// this.writeLog({
|
// this.writeLog({
|
||||||
// time:dateFormat(new Date()),
|
// time:dateFormat(new Date()),
|
||||||
// PLC:`${TAG} getUDPudp rebind failed:${JSON.stringify(err)}`,
|
// PLC:`${TAG} getUDPudp rebind failed:${JSON.stringify(err)}`,
|
||||||
// })
|
// })
|
||||||
console.log(`${TAG} getUDPudp rebind failed:${JSON.stringify(err)}`);
|
console.log(`${TAG} getUDPudp rebind failed:${JSON.stringify(err)}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -135,9 +131,6 @@ export default class UdpClientByCenter {
|
|||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
//length消息体bufferlength id消息类型id bodyStr消息体string
|
|
||||||
// setMsyBody(id,bodyByte){
|
|
||||||
|
|
||||||
// {id: 31,list:[0,1,'0000000000000'],carNo:489,placeId:62}
|
// {id: 31,list:[0,1,'0000000000000'],carNo:489,placeId:62}
|
||||||
setWholeMsg(params) {
|
setWholeMsg(params) {
|
||||||
let head = this.setMsgHead(params);
|
let head = this.setMsgHead(params);
|
||||||
@ -150,14 +143,17 @@ export default class UdpClientByCenter {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setMsgHead({id, list, placeId=62, carNo=489}) {
|
//length消息体bufferlength id消息类型id bodyStr消息体string
|
||||||
|
// setMsyBody(id,bodyByte){
|
||||||
|
|
||||||
|
setMsgHead({ id, list, placeId=62, carNo=489 }) {
|
||||||
let a = string2Bytes(`${id}${fillZero(placeId, 3)}`, 2 * 8);
|
let a = string2Bytes(`${id}${fillZero(placeId, 3)}`, 2 * 8);
|
||||||
let b = string2Bytes(`${fillZero(carNo, 4)}${globalThis.lshNo}`, 4 * 8);
|
let b = string2Bytes(`${fillZero(carNo, 4)}${globalThis.lshNo}`, 4 * 8);
|
||||||
let c = string2Bytes(list.length, 2 * 8);
|
let c = string2Bytes(list.length, 2 * 8);
|
||||||
return [...a, ...b, ...c];
|
return [...a, ...b, ...c];
|
||||||
}
|
}
|
||||||
|
|
||||||
setMsgBody({id,list}) {
|
setMsgBody({ id, list }) {
|
||||||
let tmpList = []
|
let tmpList = []
|
||||||
tmpList = list
|
tmpList = list
|
||||||
|
|
||||||
@ -171,15 +167,14 @@ export default class UdpClientByCenter {
|
|||||||
console.log('getUDPsendHeadMsg exit')
|
console.log('getUDPsendHeadMsg exit')
|
||||||
}
|
}
|
||||||
|
|
||||||
sendMsg(msg, sendCallback?)
|
sendMsg(msg, sendCallback?) {
|
||||||
{
|
if (!this.isWorking) {
|
||||||
if (!this.isWorking ) {
|
|
||||||
// console.log(`${TAG}getUDPudpCLient sendMsg is closed return `);
|
// console.log(`${TAG}getUDPudpCLient sendMsg is closed return `);
|
||||||
// this.writeLog({
|
// this.writeLog({
|
||||||
// time:dateFormat(new Date()),
|
// time:dateFormat(new Date()),
|
||||||
// PLC:`${TAG}getUDPudpCLient sendMsg is closed return oppositeIp:${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort:${this.localIpPort}`,
|
// PLC:`${TAG}getUDPudpCLient sendMsg is closed return oppositeIp:${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort:${this.localIpPort}`,
|
||||||
// })
|
// })
|
||||||
if(sendCallback) {
|
if (sendCallback) {
|
||||||
sendCallback()
|
sendCallback()
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -205,8 +200,8 @@ export default class UdpClientByCenter {
|
|||||||
// PLC:`${TAG}getUDPudpCLient udp send fail:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}${JSON.stringify(err)}`,
|
// PLC:`${TAG}getUDPudpCLient udp send fail:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}${JSON.stringify(err)}`,
|
||||||
// })
|
// })
|
||||||
promptAction.showToast({
|
promptAction.showToast({
|
||||||
message:`${TAG}getUDPudpCLient udp send fail:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}`,
|
message: `${TAG}getUDPudpCLient udp send fail:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}`,
|
||||||
duration:4000
|
duration: 4000
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -243,6 +238,7 @@ export default class UdpClientByCenter {
|
|||||||
this.stashFn = callback ? callback : () => {
|
this.stashFn = callback ? callback : () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//中心udp回执
|
//中心udp回执
|
||||||
onMessage_2(callback, type?) {
|
onMessage_2(callback, type?) {
|
||||||
this.udp.on('message', (value, remoteInfo) => {
|
this.udp.on('message', (value, remoteInfo) => {
|
||||||
@ -261,14 +257,19 @@ export default class UdpClientByCenter {
|
|||||||
list.push(arr[i])
|
list.push(arr[i])
|
||||||
}
|
}
|
||||||
this.stashFn({
|
this.stashFn({
|
||||||
id, length, body: list, sendId: this.sendId
|
id,
|
||||||
|
length,
|
||||||
|
body: list,
|
||||||
|
sendId: this.sendId
|
||||||
})
|
})
|
||||||
callback({
|
callback({
|
||||||
id, length, body: list, sendId: this.sendId
|
id,
|
||||||
|
length,
|
||||||
|
body: list,
|
||||||
|
sendId: this.sendId
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// this.interval=setInterval(()=>{
|
// this.interval=setInterval(()=>{
|
||||||
//
|
//
|
||||||
// },3000)
|
// },3000)
|
||||||
@ -297,19 +298,22 @@ export default class UdpClientByCenter {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO 赋值onMessage_1
|
||||||
//plc
|
//plc
|
||||||
onMessage_1(callback?) {
|
onMessage_1(callback?) {
|
||||||
this.onMessage_1Callback = callback;
|
this.onMessage_1Callback = callback;
|
||||||
this.udp&&this.udp.on('message', this.message_1Fn);
|
this.UPDOne.receiveMsg(callback);
|
||||||
|
this.udp && this.udp.on('message', this.message_1Fn);
|
||||||
}
|
}
|
||||||
|
|
||||||
closeMessage_1(){
|
|
||||||
|
closeMessage_1() {
|
||||||
console.info('surenjun', 'getUDP关闭udp message监听事件')
|
console.info('surenjun', 'getUDP关闭udp message监听事件')
|
||||||
this.udp.off('message',this.message_1Fn);
|
this.udp.off('message', this.message_1Fn);
|
||||||
console.info('surenjun', 'getUDP关闭udp message监听事件 成功')
|
console.info('surenjun', 'getUDP关闭udp message监听事件 成功')
|
||||||
}
|
}
|
||||||
|
|
||||||
message_1Fn = (value)=>{
|
message_1Fn = (value) => {
|
||||||
let callback = this.onMessage_1Callback
|
let callback = this.onMessage_1Callback
|
||||||
// 收到的是ArrayBuffer 需要进行转换解析
|
// 收到的是ArrayBuffer 需要进行转换解析
|
||||||
this.plcUdpError = false
|
this.plcUdpError = false
|
||||||
@ -336,15 +340,15 @@ export default class UdpClientByCenter {
|
|||||||
// time:dateFormat(new Date()),
|
// time:dateFormat(new Date()),
|
||||||
// PLC: JSON.stringify(newArr.toString()),
|
// PLC: JSON.stringify(newArr.toString()),
|
||||||
// })
|
// })
|
||||||
if(strachArr[83]!='4'){
|
if (strachArr[83] != '4') {
|
||||||
console.log('差分状态异常',strachArr[83],strachArr[92])
|
console.log('差分状态异常', strachArr[83], strachArr[92])
|
||||||
this.writeLog({
|
this.writeLog({
|
||||||
time:dateFormat(new Date()),
|
time: dateFormat(new Date()),
|
||||||
PLC: `${TAG}差分状态异常,${strachArr[83]},${strachArr[92]}`,
|
PLC: `${TAG}差分状态异常,${strachArr[83]},${strachArr[92]}`,
|
||||||
})
|
})
|
||||||
}else{
|
} else {
|
||||||
globalThis.dialogOpen=false
|
globalThis.dialogOpen = false
|
||||||
this.chafenFlag=0
|
this.chafenFlag = 0
|
||||||
}
|
}
|
||||||
callback && callback(newArr.toString())
|
callback && callback(newArr.toString())
|
||||||
this.currentValue = newArr.toString();
|
this.currentValue = newArr.toString();
|
||||||
@ -354,15 +358,18 @@ export default class UdpClientByCenter {
|
|||||||
|
|
||||||
this.testIfUdpConnetced(callback)
|
this.testIfUdpConnetced(callback)
|
||||||
}
|
}
|
||||||
async writeLog(param){
|
|
||||||
|
async writeLog(param) {
|
||||||
// const fileUtil = new FileUtil(globalThis.context)
|
// const fileUtil = new FileUtil(globalThis.context)
|
||||||
// fileUtil.editFile(`${this.folderPath}/plcLog.txt`, JSON.stringify(param)+`\n`)
|
// fileUtil.editFile(`${this.folderPath}/plcLog.txt`, JSON.stringify(param)+`\n`)
|
||||||
}
|
}
|
||||||
async initPath(){
|
|
||||||
|
async initPath() {
|
||||||
// const fileUtil = new FileUtil(globalThis.context)
|
// const fileUtil = new FileUtil(globalThis.context)
|
||||||
// const date=dateFormat(new Date).split(' ')[0]
|
// const date=dateFormat(new Date).split(' ')[0]
|
||||||
// this.folderPath = await fileUtil.initFolder(`/PLC/${date}`);
|
// this.folderPath = await fileUtil.initFolder(`/PLC/${date}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取当前UDP信号
|
//获取当前UDP信号
|
||||||
getCurrentMessage = () => {
|
getCurrentMessage = () => {
|
||||||
return this.currentValue
|
return this.currentValue
|
||||||
@ -376,7 +383,7 @@ export default class UdpClientByCenter {
|
|||||||
const arrRedBuffer = Array2Byte(arrRed).buffer
|
const arrRedBuffer = Array2Byte(arrRed).buffer
|
||||||
const arrGreenBugger = Array2Byte(arrGreen).buffer
|
const arrGreenBugger = Array2Byte(arrGreen).buffer
|
||||||
let num = 0
|
let num = 0
|
||||||
globalThis.dialogOpen=false
|
globalThis.dialogOpen = false
|
||||||
|
|
||||||
//监听udp是否断开
|
//监听udp是否断开
|
||||||
clearInterval(globalThis.messageTimer)
|
clearInterval(globalThis.messageTimer)
|
||||||
@ -389,15 +396,15 @@ export default class UdpClientByCenter {
|
|||||||
if (this.plcUdpError) {
|
if (this.plcUdpError) {
|
||||||
num++
|
num++
|
||||||
this.writeLog({
|
this.writeLog({
|
||||||
time:dateFormat(new Date()),
|
time: dateFormat(new Date()),
|
||||||
PLC: 'plc udp信号丢失',
|
PLC: 'plc udp信号丢失',
|
||||||
})
|
})
|
||||||
console.log(TAG, 'plc udp信号丢失')
|
console.log(TAG, 'plc udp信号丢失')
|
||||||
if (num == 3) {
|
if (num == 3) {
|
||||||
getUDP(globalThis.context,true)
|
getUDP(globalThis.context, true)
|
||||||
globalThis.title='plc udp信号丢失'
|
globalThis.title = 'plc udp信号丢失'
|
||||||
globalThis.type='3'
|
globalThis.type = '3'
|
||||||
if(!globalThis.dialogOpen){
|
if (!globalThis.dialogOpen) {
|
||||||
// AppStorage.SetOrCreate('errorCode', 1);
|
// AppStorage.SetOrCreate('errorCode', 1);
|
||||||
// if(this.errorStep!=1){
|
// if(this.errorStep!=1){
|
||||||
// console.log('sys.v_valuesys.v_valuesys.v_value11221')
|
// console.log('sys.v_valuesys.v_valuesys.v_value11221')
|
||||||
@ -437,6 +444,9 @@ export default class UdpClientByCenter {
|
|||||||
}, 2000)
|
}, 2000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private onMessage_1Callback: Function = () => {
|
||||||
|
}
|
||||||
|
|
||||||
// initHeartSendMsg(param,context){
|
// initHeartSendMsg(param,context){
|
||||||
// console.log('1111param',JSON.stringify(param))
|
// console.log('1111param',JSON.stringify(param))
|
||||||
// this.initParam=param
|
// this.initParam=param
|
||||||
|
|||||||
0
entry/src/main/ets/common/utils/UdpUtils.ets
Normal file
0
entry/src/main/ets/common/utils/UdpUtils.ets
Normal file
126
entry/src/main/ets/common/utils/new/udp.ets
Normal file
126
entry/src/main/ets/common/utils/new/udp.ets
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
import socket from '@ohos.net.socket';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UDP工具类
|
||||||
|
* 功能:创建UDP Socket、发送消息、接收消息、广播控制、关闭连接
|
||||||
|
*/
|
||||||
|
export class UdpTool {
|
||||||
|
private udpSocket: socket.UDPSocket | null = null;
|
||||||
|
private receiveCallback: ((data: string, remoteInfo: RemoteInfo) => void) | null = null;
|
||||||
|
private errorCallback: ((error: Error) => void) | null = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化UDP Socket
|
||||||
|
* @param port 绑定端口号
|
||||||
|
* @param callback 接收消息回调
|
||||||
|
*/
|
||||||
|
async initialize(port: number, callback?: (data: string, remoteInfo: RemoteInfo) => void): Promise<void> {
|
||||||
|
try {
|
||||||
|
// 1. 创建UDP Socket实例
|
||||||
|
this.udpSocket = socket.constructUDPSocketInstance();
|
||||||
|
|
||||||
|
// 2. 绑定本地端口
|
||||||
|
await this.udpSocket.bind({ address: '0.0.0.0', port: port, family: 1 });
|
||||||
|
|
||||||
|
// 3. 注册消息监听
|
||||||
|
this.udpSocket.on('message', (payload: {
|
||||||
|
message: ArrayBuffer,
|
||||||
|
remoteInfo
|
||||||
|
}) => {
|
||||||
|
const msg = this.arrayBufferToString(payload.message);
|
||||||
|
this.receiveCallback?.(msg, payload.remoteInfo);
|
||||||
|
});
|
||||||
|
// 4. 注册错误监听
|
||||||
|
this.udpSocket.on('error', (err) => {
|
||||||
|
this.errorCallback?.(new Error(`Socket error: ${err.code} - ${err.message}`));
|
||||||
|
});
|
||||||
|
|
||||||
|
if (callback) {
|
||||||
|
this.receiveCallback = callback;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error(`UDP初始化失败: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送UDP消息
|
||||||
|
* @param message 发送内容
|
||||||
|
* @param address 目标地址
|
||||||
|
* @param port 目标端口
|
||||||
|
*/
|
||||||
|
async send(message: string, address: string, port: number): Promise<void> {
|
||||||
|
if (!this.udpSocket) {
|
||||||
|
throw new Error('Socket未初始化');
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const data = this.stringToArrayBuffer(message);
|
||||||
|
await this.udpSocket.send({
|
||||||
|
data: data,
|
||||||
|
address: { address: address, port: port, family: 1 }
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error(`消息发送失败: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置广播模式
|
||||||
|
* @param enable 是否启用广播
|
||||||
|
*/
|
||||||
|
setBroadcast(enable: boolean): void {
|
||||||
|
if (!this.udpSocket) {
|
||||||
|
throw new Error('Socket未初始化');
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
this.udpSocket.setExtraOptions({ broadcast: enable });
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error(`广播设置失败: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关闭Socket连接
|
||||||
|
*/
|
||||||
|
close(): void {
|
||||||
|
if (this.udpSocket) {
|
||||||
|
this.udpSocket.off('message');
|
||||||
|
this.udpSocket.off('error');
|
||||||
|
this.udpSocket.close();
|
||||||
|
this.udpSocket = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置错误回调
|
||||||
|
*/
|
||||||
|
onError(callback: (error: Error) => void): void {
|
||||||
|
this.errorCallback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 工具方法:ArrayBuffer转String
|
||||||
|
private arrayBufferToString(buffer: ArrayBuffer): string {
|
||||||
|
return String.fromCharCode(...new Uint8Array(buffer));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 工具方法:String转ArrayBuffer
|
||||||
|
private stringToArrayBuffer(str: string): ArrayBuffer {
|
||||||
|
const buffer = new ArrayBuffer(str.length);
|
||||||
|
const view = new Uint8Array(buffer);
|
||||||
|
for (let i = 0; i < str.length; i++) {
|
||||||
|
view[i] = str.charCodeAt(i);
|
||||||
|
}
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 远程设备信息类型
|
||||||
|
*/
|
||||||
|
interface RemoteInfo {
|
||||||
|
address: string;
|
||||||
|
port: number;
|
||||||
|
family: number;
|
||||||
|
}
|
||||||
101
entry/src/main/ets/mock/PLCGPSData.ts
Normal file
101
entry/src/main/ets/mock/PLCGPSData.ts
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
export const PLCGPSData = [
|
||||||
|
"#DN_GD",
|
||||||
|
"$PLC",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0_0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0_0_0_0",
|
||||||
|
"0.0.0.0",
|
||||||
|
"V9.1_V2.1_1",
|
||||||
|
"65535",
|
||||||
|
"1",
|
||||||
|
"V7.8",
|
||||||
|
"0/0",
|
||||||
|
"0/0",
|
||||||
|
"0",
|
||||||
|
"0/0",
|
||||||
|
"100*200-2-2-。。",
|
||||||
|
"1",
|
||||||
|
"2",
|
||||||
|
"3",
|
||||||
|
"4",
|
||||||
|
"5",
|
||||||
|
"6",
|
||||||
|
"7",
|
||||||
|
"8",
|
||||||
|
"9",
|
||||||
|
"A",
|
||||||
|
"B",
|
||||||
|
"C",
|
||||||
|
"D",
|
||||||
|
"E",
|
||||||
|
"F",
|
||||||
|
"G",
|
||||||
|
"H",
|
||||||
|
"I",
|
||||||
|
"J",
|
||||||
|
"#END$GPS",
|
||||||
|
"1",
|
||||||
|
"16",
|
||||||
|
"6.068",
|
||||||
|
"1.301",
|
||||||
|
"0",
|
||||||
|
"1.07",
|
||||||
|
"0.64",
|
||||||
|
"0",
|
||||||
|
"0",
|
||||||
|
"0-12",
|
||||||
|
"91022",
|
||||||
|
"80109.2",
|
||||||
|
"3155.6715075",
|
||||||
|
"11851.9196718",
|
||||||
|
"0.012",
|
||||||
|
"#END",
|
||||||
|
];
|
||||||
@ -1,9 +0,0 @@
|
|||||||
export * from "./CandidateData"
|
|
||||||
|
|
||||||
export * from "./VideoData"
|
|
||||||
|
|
||||||
export * from "./Judge"
|
|
||||||
|
|
||||||
export * from "./SignDisplay"
|
|
||||||
|
|
||||||
export * from "./CarCheck"
|
|
||||||
@ -7,3 +7,5 @@ export * from "./Judge"
|
|||||||
export * from "./SignDisplay"
|
export * from "./SignDisplay"
|
||||||
|
|
||||||
export * from "./CarCheck"
|
export * from "./CarCheck"
|
||||||
|
|
||||||
|
export * from "./PLCGPSData"
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"hvigorVersion": "3.0.9",
|
"hvigorVersion": "3.2.4",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ohos/hvigor-ohos-plugin": "3.0.9"
|
"@ohos/hvigor-ohos-plugin": "3.2.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,13 +1,15 @@
|
|||||||
{
|
{
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 2,
|
||||||
"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/hypium@1.0.6": "@ohos/hypium@1.0.6"
|
"@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6"
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
"@ohos/hypium@1.0.6": {
|
"@ohos/hypium@1.0.6": {
|
||||||
"resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
|
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
|
||||||
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ=="
|
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==",
|
||||||
|
"registryType": "ohpm",
|
||||||
|
"shasum": "3f5fed65372633233264b3447705b0831dfe7ea1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user