Files
tbf/TBF/Rig/Generic/IDevice.cs
T

43 lines
1.7 KiB
C#

///
/// Copyright (c) 2013-2016 Sensus Metering Systems
///
namespace TBF.Rig.Generic
{
public interface IDevice : IComponent
{
/// <summary>
/// This function is invoked regularly each 1000 ms (once per second)
/// just before Start(), Run() and Stop() functions of acrive operations.
///
/// It runs in a thread created by class Machine (not the user interface thread).
/// The function should not block (otherwise it blocks all other devices) !!!
/// In case needed, the device must create its own thread to handle hardware
/// without any interference with the rest of the system.
/// </summary>
void RunDeviceBefore();
/// <summary>
/// This function is invoked regularly each 1000 ms (once per second)
/// just before Start(), Run() and Stop() functions of acrive operations.
///
/// It runs in a thread created by class Machine (not the user interface thread).
/// The function should not block (otherwise it blocks all other devices) !!!
/// In case needed, the device must create its own thread to handle hardware
/// without any interference with the rest of the system.
/// </summary>
void RunDeviceAfter();
/// <summary>
/// Invoked once on program shut-down after state machine is stopped,
/// after all Stop() functions for all runing operations were called
/// and after all RunDeviceAfter() of all devices.
/// </summary>
void StopDevice();
/// <summary>
/// Extra stop device function required by Camera only
/// </summary>
void StopDevice2();
}
}