parent
0df845132d
commit
d29ed06a94
|
@ -13,12 +13,17 @@ import lombok.RequiredArgsConstructor;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class YuanRongProtocolEncode<T> extends MessageToByteEncoder<BaseBinaryProtocol<T>> {
|
||||
@Override
|
||||
protected void encode(ChannelHandlerContext channelHandlerContext, BaseBinaryProtocol<T> baseBinaryProtocol, ByteBuf byteBuf) {
|
||||
protected void encode(ChannelHandlerContext channelHandlerContext,
|
||||
BaseBinaryProtocol<T> baseBinaryProtocol,
|
||||
ByteBuf byteBuf) throws UnsupportedEncodingException {
|
||||
|
||||
if (baseBinaryProtocol == null || baseBinaryProtocol.getMsgContent() == null ||
|
||||
baseBinaryProtocol.getMsgContent().getMsgBody() == null) {
|
||||
|
@ -37,15 +42,31 @@ public class YuanRongProtocolEncode<T> extends MessageToByteEncoder<BaseBinaryPr
|
|||
byteBuf.writeShort(4); // 消息内容长度
|
||||
byteBuf.writeInt(heartProtocol.getSeqId());
|
||||
} else if (msgBody instanceof SensorControlProtocol msg) {
|
||||
int ttsSize;
|
||||
byte[] ttsArray = new byte[0];
|
||||
|
||||
if (msg.getTtsContent() != null && !msg.getTtsContent().isEmpty()) {
|
||||
ttsArray = msg.getTtsContent().getBytes(StandardCharsets.UTF_16BE);
|
||||
ttsSize = ttsArray.length;
|
||||
} else {
|
||||
ttsSize = 0;
|
||||
}
|
||||
|
||||
byteBuf.writeByte(ControlCommandName.COMMAND_SENSOR.getValue().byteValue()); // 消息类型
|
||||
// 消息内容长度
|
||||
byteBuf.writeShort(10 + 3 + msg.getCityCode().size() + msg.getDistrictsCode().size() + msg.getSensorId().size() * 4);
|
||||
byteBuf.writeShort(10 + 4 + ttsSize + msg.getCityCode().size() + msg.getDistrictsCode().size() + msg.getSensorId().size() * 4);
|
||||
byteBuf.writeInt(msg.getTaskId());
|
||||
byteBuf.writeByte(msg.getAlarmMode().getValue().byteValue());
|
||||
byteBuf.writeByte(msg.getAlarmMode().getValue().byteValue());
|
||||
byteBuf.writeByte(msg.getAlarmType().getValue().byteValue());
|
||||
byteBuf.writeByte(msg.getControlTunnel().byteValue());
|
||||
byteBuf.writeInt(msg.getTimeStamp());
|
||||
byteBuf.writeByte(msg.getRepeatTimes().byteValue());
|
||||
byteBuf.writeShort((short) ttsSize);
|
||||
|
||||
if(ttsSize > 0) {
|
||||
byteBuf.writeBytes(ttsArray);
|
||||
}
|
||||
|
||||
if (msg.getCityCode().isEmpty()) {
|
||||
byteBuf.writeByte(0);
|
||||
|
|
|
@ -56,6 +56,8 @@ public class AuthUser {
|
|||
SensorControlTunnelName.TUNNEL_BEIDOU.getValue() |
|
||||
SensorControlTunnelName.TUNNEL_WIRELESS.getValue(),
|
||||
strtodate,
|
||||
0,
|
||||
null,
|
||||
new ArrayList<>(),
|
||||
new ArrayList<>(),
|
||||
new ArrayList<>(Arrays.asList(0, 1, 2, 3)));
|
||||
|
|
|
@ -17,6 +17,8 @@ public class SensorControlProtocol {
|
|||
private AlarmTypeName alarmType;
|
||||
private Integer controlTunnel;
|
||||
private Integer timeStamp;
|
||||
private Integer repeatTimes;
|
||||
private String ttsContent;
|
||||
private List<Integer> cityCode;
|
||||
private List<Integer> districtsCode;
|
||||
private List<Integer> sensorId;
|
||||
|
|
|
@ -18,6 +18,8 @@ public interface AdapterProtocolService {
|
|||
AlarmTypeName alarmType,
|
||||
int tunnelName,
|
||||
Date alarmDt,
|
||||
int repeatTimes,
|
||||
String ttsText,
|
||||
List<Integer> citys,
|
||||
List<Integer> areas,
|
||||
List<Integer> sensors);
|
||||
|
|
|
@ -121,6 +121,7 @@ public class AlarmTaskServiceImpl implements AlarmTaskService {
|
|||
CommonEnumHandler.codeOf(AlarmTypeName.class, alarmTaskReqDTO.getAlarmKind()),
|
||||
alarmTaskReqDTO.getControlChannel(),
|
||||
alarmTaskReqDTO.getSendTime(),
|
||||
0, null,
|
||||
deviceInfo.getCityCodes(),
|
||||
deviceInfo.getCountyCodes(),
|
||||
deviceInfo.getBeidouIds()
|
||||
|
|
|
@ -33,6 +33,8 @@ public class BeidouSocketProtocolServiceImpl implements AdapterProtocolService {
|
|||
AlarmTypeName alarmType,
|
||||
int tunnelName,
|
||||
Date alarmDt,
|
||||
int repeatTimes,
|
||||
String ttsText,
|
||||
List<Integer> citys,
|
||||
List<Integer> areas,
|
||||
List<Integer> sensors) {
|
||||
|
@ -44,6 +46,8 @@ public class BeidouSocketProtocolServiceImpl implements AdapterProtocolService {
|
|||
.alarmType(alarmType)
|
||||
.controlTunnel(tunnelName)
|
||||
.timeStamp((int) timestamp)
|
||||
.repeatTimes(repeatTimes)
|
||||
.ttsContent(ttsText)
|
||||
.cityCode(citys == null ? new ArrayList<>() : citys)
|
||||
.districtsCode(areas == null ? new ArrayList<>() : citys)
|
||||
.sensorId(sensors == null ? new ArrayList<>() : citys)
|
||||
|
|
Loading…
Reference in New Issue