|
@@ -1,186 +0,0 @@
|
|
|
-package com.ruoyi.hard.xuankang;
|
|
|
-
|
|
|
-import com.jwk.spring.boot.autoconfigure.ModbusTcpMasterTemplate;
|
|
|
-import com.jwk.spring.boot.constant.DATA_TYPE_WRAPPER;
|
|
|
-import com.jwk.spring.boot.modbus4j.ModbusMasterUtil;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
-
|
|
|
-import static com.ruoyi.hard.xuankang.beltLine.CONVEYOR_LINE_COMMAND.*;
|
|
|
-
|
|
|
-
|
|
|
-/**
|
|
|
- * @author Jwk
|
|
|
- * @version 1.0
|
|
|
- * @date 2023/5/6 9:41
|
|
|
- */
|
|
|
-@Slf4j
|
|
|
-@Service
|
|
|
-public class beltLine {
|
|
|
-
|
|
|
- /**
|
|
|
- * 输送线
|
|
|
- */
|
|
|
- @Autowired(required = false)
|
|
|
- @Qualifier("modbusTcpMasterTemplateThird")
|
|
|
- private ModbusTcpMasterTemplate modbusTcpMasterTemplateThird;
|
|
|
-
|
|
|
- /**
|
|
|
- * 输送线命令
|
|
|
- */
|
|
|
- public enum CONVEYOR_LINE_COMMAND {
|
|
|
- //读心跳
|
|
|
- READ_THE_HEART(1, 0, 1, 0),
|
|
|
- //读模式
|
|
|
- READ_THE_MODE(1, 1, 1, 0),
|
|
|
- //读状态
|
|
|
- READ_THE_STATE(1, 2, 1, 0),
|
|
|
- //写心跳
|
|
|
- WRITE_THE_HEART(1, 9, 1, 0),
|
|
|
- //写模式
|
|
|
- WRITE_THE_MODE(1, 10, 1, 0),
|
|
|
- //写状态
|
|
|
- WRITE_THE_STATE(1, 11, 1, 0),
|
|
|
- //写通过方向
|
|
|
- WRITE_THE_DIRECTION(1, 12, 1, 0);
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 从节点id
|
|
|
- */
|
|
|
- private int slaveId;
|
|
|
- /**
|
|
|
- * 地址
|
|
|
- */
|
|
|
- private int offset;
|
|
|
- /**
|
|
|
- * 读的长度
|
|
|
- */
|
|
|
- private int value;
|
|
|
- /**
|
|
|
- * 写的值
|
|
|
- */
|
|
|
- private int value1;
|
|
|
-
|
|
|
- CONVEYOR_LINE_COMMAND(int slaveId, int offset, int value, int value1) {
|
|
|
- this.slaveId = slaveId;
|
|
|
- this.offset = offset;
|
|
|
- this.value = value;
|
|
|
- this.value1 = value1;
|
|
|
- }
|
|
|
-
|
|
|
- public int getSlaveId() {
|
|
|
- return slaveId;
|
|
|
- }
|
|
|
-
|
|
|
- public int getOffset() {
|
|
|
- return offset;
|
|
|
- }
|
|
|
-
|
|
|
- public int getValue() {
|
|
|
- return value;
|
|
|
- }
|
|
|
-
|
|
|
- public int getValue1() {
|
|
|
- return value1;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 读心跳
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Number ReadHeartbeat() {
|
|
|
- Number number = read1( READ_THE_HEART.getSlaveId(),READ_THE_HEART.getOffset());
|
|
|
- return number;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 读模式
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Number readMode() {
|
|
|
- Number number = read1(READ_THE_MODE.getSlaveId(), READ_THE_MODE.getOffset());
|
|
|
- return number;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 读状态
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Number readState() {
|
|
|
- Number number = read1(READ_THE_STATE.getSlaveId(), READ_THE_STATE.getOffset());
|
|
|
- return number;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 写通讯心跳
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Boolean writeHeartbeat(int i) {
|
|
|
- return write(WRITE_THE_HEART.getSlaveId(), WRITE_THE_HEART.getOffset(), i);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 写模式
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Boolean writeMode(int i) {
|
|
|
- return write(WRITE_THE_MODE.getSlaveId(), WRITE_THE_MODE.getOffset(), i);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 写状态
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Boolean writeState(int i) {
|
|
|
- return write(WRITE_THE_STATE.getSlaveId(), WRITE_THE_STATE.getOffset(), i);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 写通过方向
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Boolean writeDirection(int i) {
|
|
|
- return write(WRITE_THE_DIRECTION.getSlaveId(), WRITE_THE_DIRECTION.getOffset(), i);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 读的方法
|
|
|
- *
|
|
|
- * @param slaveId
|
|
|
- * @param offset
|
|
|
- * @param len
|
|
|
- * @return
|
|
|
- */
|
|
|
- private Number read1(int slaveId, int offset) {
|
|
|
- ModbusMasterUtil modbusMasterUtil = modbusTcpMasterTemplateThird.getModbusMasterUtil();
|
|
|
- Number number = modbusMasterUtil.readHoldingRegister(slaveId, offset, DATA_TYPE_WRAPPER.TWO_BYTE_INT_UNSIGNED);
|
|
|
- return number;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 写的方法
|
|
|
- *
|
|
|
- * @param slaveId
|
|
|
- * @param offset
|
|
|
- * @param value
|
|
|
- * @return
|
|
|
- */
|
|
|
- private Boolean write(int slaveId, int offset, int value) {
|
|
|
- ModbusMasterUtil modbusMasterUtil = modbusTcpMasterTemplateThird.getModbusMasterUtil();
|
|
|
- return modbusMasterUtil.writeHoldingRegisters(slaveId, offset, value);
|
|
|
- }
|
|
|
-
|
|
|
-}
|