/// <summary> /// Update the settings of the camera if the QTM host updated the settings successfully /// </summary> /// <param name="settings"></param> public void UpdateSettings(SettingsGeneralCameraSystem?settings) { if (settings != null) { if (settings.Value.Mode != Settings.Mode) { ApplyMode(settings.Value.Mode); } Settings = settings.Value; } }
/// <summary> /// Generates camera screens to use inside an Urho context based on the /// ImageCameras recieved from the QTM host. /// </summary> /// <returns></returns> public static bool GenerateCameras() { CurrentCamera = null; Cameras = new Dictionary <int, Camera>(); CameraScreen.ResetScreenCounter(); // Get Camera Settings List <SettingsGeneralCameraSystem> cameraSettingsList = SettingsService.GetCameraSettings(); // Get Image Settings List <ImageCamera> imageCameraSettingsList = SettingsService.GetImageCameraSettings(); // Iterate over image settings list and create camera objects foreach (ImageCamera imageCameraSettings in imageCameraSettingsList) { SettingsGeneralCameraSystem cameraSettings = cameraSettingsList .Where(c => c.CameraId == imageCameraSettings.CameraID) .First(); if (!imageCameraSettings.Enabled && cameraSettings.Mode != CameraMode.ModeMarker) { SettingsService.SetCameraMode(imageCameraSettings.CameraID, cameraSettings.Mode); } ImageResolution imageResolution = new ImageResolution(imageCameraSettings.Width / 2, imageCameraSettings.Height / 2); // Create camera object and add it to dictionary Camera camera = new Camera(imageCameraSettings.CameraID, cameraSettings, imageResolution); Cameras.Add(camera.ID, camera); // Make sure that the current settings are reflected in the state of the application // The state of the QTM host should always have precedence unless expliciltly told to // change settings if (CurrentCamera == null) { CurrentCamera = camera; } } // Load and run profiler CameraProfiler cameraProfiler = new CameraProfiler(Cameras, "CameraProfiles.json"); cameraProfiler.Run(); // Dispose of it once it's done cameraProfiler.Dispose(); cameraProfiler = null; return(true); }
public Camera(int id, SettingsGeneralCameraSystem settings, ImageResolution imageResolution) { ID = id; Settings = settings; ImageResolution = imageResolution; Model = GetModelName(settings.Model); Orientation = settings.Orientation; PageTitle = "#" + ID + " " + Model; LensControlEnabled = CheckForLensControl(); // TODO: this should not have to be done in the constructor if (IsImageMode()) { EnableImageMode(false); } }