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(); }
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); } }
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); } }