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

问题修改

上级 2a44938d
......@@ -41,9 +41,9 @@ public class PersistentFileServiceImpl implements PersistentFileService {
String path = defaultPath;
if (Platform.isWindows()) {
path = ApqClientApplication.class.getResource("/").getPath() + relatePath;
if (path.contains("BOOT-INF")) {
path = System.getProperty("user.dir") + relatePath;
}
// if (path.contains("BOOT-INF")) {
// path = System.getProperty("user.dir") + relatePath;
// }
path = path.replaceFirst("/", "");//排除中文空格
path = path.replaceAll("%20", " ");//排除中文空格
path = path.replaceAll("/", "\\\\");//排除中文空格
......
......@@ -6,6 +6,7 @@ import lombok.Getter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@Data
public class HwPortControllerDto {
......@@ -101,4 +102,17 @@ public class HwPortControllerDto {
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;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
......@@ -98,6 +95,35 @@ public class ApqControlJob {
long current = System.currentTimeMillis();
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)) {
// 收到硬件策略下发请求
log.info("收到硬件策略下发请求, sendTime:{}, params:{}", sendTime, params);
......@@ -156,7 +182,7 @@ public class ApqControlJob {
// 上报硬件监控数据
Map mapRequest = new HashMap();
for (HwPortControllerDto hwPortControllerDto : hwPortControllerDtos) {
for (HwPortControllerDto hwPortControllerDto : persistentHwPortControllerDtos) {
HwPortControllerDto.DeviceHardwareEnum deviceHardwareEnum = hwPortControllerDto.getKey();
int doType = hwPortControllerDto.getDoType();
int limitType = hwPortControllerDto.getLimitType();
......@@ -247,7 +273,7 @@ public class ApqControlJob {
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();
log.info("APQ_HWPORT_Initialize ret:{}", result);
......@@ -258,6 +284,36 @@ public class ApqControlJob {
result = IHwPortController.instanceDll.APQ_HWPORT_Uninitialize();
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 {
// 1代表插入,2代表拔出
mapRequest.put("changeType", changeType);
// 存放识别到的设备信息(易读信息文本,用逗号区分:"设备描述","友好名称","总线已报告设备描述","提供商", "class=Keyboard")
// 存放识别到的设备信息(易读信息文本,用;区分:"设备描述";"友好名称";"总线已报告设备描述";"提供商";class=Keyboard")
String[] changeDataSplits = changeData.split(";");
// 插入/拔出"设备描述xxx"("供应商"),备注: “总线已报告设备描述” “友好名称”
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论