using System;
using System.Runtime.InteropServices;
namespace Xylem.Common.Hardware.WaterMeter.WaterMeterCore
{
///
/// Can hold various s and hold connection record to relieve the meter.
/// Every contact with meter has to go over even if you have just only one.
///
[Guid("3E6F2741-00D3-42FC-9F86-09065D03E35B")
, ComVisible(true)
, InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IMeterBatch : IDisposable
{
///
/// holds all
/// Add and delete with
///
void AddMeter(IMeter meterToAdd);
///
/// Remove Meter from batch and clear communication
///
/// meter to be removed
void RemoveMeter(IMeter meterToRemove);
///
/// Get meter from slot number.
///
///
/// null if slot has no genesis
IMeter GetMeter(Int32 slot);
///
/// Remove all Meters and comports
///
void RemoveAllMeters();
///
///
///
///
IMeter[] GetCurrentMeter();
///
/// Detect all meters
///
///
Int32[] GetCurrentMeterSlots();
///
/// login to all meters
///
void MetersLogin();
///
/// Initialize all meters
///
void MetersInit();
///
/// Initialize calibration for all meters
///
void MetersInitCalibration();
///
/// Initialize measurement for all meters
///
void MetersInitMeasurement();
///
/// Store new calculated calibration to all meters
///
void MetersSaveCalculatedCalibration();
///
/// Start calibration for all meters
///
void MetersStartCalibration();
///
/// Start measurement for all meters
///
void MetersStartMeasurement();
///
/// Stop calibration of all meters
///
void MetersStopCalibration();
///
/// Stop measurements of all meters
///
void MetersStopMeasurement();
}
}