作者 钟来

模块整理

... ... @@ -63,7 +63,7 @@ public class ScaleStepMethodService {
//发送停止投料指令
if (serialPortService.isOpen())
{
serialPortService.sendHexData(FeederCommdUtil.controlData(FeederCommd06ResponseType.OnOroff,0));
serialPortService.sendHexData(FeederCommdUtil.controlData(FeederCommd06ResponseType.runstate,0));
stringBuffer.append("发送停止投料指令,");
}else{
stringBuffer.append("投料机串口未打开,无法发送停止投料指令,");
... ...
... ... @@ -21,7 +21,7 @@ public enum FeederCommd06ResponseType {
/**
* 开/关
*/
OnOroff(17),
runstate(17),
/**
*停投料倒计时
*/
... ...
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,50 +37,72 @@ public class FeederCommdUtil {
/**
* 写定时器
* @param timerNumber
* @param feederTimer
* @return
*/
public static String controlTimer(Integer timerNumber,FeederTimer feederTimer)
public static String controlTimer(List<Integer[]> timerList)
{
int i23 = 0;
if(null != feederTimer.getTimer_close_m())
{
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_close_m(),0,7);
}
if(null != feederTimer.getTimer_close_h())
{
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_close_h(),8,13);
}
if(null != feederTimer.getTimer_if_start())
{
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_if_start(),14,14);
}
if(null != feederTimer.getTimer_is_start())
byte[] data = null;
for (int i=0;i<timerList.size();i++)
{
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_is_start(),15,15);
}
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_start_m())
{
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_start_m(),0,7);
}
if(null != feederTimer.getTimer_start_h())
{
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_start_h(),8,13);
}
if(null != feederTimer.getTimer_if_start())
{
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_if_start(),14,14);
}
if(null != feederTimer.getTimer_is_start())
{
i23 = ByteUtil.assignBits(i23,feederTimer.getTimer_is_start(),15,15);
}
int i24 = 0;
if(null != feederTimer.getTimer_close_m())
{
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_m(),0,7);
}
if(null != feederTimer.getTimer_close_h())
{
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_h(),8,13);
}
if(null != feederTimer.getTimer_if_close())
{
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));
}
int i24 = 0;
if(null != feederTimer.getTimer_close_m())
{
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_m(),0,7);
}
if(null != feederTimer.getTimer_close_h())
{
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_h(),8,13);
}
if(null != feederTimer.getTimer_if_close())
{
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_close_h(),14,14);
}
if(null != feederTimer.getTimer_is_close())
{
i24 = ByteUtil.assignBits(i24,feederTimer.getTimer_is_close(),15,15);
}
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();
}
}
... ...