Esempio n. 1
0
        /// <summary>
        /// 客户端收到消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void _client_ApplicationMessageReceived(object sender, MQTTnet.MqttApplicationMessageReceivedEventArgs e)
        {
            PurVar.PurStatic.WriteToStatus("收到来自客户端" + e.ClientId + ",主题为" + e.ApplicationMessage.Topic + "的消息:" + Encoding.UTF8.GetString(e.ApplicationMessage.Payload));
            string strSql  = string.Format("update param_temp set needset=1,setvalue={1} where paramid={0}", e.ApplicationMessage.Topic, Encoding.UTF8.GetString(e.ApplicationMessage.Payload));
            string message = _dbHelperMySQL.Updata(strSql);

            PublishRepeater("service/" + PurVar.Repeater.repeaterId.ToString() + "/writeMessage", message);
        }
Esempio n. 2
0
        /// <summary>
        /// 客户端收到消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void _client_ApplicationMessageReceived(object sender, MQTTnet.MqttApplicationMessageReceivedEventArgs e)
        {
            //dfsajflasdjf

            PurVar.PurStatic.WriteToStatus("收到来自客户端" + e.ClientId + ",主题为" + e.ApplicationMessage.Topic + "的消息:" + Encoding.UTF8.GetString(e.ApplicationMessage.Payload));
            string gettopic = e.ApplicationMessage.Topic;
            string getstr   = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);//得到json字符串

            // string hh = "[{\"mid\": \"123456\",\"nid\": \"321\",\"name\": \"222\" }\r\n]";
            // [{"setValue":0,"StartTemp":32.5}]

            //根据topic选择不同的数据库,有timer?  GPIO?之分,判断选择不同的数据表格,条件为选择的
            if (gettopic.Contains("GPIO"))//[{"setValue":0,"StartTemp":32.5}]
            {
                JArray  getArray = JArray.Parse(getstr);
                JObject job1     = (JObject)getArray[0];


                string setControlStyle;//定时模式、自动模式、手动模式等后面完善
                string setStartHum;
                string setStopHum;
                string setStartTemp;
                string setStopTemp;
                string setDelayTime;
                string setEnable;
                string setSetValue;
                string setGPIOName;
                string sqlstr = "update param_GPIO set GPIOName='" + gettopic + "'";

                if (getstr.Contains("ControlStyle"))
                {
                    setControlStyle = job1["ControlStyle"].ToString(); sqlstr = sqlstr + ", ControlStyle=" + setControlStyle;
                }
                if (getstr.Contains("StartHum"))
                {
                    setStartHum = job1["StartHum"].ToString(); sqlstr = sqlstr + ",StartHum=" + setStartHum;
                }
                if (getstr.Contains("StopHum"))
                {
                    setStopHum = job1["StopHum"].ToString(); sqlstr = sqlstr + ",StopHum=" + setStopHum;
                }
                if (getstr.Contains("Enable"))
                {
                    setEnable = job1["Enable"].ToString(); sqlstr = sqlstr + " ,Enable=" + setEnable;
                }
                if (getstr.Contains("StartTemp"))
                {
                    setStartTemp = job1["StartTemp"].ToString(); sqlstr = sqlstr + ",StartTemp=" + setStartTemp;
                }
                if (getstr.Contains("StopTemp"))
                {
                    setStopTemp = job1["StopTemp"].ToString(); sqlstr = sqlstr + ",StopTemp=" + setStopTemp;
                }
                if (getstr.Contains("DelayTime"))
                {
                    setStartTemp = job1["DelayTime"].ToString(); sqlstr = sqlstr + ",DelayTime=" + setStartTemp;
                }
                if (getstr.Contains("StartTemp"))
                {
                    setDelayTime = job1["StartTemp"].ToString(); sqlstr = sqlstr + ",StartTemp=" + setDelayTime;
                }
                if (getstr.Contains("SetValue"))
                {
                    setSetValue = job1["SetValue"].ToString(); sqlstr = sqlstr + ",SetValue=" + setSetValue;
                }
                if (getstr.Contains("GPIOName"))
                {
                    setGPIOName = job1["GPIOName"].ToString(); sqlstr = sqlstr + ",GPIOName=" + setGPIOName;
                }
                string TstrSql  = string.Format(sqlstr + " where GPIOName='{0}", e.ApplicationMessage.Topic + "'");
                string Tmessage = _dbHelperMySQL.Updata(TstrSql);
                PublishRepeater("service/" + PurVar.Repeater.repeaterId.ToString() + "/writeMessage", Tmessage);
            }
            //订阅 修改定时器Timerx
            if (gettopic.Contains("Timer"))// [{"StartTime":7050,"StopTime":8002}]
            {
                JArray  getArray = JArray.Parse(getstr);
                JObject job1     = (JObject)getArray[0];
                string  setTimerName;
                string  setStartTime;
                string  setStopTime;
                string  setEnable;
                string  setGPIONum;
                string  sqlstr = "update param_timer set TimerNum='" + gettopic + "'";

                if (getstr.Contains("TimerName"))
                {
                    setTimerName = job1["TimerName"].ToString(); sqlstr = sqlstr + ", TimerName=" + setTimerName;
                }
                if (getstr.Contains("StartTime"))
                {
                    setStartTime = job1["StartTime"].ToString(); sqlstr = sqlstr + ",StartTime=" + setStartTime;
                }
                if (getstr.Contains("StopTime"))
                {
                    setStopTime = job1["StopTime"].ToString(); sqlstr = sqlstr + ",StopTime=" + setStopTime;
                }
                if (getstr.Contains("Enable"))
                {
                    setEnable = job1["Enable"].ToString(); sqlstr = sqlstr + " ,Enable=" + setEnable;
                }
                if (getstr.Contains("GPIONum"))
                {
                    setGPIONum = job1["GPIONum"].ToString(); sqlstr = sqlstr + ",GPIONum=" + setGPIONum;
                }
                string TstrSql  = string.Format(sqlstr + " where TimerNum='{0}", e.ApplicationMessage.Topic + "'");
                string Tmessage = _dbHelperMySQL.Updata(TstrSql);
                PublishRepeater("service/" + PurVar.Repeater.repeaterId.ToString() + "/writeMessage", Tmessage);
            }
            //订阅增加定时器为了方便区别上面,timer小写
            if (gettopic.Contains("ADDtimer"))//
            {
            }
            //订阅增加端口为了方便区别上面,gpio小写
            if (gettopic.Contains("ADDgpio"))//
            {
                ////addgpio
            }

            string strSql  = string.Format("update param_temp set needset=1,setvalue={1} where paramid={0}", e.ApplicationMessage.Topic, Encoding.UTF8.GetString(e.ApplicationMessage.Payload));
            string message = _dbHelperMySQL.Updata(strSql);

            PublishRepeater("service/" + PurVar.Repeater.repeaterId.ToString() + "/writeMessage", message);
        }