public FLICamera(string camera, IProfileService profileService) { this.profileService = profileService; string[] cameraInfo; StringBuilder cameraSerial = new StringBuilder(64); uint rv; cameraInfo = camera.Split(';'); Info.Id = cameraInfo[0]; Info.Model = cameraInfo[1]; Info.FWrev = 0x0; Info.HWrev = 0x0; if ((rv = LibFLI.FLIOpen(out CameraH, Info.Id, LibFLI.FLIDomains.DEV_CAMERA | LibFLI.FLIDomains.IF_USB)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI: FLIOpen() failed. Returned {rv}"); } if ((rv = LibFLI.FLIGetSerialString(CameraH, cameraSerial, 64)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI: FLIGetSerialString() failed. Returned {rv}"); } if ((rv = LibFLI.FLIGetFWRevision(CameraH, out Info.FWrev)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI: FLIGetFWRevision() failed. Returned {rv}"); } if ((rv = LibFLI.FLIGetHWRevision(CameraH, out Info.HWrev)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI: FLIGetHWRevision() failed. Returned {rv}"); } Info.Serial = cameraSerial.ToString(); Logger.Debug($"FLI Camera: Found camera: {Description}"); if ((rv = LibFLI.FLIClose(CameraH)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI: FLIClose() failed. Returned {rv}"); } }
public async Task <bool> Connect(CancellationToken token) { return(await Task.Run(() => { uint fwheelPostions = 0; uint rv; if ((rv = LibFLI.FLIOpen(out FWheelH, Info.Id, LibFLI.FLIDomains.DEV_FILTERWHEEL | LibFLI.FLIDomains.IF_USB)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI FWheel: FLIOpen() failed. Returned {rv}"); Connected = false; return Connected; } Logger.Debug($"FLI Wheel: Filter wheel {Info.Id} opened successfully"); if ((rv = LibFLI.FLIGetFWRevision(FWheelH, out Info.FWrev)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI FWheel: FLIGetFWRevision() failed. Returned {rv}"); } if ((rv = LibFLI.FLIGetHWRevision(FWheelH, out Info.HWrev)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI FWheel: FLIGetHWRevision() failed. Returned {rv}"); } /* * How many filter positions? */ if ((rv = LibFLI.FLIGetFilterCount(FWheelH, ref fwheelPostions)) != LibFLI.FLI_SUCCESS) { Logger.Error($"FLI FWheel: FLIGetFilterCount() failed. Returned {rv}"); Connected = false; return Connected; } Info.Positions = fwheelPostions; Connected = true; return Connected; })); }