|
@@ -1,140 +0,0 @@
|
|
|
-package com.zy.bms.service;
|
|
|
-
|
|
|
-import com.zy.bms.common.Constant;
|
|
|
-import com.zy.bms.config.mqtt.MqttGateway;
|
|
|
-import com.zy.bms.model.Device;
|
|
|
-import com.zy.bms.common.dto.MqttMsgDto;
|
|
|
-import com.zy.bms.common.io.wechat.*;
|
|
|
-import com.zy.bms.websocket.WebSocketServer;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-/**
|
|
|
- * 设置设备服务类,发送远程消息
|
|
|
- *
|
|
|
- * @author yang xiao kun
|
|
|
- * create on 2021/2/1
|
|
|
- */
|
|
|
-@Component
|
|
|
-public class SetToDeviceService {
|
|
|
- @Resource
|
|
|
- private MqttGateway mqttGateway;
|
|
|
- @Resource
|
|
|
- private MqttLogService mqttLogService;
|
|
|
- @Resource
|
|
|
- private WebSocketServer webSocketServer;
|
|
|
-
|
|
|
- /**
|
|
|
- * 发送消息
|
|
|
- *
|
|
|
- * @param payload 消息
|
|
|
- * @param topic 主题
|
|
|
- */
|
|
|
- private void sendMsgToMqtt(String topic, String payload) {
|
|
|
- // 发送消息
|
|
|
- mqttGateway.sendMsgToMqtt(payload, topic);
|
|
|
- // 存储消息日志
|
|
|
- mqttLogService.saveLog(topic, payload, 1);
|
|
|
- // 消息转发前端webSocket
|
|
|
- if (!topic.equals(Constant.TOPIC_REGISTER_CLIENT)) {
|
|
|
- String deviceId = topic.split("/")[1];
|
|
|
- webSocketServer.massMessage(deviceId, payload);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 设置音量
|
|
|
- * 铃声音量暂时不可用 ringvol 参数暂时没用
|
|
|
- *
|
|
|
- * @param io 设置参数
|
|
|
- */
|
|
|
- public void setVolume(SetIO io) {
|
|
|
- //发送模板消息给设备
|
|
|
- MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_VOLUME, io.getDeviceId());
|
|
|
- msg.set("msgvol", io.getMsgVol())
|
|
|
- .set("phonevol", io.getPhoneVol())
|
|
|
- .set("msgtype", 1);
|
|
|
- sendMsgToMqtt(io.getTopic(), msg.toJson());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 设置定位频率
|
|
|
- *
|
|
|
- * @param io 设置参数
|
|
|
- */
|
|
|
- public void setGpsRate(SetIO io) {
|
|
|
- //发送模板消息给设备
|
|
|
- MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_GPS_RATE, io.getDeviceId());
|
|
|
- msg.set("GPS_rate", io.getGpsRate());
|
|
|
- sendMsgToMqtt(io.getTopic(), msg.toJson());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 自动接听
|
|
|
- *
|
|
|
- * @param io 设置参数
|
|
|
- */
|
|
|
- public void setAutoAnswer(SetIO io) {
|
|
|
- //发送模板消息给设备
|
|
|
- MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_AUTO_ANSWER, io.getDeviceId());
|
|
|
- msg.set("autoanswer", io.getAutoAnswer());
|
|
|
- sendMsgToMqtt(io.getTopic(), msg.toJson());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 设置语音播报
|
|
|
- */
|
|
|
- public void sendNews(SetIO io) {
|
|
|
- //发送模板消息给设备
|
|
|
- MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_NEWS, io.getDeviceId());
|
|
|
- msg.set("newstype", io.getNewsType())
|
|
|
- .set("newstime", io.getNewsTime())
|
|
|
- .set("news", io.getNews());
|
|
|
- sendMsgToMqtt(io.getTopic(), msg.toJson());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 设置SOS紧急呼叫
|
|
|
- */
|
|
|
- public void setSOS(SetIO io) {
|
|
|
- //发送模板消息给设备
|
|
|
- MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_SOS, io.getDeviceId());
|
|
|
- msg.set("key0_name", io.getKey0Name())
|
|
|
- .set("key0_phone", io.getKey0Phone())
|
|
|
- .set("key1_name", io.getKey1Name())
|
|
|
- .set("key1_phone", io.getKey1Phone())
|
|
|
- .set("key2_name", io.getKey2Name())
|
|
|
- .set("key2_phone", io.getKey2Phone());
|
|
|
- sendMsgToMqtt(io.getTopic(), msg.toJson());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 设置持续定位
|
|
|
- */
|
|
|
- public void setContinue(SetIO io) {
|
|
|
- //发送模板消息给设备
|
|
|
- MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_CONTINUE_GPS, io.getDeviceId());
|
|
|
- msg.set("highfreq", io.getHighFreq());
|
|
|
- sendMsgToMqtt(io.getTopic(), msg.toJson());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 服务器返回授权码
|
|
|
- */
|
|
|
- public void returnCodeToDevice(Device device) {
|
|
|
- //发送模板消息给设备
|
|
|
- MqttMsgDto msg = new MqttMsgDto();
|
|
|
- msg.setM(Constant.M_CODE_RETURN_CODE);
|
|
|
- msg.setR(Constant.TOPIC_REGISTER_CLIENT);
|
|
|
- msg.setT(Constant.TOPIC_REGISTER_SERVER);
|
|
|
- Map<String, Object> data = new HashMap<>();
|
|
|
- data.put("regnum", device.getNum());
|
|
|
- data.put("deviceid", device.getClientId());
|
|
|
- data.put("password", device.getPassword());
|
|
|
- msg.setData(data);
|
|
|
- sendMsgToMqtt(Constant.TOPIC_REGISTER_CLIENT, msg.toJson());
|
|
|
- }
|
|
|
-}
|