mirror of
https://gitee.com/san-bing/JChargePointProtocol
synced 2026-05-04 18:09:54 +08:00
云快充离线卡协议相关矫正
This commit is contained in:
@@ -40,7 +40,7 @@ public enum YunKuaiChongDownlinkCmdEnum {
|
||||
|
||||
OTA_REQUEST(0x94),
|
||||
|
||||
LIMIT_UPDATE_REQUEST(0x42),
|
||||
OFFLINE_CARD_BALANCE_UPDATE_REQUEST(0x42),
|
||||
|
||||
OFFLINE_CARD_SYNC_REQUEST(0x44),
|
||||
|
||||
|
||||
@@ -6,21 +6,21 @@
|
||||
*/
|
||||
package sanbing.jcpp.protocol.yunkuaichong.v150.cmd;
|
||||
|
||||
import static sanbing.jcpp.protocol.yunkuaichong.enums.YunKuaiChongDownlinkCmdEnum.LIMIT_UPDATE_REQUEST;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import sanbing.jcpp.infrastructure.util.codec.BCDUtil;
|
||||
import sanbing.jcpp.proto.gen.ProtocolProto;
|
||||
import sanbing.jcpp.proto.gen.ProtocolProto.OfflineCardBalanceUpdateRequest;
|
||||
import sanbing.jcpp.protocol.ProtocolContext;
|
||||
import sanbing.jcpp.protocol.listener.tcp.TcpSession;
|
||||
import sanbing.jcpp.protocol.yunkuaichong.YunKuaiChongDownlinkCmdExe;
|
||||
import sanbing.jcpp.protocol.yunkuaichong.YunKuaiChongDwonlinkMessage;
|
||||
import sanbing.jcpp.protocol.yunkuaichong.annotation.YunKuaiChongCmd;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import static sanbing.jcpp.protocol.yunkuaichong.enums.YunKuaiChongDownlinkCmdEnum.OFFLINE_CARD_BALANCE_UPDATE_REQUEST;
|
||||
|
||||
|
||||
/**
|
||||
* 云快充1.5.0 远程账户余额更新
|
||||
@@ -29,26 +29,26 @@ import sanbing.jcpp.protocol.yunkuaichong.annotation.YunKuaiChongCmd;
|
||||
*/
|
||||
@Slf4j
|
||||
@YunKuaiChongCmd(0x42)
|
||||
public class YunKuaiChongV150LimitUpdateRequestDLCmd extends YunKuaiChongDownlinkCmdExe {
|
||||
public class YunKuaiChongV150OfflineCardBalanceUpdateRequestDLCmd extends YunKuaiChongDownlinkCmdExe {
|
||||
|
||||
@Override
|
||||
public void execute(TcpSession tcpSession, YunKuaiChongDwonlinkMessage message, ProtocolContext ctx) {
|
||||
log.info("{} 云快充1.5.0 远程账户余额更新", tcpSession);
|
||||
|
||||
if (!message.getMsg().hasLimitUpdateRequest()) {
|
||||
if (!message.getMsg().hasOfflineCardBalanceUpdateRequest()) {
|
||||
log.error("云快充1.5.0 远程账户余额更新消息体为空");
|
||||
return;
|
||||
}
|
||||
|
||||
// 初始化 buf
|
||||
ByteBuf msgBody = Unpooled.buffer(20);
|
||||
ProtocolProto.LimitUpdateRequest request = message.getMsg().getLimitUpdateRequest();
|
||||
OfflineCardBalanceUpdateRequest request = message.getMsg().getOfflineCardBalanceUpdateRequest();
|
||||
msgBody.writeBytes(encodePileCode(request.getPileCode()));
|
||||
msgBody.writeBytes(encodeGunCode(request.getGunCode()));
|
||||
msgBody.writeBytes(BCDUtil.toBytes(request.getCardNo()));
|
||||
msgBody.writeIntLE(new BigDecimal(request.getLimitYuan()).movePointRight(2).intValue());
|
||||
|
||||
super.encodeAndWriteFlush(LIMIT_UPDATE_REQUEST, msgBody, tcpSession);
|
||||
super.encodeAndWriteFlush(OFFLINE_CARD_BALANCE_UPDATE_REQUEST, msgBody, tcpSession);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,20 +6,21 @@
|
||||
*/
|
||||
package sanbing.jcpp.protocol.yunkuaichong.v150.cmd;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import sanbing.jcpp.infrastructure.util.codec.BCDUtil;
|
||||
import sanbing.jcpp.proto.gen.ProtocolProto;
|
||||
import sanbing.jcpp.proto.gen.ProtocolProto.OfflineCardBalanceUpdateResponse;
|
||||
import sanbing.jcpp.proto.gen.ProtocolProto.UplinkQueueMessage;
|
||||
import sanbing.jcpp.protocol.ProtocolContext;
|
||||
import sanbing.jcpp.protocol.listener.tcp.TcpSession;
|
||||
import sanbing.jcpp.protocol.yunkuaichong.YunKuaiChongUplinkCmdExe;
|
||||
import sanbing.jcpp.protocol.yunkuaichong.YunKuaiChongUplinkMessage;
|
||||
import sanbing.jcpp.protocol.yunkuaichong.annotation.YunKuaiChongCmd;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* 云快充1.5.0 余额更新应答
|
||||
@@ -28,7 +29,7 @@ import sanbing.jcpp.protocol.yunkuaichong.annotation.YunKuaiChongCmd;
|
||||
*/
|
||||
@Slf4j
|
||||
@YunKuaiChongCmd(0x41)
|
||||
public class YunKuaiChongV150LimitUpdateResponseULCmd extends YunKuaiChongUplinkCmdExe {
|
||||
public class YunKuaiChongV150OfflineCardBalanceUpdateResponseULCmd extends YunKuaiChongUplinkCmdExe {
|
||||
|
||||
private static final Map<Byte, String> UPDATE_RESULT;
|
||||
|
||||
@@ -63,8 +64,8 @@ public class YunKuaiChongV150LimitUpdateResponseULCmd extends YunKuaiChongUplink
|
||||
// 修改结果 0x00-修改成功 0x01-设备编号错误 0x02-卡号错误
|
||||
byte updateResult = byteBuf.readByte();
|
||||
|
||||
ProtocolProto.UplinkQueueMessage queueMessage = uplinkMessageBuilder(pileCode, tcpSession, message)
|
||||
.setLimitUpdateResponse(ProtocolProto.LimitUpdateResponse.newBuilder()
|
||||
UplinkQueueMessage queueMessage = uplinkMessageBuilder(pileCode, tcpSession, message)
|
||||
.setOfflineCardBalanceUpdateResponse(OfflineCardBalanceUpdateResponse.newBuilder()
|
||||
.setPileCode(pileCode)
|
||||
.setCardNo(cardNo)
|
||||
.setSuccess(updateResult == 0x00)
|
||||
Reference in New Issue
Block a user