private static void switchMatrixSource(SwitcherOutput p_objOutput, SwitcherAction p_objSource)
        {
            StringBuilder l_objProgress = new StringBuilder();

            Console.WriteLine("Attempting to Switch Source");
            if (hallAutomations.NumberOfSwitchers > 0)
            {
                var l_objStatus = hallAutomations.changeMatrixSource(1, p_objOutput, p_objSource, l_objProgress);
                Console.Write(l_objProgress.ToString());

                switch (l_objStatus)
                {
                case actionStatus.Success:
                    Console.WriteLine("The Source has been successfully Been Switched.");
                    break;

                default:
                    Console.WriteLine("Something went wrong. Please check the logs for more details.\nIf this issue persists, please contact the system administrator");
                    break;
                }
            }
            else
            {
                Console.WriteLine("Action Cannot be Performed: There are No Matrix Switchers Configured!");
            }
        }
Exemple #2
0
        public actionStatus doSwitcherAction(SwitcherOutput p_objSwitcherOutput, SwitcherAction p_objSwitcherAction)
        {
            var l_objStatus       = actionStatus.None;
            var l_strFunctionName = "doSwitcherAction()";

            try
            {
                m_objLogger.logToMemory("Called do Switcher Action with Output set to: " + p_objSwitcherOutput + " and Switcher Action Set to: " + p_objSwitcherAction);

                byte[] l_bteCurrentAction = null;
                switch (p_objSwitcherAction)
                {
                case SwitcherAction.Source1:
                    switch (p_objSwitcherOutput)
                    {
                    case SwitcherOutput.Output1: l_bteCurrentAction = Output1Source1; break;

                    case SwitcherOutput.Output2: l_bteCurrentAction = Output2Source1; break;

                    case SwitcherOutput.Output3: l_bteCurrentAction = Output3Source1; break;

                    case SwitcherOutput.Output4: l_bteCurrentAction = Output4Source1; break;
                    }
                    break;

                case SwitcherAction.Source2:
                    switch (p_objSwitcherOutput)
                    {
                    case SwitcherOutput.Output1: l_bteCurrentAction = Output1Source2; break;

                    case SwitcherOutput.Output2: l_bteCurrentAction = Output2Source2; break;

                    case SwitcherOutput.Output3: l_bteCurrentAction = Output3Source2; break;

                    case SwitcherOutput.Output4: l_bteCurrentAction = Output4Source2; break;
                    }
                    break;

                case SwitcherAction.Source3:
                    switch (p_objSwitcherOutput)
                    {
                    case SwitcherOutput.Output1: l_bteCurrentAction = Output1Source3; break;

                    case SwitcherOutput.Output2: l_bteCurrentAction = Output2Source3; break;

                    case SwitcherOutput.Output3: l_bteCurrentAction = Output3Source3; break;

                    case SwitcherOutput.Output4: l_bteCurrentAction = Output4Source3; break;
                    }
                    break;

                case SwitcherAction.Source4:
                    switch (p_objSwitcherOutput)
                    {
                    case SwitcherOutput.Output1: l_bteCurrentAction = Output1Source4; break;

                    case SwitcherOutput.Output2: l_bteCurrentAction = Output2Source4; break;

                    case SwitcherOutput.Output3: l_bteCurrentAction = Output3Source4; break;

                    case SwitcherOutput.Output4: l_bteCurrentAction = Output4Source4; break;
                    }
                    break;

                case SwitcherAction.Left:
                    switch (p_objSwitcherOutput)
                    {
                    case SwitcherOutput.Output1: l_bteCurrentAction = Output1Left; break;

                    case SwitcherOutput.Output2: l_bteCurrentAction = Output2Left; break;

                    case SwitcherOutput.Output3: l_bteCurrentAction = Output3Left; break;

                    case SwitcherOutput.Output4: l_bteCurrentAction = Output4Left; break;
                    }
                    break;

                case SwitcherAction.Right:
                    switch (p_objSwitcherOutput)
                    {
                    case SwitcherOutput.Output1: l_bteCurrentAction = Output1Right; break;

                    case SwitcherOutput.Output2: l_bteCurrentAction = Output2Right; break;

                    case SwitcherOutput.Output3: l_bteCurrentAction = Output3Right; break;

                    case SwitcherOutput.Output4: l_bteCurrentAction = Output4Right; break;
                    }
                    break;

                default:
                    throw new Exception("Switcher Action: " + p_objSwitcherAction + "Not Found!");
                }
                if (l_bteCurrentAction != null)
                {
                    m_objLogger.logToMemory("Switcher Action and Output Found: Attempting to Send Message through Serial Port " + SwitcherCOMPort);

                    sendSerialData(SwitcherCOMPort, 9600, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One, l_bteCurrentAction);

                    m_objLogger.logToMemory("Switcher Action Message Sent: " + l_bteCurrentAction.ToString());

                    l_objStatus = actionStatus.Success;
                }
                else
                {
                    throw new Exception("Switcher Output: " + p_objSwitcherOutput + "Not Found!");
                }
            }
            catch (Exception e)
            {
                l_objStatus = actionStatus.Error;
                m_objLogger.logToDB("Error Performing Switcher Action: " + e.ToString(), l_objStatus, true, p_strFunctionName: l_strFunctionName);
                throw e;
            }
            finally { m_objLogger.writePendingToDB(l_objStatus, p_strFunctionName: l_strFunctionName); }
            return(l_objStatus);
        }