异步串口调试

This commit is contained in:
lvyuankang 2024-05-29 10:13:37 +08:00
parent 424dc1ab23
commit 9623750d0b
6 changed files with 76 additions and 43 deletions

View File

@ -260,6 +260,7 @@ export async function takePhotoFn(context) {
let fd
const devPath="/dev/ttyS3"
function openChuankouFn() {
console.log('SerialOpen in indexservice, path=' + devPath)
fd = testNapi.SerialOpen(devPath);
globalThis.num=0
globalThis.fd=fd
@ -273,49 +274,63 @@ function getChuankouFnMsg() {
let timeout = 50000; // 2秒超时
let databuff = [0x61, 0xAA, 0x0A, 0X15, 0X00]; // send ABCDE
console.log('fdfd',globalThis.fd)
let ret = testNapi.SerialSend(globalThis.fd, databuff);
console.log('mmmm',ret)
// let revTestInfo = testNapi?.SerialRecv(globalThis.fd, timeout);
testNapi.SerialRecvAsync(globalThis.fd, timeout, (revTestInfo) => {
console.log('revTestInfo',revTestInfo.recevedBuf.length)
console.log('zzc 1 try send msg')
testNapi.SerialSendAsync(globalThis.fd, databuff,(ret)=>{
console.log('zzc 2 send finished')
console.log('zzc 3 try receive msg')
testNapi.SerialRecvAsync(globalThis.fd, timeout, (revTestInfo) => {
console.log('zzc 4 received msg')
console.log('revTestInfo',revTestInfo.recevedBuf.length)
const message = revTestInfo?.recevedBuf?.toString()
console.log('chuankou',message)
if (message == '') {
console.log('zzc error msg is emptry')
globalThis.num=1
console.log('zzc 9 num=3 close serial')
// clearInterval(chuankou)
testNapi.SerialClose(globalThis.fd);
globalThis.fd=null
getChuankouFn()
return
}
const msg = message?.split(',')
if(!msg?.length){
} else if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) {
} else if(msg.length<12){
} else {
globalThis.chuankoMsg=msg[9]
}
console.log('zzc 5 sleep 1s')
setTimeout(()=>{
console.log(`x=${globalThis.num}`)
console.log('zzc 7 send next msg')
getChuankouFnMsg()
},1000)
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync callback in');
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync recevedLen = %{public}d', revTestInfo.recevedLen);
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync recevedBuf = %{public}s', revTestInfo.recevedBuf.toString());
});
const message = revTestInfo?.recevedBuf?.toString()
console.log('chuankou',message)
if (message == '') {
globalThis.num++
return
}
const msg = message?.split(',')
if(!msg?.length){
return
}
if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) {
return
}
globalThis.chuankoMsg=msg[9]
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync callback in');
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync recevedLen = %{public}d', revTestInfo.recevedLen);
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync recevedBuf = %{public}s', revTestInfo.recevedBuf.toString());
});
// let revTestInfo = testNapi?.SerialRecv(globalThis.fd, timeout);
}
let chuankou
export async function getChuankouFn(){
return
if(globalThis.fd){
return
}
openChuankouFn()
clearInterval(chuankou)
chuankou=setInterval(()=>{
if(globalThis.num==5){
testNapi.SerialClose(globalThis.fd);
globalThis.fd=null
getChuankouFn()
}
getChuankouFnMsg()
},1000)
// clearInterval(chuankou)
// chuankou=setInterval(()=>{
getChuankouFnMsg()
// },1000)
}

View File

@ -1,12 +1,15 @@
import TcpClient from './TcpClient';
import { getSyncData} from '../service/initable'
import hilog from '@ohos.hilog';
export async function getTCP() {
export async function getTCP(flag=false) {
getSyncData('IpConfigTable').then(async (result:Array<any>)=>{
console.log('result222',JSON.stringify(result))
if(result.length){
if(globalThis.TcpClient&&globalThis.TcpClient.closeTcp){
if(!flag){
return
}
globalThis.TcpClient.closeTcp(async ()=>{
// const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
// globalThis.TcpClient = tcpClient
@ -48,7 +51,8 @@ export async function getTCP() {
})
}else{
}
else{
// prompt.showToast({
// message:'初始化localIp'+ result[0].localIp+ result[0].localIpPort+'oppositeIp'+result[0].oppositeIp+result[0].oppositeIpPort,
// duration: 1000

View File

@ -8,9 +8,12 @@ import {string2Bytes} from '../../common/utils/tools'
export async function sendMsg(val){
// globalThis.udpClient1&&globalThis.udpClient1.sendMsg(val)
}
export async function getUDP() {
export async function getUDP(flag:Boolean=false) {
getSyncData('IpConfigTable').then((result:Array<any>)=>{
if(result.length){
if(!flag){
return
}
if(globalThis.udpClient&&globalThis.udpClient.closeUdp){
globalThis.udpClient.closeUdp(()=>{
globalThis.udpClient.rebindUdp(result[0].udplocalIp, result[0].udplocalIpPort,result[0].udpOppositeIp,result[0].udpOppositeIpPort)
@ -38,10 +41,13 @@ export async function getUDP() {
})
}
export async function getUDP2() {
export async function getUDP2(flag:Boolean=false) {
getSyncData('IpConfigTable').then(async (result:Array<any>)=>{
if(result.length){
if(globalThis.udpClient2&&globalThis.udpClient2.closeUdp){
if(!flag){
return
}
globalThis.udpClient2.closeUdp(async ()=>{
globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800',globalThis.carInfo?.udpAddress,globalThis.carInfo?.messagePort)
globalThis.udpClient2.onMessage((val)=>{

View File

@ -88,10 +88,10 @@ export default class UdpClient {
address: {
// address: '192.168.7.124',
// port: 30013,
// address: '192.168.7.124',
// port: 20022,
address: this.oppositeIp,
port: parseInt(this.oppositeIpPort),
address: '192.168.7.124',
port: 20022,
// address: this.oppositeIp,
// port: parseInt(this.oppositeIpPort),
family: 1
}
});
@ -144,7 +144,7 @@ export default class UdpClient {
}
console.log(`${TAG} udp222 on message array buffer:${str}`);
strachArr[28]=globalThis.chuankoMsg
strachArr[28]=globalThis.chuankoMsg||'0'
// this.stashFn(str)
const newArr=JSON.parse(JSON.stringify(strachArr))
// this.stashFn=()=>{}

View File

@ -226,6 +226,8 @@ struct Index {
}
openChuankouFn() {
console.log('SerialOpen in carcheck, path=' + this.devPath)
this.fd = testNapi.SerialOpen(this.devPath);
let parity = 0x4e; // 'N'
let ret = testNapi.SerialSet(this.fd, 115200, 0, 8, 1, parity);

View File

@ -1,3 +1,4 @@
import router from '@ohos.router'
import TopLogo from './compontents/topLogo'
import ethernet from '@ohos.net.ethernet';
@ -6,6 +7,8 @@ import { upDateTableByArray} from '../common/service/initable'
import { getSyncData} from '../common/service/initable'
import { voiceService } from '../common/service/voiceService'
import { GlobalConfig } from '../config/index'
import { getUDP, getUDP2 } from '../common/utils/GlobleUdp';
import { getTCP } from '../common/utils/GlobleTcp';
@Entry
@Component
struct Index {
@ -102,6 +105,9 @@ struct Index {
});
}
});
getUDP(true)
getUDP2(true)
getTCP(true)
})
}
.backgroundColor('#CCC4B8')