feat: 通用下发命令方法增加mqtt方式

dev
huangfeng 2 months ago
parent 13d1df339e
commit 35893c3f0d

@ -1,5 +1,6 @@
package com.shxy.xymanager_service.impl; package com.shxy.xymanager_service.impl;
import com.shxy.xymanager_common.exception.ApiException;
import com.shxy.xymanager_common.model.mqtt.MessageSend; import com.shxy.xymanager_common.model.mqtt.MessageSend;
import com.shxy.xymanager_common.model.mqtt.Paras; import com.shxy.xymanager_common.model.mqtt.Paras;
import com.shxy.xymanager_service.mqtt.MqttPublisherService; import com.shxy.xymanager_service.mqtt.MqttPublisherService;
@ -9,6 +10,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Map;
@Service @Service
@ -31,4 +33,30 @@ public class MqttServiceImpl implements MqttService {
paras.setPassword(""); paras.setPassword("");
mqttPublisherService.publish(msg); mqttPublisherService.publish(msg);
} }
@Override
public void setTermCamera(Map<String, String> ctrlBeanMap, String cmdid) throws Exception {
MessageSend msg = this.buildMessage(ctrlBeanMap);
msg.setDeviceId(cmdid);
mqttPublisherService.publish(msg);
}
private MessageSend buildMessage(Map<String, String> map) {
MessageSend msg = new MessageSend();
Paras paras = msg.getParas();
String act = map.get("act");
switch (act) {
case "capture":
Integer channel = Integer.parseInt(map.get("channel"));
paras.setChannelNumber(channel);
Integer preset = Integer.parseInt(map.get("preset"));
paras.setPresetPosition(preset);
paras.setPassword("");
break;
default:
throw new ApiException(act + "暂时无法处理");
}
return msg;
}
} }

@ -129,7 +129,7 @@ public class TermSetServiceImpl implements TermSetService {
// 通道id // 通道id
Integer channelId = vo.getChannelId(); Integer channelId = vo.getChannelId();
Map<String , Object> ctrlBeanMap = new HashMap<>(); Map<String , String> ctrlBeanMap = new HashMap<>();
for (TermCtrlVo.CtrlBean ctrlBean : vo.getList()) { for (TermCtrlVo.CtrlBean ctrlBean : vo.getList()) {
ctrlBeanMap.put(ctrlBean.getName() , ctrlBean.getValue()); ctrlBeanMap.put(ctrlBean.getName() , ctrlBean.getValue());
} }
@ -167,11 +167,7 @@ public class TermSetServiceImpl implements TermSetService {
} }
int requestId = Constants.REQUEST_ID.addAndGet(1); int requestId = Constants.REQUEST_ID.addAndGet(1);
if (vo.getMqtt() != null && vo.getMqtt().intValue() == 1) { if (vo.getMqtt() != null && vo.getMqtt().intValue() == 1) {
if (ctrlBeanMap.get("cat").equals("capture")) { mqttService.setTermCamera(ctrlBeanMap, cmdid);
int preset = Integer.parseInt(ctrlBeanMap.get("preset").toString());
int type = Integer.parseInt(ctrlBeanMap.get("type").toString());
mqttService.takePic(cmdid, channelId, preset, type, requestId);
}
} else { } else {
List<String> cmd = CmaUtil.cmaCtrl(list, cmdid, requestId); List<String> cmd = CmaUtil.cmaCtrl(list, cmdid, requestId);
ProcessExecUtils.execArray(cmd); ProcessExecUtils.execArray(cmd);

@ -1,8 +1,13 @@
package com.shxy.xymanager_service.service; package com.shxy.xymanager_service.service;
import com.shxy.xymanager_common.vo.TermCtrlVo;
import java.util.Map;
public interface MqttService { public interface MqttService {
void takePic(String cmdid, Integer channel, Integer preset, Integer type, Integer requestId) throws Exception; void takePic(String cmdid, Integer channel, Integer preset, Integer type, Integer requestId) throws Exception;
void setTermCamera(Map<String , String> ctrlBeanMap, String cmdid) throws Exception;
} }

Loading…
Cancel
Save