#include "io_8574.h" #include <sstream> #include <string> Io_8574::Io_8574(Sensor_port port, Connection *connection, unsigned char i2c_address):I2c(port,connection, LOWSPEED, i2c_address){ } Io_8574::~Io_8574(){} void Io_8574::init(bool reply){ I2c::init(reply); read(); read(); this->has_init=true; } void Io_8574::set(unsigned int value){ if(!this->has_init){ init(); } unsigned char command[2]; command[0] = i2c_address; command[1] = value; i2c_write(&command[0], 2, 0); wait_for_bytes(0);//wait for byte to be ready } int Io_8574::read(){ if(!this->has_init){ init(); } unsigned char rx_buffer[I2C_BUFFER_SIZE]; unsigned char command[1]; command[0]=i2c_address; i2c_write(&command[0], 1, 1); wait_for_bytes(1); i2c_read(&rx_buffer[0], 1); return rx_buffer[1] & 0xff; //returns unsigned value } Sensor_type Io_8574::get_type(){ return IO_8574_SENSOR; } std::string Io_8574::print(){ std::stringstream out; out << read(); return out.str(); }