diff --git a/entry/src/main/ets/common/rearEndUnitsTool/tool/UdpByOne.ts b/entry/src/main/ets/common/rearEndUnitsTool/tool/UdpByOne.ts index 1385e0f8..cbf815a5 100644 --- a/entry/src/main/ets/common/rearEndUnitsTool/tool/UdpByOne.ts +++ b/entry/src/main/ets/common/rearEndUnitsTool/tool/UdpByOne.ts @@ -118,18 +118,21 @@ export default class UdpByOne { public handleMsg() { let newMessage = PLCGPSData; if (this.GPSMsg) { - // 使用正则表达式提取$GPGGA消息 - let GPGGAMsg = this.GPSMsg.match(/\$GPGGA[^$]*/)[0]; - let GPGGAMsgArr = GPGGAMsg ? GPGGAMsg?.split(",").slice(0, 15) : []; + let GPGGAMatch = this.GPSMsg.match(/\$GPGGA[^$]*/); + let GPGGAMsgArr = GPGGAMatch ? GPGGAMatch[0]?.split(",").slice(0, 15) : []; // 使用正则提取$GPRMC消息 - let GPRMCMsg = this.GPSMsg.match(/\$GPRMC[^$]*/)[0]; - let GPRMCMsgArr = GPRMCMsg ? GPRMCMsg?.split(",").slice(0, 14) : []; + let GPRMCMatch = this.GPSMsg.match(/\$GPRMC[^$]*/); + let GPRMCMsgArr = GPRMCMatch ? GPRMCMatch?.split(",").slice(0, 14) : []; // 使用正则表达式提取$GPGST消息 let GPGSTMatch = this.GPSMsg.match(/\$GPGST[^$]*/); let GPGSTMsgArr = GPGSTMatch ? GPGSTMatch[0]?.split(",").slice(0, 9) : []; // 使用正则提取$PTNL消息 - let PTNLMsg = this.GPSMsg.match(/\$PTNL[^$]*/)[0]; - let PTNLMsgArr = PTNLMsg.split(",")?.slice(0, 14); + let PTNLMatch = this.GPSMsg.match(/\$PTNL[^$]*/); + let PTNLMsgArr = PTNLMatch ? PTNLMatch[0].split(",")?.slice(0, 14) : []; + + if(GPGGAMsgArr.length == 0 || GPRMCMsgArr.length ==0 || GPGSTMsgArr.length ==0 || PTNLMsgArr.length ==0){ + return + } // 组合GPS数据