class CMAccess {
public:
virtual ~CMAccess() {}
virtual MChannel* GetChannel(const char *name, int typ=ML_ANY)=0;
virtual MChannel* GetChannel(int reg, int cnl, int typ=ML_ANY)=0;
virtual MChannel* GetAnalogChannel(int reg,int chan)=0;
virtual MChannel* GetDiscreteChannel(int reg,int chan)=0;
virtual MChannel* GetPowerChannel(int reg,int chan)=0;
virtual void CloseChannel(MChannel*a)=0;
virtual int LoadNextRecord()=0;
virtual double GetFreq()=0;
virtual void GetRegPresent(RegistratorsPresent &rp)=0;
virtual double GetTime()=0;
virtual double GetChannelAmpl(MChannel*, int idx=0)=0;
virtual double GetChannelPhase(MChannel*)=0;
virtual int GetChannelCorrectFlag(MChannel*)=0;
virtual int Version() = 0;
virtual int IsLoaded()=0;
virtual int GetNextChannelName(ChannelPosition &pos,char *name,unsigned int maxlen)=0;
virtual int GetLimits(MChannel *a, double &min, double &max) = 0;
virtual int ChangeObject(int adr, int num, int cmd) = 0;
};