#位置信息增加当前设备任务执行情况
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package com.maibu.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 设备回调状态
|
||||
*
|
||||
* @author bill
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum DeviceStatusEnum {
|
||||
|
||||
offline("0", "离线"),
|
||||
idle("1", "空闲中"),
|
||||
working("2", "工作中"),
|
||||
charging("3", "充电中"),
|
||||
error("4", "故障");
|
||||
|
||||
String code;
|
||||
String message;
|
||||
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import com.maibu.core.host.HostTaskStatusDTO;
|
||||
import com.maibu.core.host.HostVehicleRelTimeDTO;
|
||||
import com.maibu.core.host.LocationMessage;
|
||||
import com.maibu.core.redis.RedisCache;
|
||||
import com.maibu.enums.DeviceStatusEnum;
|
||||
import com.maibu.memory.DeviceSessionManager;
|
||||
import com.maibu.memory.GlobalMemory;
|
||||
import com.maibu.memory.SiteMemory;
|
||||
@@ -128,7 +129,7 @@ public class HostMessageHandler implements CustomMqttMessageHandler {
|
||||
log.debug("【位置数据】deviceId={}, payload={}", deviceId, payload);
|
||||
HostLocationRelTimeDTO locationRelTimeDTO = JsonUtils.parseObject(payload, HostLocationRelTimeDTO.class);
|
||||
if (locationRelTimeDTO != null) {
|
||||
WebStatusMessageDTO dto = createWebDeviceLocationMessage(locationRelTimeDTO);
|
||||
WebStatusMessageDTO dto = createWebDeviceLocationMessage(locationRelTimeDTO, deviceId);
|
||||
List<NettyDevice> controlMasters = deviceSessionManager
|
||||
.getAllSlaveControl(deviceId);
|
||||
if (!CollectionUtils.isEmpty(controlMasters)) {
|
||||
@@ -154,11 +155,12 @@ public class HostMessageHandler implements CustomMqttMessageHandler {
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("位置消息解析失败: deviceId={}, payload={}, error={}", deviceId, payload, e.getMessage());
|
||||
log.error("位置消息解析失败: deviceId={}, payload={}, error={}", deviceId, payload, e);
|
||||
}
|
||||
}
|
||||
|
||||
public WebStatusMessageDTO createWebDeviceLocationMessage(HostLocationRelTimeDTO locationRelTimeDTO) {
|
||||
public WebStatusMessageDTO createWebDeviceLocationMessage(HostLocationRelTimeDTO locationRelTimeDTO,
|
||||
String deviceId) {
|
||||
WebStatusMessageDTO webStatusMessageDTO = new WebStatusMessageDTO();
|
||||
List<DeviceStatusDetail> transferData = new ArrayList<>();
|
||||
DeviceStatusDetail lat = new DeviceStatusDetail();
|
||||
@@ -192,6 +194,27 @@ public class HostMessageHandler implements CustomMqttMessageHandler {
|
||||
altitude.setUnit("");
|
||||
transferData.add(altitude);
|
||||
|
||||
DeviceStatusDetail status = new DeviceStatusDetail();
|
||||
status.setName("status");
|
||||
|
||||
NettyDevice nettyDevice = deviceSessionManager.getDevice(deviceId);
|
||||
// todo error故障
|
||||
if (nettyDevice != null) {
|
||||
if (nettyDevice.getOnlineStatus() == 0) {
|
||||
status.setValue(DeviceStatusEnum.offline.getCode());
|
||||
} else {
|
||||
if (nettyDevice.getTask() != null && nettyDevice.getTask().isTaskAccepted()) {
|
||||
status.setValue(DeviceStatusEnum.working.getCode());
|
||||
} else {
|
||||
status.setValue(DeviceStatusEnum.idle.getCode());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
status.setValue(DeviceStatusEnum.offline.getCode());
|
||||
}
|
||||
status.setUnit("");
|
||||
transferData.add(status);
|
||||
|
||||
webStatusMessageDTO.setData(transferData);
|
||||
webStatusMessageDTO.setType(MesType.locationInfo);
|
||||
return webStatusMessageDTO;
|
||||
@@ -440,7 +463,6 @@ public class HostMessageHandler implements CustomMqttMessageHandler {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onConnectionLost(String deviceKey, Throwable cause) {
|
||||
log.warn("主机监控连接断开: deviceKey={}, reason={}", deviceKey, cause.getMessage());
|
||||
|
||||
Reference in New Issue
Block a user