///////////////////////////////////////////////// /// Handler function for when the Timer is triggerd, /// and turns off Poomba ///////////////////////////////////////////////// private static void Sleep(object sender, ElapsedEventArgs e) { FwpsPublisher.PublishMessage("Poomba.CmdOff", ""); Console.WriteLine("Poomba sleeping"); //Rearm timer to start in one day _sleepTimer.Interval = TimeSpan.FromDays(1).TotalMilliseconds; _sleepTimer.Start(); }
///////////////////////////////////////////////// /// Handler function for when the Timer is triggerd, /// and turns on MorningSun ///////////////////////////////////////////////// private static void WakeUp(object sender, ElapsedEventArgs e) { FwpsPublisher.PublishMessage("MorningSun.CmdOn", ""); Console.WriteLine("Light waking up"); //Rearm timer to start in one day _wakeUpTimer.Interval = TimeSpan.FromDays(1).TotalMilliseconds; _wakeUpTimer.Start(); }
///////////////////////////////////////////////// /// RFID-card scanned. Validates the card on the /// WebApi and responds accordingly. ///////////////////////////////////////////////// private void RfidEntryRequest(string message) { Console.WriteLine("Hodoor: Received entry request with RFID: {0}", message); var token = _connector.GetItem("Login/" + message); Console.WriteLine(token); if (token == "Ok") { FwpsPublisher.PublishMessage("Hodoor.CmdModUnlock", ""); } else { FwpsPublisher.PublishMessage("Hodoor.CmdModDenied", ""); } }
///////////////////////////////////////////////// /// Handler function for when the Web Api requests /// to lock Hodoor ///////////////////////////////////////////////// private void LockHodoor(string message) { //Lock Hodoor FwpsPublisher.PublishMessage("Hodoor.CmdModLock", ""); }
static void Main(string[] args) { Console.WriteLine("Server application:\n"); var connFactory = new ConnectionFactory() { HostName = "localhost" }; connFactory.AutomaticRecoveryEnabled = true; // Init SigalR Singleton. Connecting to Azure and setting unit name SignalRClient.Instance.Setup("Master Unit"); { MorningSunMessageHandler msgHandler = new MorningSunMessageHandler(); PoombaMessageHandler msgHandler2 = new PoombaMessageHandler(); } using (var connection = connFactory.CreateConnection()) { IListener listener = new FwpsListener(connection); MessageDispatcher dispatcher = new MessageDispatcher(listener); //Add topics to subscribe to listener.Add("MorningSun.#"); listener.Add("SnapBox.#"); listener.Add("Hodoor.#"); listener.Add("Poomba.#"); //Initialize listener and publisher listener.Start(); FwpsPublisher.Initialize(connection); Console.WriteLine("Enter a char, 1 for on, 2 for off, q for quit"); char key = Console.ReadKey().KeyChar; while (key != 'q') { if (key == '1') { FwpsPublisher.PublishMessage("MorningSun.CmdOn", "On"); Console.WriteLine("Sending on"); } else if (key == '2') { FwpsPublisher.PublishMessage("MorningSun.CmdOff", "Off"); Console.WriteLine("Sending off"); } else if (key == '3') { FwpsPublisher.PublishMessage("MorningSun.CmdStatus", "Status"); Console.WriteLine("Sending status"); } key = Console.ReadKey().KeyChar; } Console.WriteLine("Press Enter to Exit"); Console.ReadLine(); listener.Dispose(); } }
///////////////////////////////////////////////// /// Handler function for when the Web Api requests /// to turn off Poomba ///////////////////////////////////////////////// private void TurnOff(string message) { Console.WriteLine("Received \"off\" Poomba"); //Ask Poomba to turn off FwpsPublisher.PublishMessage("Poomba.CmdOff", ""); }
///////////////////////////////////////////////// /// Handler function for when the Web Api requests /// to turn on Poomba ///////////////////////////////////////////////// private void TurnOn(string message) { //Ask Poomba to turn on Console.WriteLine("Received \"on\" Poomba"); FwpsPublisher.PublishMessage("Poomba.CmdOn", ""); }
///////////////////////////////////////////////// /// Handler function for when the Web Api requests /// to turn off MorningSun ///////////////////////////////////////////////// private void TurnOff(string message) { //Ask MorningSun to turn off FwpsPublisher.PublishMessage("MorningSun.CmdOff", ""); }
///////////////////////////////////////////////// /// Handler function for when the Web Api requests /// to turn on MorningSun ///////////////////////////////////////////////// private void TurnOn(string message) { //Ask MorningSun to turn on FwpsPublisher.PublishMessage("MorningSun.CmdOn", ""); }