Ejemplo n.º 1
0
        private void AddRemovePrefinedItem(string name, Boolean Add)
        {
            if (Add == true)
            {
                mqtttrigger t = new mqtttrigger();
                t.name       = name;
                t.Predefined = true;
                MqttTriggerList.Add(t);
            }
            else
            {
                BindingList <mqtttrigger> tmpMqttTriggerList;

                tmpMqttTriggerList = MqttTriggerList;

                foreach (mqtttrigger t in MqttTriggerList)
                {
                    if (t.name == name)
                    {
                        tmpMqttTriggerList.Remove(t);
                        break;
                    }
                }
                MqttTriggerList = tmpMqttTriggerList;
            }
            SaveTriggerlist();
        }
Ejemplo n.º 2
0
 private void CmdAddTrigger_Click(object sender, EventArgs e)
 {
     try
     {
         mqtttrigger newtrigger = new mqtttrigger();
         newtrigger.name          = txtSubTopic.Text;
         newtrigger.cmdtext       = txtCmd.Text;
         newtrigger.cmdparameters = txtCmdParameter.Text;
         newtrigger.Predefined    = false;
         MqttTriggerList.Add(newtrigger);
         SaveTriggerlist();
         ClearNewTrigger();
     }
     catch (Exception ex)
     {
         MessageBox.Show("error" + ex.Message + " details: " + ex.InnerException);
     }
 }
Ejemplo n.º 3
0
        void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            try
            {
                string      message            = Encoding.UTF8.GetString(e.Message);
                mqtttrigger CurrentMqttTrigger = new mqtttrigger();
                WriteToLog("Message recived " + e.Topic + " value " + message);

                string TopLevel = Properties.Settings.Default["mqtttopic"].ToString().Replace("/#", "");
                string subtopic = e.Topic.Replace(TopLevel + "/", "");

                foreach (mqtttrigger tmpTrigger in MqttTriggerList)
                {
                    if (tmpTrigger.name == subtopic)
                    {
                        CurrentMqttTrigger    = tmpTrigger;
                        CurrentMqttTrigger.id = 1;
                        break;
                    }
                }

                if (CurrentMqttTrigger.id == 1)
                {
                    switch (subtopic)
                    {
                    case "app/running":
                        MqttPublish(SetSubTopic("app/running/" + message), ExeRunning(message, ""));
                        break;

                    case "app/close":
                        MqttPublish(SetSubTopic("app/running/" + message), ExeClose(message));
                        break;

                    case "monitor/set":

                        using (var f = new Form())
                        {
                            if (message == "1")
                            {
                                NativeMethods.SendMessage(f.Handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MonitorTurnOn);
                                MqttPublish(SetSubTopic("monitor"), "1");
                            }
                            else
                            {
                                NativeMethods.SendMessage(f.Handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MonitorShutoff);
                                MqttPublish(SetSubTopic("monitor"), "0");
                            }
                        }
                        break;

                    case "mute/set":

                        if (message == "1")
                        {
                            audioobj.Mute(true);
                        }
                        else
                        {
                            audioobj.Mute(false);
                        }

                        MqttPublish(TopLevel + "/mute", message);
                        break;

                    case "mute":
                        break;

                    case "volume":
                        break;

                    case "volume/set":
                        audioobj.Volume(Convert.ToInt32(message));
                        break;

                    case "hibernate":
                        Application.SetSuspendState(PowerState.Hibernate, true, true);
                        break;

                    case "suspend":
                        Application.SetSuspendState(PowerState.Suspend, true, true);
                        break;

                    case "reboot":
                        System.Diagnostics.Process.Start("shutdown.exe", "-r -t 10");
                        break;

                    case "shutdown":
                        System.Diagnostics.Process.Start("shutdown.exe", "-s -t 10");
                        break;

                    case "tts":
                        SpeechSynthesizer synthesizer = new SpeechSynthesizer();
                        // synthesizer.GetInstalledVoices

                        synthesizer.Volume = 100;      // 0...100
                        synthesizer.SpeakAsync(message);
                        break;

                    case "toast":

                        int i = 0;

                        string Line1   = "";
                        string Line2   = "";
                        string Line3   = "";
                        string FileURI = "";

                        string[] words = message.Split(',');
                        foreach (string word in words)
                        {
                            switch (i)
                            {
                            case 0:
                                Line1 = word;
                                break;

                            case 1:
                                Line2 = word;
                                break;

                            case 2:
                                Line3 = word;
                                break;

                            case 3:
                                FileURI = word;
                                break;

                            default:
                                break;
                            }
                            i = i + 1;
                        }
                        Toastmessage(Line1, Line2, Line3, FileURI, ToastTemplateType.ToastImageAndText04);


                        break;

                    default:

                        if (CurrentMqttTrigger.cmdtext.Length > 2)
                        {
                            ProcessStartInfo startInfo = new ProcessStartInfo(CurrentMqttTrigger.cmdtext);
                            startInfo.WindowStyle = ProcessWindowStyle.Maximized;
                            if (CurrentMqttTrigger.cmdparameters.Length > 2)
                            {
                                startInfo.Arguments = CurrentMqttTrigger.cmdparameters;
                            }
                            Process.Start(startInfo);
                        }

                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                WriteToLog("error: " + ex.Message);
            }
        }