// Triggers the monitor public void Trigger() { if (!isTriggered) { isTriggered = true; // Call event handler is fired if it exists if (this.TriggerChanged != null) this.TriggerChanged(this, new EventArgs()); if (MessageQueue.Exists(GlobalVariables.queueName)){ MessageQueue queue = new MessageQueue(GlobalVariables.queueName); // log the trigger event Mes.MesMessage message = new Mes.MesMessage(); message.type = "LOG"; message.message = string.Format("{0} Monitor {1} was triggered.", this.Type, this.Id); queue.Send(message); } else { Console.WriteLine("Trigger - no Security message queue available"); } } }
// Disables the monitor public void Disable() { if (isEnabled) { isEnabled = false; if (this.EnableChanged != null) this.EnableChanged(this, new EventArgs()); if (MessageQueue.Exists(GlobalVariables.queueName)) { MessageQueue queue = new MessageQueue(GlobalVariables.queueName); // log the enable event Mes.MesMessage message = new Mes.MesMessage(); message.type = "LOG"; message.message = string.Format("{0} Monitor {1} was disabled.", this.Type, this.Id); queue.Send(message); } else { Console.WriteLine("Trigger - no Security message queue available"); } } }
static void Main(string[] args) { Console.WriteLine("Sensor Simulation for Mesmerize One Prime X2"); // instantiate objects ArrayList realSensors = new ArrayList(); List<Mes.Monitor> realMonitors = new List<Mes.Monitor>(); List<Mes.Alarm> realAlarms = new List<Mes.Alarm>(); Mes.MesMessage sensorMessage = new Mes.MesMessage(); Hashtable threads = new Hashtable(); int sensorCount = 0; int alarmCount = 0; int monitorCount = 0; while (true) { Console.WriteLine("Enter a command:"); String command = Console.ReadLine(); string inText; switch (command.ToUpper()) { case "ADD": Console.WriteLine("Add sensor, monitor or alarm? [s|m|a]:"); inText = Console.ReadLine().ToUpper(); if (inText.Equals("S")) { Mes.MesMessage msg = new Mes.MesMessage(); MessageQueue queue = new MessageQueue(queueName); queue.Send(msg); } else if (inText.Equals("M")) { } else if (inText.Equals("A")) { } else { Console.WriteLine("Invalid type of node"); } break; case "EDIT": Console.WriteLine("Edit Sensor:"); break; case "TRIGGER": Console.WriteLine("Trigger sensor #: "); inText = Console.ReadLine(); // set message data //sensorMessage.sensorId = Convert.ToInt32(inText); //sensorMessage.messageType = (int)Actions.Trig; // construct message Message message = new Message(); message.Body = sensorMessage; // send the message to the security system if (MessageQueue.Exists(queueName)) { MessageQueue queue = new MessageQueue(queueName); queue.Send(message); } else { Console.WriteLine("Terminal - Queue .\\security not Found"); } break; case "REMOVE": Console.WriteLine("Remove Sensor:"); break; case "EXIT": return; case "HELP": Console.WriteLine("Available commands:"); Console.WriteLine("add\nedit\ntrigger\nremove\nexit\nhelp"); break; default: Console.WriteLine("Error: Invalid command " + command + " was entered!"); break; } } }