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!"); } }
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); }