Exemplo n.º 1
0
        private void Timer_Tick(object sender, object e)
        {
            while (command != DisplayCommands.noCommand)
            {
                DisplayCommands currentCommand;
                // copy the flag and clear it
                // Lock this action so that in interrupt from the pins
                // won't cause us to miss a command
                lock (this)
                {
                    currentCommand = command;
                    command        = DisplayCommands.noCommand;
                }
                switch (currentCommand)
                {
                case DisplayCommands.ClearScreen:
                    manager.ClearDisplay();
                    break;

                case DisplayCommands.NextColour:
                    manager.NextColor();
                    break;

                case DisplayCommands.NextLogo:
                    manager.NextLogo();
                    break;

                case DisplayCommands.RandomLogo:
                    manager.RandomImages(10);
                    break;
                }
            }
        }
Exemplo n.º 2
0
        /**
         * Method: cmdDisplayCmd
         * Access: private
         * @return: string
         * @param: string[] args
         * Description: Look up Display object by ZoneID and send DisplayCommand from enum lookup
         */
        private string cmdDisplayCmd(string[] args)
        {
            // arg[0] = ZoneID
            // arg[1] = DisplayCommands enum

            string msg = "";

            if (args.Length >= 2)
            {
                ushort zid = ushort.Parse(args[0]);
                if (Core.Zones.ContainsKey(zid))
                {
                    Zone zn = Core.Zones[zid];
                    if (zn.hasDisplay)
                    {
                        try {
                            DisplayCommands cmd = (DisplayCommands)Enum.Parse(typeof(DisplayCommands), args[1], true);
                            if (Enum.IsDefined(typeof(DisplayCommands), cmd))
                            {
                                zn.display.DisplayCommandPulse((ushort)cmd);
                                msg = "Display Command Sent: " + args[1] + "\r\n";;
                            }
                        }
                        catch (ArgumentException) {
                            msg = String.Format("Unknown Display Command {0}\r\n", args[1]);
                        }
                    }
                    else
                    {
                        msg = "Zone " + zid + " does not have a registered display.\r\n";
                    }
                }
                else
                {
                    msg = "Invalid ZoneID: " + zid + "\r\n";
                }
            }
            else
            {
                msg = "Incorrect number of arguments: displayCmd (ZoneID) (DisplayCommand)\r\n";
            }

            return(msg);
        }