|
|
|
package com.zhonglai.luhui.smart.feeder.util;
|
|
|
|
|
|
|
|
import cn.hutool.core.io.checksum.crc16.CRC16Modbus;
|
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
|
import com.ruoyi.common.utils.ByteUtil;
|
|
|
|
import com.zhonglai.luhui.smart.feeder.dto.commd.*;
|
|
|
|
import com.zhonglai.luhui.smart.feeder.dto.mqtt.CfgdataRequest;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
public class FeederCommdUtil {
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -13,10 +16,14 @@ public class FeederCommdUtil { |
|
|
|
*/
|
|
|
|
public static String readAll()
|
|
|
|
{
|
|
|
|
FeederCommdDto feederCommdDto = new FeederCommdDto(new FeederCommd03Response(0,71));
|
|
|
|
FeederCommdDto feederCommdDto = new FeederCommdDto(new FeederCommd03Response(0,23));
|
|
|
|
return feederCommdDto.getHstr();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
System.out.println(readAll());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 写运行模式
|
|
|
|
* @return
|
|
...
|
...
|
@@ -30,20 +37,32 @@ public class FeederCommdUtil { |
|
|
|
|
|
|
|
/**
|
|
|
|
* 写定时器
|
|
|
|
* @param timerNumber
|
|
|
|
* @param feederTimer
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public static String controlTimer(Integer timerNumber,FeederTimer feederTimer)
|
|
|
|
public static String controlTimer(List<Integer[]> timerList)
|
|
|
|
{
|
|
|
|
byte[] data = null;
|
|
|
|
for (int i=0;i<timerList.size();i++)
|
|
|
|
{
|
|
|
|
Integer[] timerNumbers = timerList.get(i);
|
|
|
|
FeederTimer feederTimer = new FeederTimer();
|
|
|
|
feederTimer.setTimer_start_m(timerNumbers[1]);
|
|
|
|
feederTimer.setTimer_start_h(timerNumbers[0]);
|
|
|
|
feederTimer.setTimer_if_start(timerNumbers[4]);
|
|
|
|
feederTimer.setTimer_is_start(1);
|
|
|
|
feederTimer.setTimer_close_m(timerNumbers[3]);
|
|
|
|
feederTimer.setTimer_close_h(timerNumbers[2]);
|
|
|
|
feederTimer.setTimer_if_close(timerNumbers[4]);
|
|
|
|
feederTimer.setTimer_is_close(1);
|
|
|
|
|
|
|
|
int i23 = 0;
|
|
|
|
if(null != feederTimer.getTimer_close_m())
|
|
|
|
if(null != feederTimer.getTimer_start_m())
|
|
|
|
{
|
|
|
|
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_close_m(),0,7);
|
|
|
|
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_start_m(),0,7);
|
|
|
|
}
|
|
|
|
if(null != feederTimer.getTimer_close_h())
|
|
|
|
if(null != feederTimer.getTimer_start_h())
|
|
|
|
{
|
|
|
|
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_close_h(),8,13);
|
|
|
|
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_start_h(),8,13);
|
|
|
|
}
|
|
|
|
if(null != feederTimer.getTimer_if_start())
|
|
|
|
{
|
|
...
|
...
|
@@ -65,15 +84,25 @@ public class FeederCommdUtil { |
|
|
|
}
|
|
|
|
if(null != feederTimer.getTimer_if_close())
|
|
|
|
{
|
|
|
|
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_h(),14,14);
|
|
|
|
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_if_close(),14,14);
|
|
|
|
}
|
|
|
|
if(null != feederTimer.getTimer_is_close())
|
|
|
|
{
|
|
|
|
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_is_close(),15,15);
|
|
|
|
}
|
|
|
|
if(null != data)
|
|
|
|
{
|
|
|
|
data = ArrayUtil.addAll( data,ByteUtil.intToBytesDESC(i23,2),ByteUtil.intToBytesDESC(i24,2));
|
|
|
|
}else{
|
|
|
|
data = ArrayUtil.addAll( ByteUtil.intToBytesDESC(i23,2),ByteUtil.intToBytesDESC(i24,2));
|
|
|
|
}
|
|
|
|
|
|
|
|
byte[] data = ArrayUtil.addAll( ByteUtil.intToBytesDESC(i23,2),ByteUtil.intToBytesDESC(i24,2));
|
|
|
|
FeederCommdDto feederCommdDto = new FeederCommdDto(new FeederCommd10Response(23+timerNumber-1,4,8,data));
|
|
|
|
return feederCommdDto.getHstr();
|
|
|
|
}
|
|
|
|
|
|
|
|
FeederCommdDto feederCommdDto = new FeederCommdDto(new FeederCommd10Response(23,timerList.size()*2,timerList.size()*4,data));
|
|
|
|
|
|
|
|
return feederCommdDto.getHstr().toUpperCase();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} |
...
|
...
|
|