object systemStart(object userObject) { while (ServerIP.Length < 7) { ServerIP = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 0); CrestronConsole.PrintLine("ServerIP: Retry Until LAN Ready: {0}", ServerIP); Thread.Sleep(1000); } if (this.SupportsIROut) { IR1.LoadIRDriver("\\USER\\Samsung UE40J5100AK.ir"); IR1.Register(); } Xpan = new Xpanel(0x03, this); Xpan.SigChange += new SigEventHandler(MyXPanSigChangeHandler); Xpan.Register(); return(null); }
/// <summary> /// ControlSystem Constructor. Starting point for the SIMPL#Pro program. /// Use the constructor to: /// * Initialize the maximum number of threads (max = 400) /// * Register devices /// * Register event handlers /// * Add Console Commands /// /// Please be aware that the constructor needs to exit quickly; if it doesn't /// exit in time, the SIMPL#Pro program will exit. /// /// You cannot send / receive data in the constructor /// </summary> public ControlSystem() : base() { try { Thread.MaxNumberOfUserThreads = 20; officeDin8Sw8i = new Din8Sw8i(0x3, this); if (officeDin8Sw8i.Register() != eDeviceRegistrationUnRegistrationResponse.Success) { CrestronConsole.PrintLine("Unable to register for officeDin8Sw8i "); CrestronConsole.PrintLine("officeDin8Sw8i failed registration. Cause: {0}", officeDin8Sw8i.RegistrationFailureReason); ErrorLog.Error("officeDin8Sw8i failed registration. Cause: {0}", officeDin8Sw8i.RegistrationFailureReason); } else { CrestronConsole.PrintLine("officeDin8Sw8i successfully registered "); } officeDinIo8 = new DinIo8(0x9, this); if (officeDinIo8.Register() != eDeviceRegistrationUnRegistrationResponse.Success) { CrestronConsole.PrintLine("Unable to register for officeDinIo8 "); CrestronConsole.PrintLine("officeDinIo8 failed registration. Cause: {0}", officeDinIo8.RegistrationFailureReason); ErrorLog.Error("officeDinIo8 failed registration. Cause: {0}", officeDinIo8.RegistrationFailureReason); } else { CrestronConsole.PrintLine("officeDinIo8 successfully registered "); } officeDin1DimU4 = new Din1DimU4(0x07, this); if (officeDin1DimU4.Register() != eDeviceRegistrationUnRegistrationResponse.Success) { CrestronConsole.PrintLine("Unable to register for officeDinIo8 "); CrestronConsole.PrintLine("officeDin1DimU4 failed registration. Cause: {0}", officeDin1DimU4.RegistrationFailureReason); ErrorLog.Error("officeDin1DimU4 failed registration. Cause: {0}", officeDin1DimU4.RegistrationFailureReason); } else { CrestronConsole.PrintLine("officeDin1DimU4 successfully registered "); } underShieldC2nCbdP = new C2nCbdP(0x5, this); underShieldC2nCbdP.ButtonStateChange += new ButtonEventHandler(underShieldC2nCbdP_ButtonStateChange); if (underShieldC2nCbdP.Register() != eDeviceRegistrationUnRegistrationResponse.Success) { CrestronConsole.PrintLine("Unable to register for underShieldC2nCbdP "); CrestronConsole.PrintLine("underShieldC2nCbdP failed registration. Cause: {0}", underShieldC2nCbdP.RegistrationFailureReason); ErrorLog.Error("underShieldC2nCbdP failed registration. Cause: {0}", underShieldC2nCbdP.RegistrationFailureReason); } else { CrestronConsole.PrintLine(" underShieldC2nCbdP successfully registered "); } entranceC2nCbdP = new C2nCbdP(0x4, this); entranceC2nCbdP.ButtonStateChange += new ButtonEventHandler(entranceC2nCbdP_ButtonStateChange); if (entranceC2nCbdP.Register() != eDeviceRegistrationUnRegistrationResponse.Success) { CrestronConsole.PrintLine("Unable to register for entranceC2nCbdP "); CrestronConsole.PrintLine("entranceC2nCbdP failed registration. Cause: {0}", entranceC2nCbdP.RegistrationFailureReason); ErrorLog.Error("entranceC2nCbdP failed registration. Cause: {0}", entranceC2nCbdP.RegistrationFailureReason); } else { CrestronConsole.PrintLine("entranceC2nCbdP successfully registered "); } meetingC2niCb = new C2niCb(0x6, this); meetingC2niCb.ButtonStateChange += new ButtonEventHandler(meetingC2niCb_ButtonStateChange); if (meetingC2niCb.Register() != eDeviceRegistrationUnRegistrationResponse.Success) { CrestronConsole.PrintLine("Unable to register for meetingC2niCb "); CrestronConsole.PrintLine("meetingC2niCb failed registration. Cause: {0}", meetingC2niCb.RegistrationFailureReason); ErrorLog.Error("meetingC2niCb failed registration. Cause: {0}", meetingC2niCb.RegistrationFailureReason); } else { CrestronConsole.PrintLine("meetingC2niCb successfully registered "); } officeIridium = new Xpanel(0x3, this); officeIridium.SigChange += new SigEventHandler(officeIridium_SigChange); if (officeIridium.Register() != eDeviceRegistrationUnRegistrationResponse.Success) { CrestronConsole.PrintLine("Unable to register for officeIridium "); CrestronConsole.PrintLine("officeIridium failed registration. Cause: {0}", officeIridium.RegistrationFailureReason); ErrorLog.Error("officeIridium failed registration. Cause: {0}", officeIridium.RegistrationFailureReason); } else { CrestronConsole.PrintLine("officeIridium successfully registered "); } //Subscribe to the controller events (System, Program, and Ethernet) CrestronEnvironment.SystemEventHandler += new SystemEventHandler(ControlSystem_ControllerSystemEventHandler); CrestronEnvironment.ProgramStatusEventHandler += new ProgramStatusEventHandler(ControlSystem_ControllerProgramEventHandler); CrestronEnvironment.EthernetEventHandler += new EthernetEventHandler(ControlSystem_ControllerEthernetEventHandler); } catch (Exception e) { ErrorLog.Error("Error in the constructor: {0}", e.Message); } }