zhangnaisong
2024-07-26 b468cde8bfd9d6e1d7ae7ccc535fc7e8ffb9f818
ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java
@@ -113,6 +113,25 @@
                    Date now = new Date();
                    try {
                        String data = (String) dataMap.get("data");
                        if(data.length() %2 != 0){//长度不是偶数,就返回
                            return;
                        }
                        Integer sum = 0;
                        for(int i = 0;i <= data.length() - 4;i = i + 2){
                            String str = data.substring(i, i + 2);
                            sum = sum + Integer.parseInt(str, 16);
                        }//求和
                        String checkNum = data.substring(data.length() - 2, data.length());
                        String checkNumComputed = Integer.toHexString(sum).toUpperCase();//计算校验
                        //当校验数据大于2个字符,截取最后两位
                        if(checkNumComputed.length() != 2){
                            checkNumComputed = checkNumComputed.substring(checkNumComputed.length() - 2,checkNumComputed.length());
                        }
                        if(!checkNum.equals(checkNumComputed)){//校验不通过,就返回
                            return;
                        }
                        String lockNum = data.substring(0, 4);
                        String code = data.substring(4, 6);
                        if(code.equals("01")){//功能码01为锁实时状态
@@ -182,9 +201,6 @@
                            }
                            long cha = now.getTime() - sdf.parse(time).getTime();
                            /*System.out.println("////////////////");
                            System.out.println(time);
                            System.out.println(cha);*/
                            if(Math.abs(cha) >= 5 * 1000){
                                //时间校准
                                /*String url = "http://" + ip + ":9999";
@@ -314,7 +330,9 @@
                                ardTankLockState.setUniqueMark(uniqueMark);
                                ((ArdTankLockStateServiceImpl)SpringUtils.getBean("ardTankLockStateServiceImpl")).insertOrUpdateArdTankLockState(ardTankLockState);
                            }
                        }
                        }/*else if(code.equals("06")){//功能码06为锁历史报警
                        }*/
                    }catch (Exception e){
                        e.printStackTrace();
                        return;//强转失败返回