作者 钟来

模块整理

@@ -63,7 +63,7 @@ public class ScaleStepMethodService { @@ -63,7 +63,7 @@ public class ScaleStepMethodService {
63 //发送停止投料指令 63 //发送停止投料指令
64 if (serialPortService.isOpen()) 64 if (serialPortService.isOpen())
65 { 65 {
66 - serialPortService.sendHexData(FeederCommdUtil.controlData(FeederCommd06ResponseType.OnOroff,0)); 66 + serialPortService.sendHexData(FeederCommdUtil.controlData(FeederCommd06ResponseType.runstate,0));
67 stringBuffer.append("发送停止投料指令,"); 67 stringBuffer.append("发送停止投料指令,");
68 }else{ 68 }else{
69 stringBuffer.append("投料机串口未打开,无法发送停止投料指令,"); 69 stringBuffer.append("投料机串口未打开,无法发送停止投料指令,");
@@ -21,7 +21,7 @@ public enum FeederCommd06ResponseType { @@ -21,7 +21,7 @@ public enum FeederCommd06ResponseType {
21 /** 21 /**
22 * 开/关 22 * 开/关
23 */ 23 */
24 - OnOroff(17), 24 + runstate(17),
25 /** 25 /**
26 *停投料倒计时 26 *停投料倒计时
27 */ 27 */
1 package com.zhonglai.luhui.smart.feeder.util; 1 package com.zhonglai.luhui.smart.feeder.util;
2 2
  3 +import cn.hutool.core.io.checksum.crc16.CRC16Modbus;
3 import cn.hutool.core.util.ArrayUtil; 4 import cn.hutool.core.util.ArrayUtil;
4 import com.ruoyi.common.utils.ByteUtil; 5 import com.ruoyi.common.utils.ByteUtil;
5 import com.zhonglai.luhui.smart.feeder.dto.commd.*; 6 import com.zhonglai.luhui.smart.feeder.dto.commd.*;
6 import com.zhonglai.luhui.smart.feeder.dto.mqtt.CfgdataRequest; 7 import com.zhonglai.luhui.smart.feeder.dto.mqtt.CfgdataRequest;
7 8
  9 +import java.util.List;
  10 +
8 public class FeederCommdUtil { 11 public class FeederCommdUtil {
9 12
10 /** 13 /**
@@ -13,10 +16,14 @@ public class FeederCommdUtil { @@ -13,10 +16,14 @@ public class FeederCommdUtil {
13 */ 16 */
14 public static String readAll() 17 public static String readAll()
15 { 18 {
16 - FeederCommdDto feederCommdDto = new FeederCommdDto(new FeederCommd03Response(0,71)); 19 + FeederCommdDto feederCommdDto = new FeederCommdDto(new FeederCommd03Response(0,23));
17 return feederCommdDto.getHstr(); 20 return feederCommdDto.getHstr();
18 } 21 }
19 22
  23 + public static void main(String[] args) {
  24 + System.out.println(readAll());
  25 + }
  26 +
20 /** 27 /**
21 * 写运行模式 28 * 写运行模式
22 * @return 29 * @return
@@ -30,50 +37,72 @@ public class FeederCommdUtil { @@ -30,50 +37,72 @@ public class FeederCommdUtil {
30 37
31 /** 38 /**
32 * 写定时器 39 * 写定时器
33 - * @param timerNumber  
34 - * @param feederTimer  
35 * @return 40 * @return
36 */ 41 */
37 - public static String controlTimer(Integer timerNumber,FeederTimer feederTimer) 42 + public static String controlTimer(List<Integer[]> timerList)
38 { 43 {
39 - int i23 = 0;  
40 - if(null != feederTimer.getTimer_close_m())  
41 - {  
42 - i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_close_m(),0,7);  
43 - }  
44 - if(null != feederTimer.getTimer_close_h())  
45 - {  
46 - i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_close_h(),8,13);  
47 - }  
48 - if(null != feederTimer.getTimer_if_start())  
49 - {  
50 - i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_if_start(),14,14);  
51 - }  
52 - if(null != feederTimer.getTimer_is_start()) 44 + byte[] data = null;
  45 + for (int i=0;i<timerList.size();i++)
53 { 46 {
54 - i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_is_start(),15,15);  
55 - } 47 + Integer[] timerNumbers = timerList.get(i);
  48 + FeederTimer feederTimer = new FeederTimer();
  49 + feederTimer.setTimer_start_m(timerNumbers[1]);
  50 + feederTimer.setTimer_start_h(timerNumbers[0]);
  51 + feederTimer.setTimer_if_start(timerNumbers[4]);
  52 + feederTimer.setTimer_is_start(1);
  53 + feederTimer.setTimer_close_m(timerNumbers[3]);
  54 + feederTimer.setTimer_close_h(timerNumbers[2]);
  55 + feederTimer.setTimer_if_close(timerNumbers[4]);
  56 + feederTimer.setTimer_is_close(1);
  57 +
  58 + int i23 = 0;
  59 + if(null != feederTimer.getTimer_start_m())
  60 + {
  61 + i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_start_m(),0,7);
  62 + }
  63 + if(null != feederTimer.getTimer_start_h())
  64 + {
  65 + i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_start_h(),8,13);
  66 + }
  67 + if(null != feederTimer.getTimer_if_start())
  68 + {
  69 + i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_if_start(),14,14);
  70 + }
  71 + if(null != feederTimer.getTimer_is_start())
  72 + {
  73 + i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_is_start(),15,15);
  74 + }
  75 +
  76 + int i24 = 0;
  77 + if(null != feederTimer.getTimer_close_m())
  78 + {
  79 + i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_m(),0,7);
  80 + }
  81 + if(null != feederTimer.getTimer_close_h())
  82 + {
  83 + i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_h(),8,13);
  84 + }
  85 + if(null != feederTimer.getTimer_if_close())
  86 + {
  87 + i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_if_close(),14,14);
  88 + }
  89 + if(null != feederTimer.getTimer_is_close())
  90 + {
  91 + i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_is_close(),15,15);
  92 + }
  93 + if(null != data)
  94 + {
  95 + data = ArrayUtil.addAll( data,ByteUtil.intToBytesDESC(i23,2),ByteUtil.intToBytesDESC(i24,2));
  96 + }else{
  97 + data = ArrayUtil.addAll( ByteUtil.intToBytesDESC(i23,2),ByteUtil.intToBytesDESC(i24,2));
  98 + }
56 99
57 - int i24 = 0;  
58 - if(null != feederTimer.getTimer_close_m())  
59 - {  
60 - i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_m(),0,7);  
61 - }  
62 - if(null != feederTimer.getTimer_close_h())  
63 - {  
64 - i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_h(),8,13);  
65 - }  
66 - if(null != feederTimer.getTimer_if_close())  
67 - {  
68 - i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_h(),14,14);  
69 - }  
70 - if(null != feederTimer.getTimer_is_close())  
71 - {  
72 - i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_is_close(),15,15);  
73 } 100 }
74 101
75 - byte[] data = ArrayUtil.addAll( ByteUtil.intToBytesDESC(i23,2),ByteUtil.intToBytesDESC(i24,2));  
76 - FeederCommdDto feederCommdDto = new FeederCommdDto(new FeederCommd10Response(23+timerNumber-1,4,8,data));  
77 - return feederCommdDto.getHstr(); 102 + FeederCommdDto feederCommdDto = new FeederCommdDto(new FeederCommd10Response(23,timerList.size()*2,timerList.size()*4,data));
  103 +
  104 + return feederCommdDto.getHstr().toUpperCase();
78 } 105 }
  106 +
  107 +
79 } 108 }