Browse Source

大屏数据

523096025 2 years ago
parent
commit
6f6d7041c3

+ 0 - 1
huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java

@@ -277,7 +277,6 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
     private String getDeviceStatus(List<EnvDeviceEquipment> list) {
         StringBuffer deviceStatus = new StringBuffer("0000000000000000");
         for (EnvDeviceEquipment envDeviceEquipment : list) {
-
             Integer equipmentPort = envDeviceEquipment.getEquipmentPort();
             Integer openStart = envDeviceEquipment.getUploadStart();
             deviceStatus.replace(equipmentPort -1,equipmentPort,openStart+"");

+ 1 - 1
huimv-env-platform/huimv-env-manage/src/main/java/com/huimv/env/manage/HuimvEnvManageApplication.java

@@ -72,7 +72,7 @@ public class HuimvEnvManageApplication {
         connector.setPort(10011);
         connector.setSecure(false);
         //监听到http的端口号后转向到的https的端口号,也就是项目配置的port
-        connector.setRedirectPort(8097);
+        connector.setRedirectPort(8096);
         return connector;
     }
 }

+ 7 - 4
huimv-env-platform/huimv-env-manage/src/main/java/com/huimv/env/manage/saas/controller/EnvDeviceEquipmentController.java

@@ -1,6 +1,7 @@
 package com.huimv.env.manage.saas.controller;
 
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.env.manage.entity.EnvDeviceRegister;
@@ -47,7 +48,8 @@ public class EnvDeviceEquipmentController {
     public Result update(@RequestBody EnvDeviceEquipment envDeviceEquipment){
         try {
             envDeviceEquipmentService.updateById(envDeviceEquipment);
-            String deviceCode = envDeviceEquipment.getDeviceCode();
+            EnvDeviceEquipment byId = envDeviceEquipmentService.getById(envDeviceEquipment.getId());
+            String deviceCode = byId.getDeviceCode();
             System.out.println("设备"+deviceCode);
             QueryWrapper<EnvDeviceRegister> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("device_code",deviceCode);
@@ -55,8 +57,6 @@ public class EnvDeviceEquipmentController {
             String chipId = one.getChipId();
             log.info("-------获取设备编码:"+chipId);
             PublishMQTT publishMQTT = new PublishMQTT();
-            String connect = publishMQTT.Connect(chipId);
-            log.info("-----连接成功----");
 
             log.info("-----开始配置消息----");
             QueryWrapper<EnvDeviceEquipment> queryWrapper1 = new QueryWrapper<>();
@@ -70,11 +70,14 @@ public class EnvDeviceEquipmentController {
                 deviceStatus.replace(equipmentPort -1,equipmentPort,openStart+"");
             }
             String s = deviceStatus.toString();
+            JSONObject jsonObject  =new JSONObject();
+            jsonObject.put("dev_ctrl",s);
             log.info("消息配置完成开始发送:"+s);
 
-            publishMQTT.start("tcp://192.168.1.68:1883",chipId,"admin","admin","huimv_down_"+chipId,s);
+            publishMQTT.start("tcp://115.238.57.190:1883",chipId,"admin","admin","huimv_down_"+chipId,jsonObject.toJSONString());
             return new Result(10000,"修改成功",true);
         }catch (Exception e){
+            System.out.println(e);
             return new Result(10001,"修改失败",false);
         }
 

+ 1 - 1
huimv-env-platform/huimv-env-manage/src/main/java/com/huimv/env/manage/saas/mqtt/subscribe/PushCallback.java

@@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
 
 @Component
 //接收消息回调
-class PushCallback implements MqttCallback {
+public class PushCallback implements MqttCallback {
 
 
     @Override

+ 29 - 0
huimv-env-platform/huimv-env-manage/src/main/java/com/huimv/env/manage/saas/mqtt/uplod/UploadMqttStart.java

@@ -0,0 +1,29 @@
+package com.huimv.env.manage.saas.mqtt.uplod;
+
+import com.huimv.env.manage.entity.EnvDeviceRegister;
+import com.huimv.env.manage.service.IEnvDeviceRegisterService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
+
+@Component
+public class UploadMqttStart {
+
+    @Autowired
+    private IEnvDeviceRegisterService deviceRegisterService;
+
+    @PostConstruct
+    public void test(){
+        List<EnvDeviceRegister> list = deviceRegisterService.list();
+        for (EnvDeviceRegister deviceRegister : list) {
+            String chipId = deviceRegister.getChipId();
+            uploadmqtt uploadmqtt = new uploadmqtt();
+            uploadmqtt.setClientid(chipId);
+            uploadmqtt.setTopic("huimv_up_"+chipId);
+            uploadmqtt.start();
+        }
+    }
+
+}

+ 61 - 0
huimv-env-platform/huimv-env-manage/src/main/java/com/huimv/env/manage/saas/mqtt/uplod/uploadmqtt.java

@@ -0,0 +1,61 @@
+package com.huimv.env.manage.saas.mqtt.uplod;
+
+
+import com.huimv.env.manage.saas.mqtt.subscribe.PushCallback;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.SneakyThrows;
+
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+import org.springframework.transaction.annotation.Transactional;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class uploadmqtt  extends Thread {
+    public static final String HOST = "tcp://192.168.1.68:1883";
+    private  String clientid ;
+    private MqttClient client;
+    private MqttConnectOptions options;
+
+
+    private String userName = "admin";    //非必须
+    private String passWord = "admin";  //非必须
+    private String topic ;
+
+    @SneakyThrows
+    @Override
+    public void run() {
+        try {
+            // host为主机名,clientid即连接MQTT的客户端ID,一般以唯一标识符表示,MemoryPersistence设置clientid的保存形式,默认为以内存保存
+            client = new MqttClient(HOST, clientid, new MemoryPersistence());
+            // MQTT的连接设置
+            options = new MqttConnectOptions();
+            // 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,设置为true表示每次连接到服务器都以新的身份连接
+            options.setCleanSession(true);
+            // 设置连接的用户名
+            options.setUserName(userName);
+            // 设置连接的密码
+            options.setPassword(passWord.toCharArray());
+            // 设置超时时间 单位为秒
+            options.setConnectionTimeout(10);
+            // 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制
+            options.setKeepAliveInterval(20);
+            //设置断开后重新连接
+            options.setAutomaticReconnect(true);
+            // 设置回调
+            client.setCallback(new PushCallback());
+
+            client.connect(options);
+
+            //订阅消息
+//            int[] Qos = {1};//0:最多一次 、1:最少一次 、2:只有一次
+            client.subscribe(topic,1);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+
+    }
+}