Files
2025-07-14 12:03:59 +02:00

91 lines
2.5 KiB
C#

using System.Collections.Generic;
using Inspectron.Camera.Image;
namespace Inspectron.Camera
{
public interface ICamera
{
/// <summary>
/// Returns the name of the camera
/// </summary>
string Name { get; }
/// <summary>
/// Opens the camera
/// </summary>
void Open();
/// <summary>
/// Returns true if the camera is opened
/// </summary>
bool IsOpen { get; }
/// <summary>
/// Closes the camera
/// </summary>
void Close();
/// <summary>
/// Returns true if the camera is live
/// </summary>
bool IsGrabbingContinuous { get; }
/// <summary>
/// Stats live asynchronous acquisition. Images are transmitted the ImageGrabbed Event
/// </summary>
void StartGrabContinuous();
/// <summary>
/// Stops the asynchronous acquisition.
/// </summary>
void StopGrabContinuous();
/// <summary>
/// Loads the parameters from a filename
/// </summary>
/// <param name="parameters_file"></param>
void LoadParameters(string parametersFile);
/// <summary>
/// Saves the camera parameters to the given filename
/// </summary>
/// <param name="parameters_file"></param>
void SaveParameters(string parametersFile);
/// <summary>
/// Saves the parameters to the camera memory
/// </summary>
void SaveParametersToDevice();
/// <summary>
/// Synchronously grab an image
/// </summary>
/// <returns></returns>
IImage GrabSingle();
/// <summary>
/// Event occuring when a new frame is acquired
/// </summary>
event ImageGrabbedHandler ImageGrabbed;
/// <summary>
/// Returns the capabilities of the camera
/// </summary>
ICameraCapabilities Capabilities { get; }
/// <summary>
/// Returns a Ienumerable containing all of the camera
/// </summary>
IEnumerable<ICameraParameter> Parameters { get; }
/// <summary>
/// Reference to Parent Camera Provider
/// </summary>
ICameraProvider Provider { get; }
}
/// <summary>
/// Handler called when an image has been grabbed
/// </summary>
/// <param name="image">the grabbed image</param>
public delegate void ImageGrabbedHandler(ICamera sender, IImage image);
}