/*
 * I_SysCommons.hpp
 *
 *  Created on: 24.05.2017
 *      Author: Justus_RETHEM
 */

#ifndef CLASSES_INTERFACES_I_SYSCOMMONS_HPP_
#define CLASSES_INTERFACES_I_SYSCOMMONS_HPP_

class I_SysCommons{
public:
	I_SysCommons(){};
	virtual ~I_SysCommons(){};


	virtual unsigned int SetToPWMmode() = 0;
	virtual unsigned int SetToTolMode() = 0;
	virtual unsigned int GetMode() = 0;

	virtual double CalcVoltageFromAdcDigits(unsigned int adcDigits) = 0;
	virtual double CalcIpercFromSgndAdcDigits(signed int adcDigits) = 0;
	virtual int RemOfstFromCur(unsigned int) = 0;


	virtual void PutPosZwKrsRef(unsigned int* Uref) = 0;
	virtual unsigned int GetPosZwKrsRawVal() = 0;

	virtual void PutNegZwKrsRef(unsigned int* Uref) = 0;
	virtual unsigned int GetNegZwKrsRawVal() = 0;

	virtual void SetPosPinHigh() = 0;
	virtual void SetPosPinLow() = 0;
	virtual unsigned int GetPosPinCmd() = 0;
	virtual void SetNegPinHigh() = 0;
	virtual void SetNegPinLow() = 0;
	virtual unsigned int GetNegPinCmd() = 0;

	virtual unsigned char GetPosPinFeedBack() = 0;
	virtual unsigned char GetNegPinFeedBack() = 0;

	virtual void SetPosPortAndPin(unsigned int* portPtr, unsigned int pinMask) = 0;
	virtual void SetNegPortAndPin(unsigned int* portPtr, unsigned int pinMask) = 0;

	virtual void SetPosPortAndPinFeedBack(unsigned int* portPtr, unsigned int pinMask) = 0;
	virtual void SetNegPortAndPinFeedBack(unsigned int* portPtr, unsigned int pinMask) = 0;

	virtual void PutActualUeffSollDigit(unsigned int uEffDigit) = 0;
	virtual unsigned int GetActualUeffSollDigit() = 0;
	virtual void PutActualIeffSollDigit(signed int iEffDigit) = 0;
	virtual signed int GetActualIeffSollDigit() = 0;
	virtual void PutActualIbandDigit(signed int iEffDigit) = 0;
	virtual signed int GetActualIbandDigit() = 0;

};



#endif /* CLASSES_INTERFACES_I_SYSCOMMONS_HPP_ */
