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(); } }