#ifndef I2CPWM_H
#define I2CPWM_H

#include "I2CDefs.h"

class I2cPWM
{
  private:
    // all pulse values in usec
    uint16_t bottomValue; 
    uint16_t midValue;
    uint16_t topValue;
    uint16_t rangeValue;
    uint16_t newValue;
    uint8_t pulseDelay;

    int i2cHandle;  //file handle from open of I2C
    int avrAddr; //address of avr chip on I2C
    
    int i2cBusWait;

    uint8_t pwmNum; //pwn pin location on robostix

    I2c_ioctl_packet_t packet;
    I2c_packet_header_t packet_header;
    I2c_pwm_packet_t packet_data;

    uint8_t buf[I2c_packet_len];

    void sendPacket();

  public:
    I2cPWM(int handle, int low, int high, int pwm, int delay);
    void middle();
    void increase(int percent);
    void decrease(int percent);
}; // I2cPWm

#endif // I2CPWM_H
