正在显示
3 个修改的文件
包含
40 行增加
和
27 行删除
| 1 | package com.zhonglai.luhui.smart.feeder.config; | 1 | package com.zhonglai.luhui.smart.feeder.config; |
| 2 | 2 | ||
| 3 | -import com.ruoyi.common.utils.GsonConstructor; | ||
| 4 | import com.zhonglai.luhui.smart.feeder.dto.*; | 3 | import com.zhonglai.luhui.smart.feeder.dto.*; |
| 5 | -import com.zhonglai.luhui.smart.feeder.dto.commd.FeederBackstateTtpe; | ||
| 6 | -import com.zhonglai.luhui.smart.feeder.dto.mqtt.DevicedatRequest; | ||
| 7 | -import com.zhonglai.luhui.smart.feeder.service.InitService; | ||
| 8 | -import com.zhonglai.luhui.smart.feeder.util.FeederCommd06ResponseType; | ||
| 9 | -import com.zhonglai.luhui.smart.feeder.util.FeederCommdUtil; | ||
| 10 | -import com.zhonglai.luhui.smart.feeder.util.MessageUtil; | ||
| 11 | 4 | ||
| 12 | import java.lang.reflect.Field; | 5 | import java.lang.reflect.Field; |
| 13 | 6 | ||
| @@ -22,7 +15,7 @@ public class OperatingData { | @@ -22,7 +15,7 @@ public class OperatingData { | ||
| 22 | public static FeederData feederData = new FeederData() ; //投料机配置 | 15 | public static FeederData feederData = new FeederData() ; //投料机配置 |
| 23 | public static RegisterConfig registerConfig = new RegisterConfig(); //数据解析字典 | 16 | public static RegisterConfig registerConfig = new RegisterConfig(); //数据解析字典 |
| 24 | 17 | ||
| 25 | - public static void setClassObjecValue(Object value,IfOperatingDataValueIsNotNull ifOperatingDataValueIsNotNull) throws IllegalAccessException { | 18 | + public static void setClassObjecValue(Object value,IfOperatingDataValueIsNotNull ifOperatingDataValueIsNotNull) throws IllegalAccessException, InstantiationException { |
| 26 | if(null != value) | 19 | if(null != value) |
| 27 | { | 20 | { |
| 28 | OperatingDataType operatingDataType = getOperatingDataType(value); | 21 | OperatingDataType operatingDataType = getOperatingDataType(value); |
| @@ -35,8 +28,31 @@ public class OperatingData { | @@ -35,8 +28,31 @@ public class OperatingData { | ||
| 35 | Object object = field.get(value); | 28 | Object object = field.get(value); |
| 36 | if(null != object) | 29 | if(null != object) |
| 37 | { | 30 | { |
| 31 | + if(object.getClass().isPrimitive()) | ||
| 32 | + { | ||
| 38 | operatingDataType.setValue(field,object); | 33 | operatingDataType.setValue(field,object); |
| 39 | ifOperatingDataValueIsNotNull.exeValue(field.getName(),object); | 34 | ifOperatingDataValueIsNotNull.exeValue(field.getName(),object); |
| 35 | + }else{ | ||
| 36 | + Class attributeCls = object.getClass(); | ||
| 37 | + Field[] attributeFields = attributeCls.getDeclaredFields(); | ||
| 38 | + for(Field attribute:attributeFields) | ||
| 39 | + { | ||
| 40 | + attribute.setAccessible(true); | ||
| 41 | + Object attributeObject = attribute.get(object); | ||
| 42 | + if(null != attributeObject) | ||
| 43 | + { | ||
| 44 | + if(null == field.get(operatingDataType)) | ||
| 45 | + { | ||
| 46 | + field.set(operatingDataType,attributeCls.newInstance()); | ||
| 47 | + } | ||
| 48 | + attribute.set(field.get(operatingDataType),attributeObject); | ||
| 49 | + | ||
| 50 | + ifOperatingDataValueIsNotNull.exeValue(attribute.getName(),attributeObject); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + } | ||
| 54 | + } | ||
| 55 | + | ||
| 40 | } | 56 | } |
| 41 | } | 57 | } |
| 42 | 58 |
| @@ -6,6 +6,8 @@ import com.zhonglai.luhui.smart.feeder.Main; | @@ -6,6 +6,8 @@ import com.zhonglai.luhui.smart.feeder.Main; | ||
| 6 | import com.zhonglai.luhui.smart.feeder.config.OperatingData; | 6 | import com.zhonglai.luhui.smart.feeder.config.OperatingData; |
| 7 | import com.zhonglai.luhui.smart.feeder.domain.Register; | 7 | import com.zhonglai.luhui.smart.feeder.domain.Register; |
| 8 | import com.zhonglai.luhui.smart.feeder.dto.CameraConfig; | 8 | import com.zhonglai.luhui.smart.feeder.dto.CameraConfig; |
| 9 | +import com.zhonglai.luhui.smart.feeder.dto.FeederConfig; | ||
| 10 | +import com.zhonglai.luhui.smart.feeder.dto.ModbusDto; | ||
| 9 | import com.zhonglai.luhui.smart.feeder.dto.commd.FeederBackstateTtpe; | 11 | import com.zhonglai.luhui.smart.feeder.dto.commd.FeederBackstateTtpe; |
| 10 | import com.zhonglai.luhui.smart.feeder.dto.commd.FeederTimer; | 12 | import com.zhonglai.luhui.smart.feeder.dto.commd.FeederTimer; |
| 11 | import com.zhonglai.luhui.smart.feeder.dto.mqtt.CameracontrolRequest; | 13 | import com.zhonglai.luhui.smart.feeder.dto.mqtt.CameracontrolRequest; |
| @@ -42,12 +44,13 @@ public class CfgdataService { | @@ -42,12 +44,13 @@ public class CfgdataService { | ||
| 42 | } | 44 | } |
| 43 | try { | 45 | try { |
| 44 | CfgdataRequest cfgdataRequest = GsonConstructor.get().fromJson(data.toString(), CfgdataRequest.class); | 46 | CfgdataRequest cfgdataRequest = GsonConstructor.get().fromJson(data.toString(), CfgdataRequest.class); |
| 45 | - OperatingData.setClassObjecValue(cfgdataRequest.getCondata(), (fieldname, fieldObject) -> { | 47 | + FeederConfig feederConfig = new FeederConfig(); |
| 48 | + feederConfig.setCondata(cfgdataRequest.getCondata()); | ||
| 49 | + OperatingData.setClassObjecValue(feederConfig, (fieldname, fieldObject) -> { | ||
| 46 | try { | 50 | try { |
| 47 | String commd = FeederCommdUtil.controlData( FeederCommd06ResponseType.valueOf(fieldname),(Integer) fieldObject); | 51 | String commd = FeederCommdUtil.controlData( FeederCommd06ResponseType.valueOf(fieldname),(Integer) fieldObject); |
| 48 | logger.info("远程发送指令{}",commd); | 52 | logger.info("远程发送指令{}",commd); |
| 49 | - InitService.serialPortService.sendStrData(commd); //通知串口 | ||
| 50 | - InitService.dateListenService.reportCondata(); //通知服务器 | 53 | + InitService.serialPortService.sendHexData(commd); //通知串口 |
| 51 | }catch (Exception e) | 54 | }catch (Exception e) |
| 52 | { | 55 | { |
| 53 | logger.error("发送指令失败:"+GsonConstructor.get().toJson(fieldname),e); | 56 | logger.error("发送指令失败:"+GsonConstructor.get().toJson(fieldname),e); |
| @@ -60,21 +63,12 @@ public class CfgdataService { | @@ -60,21 +63,12 @@ public class CfgdataService { | ||
| 60 | List<Integer[]> timerList = cfgdataRequest.getTimer(); | 63 | List<Integer[]> timerList = cfgdataRequest.getTimer(); |
| 61 | if(null != timerList && timerList.size() != 0 ) | 64 | if(null != timerList && timerList.size() != 0 ) |
| 62 | { | 65 | { |
| 63 | - for (int i=0;i<timerList.size();i++) | 66 | + ModbusDto modbusDto = InitService.serialPortService.sendHexData(FeederCommdUtil.controlTimer(timerList)); |
| 67 | + if(0x10==modbusDto.getCommdcode()) | ||
| 64 | { | 68 | { |
| 65 | - Integer[] timerNumber = timerList.get(i); | ||
| 66 | - FeederTimer feederTimer = new FeederTimer(); | ||
| 67 | - feederTimer.setTimer_start_m(timerNumber[1]); | ||
| 68 | - feederTimer.setTimer_start_h(timerNumber[0]); | ||
| 69 | - feederTimer.setTimer_if_start(timerNumber[4]); | ||
| 70 | - feederTimer.setTimer_is_start(1); | ||
| 71 | - feederTimer.setTimer_close_m(timerNumber[3]); | ||
| 72 | - feederTimer.setTimer_close_h(timerNumber[2]); | ||
| 73 | - feederTimer.setTimer_if_close(timerNumber[4]); | ||
| 74 | - feederTimer.setTimer_is_close(1); | ||
| 75 | - InitService.serialPortService.sendHexData(FeederCommdUtil.controlTimer((i/2)+1,feederTimer)); | 69 | + OperatingData.feederConfig.setTimer(timerList); |
| 76 | } | 70 | } |
| 77 | - InitService.dateListenService.reportTimer(); //通知服务器 | 71 | + |
| 78 | } | 72 | } |
| 79 | MessageUtil.sendFeederResponseMessage(ctx,"cfgdataOK", FeederBackstateTtpe.success,0); | 73 | MessageUtil.sendFeederResponseMessage(ctx,"cfgdataOK", FeederBackstateTtpe.success,0); |
| 80 | }catch (Exception e) | 74 | }catch (Exception e) |
| @@ -3,6 +3,7 @@ package com.zhonglai.luhui.smart.feeder.service.feeder; | @@ -3,6 +3,7 @@ package com.zhonglai.luhui.smart.feeder.service.feeder; | ||
| 3 | import com.google.gson.JsonObject; | 3 | import com.google.gson.JsonObject; |
| 4 | import com.ruoyi.common.utils.GsonConstructor; | 4 | import com.ruoyi.common.utils.GsonConstructor; |
| 5 | import com.zhonglai.luhui.smart.feeder.config.OperatingData; | 5 | import com.zhonglai.luhui.smart.feeder.config.OperatingData; |
| 6 | +import com.zhonglai.luhui.smart.feeder.dto.FeederConfig; | ||
| 6 | import com.zhonglai.luhui.smart.feeder.dto.commd.FeederBackstateTtpe; | 7 | import com.zhonglai.luhui.smart.feeder.dto.commd.FeederBackstateTtpe; |
| 7 | import com.zhonglai.luhui.smart.feeder.dto.mqtt.CfgdataRequest; | 8 | import com.zhonglai.luhui.smart.feeder.dto.mqtt.CfgdataRequest; |
| 8 | import com.zhonglai.luhui.smart.feeder.dto.mqtt.CmdDto; | 9 | import com.zhonglai.luhui.smart.feeder.dto.mqtt.CmdDto; |
| @@ -37,12 +38,13 @@ public class ManualcontrolService { | @@ -37,12 +38,13 @@ public class ManualcontrolService { | ||
| 37 | } | 38 | } |
| 38 | try { | 39 | try { |
| 39 | ManualcontrolRequest manualcontrolRequest = GsonConstructor.get().fromJson(data.toString(), ManualcontrolRequest.class); | 40 | ManualcontrolRequest manualcontrolRequest = GsonConstructor.get().fromJson(data.toString(), ManualcontrolRequest.class); |
| 40 | - OperatingData.setClassObjecValue(manualcontrolRequest.getCondata(), (fieldname, fieldObject) -> { | 41 | + FeederConfig feederConfig = new FeederConfig(); |
| 42 | + feederConfig.setCondata(manualcontrolRequest.getCondata()); | ||
| 43 | + OperatingData.setClassObjecValue(feederConfig, (fieldname, fieldObject) -> { | ||
| 41 | try { | 44 | try { |
| 42 | String commd = FeederCommdUtil.controlData( FeederCommd06ResponseType.valueOf(fieldname),(Integer) fieldObject); | 45 | String commd = FeederCommdUtil.controlData( FeederCommd06ResponseType.valueOf(fieldname),(Integer) fieldObject); |
| 43 | logger.info("远程发送指令{}",commd); | 46 | logger.info("远程发送指令{}",commd); |
| 44 | - InitService.serialPortService.sendStrData(commd); | ||
| 45 | - InitService.dateListenService.reportCondata(); //通知服务器 | 47 | + InitService.serialPortService.sendHexData(commd); |
| 46 | }catch (Exception e) | 48 | }catch (Exception e) |
| 47 | { | 49 | { |
| 48 | logger.error("发送指令失败:"+GsonConstructor.get().toJson(fieldname),e); | 50 | logger.error("发送指令失败:"+GsonConstructor.get().toJson(fieldname),e); |
| @@ -54,6 +56,7 @@ public class ManualcontrolService { | @@ -54,6 +56,7 @@ public class ManualcontrolService { | ||
| 54 | MessageUtil.sendFeederResponseMessage(ctx,"manualcontrolOK", FeederBackstateTtpe.success,0); | 56 | MessageUtil.sendFeederResponseMessage(ctx,"manualcontrolOK", FeederBackstateTtpe.success,0); |
| 55 | }catch (Exception e) | 57 | }catch (Exception e) |
| 56 | { | 58 | { |
| 59 | + logger.error("控制出错",e); | ||
| 57 | MessageUtil.sendFeederResponseMessage(ctx,"manualcontrolOK", FeederBackstateTtpe.runErr,0); | 60 | MessageUtil.sendFeederResponseMessage(ctx,"manualcontrolOK", FeederBackstateTtpe.runErr,0); |
| 58 | } | 61 | } |
| 59 | 62 |
-
请 注册 或 登录 后发表评论