提交 273c44ac authored 作者: wangqiang's avatar wangqiang

问题修改

上级 2a44938d
...@@ -41,9 +41,9 @@ public class PersistentFileServiceImpl implements PersistentFileService { ...@@ -41,9 +41,9 @@ public class PersistentFileServiceImpl implements PersistentFileService {
String path = defaultPath; String path = defaultPath;
if (Platform.isWindows()) { if (Platform.isWindows()) {
path = ApqClientApplication.class.getResource("/").getPath() + relatePath; path = ApqClientApplication.class.getResource("/").getPath() + relatePath;
if (path.contains("BOOT-INF")) { // if (path.contains("BOOT-INF")) {
path = System.getProperty("user.dir") + relatePath; // path = System.getProperty("user.dir") + relatePath;
} // }
path = path.replaceFirst("/", "");//排除中文空格 path = path.replaceFirst("/", "");//排除中文空格
path = path.replaceAll("%20", " ");//排除中文空格 path = path.replaceAll("%20", " ");//排除中文空格
path = path.replaceAll("/", "\\\\");//排除中文空格 path = path.replaceAll("/", "\\\\");//排除中文空格
......
...@@ -6,6 +6,7 @@ import lombok.Getter; ...@@ -6,6 +6,7 @@ import lombok.Getter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
@Data @Data
public class HwPortControllerDto { public class HwPortControllerDto {
...@@ -101,4 +102,17 @@ public class HwPortControllerDto { ...@@ -101,4 +102,17 @@ public class HwPortControllerDto {
this.name = name; this.name = name;
} }
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
HwPortControllerDto that = (HwPortControllerDto) o;
return key == that.key;
}
@Override
public int hashCode() {
return Objects.hash(key);
}
} }
...@@ -18,10 +18,7 @@ import org.springframework.web.client.RestTemplate; ...@@ -18,10 +18,7 @@ import org.springframework.web.client.RestTemplate;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy; import javax.annotation.PreDestroy;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
...@@ -98,6 +95,35 @@ public class ApqControlJob { ...@@ -98,6 +95,35 @@ public class ApqControlJob {
long current = System.currentTimeMillis(); long current = System.currentTimeMillis();
List<HwPortControllerDto> hwPortControllerDtos = JSONUtil.toList(params, HwPortControllerDto.class); List<HwPortControllerDto> hwPortControllerDtos = JSONUtil.toList(params, HwPortControllerDto.class);
// 合并硬件请求检查
// 先获取数据
// 获取硬件监控配置 params == data
ResponseEntity<MqttRpcDataMessage> persistentEntity = null;
try {
persistentEntity = restTemplate.getForEntity("http://localhost:8765/rpc_cmd/controll_4_merge", MqttRpcDataMessage.class);
} catch (Exception e) {
log.error("硬件监控上报异常merge", e.getMessage());
}
List<HwPortControllerDto> persistentHwPortControllerDtos = null;
if (null != persistentEntity) {
MqttRpcDataMessage persistentEntityBody = persistentEntity.getBody();
String persistentEntityParams = persistentEntityBody.getParams();
if (StrUtil.isNotBlank(persistentEntityParams)) {
persistentHwPortControllerDtos = JSONUtil.toList(persistentEntityParams, HwPortControllerDto.class);
persistentHwPortControllerDtos.removeAll(hwPortControllerDtos);
persistentHwPortControllerDtos.addAll(hwPortControllerDtos);
}
} else {
persistentHwPortControllerDtos = hwPortControllerDtos;
}
MqttRpcDataMessage mqttRpcDataMessage = MqttRpcDataMessage.builder()
.sendTime(System.currentTimeMillis())
.method("controll_4_merge")
.params(JSONUtil.toJsonStr(persistentHwPortControllerDtos)).build();
restTemplate.postForObject("http://localhost:8765/rpc_cmd", mqttRpcDataMessage, String.class);
if (current - sendTime <= FIXED_DELAY && CollUtil.isNotEmpty(hwPortControllerDtos)) { if (current - sendTime <= FIXED_DELAY && CollUtil.isNotEmpty(hwPortControllerDtos)) {
// 收到硬件策略下发请求 // 收到硬件策略下发请求
log.info("收到硬件策略下发请求, sendTime:{}, params:{}", sendTime, params); log.info("收到硬件策略下发请求, sendTime:{}, params:{}", sendTime, params);
...@@ -156,7 +182,7 @@ public class ApqControlJob { ...@@ -156,7 +182,7 @@ public class ApqControlJob {
// 上报硬件监控数据 // 上报硬件监控数据
Map mapRequest = new HashMap(); Map mapRequest = new HashMap();
for (HwPortControllerDto hwPortControllerDto : hwPortControllerDtos) { for (HwPortControllerDto hwPortControllerDto : persistentHwPortControllerDtos) {
HwPortControllerDto.DeviceHardwareEnum deviceHardwareEnum = hwPortControllerDto.getKey(); HwPortControllerDto.DeviceHardwareEnum deviceHardwareEnum = hwPortControllerDto.getKey();
int doType = hwPortControllerDto.getDoType(); int doType = hwPortControllerDto.getDoType();
int limitType = hwPortControllerDto.getLimitType(); int limitType = hwPortControllerDto.getLimitType();
...@@ -247,7 +273,7 @@ public class ApqControlJob { ...@@ -247,7 +273,7 @@ public class ApqControlJob {
log.info("APQ_HWPORT_Apply ret:{}", result5); log.info("APQ_HWPORT_Apply ret:{}", result5);
} }
public static void main(String[] args) { /* public static void main(String[] args) {
// 初始化硬件接口管理模块 // 初始化硬件接口管理模块
int result = IHwPortController.instanceDll.APQ_HWPORT_Initialize(); int result = IHwPortController.instanceDll.APQ_HWPORT_Initialize();
log.info("APQ_HWPORT_Initialize ret:{}", result); log.info("APQ_HWPORT_Initialize ret:{}", result);
...@@ -258,6 +284,36 @@ public class ApqControlJob { ...@@ -258,6 +284,36 @@ public class ApqControlJob {
result = IHwPortController.instanceDll.APQ_HWPORT_Uninitialize(); result = IHwPortController.instanceDll.APQ_HWPORT_Uninitialize();
log.info("APQ_HWPORT_Uninitialize ret:{}", result); log.info("APQ_HWPORT_Uninitialize ret:{}", result);
}*/
public static void main(String[] args) {
List<HwPortControllerDto> hwPortControllerDtos = new ArrayList<>();
HwPortControllerDto hwPortControllerDto = new HwPortControllerDto();
hwPortControllerDto.setKey(HwPortControllerDto.DeviceHardwareEnum.BLUETOOTH);
hwPortControllerDto.setValue(1);
hwPortControllerDtos.add(hwPortControllerDto);
HwPortControllerDto hwPortControllerDto2 = new HwPortControllerDto();
hwPortControllerDto2.setKey(HwPortControllerDto.DeviceHardwareEnum.CAMERA);
hwPortControllerDto2.setValue(1);
hwPortControllerDtos.add(hwPortControllerDto);
List<HwPortControllerDto> persistentHwPortControllerDtos = new ArrayList<>();
HwPortControllerDto persistentHwPortControllerDto = new HwPortControllerDto();
persistentHwPortControllerDto.setKey(HwPortControllerDto.DeviceHardwareEnum.BLUETOOTH);
persistentHwPortControllerDto.setValue(0);
persistentHwPortControllerDtos.add(persistentHwPortControllerDto);
HwPortControllerDto persistentHwPortControllerDtos2 = new HwPortControllerDto();
persistentHwPortControllerDtos2.setKey(HwPortControllerDto.DeviceHardwareEnum.CD_DRIVE);
persistentHwPortControllerDtos2.setValue(1);
persistentHwPortControllerDtos.add(persistentHwPortControllerDtos2);
persistentHwPortControllerDtos.removeAll(hwPortControllerDtos);
persistentHwPortControllerDtos.addAll(hwPortControllerDtos);
System.out.println(JSONUtil.toJsonStr(persistentHwPortControllerDtos));
} }
} }
...@@ -33,7 +33,7 @@ public class DeviceChangeCallbackImpl implements IDeviceChangeCallback { ...@@ -33,7 +33,7 @@ public class DeviceChangeCallbackImpl implements IDeviceChangeCallback {
// 1代表插入,2代表拔出 // 1代表插入,2代表拔出
mapRequest.put("changeType", changeType); mapRequest.put("changeType", changeType);
// 存放识别到的设备信息(易读信息文本,用逗号区分:"设备描述","友好名称","总线已报告设备描述","提供商", "class=Keyboard") // 存放识别到的设备信息(易读信息文本,用;区分:"设备描述";"友好名称";"总线已报告设备描述";"提供商";class=Keyboard")
String[] changeDataSplits = changeData.split(";"); String[] changeDataSplits = changeData.split(";");
// 插入/拔出"设备描述xxx"("供应商"),备注: “总线已报告设备描述” “友好名称” // 插入/拔出"设备描述xxx"("供应商"),备注: “总线已报告设备描述” “友好名称”
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论