diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/RemoteControlGroundLockHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/RemoteControlGroundLockHandler.java index 0a08e7076..b618cd743 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/RemoteControlGroundLockHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/RemoteControlGroundLockHandler.java @@ -13,7 +13,7 @@ import org.springframework.stereotype.Component; * 遥控地锁升锁与降锁命令 * * 服务器下发命令给地锁,地锁执行动作 - * + * @deprecated 桩不会发送这个指令,由平台主动发送 * @author JS-ZZA * @date 2022/9/19 15:41 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ykcCommond/RemoteControlGroundLockCommand.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ykcCommond/RemoteControlGroundLockCommand.java new file mode 100644 index 000000000..f6529b188 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ykcCommond/RemoteControlGroundLockCommand.java @@ -0,0 +1,31 @@ +package com.jsowell.pile.domain.ykcCommond; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 遥控地锁指令 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class RemoteControlGroundLockCommand { + /** + * 桩编号 + */ + private String pileSn; + + /** + * 枪口编号 + */ + private String connectorCode; + + /** + * 地锁操作 + * 0-降 1-升 + */ + private String operate; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/YKCPushCommandService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/YKCPushCommandService.java index d9f94a7ad..998f9639b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/YKCPushCommandService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/YKCPushCommandService.java @@ -71,4 +71,10 @@ public interface YKCPushCommandService { * @param command */ void pushAccountBalanceUpdateCommand(RemoteAccountBalanceUpdateCommand command); + + /** + * 发送遥控地锁升锁与降锁命令 + * + */ + void pushRemoteControlGroundLock(RemoteControlGroundLockCommand command); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java index 6b0dd4f64..f5a89191e 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java @@ -39,6 +39,9 @@ import java.util.Date; import java.util.List; import java.util.Objects; +/** + * 向充电桩发送指令service + */ @Slf4j @Service public class YKCPushCommandServiceImpl implements YKCPushCommandService { @@ -434,4 +437,36 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService { this.push(msg, pileSn, YKCFrameTypeCode.REMOTE_ACCOUNT_BALANCE_UPDATE_CODE); } + + /** + * 遥控地锁 + * @param command + */ + @Override + public void pushRemoteControlGroundLock(RemoteControlGroundLockCommand command) { + // 桩编号 + String pileSn = command.getPileSn(); + byte[] pileSnByteArr = BytesUtil.str2Bcd(pileSn); + + // 枪口号 + String connectorCode = command.getConnectorCode(); + byte[] connectorCodeByteArr = BytesUtil.str2Bcd(connectorCode); + + // 升/降地锁 BCD 码 1 升锁 0X55,降锁 0XFF + byte[] operateByteArr; + if (Constants.ZERO.equals(command.getOperate())) { + operateByteArr = new byte[]{(byte) 0XFF}; + } else { + operateByteArr = new byte[]{0X55}; + } + + // 预留位 BIN 码 4 全部置 0 (可用于多枪) + String obligate = "0000"; + byte[] obligateByteArr = BytesUtil.str2Bcd(obligate); + + // 拼装msg信息 + byte[] msg = Bytes.concat(pileSnByteArr, connectorCodeByteArr, operateByteArr, obligateByteArr); + + this.push(msg, pileSn, YKCFrameTypeCode.REMOTE_CONTROL_GROUND_LOCK_LIFTING_CODE); + } }