#ifndef _I2C_CH0_PIMPL_H_
#define _I2C_CH0_PIMPL_H_

#include <stdint.h>
#include <iostream>
#include <string>
#include "../../management/errorHandling.h"
#include "../../systems/systemCall.h"

class i2c_ch0_pImpL
{
	public: 
		i2c_ch0_pImpL(const uint8_t& mode); // Mode : Master or Slave
		uint8_t readByte(const uint8_t& address, const uint8_t& reg); 
		uint16_t readWord(const uint8_t& address, const uint8_t& reg); 
		uint8_t writeByte(const uint8_t& address, const uint8_t& data); 
		uint8_t writeWord(const uint8_t& address, const uint8_t& reg, const uint16_t& data);	
		

	private:
		int16_t deviceDescriptor; 
		uint8_t device_address;
		uint8_t device_reg;
		uint8_t send_buffer[32];
		uint8_t recieve_buffer[32];
		uint8_t blocks; 
		uint8_t channel; 
		uint8_t mode;
};


#endif // _I2C_CH0_PIMPL_H_
