| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 自定义handler |
| | | * |
| | | * @author zhibing.pu |
| | | * @Date 2025/3/3 19:30 |
| | | */ |
| | |
| | | private BaseMsgService baseMsgService = SpringUtils.getBean(BaseMsgService.class); |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void channelRead(ChannelHandlerContext ctx, Object object) throws Exception { |
| | | OuterPacket outerPacket = (OuterPacket) object; |
| | |
| | | //数据头 |
| | | String head = msg.substring(0, 2); //--头标识 |
| | | String tail = msg.substring(msg.length() - 2); |
| | | String datalength= msg.substring(2, 10);//--数据头->数据长度 |
| | | String datalength = msg.substring(2, 10);//--数据头->数据长度 |
| | | String dataSeqNo = msg.substring(10, 18);// --数据头->报文序列号 |
| | | String bizdata = msg.substring(18, 22);// --数据头->业务数据类型 |
| | | String code = msg.substring(22, 30); //--数据头->下级平台接入码,上级平台给下级平台分配唯一标识码 |
| | |
| | | |
| | | //数据体 |
| | | String body = msg.substring(62, msg.length() - 2); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 业务路由 |
| | | * |
| | | * @param dataType |
| | | * @param ctx |
| | | * @param out |
| | | */ |
| | | public void serviceRouting(DataType dataType, ChannelHandlerContext ctx, OuterPacket out){ |
| | | switch (dataType){ |
| | | public void serviceRouting(DataType dataType, ChannelHandlerContext ctx, OuterPacket out) { |
| | | log.info("主链路信息交换响应({}):{}", dataType.getCode(), out); |
| | | switch (dataType) { |
| | | case UP_CONNECT_REQ: |
| | | log.info("主链路登录请求({}):{}", DataType.UP_CONNECT_REQ.getCode(), out); |
| | | connectReqService.connect(ctx, out); |
| | |
| | | case UP_LINKTEST_REQ: |
| | | log.info("主链路连接保持请求({}):{}", DataType.UP_LINKTEST_REQ.getCode(), out); |
| | | upLinkTestReqService.linkTest(ctx, out); |
| | | break; |
| | | case UP_DISCONNECT_INFORM: |
| | | log.info("主链路断开通知请求({}):{}", DataType.UP_DISCONNECT_INFORM.getCode(), out); |
| | | upDisconnectInformService.disconnect(ctx, out); |
| | | break; |
| | | case UP_CLOSELINK_INFORM: |
| | | log.info("下级平台主动关闭主从链路通知({}):{}", DataType.UP_CLOSELINK_INFORM.getCode(), out); |
| | | upCloseLinkInformService.closeLinkInform(ctx, out); |
| | | break; |
| | | case DOWN_CONNECT_RSP: |
| | | log.info("从链路连接应答({}):{}", DataType.DOWN_CONNECT_RSP.getCode(), out); |
| | | downConnectRspService.connectRsp(ctx, out); |
| | | break; |
| | | case DOWN_DISCONNECT_RSP: |
| | | log.info("从链路注销应答({}):{}", DataType.DOWN_DISCONNECT_RSP.getCode(), out); |
| | | break; |
| | | case DOWN_LINKTEST_RSP: |
| | | log.info("从链路连接保持应答({}):{}", DataType.DOWN_LINKTEST_RSP.getCode(), out); |
| | | break; |
| | | case UP_MANAGE_TOTAL_RECV_BACK_MSG: |
| | | log.info("发送车辆定位信息数量通知({}):{}", DataType.UP_MANAGE_TOTAL_RECV_BACK_MSG.getCode(), out); |
| | | break; |
| | | case UP_MANAGE_MSG_RSP: |
| | | log.info("平台链路连接情况与车辆定位消息传输情况上报应答消息({}):{}", DataType.UP_MANAGE_MSG_RSP.getCode(), out); |
| | | break; |
| | | case UP_MANAGE_MSG_SN_INFORM: |
| | | log.info("上传平台间消息序列号通知({}):{}", DataType.UP_MANAGE_MSG_SN_INFORM.getCode(), out); |
| | | break; |
| | | case UP_EXG_MSG: |
| | | log.info("主链路车辆动态信息交换({}):{}", DataType.UP_EXG_MSG.getCode(), out); |