class THVChannel { friend class THVModule16Std; private: uw16 *myIDC; uw8 *myChannel; TChVal *myVset; TChVal *myVmeas; TChVal *myImeas; TChVal *myITrip; TChVal *myStat; int *myError; uw8 *myErrCnt; public: THVChannel(void); ~THVChannel(void); void SetIDC(uw16); uw16 GetIDC(void); uw8 GetChn(void); // read the aktuell HV channel from this RAM-Cell myChannel void SetChn(uw8); // store a new value for channel in RAM-Cell myChannel struct TChVal GetVset(void); // read set voltage from HV channel from modul void SetVset(struct TChVal); // send set voltage from HV channel to modul struct TChVal GetVmeas(void); // read aktual voltage from HV channel from modul struct TChVal GetImeas(void); // read aktual voltage from HV channel from modul void SetITrip(struct TChVal); // send current trip from HV channel to modul struct TChVal GetITrip(void); // read aktual current trip from HV channel from modul struct TChVal GetStat(void); // read aktual voltage from HV channel from modul void EvalMessageError(void); char ChnName[16][12]; }; class THVModule16Std : public THVChannel { friend class THVModul16Std; private: uw16 *myIDM; // CAN-ID uw8 *myType; // ModulTyp TDevIDR *myDevIDR; uw16 *myRamp; // Rampspeed uw16 *myOnOff; // word with on off flag per channel uw16 *myKilEna; uw16 *myEMCY; TNominals *myVImax; uw8 *myGenStat; bool *myLogOn; // device log on bool *mySLoop; bool *myAdjust; // adjustment bool *myEEPWrite; bool *myHwVLim2Low; uw16 *myFilter; TSplTmp *mySupplies; uw16 *myStHwVLimits; uw16 *myStHwILimits; uw16 *myStSwILimits; uw16 *myStFaErr; uw16 *myBitr; uw16 *myHWCLimit; uw16 *myHWVLimit; uw16 *myThErrStat; uw8 *myRelayMask; bool *myCalPWM; bool *myScanCanBus; //zeigt an, ob gerade ein neuer Modul vom BUS gescannt wurde public: THVModule16Std(void); ~THVModule16Std(void); uw16 GetID(void); void SetID(uw16); uw8 GetType(void); void SetType(uw8); bool GetLogOn(void); void SetLogOn(bool); void SetRamp(uw16); // send rampspeed to modul uw16 GetRamp(void); void SetOnOff(uw16); uw16 GetOnOff(void); void SetVsetAll(uw16); void SetItripAll(uw16); void SetKilEna(uw16); uw16 GetKilEna(void); void SetEMCY(uw16); bool GetSLoop(void); void SetSLoop(bool); void SetHwVLimit2Low(bool); bool GetAdjust(void); void SetAdjust(bool); bool GetEEP_WR(void); void SetEEP_WR(bool); TNominals GetVInom(void); uw8 GetGenStat(void); void SetGenStat(uw8); uw8 GetGenStatfCAN(void); void SetFilter(uw16); uw16 GetFilter(void); TSplTmp GetSupply(void); uw16 GetStHwVLimit(void); void SetStHwVLimit(uw16); uw16 GetStHwILimit(void); void SetStHwILimit(uw16); uw16 GetStSwILimit(void); void SetStSwILimit(uw16); uw16 GetStFastErr(void); void SetStFastErr(uw16); TDevIDR GetDevIDR(void); uw16 GetBitRate(void); void SetBitRate(uw16); bool GetScanCanBus(void); void SetScanCanBus(bool); uw16 GetHWCLimit(void); uw16 GetHWVLimit(void); uw16 GetThErrStat(void); void SetThErrStat(uw16); uw8 GetRelayMask(void); void SetRelayMask(uw8); bool GetCalPWM(void); void SetCalPWM(bool); void ScanCanBuff(uw16 *ID, uw8 *CanBuff); uw16 GetCID(void); };