陈力
2023-06-12 dbb789cb3e35ea2997b4197a30b5b8f81839197e
增加接收开门的指令
1个文件已添加
2个文件已修改
76 ■■■■■ 已修改文件
app/src/main/java/com/lotaai/canguiayw/device/service/CanGuiService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/mqtt/DeviceAction.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/device/service/CanGuiService.java
@@ -14,6 +14,7 @@
import com.lotaai.canguiayw.device.CanGuiCommand;
import com.lotaai.canguiayw.device.CanguiStatus;
import com.lotaai.canguiayw.device.DeviceMessage;
import com.lotaai.canguiayw.device.DeviceType;
import com.lotaai.canguiayw.device.MessageType;
import com.lotaai.canguiayw.sqllitedb.GridModel;
import com.lotaai.canguiayw.sqllitedb.SqlliteDbManage;
@@ -160,9 +161,11 @@
    public void recvCommand(DeviceMessage mssage){
        try {
            if (mssage.getMessageType() == MessageType.SENDMESSAGE.ordinal()){
                byte[] cc = mssage.getMessageByte();
                if (cc!=null) {
                    commandQueue.add(cc);
                if (mssage.getDeviceType() == DeviceType.CANGUI.ordinal()) {
                    byte[] cc = mssage.getMessageByte();
                    if (cc != null) {
                        commandQueue.add(cc);
                    }
                }
            }
        }catch (Exception e){
app/src/main/java/com/lotaai/canguiayw/mqtt/DeviceAction.java
New file
@@ -0,0 +1,9 @@
package com.lotaai.canguiayw.mqtt;
public enum DeviceAction {
    CONTROLDEVICE,
    doorIsOpen,
    xiaoDuIsOpen,
    jiareIsOpen,
    dengGuangIsOpen
}
app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java
@@ -238,34 +238,38 @@
            //2、开门、开馆灯、开关消毒灯、开关加热
            if (topic.startsWith(subTopic_Control)){
                JSONObject json = JSONObject.parseObject(messageStr);
                String doorIsOpen = json.getString("doorIsOpen");
                String xiaoDuIsOpen = json.getString("xiaoDuIsOpen");
                String jiareIsOpen = json.getString("jiareIsOpen");
                String dengGuangIsOpen = json.getString("dengGuangIsOpen");
                String grid = json.getString("gridNo");
                CrontrolGridModel crontrolGridModel = new CrontrolGridModel();
                if (doorIsOpen!=null && doorIsOpen.equals("1")){
                    crontrolGridModel.setOpenOrNoActon(1);
                }
                if (xiaoDuIsOpen!=null) {
                    crontrolGridModel.setXiaodu(Integer.parseInt(xiaoDuIsOpen));
                }
                if (jiareIsOpen!=null) {
                    crontrolGridModel.setXiaodu(Integer.parseInt(jiareIsOpen));
                }
                if (dengGuangIsOpen!=null) {
                    crontrolGridModel.setXiaodu(Integer.parseInt(dengGuangIsOpen));
                }
                if (json.getString("action") !=null && json.getString("action").equals(DeviceAction.CONTROLDEVICE.name())){
                    String doorIsOpen = json.getString(DeviceAction.doorIsOpen.name());
                    String xiaoDuIsOpen = json.getString(DeviceAction.xiaoDuIsOpen.name());
                    String jiareIsOpen = json.getString(DeviceAction.jiareIsOpen.name());
                    String dengGuangIsOpen = json.getString(DeviceAction.dengGuangIsOpen.name());
                    String grid = json.getString("gridNo");
                    //将格子号转换成柜号和格子
                    CrontrolGridModel crontrolGridModel = new CrontrolGridModel();
                    crontrolGridModel.ChangeGrid(grid);
                    if (doorIsOpen!=null && doorIsOpen.equals("1")){
                        crontrolGridModel.setOpenOrNoActon(1);
                    }
                    if (xiaoDuIsOpen!=null) {
                        crontrolGridModel.setXiaodu(Integer.parseInt(xiaoDuIsOpen));
                    }
                    if (jiareIsOpen!=null) {
                        crontrolGridModel.setXiaodu(Integer.parseInt(jiareIsOpen));
                    }
                    if (dengGuangIsOpen!=null) {
                        crontrolGridModel.setXiaodu(Integer.parseInt(dengGuangIsOpen));
                    }
                byte[] command = CanGuiCommand.getInstance().controlGridCommand(crontrolGridModel.getGuiNo() ,
                        crontrolGridModel.getGridNo() , crontrolGridModel.getOpenOrNoActon(),
                        crontrolGridModel.getWendu(), crontrolGridModel.getXiaodu(), crontrolGridModel.getDengGuang(),
                        crontrolGridModel.getJiaRe(), crontrolGridModel.getGuangDengji());
                DeviceMessage dvmessage = new DeviceMessage();
                dvmessage.setMessageType(MessageType.SENDMESSAGE.ordinal());
                dvmessage.setDeviceType(DeviceType.CANGUI.ordinal());
                dvmessage.setMessageByte(command);
                EventBus.getDefault().post(message);
                    byte[] command = CanGuiCommand.getInstance().controlGridCommand(crontrolGridModel.getGuiNo() ,
                            crontrolGridModel.getGridNo() , crontrolGridModel.getOpenOrNoActon(),
                            crontrolGridModel.getWendu(), crontrolGridModel.getXiaodu(), crontrolGridModel.getDengGuang(),
                            crontrolGridModel.getJiaRe(), crontrolGridModel.getGuangDengji());
                    DeviceMessage dvmessage = new DeviceMessage();
                    dvmessage.setMessageType(MessageType.SENDMESSAGE.ordinal());
                    dvmessage.setDeviceType(DeviceType.CANGUI.ordinal());
                    dvmessage.setMessageByte(command);
                    EventBus.getDefault().post(message);
                }
            }
        }