|
|
|
package com.zhonglai.luhui.smart.feeder.service;
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
import com.google.gson.JsonObject;
|
|
...
|
...
|
@@ -42,15 +43,19 @@ public class DateListenService { |
|
|
|
public void run()
|
|
|
|
{
|
|
|
|
//更新投料机数据
|
|
|
|
ScheduledConfig.scheduler.scheduleAtFixedRate(() -> {
|
|
|
|
ScheduledConfig.scheduler.scheduleWithFixedDelay(() -> {
|
|
|
|
ModbusDto modbusDto = serialPortService.sendHexData(FeederCommdUtil.readAll());
|
|
|
|
Map<String,Object> data = analysisDataService.analysis(modbusDto);
|
|
|
|
if(null != data && data.size() != 0)
|
|
|
|
{
|
|
|
|
Condata condata = BeanUtil.mapToBean(data, Condata.class,false,null);
|
|
|
|
Info info = BeanUtil.mapToBean(data, Info.class,false,null);
|
|
|
|
OperatingData.devicedat.setCondata(condata);
|
|
|
|
OperatingData.devicedat.setInfo(info);
|
|
|
|
if(ObjectUtil.notEqual(OperatingData.feederConfig.getCondata(),condata))
|
|
|
|
{
|
|
|
|
OperatingData.feederConfig.setCondata(condata);
|
|
|
|
reportCondata();
|
|
|
|
}
|
|
|
|
OperatingData.feederData.setInfo(info);
|
|
|
|
|
|
|
|
List<Integer[]> timerList = new ArrayList<>();
|
|
|
|
for(String key:data.keySet())
|
|
...
|
...
|
@@ -64,7 +69,11 @@ public class DateListenService { |
|
|
|
|
|
|
|
if(null != timerList && timerList.size() != 0)
|
|
|
|
{
|
|
|
|
OperatingData.devicedat.setTimer(timerList);
|
|
|
|
if(ObjectUtil.notEqual(OperatingData.feederConfig.getTimer(),timerList))
|
|
|
|
{
|
|
|
|
OperatingData.feederConfig.setTimer(timerList);
|
|
|
|
reportTimer();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},1,10, TimeUnit.SECONDS);
|
|
...
|
...
|
@@ -82,80 +91,168 @@ public class DateListenService { |
|
|
|
devicedatRequest.setSignal(4);
|
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
devicedatRequest.setCondata(OperatingData.devicedat.getCondata());
|
|
|
|
devicedatRequest.setInfo(OperatingData.devicedat.getInfo());
|
|
|
|
devicedatRequest.setTimer(OperatingData.devicedat.getTimer());
|
|
|
|
devicedatRequest.setInfo(OperatingData.feederData.getInfo());
|
|
|
|
CameraData cameraData = BeanUtil.copyProperties(OperatingData.cameraData,CameraData.class,"scaleAreaList");
|
|
|
|
devicedatRequest.setCameraData(cameraData);
|
|
|
|
String str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
System.out.println(str);
|
|
|
|
if(str.length()>=1024)
|
|
|
|
{
|
|
|
|
System.out.println("超标了");
|
|
|
|
}
|
|
|
|
CmdDto cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
MessageUtil.sendMessage(InitService.nettyClient.getCtx(), cmdDto.generateCmd(),true);
|
|
|
|
}
|
|
|
|
}catch (Exception e)
|
|
|
|
{
|
|
|
|
logger.error("上传数据异常",e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
},1,60, TimeUnit.SECONDS);
|
|
|
|
|
|
|
|
//上报参数
|
|
|
|
ScheduledConfig.scheduler.schedule(() -> {
|
|
|
|
try {
|
|
|
|
Thread.sleep(10000);
|
|
|
|
reportSerialPortConfig();
|
|
|
|
Thread.sleep(10000);
|
|
|
|
reportSysConfig();
|
|
|
|
Thread.sleep(10000);
|
|
|
|
reportCameraConfig();
|
|
|
|
Thread.sleep(10000);
|
|
|
|
reportRegisterConfig();
|
|
|
|
} catch (Exception e) {
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
}
|
|
|
|
},0,TimeUnit.SECONDS);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 上报智能投喂数据
|
|
|
|
*/
|
|
|
|
public void reportIntelligentFeeding(String intelligentFeedingLog)
|
|
|
|
{
|
|
|
|
DevicedatRequest devicedatRequest = new DevicedatRequest();
|
|
|
|
devicedatRequest.setCmd("activitydata");
|
|
|
|
devicedatRequest.setType("4G.hs");
|
|
|
|
devicedatRequest.setSignal(4);
|
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
devicedatRequest.setIntelligentFeedingLog(intelligentFeedingLog);
|
|
|
|
String str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
System.out.println(str);
|
|
|
|
CmdDto cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
MessageUtil.sendMessage(InitService.nettyClient.getCtx(), cmdDto.generateCmd(),true);
|
|
|
|
}
|
|
|
|
|
|
|
|
devicedatRequest = new DevicedatRequest();
|
|
|
|
/**
|
|
|
|
* 上报投料机控制参数
|
|
|
|
*/
|
|
|
|
public void reportCondata()
|
|
|
|
{
|
|
|
|
DevicedatRequest devicedatRequest = new DevicedatRequest();
|
|
|
|
devicedatRequest.setCmd("devicedata");
|
|
|
|
devicedatRequest.setType("4G.hs");
|
|
|
|
devicedatRequest.setSignal(4);
|
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
devicedatRequest.setSysConfig(OperatingData.sysConfig);
|
|
|
|
devicedatRequest.setFeederConfig(OperatingData.feederConfig);
|
|
|
|
str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
devicedatRequest.setCondata(OperatingData.feederConfig.getCondata());
|
|
|
|
String str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
System.out.println(str);
|
|
|
|
CmdDto cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
MessageUtil.sendMessage(InitService.nettyClient.getCtx(), cmdDto.generateCmd(),true);
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* 上报投料机定时参数
|
|
|
|
*/
|
|
|
|
public void reportTimer()
|
|
|
|
{
|
|
|
|
DevicedatRequest devicedatRequest = new DevicedatRequest();
|
|
|
|
devicedatRequest.setCmd("devicedata");
|
|
|
|
devicedatRequest.setType("4G.hs");
|
|
|
|
devicedatRequest.setSignal(4);
|
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
devicedatRequest.setTimer(OperatingData.feederConfig.getTimer());
|
|
|
|
String str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
System.out.println(str);
|
|
|
|
if(str.length()>=1024)
|
|
|
|
CmdDto cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
MessageUtil.sendMessage(InitService.nettyClient.getCtx(), cmdDto.generateCmd(),true);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 上报串口参数
|
|
|
|
*/
|
|
|
|
public void reportSerialPortConfig()
|
|
|
|
{
|
|
|
|
System.out.println("超标了");
|
|
|
|
DevicedatRequest devicedatRequest = new DevicedatRequest();
|
|
|
|
devicedatRequest.setCmd("devicedata");
|
|
|
|
devicedatRequest.setType("4G.hs");
|
|
|
|
devicedatRequest.setSignal(4);
|
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
devicedatRequest.setSerialPortConfig(OperatingData.feederConfig.getSerialPortConfig());
|
|
|
|
String str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
System.out.println(str);
|
|
|
|
CmdDto cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
MessageUtil.sendMessage(InitService.nettyClient.getCtx(), cmdDto.generateCmd(),true);
|
|
|
|
}
|
|
|
|
cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 上报系统参数
|
|
|
|
*/
|
|
|
|
public void reportSysConfig()
|
|
|
|
{
|
|
|
|
DevicedatRequest devicedatRequest = new DevicedatRequest();
|
|
|
|
devicedatRequest.setCmd("devicedata");
|
|
|
|
devicedatRequest.setType("4G.hs");
|
|
|
|
devicedatRequest.setSignal(4);
|
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
devicedatRequest.setSysConfig(OperatingData.sysConfig);
|
|
|
|
String str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
System.out.println(str);
|
|
|
|
CmdDto cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
MessageUtil.sendMessage(InitService.nettyClient.getCtx(), cmdDto.generateCmd(),true);
|
|
|
|
}
|
|
|
|
|
|
|
|
Thread.sleep(10000);
|
|
|
|
/**
|
|
|
|
* 上报摄像头参数
|
|
|
|
* @throws Exception
|
|
|
|
*/
|
|
|
|
public void reportCameraConfig() {
|
|
|
|
|
|
|
|
devicedatRequest = new DevicedatRequest();
|
|
|
|
DevicedatRequest devicedatRequest = new DevicedatRequest();
|
|
|
|
devicedatRequest.setCmd("devicedata");
|
|
|
|
devicedatRequest.setType("4G.hs");
|
|
|
|
devicedatRequest.setSignal(4);
|
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
devicedatRequest.setCameraData(OperatingData.cameraData);
|
|
|
|
devicedatRequest.setCameraConfig(OperatingData.cameraConfig);
|
|
|
|
str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
String str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
System.out.println(str);
|
|
|
|
if(str.length()>=1024)
|
|
|
|
{
|
|
|
|
System.out.println("超标了");
|
|
|
|
}
|
|
|
|
cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
CmdDto cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
MessageUtil.sendMessage(InitService.nettyClient.getCtx(), cmdDto.generateCmd(),true);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 上报寄存器参数
|
|
|
|
*/
|
|
|
|
public void reportRegisterConfig()
|
|
|
|
{
|
|
|
|
if(OperatingData.sysConfig.getIfRegisterConfig())
|
|
|
|
{
|
|
|
|
Thread.sleep(10000);
|
|
|
|
|
|
|
|
devicedatRequest = new DevicedatRequest();
|
|
|
|
DevicedatRequest devicedatRequest = new DevicedatRequest();
|
|
|
|
devicedatRequest.setCmd("devicedata");
|
|
|
|
devicedatRequest.setType("4G.hs");
|
|
|
|
devicedatRequest.setSignal(4);
|
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
devicedatRequest.setRegisterConfig(OperatingData.registerConfig);
|
|
|
|
str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
String str = GsonConstructor.get().toJson(devicedatRequest);
|
|
|
|
CmdDto cmdDto = new CmdDto().setImei(OperatingData.sysConfig.getNettyConfig().getClientId()).setJsonObject( GsonConstructor.get().fromJson( str, JsonObject.class));
|
|
|
|
MessageUtil.sendMessage(InitService.nettyClient.getCtx(), cmdDto.generateCmd(),true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}catch (Exception e)
|
|
|
|
{
|
|
|
|
logger.error("上传数据异常",e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
},1,10, TimeUnit.SECONDS);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
ConfigurationParameterService.initConfigurationParameter();
|
|
...
|
...
|
@@ -166,14 +263,14 @@ public class DateListenService { |
|
|
|
devicedatRequest.setMachstate(1);
|
|
|
|
devicedatRequest.setBattlevel(4);
|
|
|
|
|
|
|
|
devicedatRequest.setCondata(OperatingData.devicedat.getCondata());
|
|
|
|
devicedatRequest.setInfo(OperatingData.devicedat.getInfo());
|
|
|
|
devicedatRequest.setTimer(OperatingData.devicedat.getTimer());
|
|
|
|
devicedatRequest.setCondata(OperatingData.feederConfig.getCondata());
|
|
|
|
devicedatRequest.setInfo(OperatingData.feederData.getInfo());
|
|
|
|
devicedatRequest.setTimer(OperatingData.feederConfig.getTimer());
|
|
|
|
|
|
|
|
devicedatRequest.setSysConfig(OperatingData.sysConfig);
|
|
|
|
devicedatRequest.setCameraData(OperatingData.cameraData);
|
|
|
|
devicedatRequest.setCameraConfig(OperatingData.cameraConfig);
|
|
|
|
devicedatRequest.setFeederConfig(OperatingData.feederConfig);
|
|
|
|
devicedatRequest.setSerialPortConfig(OperatingData.feederConfig.getSerialPortConfig());
|
|
|
|
|
|
|
|
System.out.println(GsonConstructor.get().toJson(devicedatRequest));
|
|
|
|
}
|
...
|
...
|
|