namespace TBF.BenchControl.Elde
{
interface IControlCom
{
StatusP StatusP { get; }
float ReferenceFreq { get; }
int EtPulses(int wmNr0);
int WMeterPulses(int wmNr0);
int WMeterReference(int wmNr0);
uint RegulValveDAC { get; }
float Pressure(int prsNr0);
float Temperature(int tmpNr0);
RegulValveState RegulValveState(int rvNr1);
ulong RRoute { get; }
uint DivTime { get; }
float TTime { get; }
uint FmState { get; }
uint BeginState(int wmNr0);
float ReferenceFlow { get; }
float RValvePosition(int rvNr1);
float DivSamples(int ms);
int ScopeSamples(int i, int j, int k);
uint DigitalInputs { get; }
float AnalogInput(int adcNr0);
uint AnalogInputRaw(int adcNr0, int bank);
float ReferenceVolume { get; }
float VyslExt(int wmNr0, int what);
void SetWeight(int pos, float mass);
///
/// Sends calibration and configuration data to the control board.
///
/// Regulating valves calib.coefs, ix1 = valve nr. (1..5), ix2 = coef.nr. (0..1), values typ. c0 = 0, c1 = 0.2
/// Meret address, index = 0..1, value typ. 99 and 100
/// COM port number of the control board (typ. 1)
/// Temp.calc.coefs, ix1 = temp.sens.nr. (0..7 ???), ix2 = coef.nr
/// Etalon nominal values
/// Percentages for switching of diverters, ix = diverter nr.(0,1), typ.value 50 (%)
void SendCalibData(uint[,] rvCalib, byte[] meretA, int usedCom, float[,] tempCalib, float[] etCalib, uint[] divEdge, uint[] balanceRange);
///
/// Updates a command that is regularly sent to the control board by SendCommand.
///
/// See ControlBoard.Command enum
/// Number of the etalon/reference (1..5)
/// Route: 64-bit installation specific number
/// kolko impulzov ma trvat skuska
/// See ControlBoard.TestMethods enum
/// 0 = No filtering (0..255)
/// Freq.inverter control (not applicable in DT100, Munich)
/// Coefficient used to control reg. valves (1..100)
/// 0 = default value, 1 = spec. processing of very short pulses
/// What to stop
void SendCommand(Command cmd, int refNr, ulong route, int refPulses, TestMethods testMethods,
float filterConstant, float[] fmFreq, int regConst, int shortImp, StopDevs stopDevs);
///
/// Control of regulating valves.
///
/// Regulating valve nr. (1..5)
/// ???
/// ???
/// Stabilization time when setting the flow: 0=200ms, step 50ms, max. 1.5 sec.
void ValveMove(int valveNo, RegulValveMode valveMode, float[] valveValue, int stableTime);
void RunDeviceBefore();
void RunDeviceAfter();
}
}