/// <summary> /// Gets the current processor info /// </summary> public void GetProcessorInfo() { OnBoolChange(true, 0, SystemInfoConstants.BusyBoolChange); try { var processor = new ProcessorInfo(); processor.Model = InitialParametersClass.ControllerPromptName; processor.SerialNumber = CrestronEnvironment.SystemInfo.SerialNumber; processor.ModuleDirectory = InitialParametersClass.ProgramDirectory.ToString(); processor.ProgramIdTag = InitialParametersClass.ProgramIDTag; processor.DevicePlatform = CrestronEnvironment.DevicePlatform.ToString(); processor.OsVersion = CrestronEnvironment.OSVersion.Version.ToString(); processor.RuntimeEnvironment = CrestronEnvironment.RuntimeEnvironment.ToString(); processor.LocalTimeZone = CrestronEnvironment.GetTimeZone().Offset; // Does not return firmware version matching a "ver" command // returns the "ver -v" 'CAB' version // example return ver -v: // RMC3 Cntrl Eng [v1.503.3568.25373 (Oct 09 2018), #4001E302] @E-00107f4420f0 // Build: 14:05:46 Oct 09 2018 (3568.25373) // Cab: 1.503.0070 // Applications: 1.0.6855.21351 // Updater: 1.4.24 // Bootloader: 1.22.00 // RMC3-SetupProgram: 1.003.0011 // IOPVersion: FPGA [v09] slot:7 // PUF: Unknown //Firmware = CrestronEnvironment.OSVersion.Firmware; //Firmware = InitialParametersClass.FirmwareVersion; // Use below logic to get actual firmware ver, not the 'CAB' returned by the above // matches console return of a "ver" and on SystemInfo page // example return ver: // RMC3 Cntrl Eng [v1.503.3568.25373 (Oct 09 2018), #4001E302] @E-00107f4420f0 var response = ""; CrestronConsole.SendControlSystemCommand("ver", ref response); processor.Firmware = ParseConsoleResponse(response, "Cntrl Eng", "[", "("); processor.FirmwareDate = ParseConsoleResponse(response, "Cntrl Eng", "(", ")"); OnProcessorChange(processor, 0, SystemInfoConstants.ProcessorConfigChange); } catch (Exception e) { var msg = string.Format("GetProcessorInfo failed: {0}", e.Message); CrestronConsole.PrintLine(msg); //ErrorLog.Error(msg); } OnBoolChange(false, 0, SystemInfoConstants.BusyBoolChange); }