| | |
| | | |
| | | @Override |
| | | public void process(String productKey, String deviceName, CommonFrame frame) { |
| | | /** |
| | | * connectType用于判断主动上报的数据是属于旧大气设备还是农耕大气设备 |
| | | * 农耕心跳包主动上报系统地址(MQTT请求方式):01 功能码:03 |
| | | */ |
| | | String connectType = frame.getPayload().substring(0, 2); |
| | | String functionCode = frame.getPayload().substring(2, 4); |
| | | if (A5AtmosphereReportEnum.HeartBeat_Data.getCode().equals(functionCode)) { |
| | | log.info("心跳相应——大气数据"); |
| | | A5AtmosphereHeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5AtmosphereHeartbeatReportInnerFrame().transformFrame(frame.getPayload()); |
| | | if(heartbeatReportInnerFrame != null){ |
| | | if (heartbeatReportInnerFrame != null) { |
| | | log.info(heartbeatReportInnerFrame.toString()); |
| | | SpringContextHolder.getBean(AirDataService.class).saveReportData(deviceName, heartbeatReportInnerFrame.getHeartBeatDataPackage()); |
| | | } |
| | | } else if (A5AtmosphereReportEnum.HeartBeat_Data_Nong_Geng.getCode().equals(functionCode)) { |
| | | } else if (A5AtmosphereReportEnum.HeartBeat_Data_Nong_Geng.getCode().equals(functionCode) && "01".equals(connectType)) { |
| | | log.info("心跳相应——大气数据(农耕)"); |
| | | A5AtmosphereNewHeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5AtmosphereNewHeartbeatReportInnerFrame().transformFrame(frame.getPayload()); |
| | | if (heartbeatReportInnerFrame != null && heartbeatReportInnerFrame.isValidate()) { |
| | | log.info(heartbeatReportInnerFrame.toString()); |
| | | if (deviceName.equals("363832544e5008ff8960ffff")) { |
| | | System.out.println("数据校验成功 frame: " + frame); |
| | | } |
| | | log.info("数据校验成功: " + heartbeatReportInnerFrame.toString()); |
| | | SpringContextHolder.getBean(AirDataNongGengService.class).saveReportData(deviceName, heartbeatReportInnerFrame.getHeartBeatDataPackage()); |
| | | }else{ |
| | | } else { |
| | | System.out.println("数据校验异常!"); |
| | | } |
| | | |