mraa: change all existing code to use libmraa.

* Made CMake depend on 0.4 libmraa

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
This commit is contained in:
Thomas Ingleby
2014-06-25 10:05:27 +01:00
parent 8d25ecacdd
commit 36be22cb90
53 changed files with 640 additions and 640 deletions

View File

@ -20,7 +20,7 @@ macro(upm_SWIG_PYTHON)
set (CMAKE_C_FLAGS -DSWIGPYTHON=${SWIG_FOUND})
set_source_files_properties (pyupm_${libname}.i PROPERTIES CPLUSPLUS ON)
swig_add_module (pyupm_${libname} python pyupm_${libname}.i ${module_src})
swig_link_libraries (pyupm_${libname} ${PYTHON_LIBRARIES} ${MAA_LIBRARIES})
swig_link_libraries (pyupm_${libname} ${PYTHON_LIBRARIES} ${MRAA_LIBRARIES})
target_include_directories ( ${SWIG_MODULE_pyupm_${libname}_REAL_NAME}
PUBLIC
"${PYTHON_INCLUDE_PATH}"
@ -39,7 +39,7 @@ macro(upm_SWIG_NODE)
set_source_files_properties (jsupm_${libname}.i PROPERTIES CPLUSPLUS ON)
set_source_files_properties (jsupm_${libname}.i PROPERTIES SWIG_FLAGS "-node")
swig_add_module (jsupm_${libname} javascript jsupm_${libname}.i ${module_src})
swig_link_libraries (jsupm_${libname} ${MAA_LIBRARIES} ${NODE_LIBRARIES})
swig_link_libraries (jsupm_${libname} ${MRAA_LIBRARIES} ${NODE_LIBRARIES})
target_include_directories ( ${SWIG_MODULE_jsupm_${libname}_REAL_NAME}
PUBLIC
"${NODE_INCLUDE_DIRS}"
@ -95,8 +95,8 @@ endif()
macro(upm_module_init)
add_library (${libname} SHARED ${module_src})
include_directories (${MAA_INCLUDE_DIR} .)
target_link_libraries (${libname} ${MAA_LIBRARIES})
include_directories (${MRAA_INCLUDE_DIR} .)
target_link_libraries (${libname} ${MRAA_LIBRARIES})
set_target_properties(
${libname}
PROPERTIES PREFIX "libupm-"

View File

@ -30,22 +30,22 @@
using namespace upm;
Buzzer::Buzzer (int pinNumber) {
m_pwm_context = maa_pwm_init (pinNumber);
m_pwm_context = mraa_pwm_init (pinNumber);
m_name = "Buzzer";
}
int Buzzer::playSound (int note, int delay) {
maa_pwm_enable (m_pwm_context, 1);
maa_pwm_period_us (m_pwm_context, note);
maa_pwm_pulsewidth_us (m_pwm_context, note / 2);
mraa_pwm_enable (m_pwm_context, 1);
mraa_pwm_period_us (m_pwm_context, note);
mraa_pwm_pulsewidth_us (m_pwm_context, note / 2);
usleep (delay);
maa_pwm_enable (m_pwm_context, 0);
mraa_pwm_enable (m_pwm_context, 0);
return note;
}
Buzzer::~Buzzer() {
maa_pwm_close(m_pwm_context);
std::cout << "executed maa_pwm_close" << std::endl;
mraa_pwm_close(m_pwm_context);
std::cout << "executed mraa_pwm_close" << std::endl;
}

View File

@ -24,7 +24,7 @@
#pragma once
#include <string>
#include <maa/pwm.h>
#include <mraa/pwm.h>
#define DO 3300 // 261 Hz 3830
#define RE 2930 // 294 Hz
@ -76,6 +76,6 @@ class Buzzer {
protected:
std::string m_name;
private:
maa_pwm_context m_pwm_context;
mraa_pwm_context m_pwm_context;
};
}

View File

@ -33,31 +33,31 @@ using namespace upm;
GroveLed::GroveLed(int pin)
{
maa_init();
m_gpio = maa_gpio_init(pin);
maa_gpio_dir(m_gpio, MAA_GPIO_OUT);
mraa_init();
m_gpio = mraa_gpio_init(pin);
mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT);
m_name = "LED Socket";
}
GroveLed::~GroveLed()
{
maa_gpio_close(m_gpio);
mraa_gpio_close(m_gpio);
}
maa_result_t GroveLed::write(int value)
mraa_result_t GroveLed::write(int value)
{
if (value >= 1) {
return maa_gpio_write(m_gpio, 1);
return mraa_gpio_write(m_gpio, 1);
}
return maa_gpio_write(m_gpio, 0);
return mraa_gpio_write(m_gpio, 0);
}
maa_result_t GroveLed::on()
mraa_result_t GroveLed::on()
{
return write(1);
}
maa_result_t GroveLed::off()
mraa_result_t GroveLed::off()
{
return write(0);
}
@ -66,19 +66,19 @@ maa_result_t GroveLed::off()
GroveTemp::GroveTemp(unsigned int pin)
{
maa_init();
m_aio = maa_aio_init(pin);
mraa_init();
m_aio = mraa_aio_init(pin);
m_name = "Temperature Sensor";
}
GroveTemp::~GroveTemp()
{
maa_aio_close(m_aio);
mraa_aio_close(m_aio);
}
int GroveTemp::value ()
{
int a = maa_aio_read(m_aio);
int a = mraa_aio_read(m_aio);
float r = (float)(1023-a)*10000/a;
float t = 1/(logf(r/10000)/3975 + 1/298.15)-273.15;
return (int) t;
@ -86,32 +86,32 @@ int GroveTemp::value ()
float GroveTemp::raw_value()
{
return (float) maa_aio_read(m_aio);
return (float) mraa_aio_read(m_aio);
}
//// GroveLight ////
GroveLight::GroveLight(unsigned int pin)
{
maa_init();
m_aio = maa_aio_init(pin);
mraa_init();
m_aio = mraa_aio_init(pin);
m_name = "Light Sensor";
}
GroveLight::~GroveLight()
{
maa_aio_close(m_aio);
mraa_aio_close(m_aio);
}
int GroveLight::value ()
{
// rough conversion to Lux
int a = maa_aio_read(m_aio);
int a = mraa_aio_read(m_aio);
a = 10000/(((1023-a)*10/a)*15)^(4/3);
return a;
}
float GroveLight::raw_value()
{
return (float) maa_aio_read(m_aio);
return (float) mraa_aio_read(m_aio);
}

View File

@ -24,8 +24,8 @@
#pragma once
#include <string>
#include <maa/aio.h>
#include <maa/gpio.h>
#include <mraa/aio.h>
#include <mraa/gpio.h>
namespace upm {
@ -44,11 +44,11 @@ class GroveLed: public Grove {
public:
GroveLed(int pin);
~GroveLed();
maa_result_t write(int value);
maa_result_t off();
maa_result_t on();
mraa_result_t write(int value);
mraa_result_t off();
mraa_result_t on();
private:
maa_gpio_context m_gpio;
mraa_gpio_context m_gpio;
};
class GroveTemp: public Grove {
@ -58,7 +58,7 @@ class GroveTemp: public Grove {
float raw_value();
int value();
private:
maa_aio_context m_aio;
mraa_aio_context m_aio;
};
class GroveLight: public Grove {
@ -68,7 +68,7 @@ class GroveLight: public Grove {
float raw_value();
int value();
private:
maa_aio_context m_aio;
mraa_aio_context m_aio;
};
}

View File

@ -36,10 +36,10 @@ GY65::GY65 (int bus, int devAddr, uint8_t mode) {
m_controlAddr = devAddr;
m_bus = bus;
m_i2ControlCtx = maa_i2c_init(m_bus);
m_i2ControlCtx = mraa_i2c_init(m_bus);
maa_result_t ret = maa_i2c_address(m_i2ControlCtx, m_controlAddr);
if (ret != MAA_SUCCESS) {
mraa_result_t ret = mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n");
}
@ -70,7 +70,7 @@ GY65::GY65 (int bus, int devAddr, uint8_t mode) {
}
GY65::~GY65() {
maa_i2c_stop(m_i2ControlCtx);
mraa_i2c_stop(m_i2ControlCtx);
}
int32_t
@ -180,13 +180,13 @@ GY65::computeB5(int32_t UT) {
return X1 + X2;
}
maa_result_t
mraa_result_t
GY65::i2cWriteReg (uint8_t reg, uint8_t value) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { reg, value };
error = maa_i2c_address (m_i2ControlCtx, m_controlAddr);
error = maa_i2c_write (m_i2ControlCtx, data, 2);
error = mraa_i2c_address (m_i2ControlCtx, m_controlAddr);
error = mraa_i2c_write (m_i2ControlCtx, data, 2);
return error;
}
@ -195,11 +195,11 @@ uint16_t
GY65::i2cReadReg_16 (int reg) {
uint16_t data;
maa_i2c_address(m_i2ControlCtx, m_controlAddr);
maa_i2c_write_byte(m_i2ControlCtx, reg);
mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
mraa_i2c_write_byte(m_i2ControlCtx, reg);
maa_i2c_address(m_i2ControlCtx, m_controlAddr);
maa_i2c_read(m_i2ControlCtx, (uint8_t *)&data, 0x2);
mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
mraa_i2c_read(m_i2ControlCtx, (uint8_t *)&data, 0x2);
uint8_t high = (data & 0xFF00) >> 8;
data = (data << 8) & 0xFF00;
@ -212,11 +212,11 @@ uint8_t
GY65::i2cReadReg_8 (int reg) {
uint8_t data;
maa_i2c_address(m_i2ControlCtx, m_controlAddr);
maa_i2c_write_byte(m_i2ControlCtx, reg);
mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
mraa_i2c_write_byte(m_i2ControlCtx, reg);
maa_i2c_address(m_i2ControlCtx, m_controlAddr);
maa_i2c_read(m_i2ControlCtx, &data, 0x1);
mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
mraa_i2c_read(m_i2ControlCtx, &data, 0x1);
return data;
}

View File

@ -27,7 +27,7 @@
#pragma once
#include <string>
#include <maa/i2c.h>
#include <mraa/i2c.h>
#include <math.h>
#define ADDR 0x77 // device address
@ -137,7 +137,7 @@ class GY65 {
* @param reg address of a register
* @param value byte to be written
*/
maa_result_t i2cWriteReg (uint8_t reg, uint8_t value);
mraa_result_t i2cWriteReg (uint8_t reg, uint8_t value);
/**
* Read one byte register
@ -151,7 +151,7 @@ class GY65 {
int m_controlAddr;
int m_bus;
maa_i2c_context m_i2ControlCtx;
mraa_i2c_context m_i2ControlCtx;
uint8_t oversampling;
int16_t ac1, ac2, ac3, b1, b2, mb, mc, md;

View File

@ -32,43 +32,43 @@
using namespace upm;
HCSR04::HCSR04 (uint8_t triggerPin, uint8_t echoPin, void (*fptr)(void *)) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
m_name = "HCSR04";
m_pwmTriggerCtx = maa_pwm_init (triggerPin);
m_pwmTriggerCtx = mraa_pwm_init (triggerPin);
if (m_pwmTriggerCtx == NULL) {
std::cout << "PWM context is NULL" << std::endl;
exit (1);
}
maa_init();
m_echoPinCtx = maa_gpio_init(echoPin);
mraa_init();
m_echoPinCtx = mraa_gpio_init(echoPin);
if (m_echoPinCtx == NULL) {
fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", echoPin);
exit (1);
}
maa_gpio_dir(m_echoPinCtx, MAA_GPIO_IN);
gpio_edge_t edge = MAA_GPIO_EDGE_BOTH;
maa_gpio_isr (m_echoPinCtx, edge, fptr, NULL);
mraa_gpio_dir(m_echoPinCtx, MRAA_GPIO_IN);
gpio_edge_t edge = MRAA_GPIO_EDGE_BOTH;
mraa_gpio_isr (m_echoPinCtx, edge, fptr, NULL);
}
HCSR04::~HCSR04 () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
maa_pwm_close (m_pwmTriggerCtx);
error = maa_gpio_close (m_echoPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print (error);
mraa_pwm_close (m_pwmTriggerCtx);
error = mraa_gpio_close (m_echoPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
}
int
HCSR04::getDistance () {
maa_pwm_enable (m_pwmTriggerCtx, 1);
maa_pwm_period_us (m_pwmTriggerCtx, MAX_PERIOD);
maa_pwm_pulsewidth_us (m_pwmTriggerCtx, TRIGGER_PULSE);
maa_pwm_enable (m_pwmTriggerCtx, 0);
mraa_pwm_enable (m_pwmTriggerCtx, 1);
mraa_pwm_period_us (m_pwmTriggerCtx, MAX_PERIOD);
mraa_pwm_pulsewidth_us (m_pwmTriggerCtx, TRIGGER_PULSE);
mraa_pwm_enable (m_pwmTriggerCtx, 0);
m_doWork = 0;
m_InterruptCounter = 0;

View File

@ -24,9 +24,9 @@
#pragma once
#include <string>
#include <maa/aio.h>
#include <maa/gpio.h>
#include <maa/pwm.h>
#include <mraa/aio.h>
#include <mraa/gpio.h>
#include <mraa/pwm.h>
#include <sys/time.h>
#define HIGH 1
@ -85,8 +85,8 @@ class HCSR04 {
}
private:
maa_pwm_context m_pwmTriggerCtx;
maa_gpio_context m_echoPinCtx;
mraa_pwm_context m_pwmTriggerCtx;
mraa_gpio_context m_echoPinCtx;
uint8_t m_waitEcho;
long m_RisingTimeStamp;

View File

@ -79,17 +79,17 @@ using namespace upm;
Hmc5883l::Hmc5883l(int bus)
{
m_i2c = maa_i2c_init(bus);
m_i2c = mraa_i2c_init(bus);
maa_i2c_address(m_i2c, HMC5883L_I2C_ADDR);
mraa_i2c_address(m_i2c, HMC5883L_I2C_ADDR);
m_rx_tx_buf[0] = HMC5883L_CONF_REG_B;
m_rx_tx_buf[1] = GA_1_3_REG;
maa_i2c_write(m_i2c, m_rx_tx_buf, 2);
mraa_i2c_write(m_i2c, m_rx_tx_buf, 2);
maa_i2c_address(m_i2c, HMC5883L_I2C_ADDR);
mraa_i2c_address(m_i2c, HMC5883L_I2C_ADDR);
m_rx_tx_buf[0] = HMC5883L_MODE_REG;
m_rx_tx_buf[1] = HMC5883L_CONT_MODE;
maa_i2c_write(m_i2c, m_rx_tx_buf, 2);
mraa_i2c_write(m_i2c, m_rx_tx_buf, 2);
Hmc5883l::update();
}
@ -97,11 +97,11 @@ Hmc5883l::Hmc5883l(int bus)
int
Hmc5883l::update(void)
{
maa_i2c_address(m_i2c, HMC5883L_I2C_ADDR);
maa_i2c_write_byte(m_i2c, HMC5883L_DATA_REG);
mraa_i2c_address(m_i2c, HMC5883L_I2C_ADDR);
mraa_i2c_write_byte(m_i2c, HMC5883L_DATA_REG);
maa_i2c_address(m_i2c, HMC5883L_I2C_ADDR);
maa_i2c_read(m_i2c, m_rx_tx_buf, DATA_REG_SIZE);
mraa_i2c_address(m_i2c, HMC5883L_I2C_ADDR);
mraa_i2c_read(m_i2c, m_rx_tx_buf, DATA_REG_SIZE);
// x
m_coor[0] = (m_rx_tx_buf[HMC5883L_X_MSB_REG] << 8 ) | m_rx_tx_buf[HMC5883L_X_LSB_REG];
@ -110,7 +110,7 @@ Hmc5883l::update(void)
// y
m_coor[1] = (m_rx_tx_buf[HMC5883L_Y_MSB_REG] << 8 ) | m_rx_tx_buf[HMC5883L_Y_LSB_REG];
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
float

View File

@ -23,7 +23,7 @@
*/
#pragma once
#include <maa/i2c.h>
#include <mraa/i2c.h>
#define MAX_BUFFER_LENGTH 6
@ -55,7 +55,7 @@ public:
private:
int m_coor[3];
uint8_t m_rx_tx_buf[MAX_BUFFER_LENGTH];
maa_i2c_context m_i2c;
mraa_i2c_context m_i2c;
};
}

View File

@ -33,54 +33,54 @@ I2CLcd::I2CLcd (int bus, int lcdAddress) {
m_lcd_control_address = lcdAddress;
m_bus = bus;
m_i2c_lcd_control = maa_i2c_init(m_bus);
m_i2c_lcd_control = mraa_i2c_init(m_bus);
maa_result_t ret = maa_i2c_address(m_i2c_lcd_control, m_lcd_control_address);
if (ret != MAA_SUCCESS) {
mraa_result_t ret = mraa_i2c_address(m_i2c_lcd_control, m_lcd_control_address);
if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n");
}
}
maa_result_t
mraa_result_t
I2CLcd::write (int row, int column, std::string msg) {
setCursor (row, column);
write (msg);
}
maa_result_t
mraa_result_t
I2CLcd::close() {
return maa_i2c_stop(m_i2c_lcd_control);
return mraa_i2c_stop(m_i2c_lcd_control);
}
maa_result_t
I2CLcd::i2cReg (maa_i2c_context ctx, int deviceAdress, int addr, uint8_t value) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t
I2CLcd::i2cReg (mraa_i2c_context ctx, int deviceAdress, int addr, uint8_t value) {
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { addr, value };
error = maa_i2c_address (ctx, deviceAdress);
error = maa_i2c_write (ctx, data, 2);
error = mraa_i2c_address (ctx, deviceAdress);
error = mraa_i2c_write (ctx, data, 2);
return error;
}
maa_result_t
I2CLcd::i2Cmd (maa_i2c_context ctx, uint8_t value) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t
I2CLcd::i2Cmd (mraa_i2c_context ctx, uint8_t value) {
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { LCD_CMD, value };
error = maa_i2c_address (ctx, m_lcd_control_address);
error = maa_i2c_write (ctx, data, 2);
error = mraa_i2c_address (ctx, m_lcd_control_address);
error = mraa_i2c_write (ctx, data, 2);
return error;
}
maa_result_t
I2CLcd::i2cData (maa_i2c_context ctx, uint8_t value) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t
I2CLcd::i2cData (mraa_i2c_context ctx, uint8_t value) {
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { LCD_DATA, value };
error = maa_i2c_address (ctx, m_lcd_control_address);
error = maa_i2c_write (ctx, data, 2);
error = mraa_i2c_address (ctx, m_lcd_control_address);
error = mraa_i2c_write (ctx, data, 2);
return error;
}

View File

@ -24,7 +24,7 @@
#pragma once
#include <string>
#include <maa/i2c.h>
#include <mraa/i2c.h>
namespace upm {
@ -70,17 +70,17 @@ namespace upm {
class I2CLcd {
public:
I2CLcd (int bus, int lcdAddress);
maa_result_t write (int x, int y, std::string msg);
mraa_result_t write (int x, int y, std::string msg);
virtual maa_result_t write (std::string msg) = 0;
virtual maa_result_t setCursor (int row, int column) = 0;
virtual maa_result_t clear () = 0;
virtual maa_result_t home () = 0;
virtual maa_result_t i2Cmd (maa_i2c_context ctx, uint8_t value);
virtual maa_result_t i2cReg (maa_i2c_context ctx, int deviceAdress, int addr, uint8_t data);
virtual maa_result_t i2cData (maa_i2c_context ctx, uint8_t value);
virtual mraa_result_t write (std::string msg) = 0;
virtual mraa_result_t setCursor (int row, int column) = 0;
virtual mraa_result_t clear () = 0;
virtual mraa_result_t home () = 0;
virtual mraa_result_t i2Cmd (mraa_i2c_context ctx, uint8_t value);
virtual mraa_result_t i2cReg (mraa_i2c_context ctx, int deviceAdress, int addr, uint8_t data);
virtual mraa_result_t i2cData (mraa_i2c_context ctx, uint8_t value);
maa_result_t close();
mraa_result_t close();
std::string name()
{
return m_name;
@ -89,7 +89,7 @@ class I2CLcd {
std::string m_name;
int m_lcd_control_address;
int m_bus;
maa_i2c_context m_i2c_lcd_control;
mraa_i2c_context m_i2c_lcd_control;
};
}

View File

@ -30,13 +30,13 @@
using namespace upm;
Jhd1313m1::Jhd1313m1 (int bus, int lcdAddress, int rgbAddress) : I2CLcd(bus, lcdAddress) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
m_rgb_address = rgbAddress;
m_i2c_lcd_rgb = maa_i2c_init(m_bus);
m_i2c_lcd_rgb = mraa_i2c_init(m_bus);
maa_result_t ret = maa_i2c_address(m_i2c_lcd_rgb, m_rgb_address);
if (ret != MAA_SUCCESS) {
mraa_result_t ret = mraa_i2c_address(m_i2c_lcd_rgb, m_rgb_address);
if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n");
}
@ -75,9 +75,9 @@ Jhd1313m1::~Jhd1313m1() {
* virtual area
* **************
*/
maa_result_t
mraa_result_t
Jhd1313m1::write (std::string msg) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = {0x40, 0};
for (std::string::size_type i = 0; i < msg.size(); ++i) {
error = i2cData (m_i2c_lcd_control, msg[i]);
@ -86,9 +86,9 @@ Jhd1313m1::write (std::string msg) {
return error;
}
maa_result_t
mraa_result_t
Jhd1313m1::setCursor (int row, int column) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
int row_addr[] = { 0x80, 0xc0, 0x14, 0x54};
uint8_t offset = ((column % 16) + row_addr[row]);
error = i2Cmd (m_i2c_lcd_control, offset);
@ -96,12 +96,12 @@ Jhd1313m1::setCursor (int row, int column) {
return error;
}
maa_result_t
mraa_result_t
Jhd1313m1::clear () {
return i2Cmd (m_i2c_lcd_control, LCD_CLEARDISPLAY);
}
maa_result_t
mraa_result_t
Jhd1313m1::home () {
return i2Cmd (m_i2c_lcd_control, LCD_RETURNHOME);
}

View File

@ -32,14 +32,14 @@ class Jhd1313m1 : public I2CLcd {
public:
Jhd1313m1 (int bus, int lcdAddress, int rgbAddress);
~Jhd1313m1 ();
maa_result_t write (std::string msg);
maa_result_t setCursor (int row, int column);
maa_result_t clear ();
maa_result_t home ();
mraa_result_t write (std::string msg);
mraa_result_t setCursor (int row, int column);
mraa_result_t clear ();
mraa_result_t home ();
private:
int m_rgb_address;
maa_i2c_context m_i2c_lcd_rgb;
mraa_i2c_context m_i2c_lcd_rgb;
};
}

View File

@ -33,7 +33,7 @@
using namespace upm;
Lcm1602::Lcm1602(int bus_in, int addr_in) : I2CLcd (bus_in, addr_in) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
usleep(50000);
expandWrite(LCD_BACKLIGHT);
@ -69,18 +69,18 @@ Lcm1602::~Lcm1602 () {
* virtual area
* **************
*/
maa_result_t
mraa_result_t
Lcm1602::write (std::string msg) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
for (std::string::size_type i = 0; i < msg.size(); ++i) {
error = send (msg[i], LCD_RS);
}
return error;
}
maa_result_t
mraa_result_t
Lcm1602::setCursor (int row, int column) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
int row_addr[] = { 0x80, 0xc0, 0x14, 0x54};
uint8_t offset = ((column % 16) + row_addr[row]);
@ -88,12 +88,12 @@ Lcm1602::setCursor (int row, int column) {
return send (LCD_CMD | offset, 0);
}
maa_result_t
mraa_result_t
Lcm1602::clear () {
return send(LCD_CLEARDISPLAY, 0);
}
maa_result_t
mraa_result_t
Lcm1602::home () {
return send(LCD_RETURNHOME, 0);
}
@ -103,9 +103,9 @@ Lcm1602::home () {
* private area
* **************
*/
maa_result_t
mraa_result_t
Lcm1602::send (uint8_t value, int mode) {
maa_result_t ret = MAA_SUCCESS;
mraa_result_t ret = MRAA_SUCCESS;
uint8_t h = value & 0xf0;
uint8_t l = (value << 4) & 0xf0;
ret = write4bits(h | mode);
@ -113,26 +113,26 @@ Lcm1602::send (uint8_t value, int mode) {
return ret;
}
maa_result_t
mraa_result_t
Lcm1602::write4bits(uint8_t value)
{
maa_result_t ret = MAA_SUCCESS;
mraa_result_t ret = MRAA_SUCCESS;
ret = expandWrite(value);
ret = pulseEnable(value);
return ret;
}
maa_result_t
mraa_result_t
Lcm1602::expandWrite(uint8_t value)
{
uint8_t buffer = value | LCD_BACKLIGHT;
return maa_i2c_write_byte(m_i2c_lcd_control, buffer);
return mraa_i2c_write_byte(m_i2c_lcd_control, buffer);
}
maa_result_t
mraa_result_t
Lcm1602::pulseEnable(uint8_t value)
{
maa_result_t ret = MAA_SUCCESS;
mraa_result_t ret = MRAA_SUCCESS;
ret = expandWrite(value | LCD_EN);
usleep(1);
ret = expandWrite(value & ~LCD_EN);

View File

@ -35,21 +35,21 @@ namespace upm {
class Lcm1602 : public I2CLcd {
public:
/** LCM1602 Constructor.
* Calls MAA initialisation functions.
* Calls MRAA initialisation functions.
* @param bus i2c bus to use
* @param address the slave address the lcd is registered on.
*/
Lcm1602(int bus, int address);
~Lcm1602();
maa_result_t write (std::string msg);
maa_result_t setCursor (int row, int column);
maa_result_t clear ();
maa_result_t home ();
mraa_result_t write (std::string msg);
mraa_result_t setCursor (int row, int column);
mraa_result_t clear ();
mraa_result_t home ();
private :
maa_result_t send (uint8_t value, int mode);
maa_result_t write4bits(uint8_t value);
maa_result_t expandWrite(uint8_t value);
maa_result_t pulseEnable(uint8_t value);
mraa_result_t send (uint8_t value, int mode);
mraa_result_t write4bits(uint8_t value);
mraa_result_t expandWrite(uint8_t value);
mraa_result_t pulseEnable(uint8_t value);
};
}

View File

@ -45,9 +45,9 @@ SSD1308::~SSD1308 () {
}
maa_result_t
mraa_result_t
SSD1308::draw (uint8_t *data, int bytes) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
setAddressingMode (HORIZONTAL);
for (int idx = 0; idx < bytes; idx++) {
@ -62,9 +62,9 @@ SSD1308::draw (uint8_t *data, int bytes) {
* virtual area
* **************
*/
maa_result_t
mraa_result_t
SSD1308::write (std::string msg) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = {0x40, 0};
setAddressingMode (PAGE);
@ -75,9 +75,9 @@ SSD1308::write (std::string msg) {
return error;
}
maa_result_t
mraa_result_t
SSD1308::setCursor (int row, int column) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = i2Cmd (m_i2c_lcd_control, BASE_PAGE_START_ADDR + row); // set page address
error = i2Cmd (m_i2c_lcd_control, BASE_LOW_COLUMN_ADDR + (8 * column & 0x0F)); // set column lower address
@ -86,9 +86,9 @@ SSD1308::setCursor (int row, int column) {
return error;
}
maa_result_t
mraa_result_t
SSD1308::clear () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
uint8_t columnIdx, rowIdx;
i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_OFF); // display off
@ -103,10 +103,10 @@ SSD1308::clear () {
i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_ON); // display on
home ();
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
maa_result_t
mraa_result_t
SSD1308::home () {
return setCursor (0, 0);
}
@ -116,8 +116,8 @@ SSD1308::home () {
* private area
* **************
*/
maa_result_t
SSD1308::writeChar (maa_i2c_context ctx, uint8_t value) {
mraa_result_t
SSD1308::writeChar (mraa_i2c_context ctx, uint8_t value) {
if (value < 0x20 || value > 0x7F) {
value = 0x20; // space
}
@ -127,12 +127,12 @@ SSD1308::writeChar (maa_i2c_context ctx, uint8_t value) {
}
}
maa_result_t
mraa_result_t
SSD1308::setNormalDisplay () {
return i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_SET_NORMAL); // set to normal display '1' is ON
}
maa_result_t
mraa_result_t
SSD1308::setAddressingMode (displayAddressingMode mode) {
i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_MEM_ADDR_MODE); //set addressing mode
i2Cmd (m_i2c_lcd_control, mode); //set page addressing mode

View File

@ -148,23 +148,23 @@ typedef enum {
class SSD1308 : public I2CLcd {
public:
/** SSD1308 Constructor.
* Calls MAA initialisation functions.
* Calls MRAA initialisation functions.
* @param bus i2c bus to use
* @param address the slave address the lcd is registered on.
*/
SSD1308 (int bus, int address);
~SSD1308 ();
maa_result_t draw(uint8_t *data, int bytes);
mraa_result_t draw(uint8_t *data, int bytes);
// pure virtual methods
maa_result_t write (std::string msg);
maa_result_t setCursor (int row, int column);
maa_result_t clear ();
maa_result_t home ();
mraa_result_t write (std::string msg);
mraa_result_t setCursor (int row, int column);
mraa_result_t clear ();
mraa_result_t home ();
private:
maa_result_t writeChar (maa_i2c_context ctx, uint8_t value);
maa_result_t setNormalDisplay ();
maa_result_t setAddressingMode (displayAddressingMode mode);
mraa_result_t writeChar (mraa_i2c_context ctx, uint8_t value);
mraa_result_t setNormalDisplay ();
mraa_result_t setAddressingMode (displayAddressingMode mode);
};
}

View File

@ -33,7 +33,7 @@ using namespace upm;
#define CMD_SLEEP 10000
SSD1327::SSD1327 (int bus_in, int addr_in) : I2CLcd (bus_in, addr_in) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
usleep (INIT_SLEEP);
i2Cmd (m_i2c_lcd_control, 0xFD); // Unlock OLED driver IC MCU interface from entering command. i.e: Accept commands
usleep (INIT_SLEEP);
@ -123,9 +123,9 @@ SSD1327::~SSD1327 () {
}
maa_result_t
mraa_result_t
SSD1327::draw (uint8_t *data, int bytes) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
setHorizontalMode ();
for (int row = 0; row < bytes; row++) {
@ -151,9 +151,9 @@ SSD1327::draw (uint8_t *data, int bytes) {
* virtual area
* **************
*/
maa_result_t
mraa_result_t
SSD1327::write (std::string msg) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
setVerticalMode ();
for (std::string::size_type i = 0; i < msg.size(); ++i) {
@ -163,9 +163,9 @@ SSD1327::write (std::string msg) {
return error;
}
maa_result_t
mraa_result_t
SSD1327::setCursor (int row, int column) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
//Column Address
i2Cmd (m_i2c_lcd_control, 0x15); /* Set Column Address */
@ -185,9 +185,9 @@ SSD1327::setCursor (int row, int column) {
return error;
}
maa_result_t
mraa_result_t
SSD1327::clear () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
uint8_t columnIdx, rowIdx;
for(rowIdx = 0; rowIdx < 12; rowIdx++) {
@ -197,15 +197,15 @@ SSD1327::clear () {
}
}
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
maa_result_t
mraa_result_t
SSD1327::home () {
return setCursor (0, 0);
}
maa_result_t
mraa_result_t
SSD1327::setGrayLevel (uint8_t level) {
grayHigh = (level << 4) & 0xF0;
grayLow = level & 0x0F;
@ -216,8 +216,8 @@ SSD1327::setGrayLevel (uint8_t level) {
* private area
* **************
*/
maa_result_t
SSD1327::writeChar (maa_i2c_context ctx, uint8_t value) {
mraa_result_t
SSD1327::writeChar (mraa_i2c_context ctx, uint8_t value) {
if (value < 0x20 || value > 0x7F) {
value = 0x20; // space
}
@ -238,12 +238,12 @@ SSD1327::writeChar (maa_i2c_context ctx, uint8_t value) {
}
}
maa_result_t
mraa_result_t
SSD1327::setNormalDisplay () {
return i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_SET_NORMAL); // set to normal display '1' is ON
}
maa_result_t
mraa_result_t
SSD1327::setHorizontalMode () {
i2Cmd (m_i2c_lcd_control, 0xA0); // remap to
usleep (CMD_SLEEP);
@ -267,7 +267,7 @@ SSD1327::setHorizontalMode () {
usleep (CMD_SLEEP);
}
maa_result_t
mraa_result_t
SSD1327::setVerticalMode () {
i2Cmd (m_i2c_lcd_control, 0xA0); // remap to
usleep (CMD_SLEEP);

View File

@ -148,26 +148,26 @@ typedef enum {
class SSD1327 : public I2CLcd {
public:
/** SSD1308 Constructor.
* Calls MAA initialisation functions.
* Calls MRAA initialisation functions.
* @param bus i2c bus to use
* @param address the slave address the lcd is registered on.
*/
SSD1327 (int bus, int address);
~SSD1327 ();
maa_result_t draw(uint8_t *data, int bytes);
mraa_result_t draw(uint8_t *data, int bytes);
// virtual methods
maa_result_t write (std::string msg);
maa_result_t setCursor (int row, int column);
maa_result_t clear ();
maa_result_t home ();
maa_result_t setGrayLevel (uint8_t level);
mraa_result_t write (std::string msg);
mraa_result_t setCursor (int row, int column);
mraa_result_t clear ();
mraa_result_t home ();
mraa_result_t setGrayLevel (uint8_t level);
private:
maa_result_t writeChar (maa_i2c_context ctx, uint8_t value);
maa_result_t setNormalDisplay ();
maa_result_t setHorizontalMode ();
maa_result_t setVerticalMode ();
mraa_result_t writeChar (mraa_i2c_context ctx, uint8_t value);
mraa_result_t setNormalDisplay ();
mraa_result_t setHorizontalMode ();
mraa_result_t setVerticalMode ();
uint8_t grayHigh;
uint8_t grayLow;

View File

@ -36,12 +36,12 @@ using namespace upm;
MAX31855::MAX31855(int bus, int cs)
{
// initialise chip select as a normal gpio
m_gpio = maa_gpio_init(cs);
maa_gpio_dir(m_gpio, MAA_GPIO_OUT);
m_gpio = mraa_gpio_init(cs);
mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT);
// initialise the spi bus with a 2Mhz clock
m_sensor = maa_spi_init(bus);
maa_spi_frequency(m_sensor, 2000000);
m_sensor = mraa_spi_init(bus);
mraa_spi_frequency(m_sensor, 2000000);
}
//! [Constructor]
@ -49,14 +49,14 @@ MAX31855::MAX31855(int bus, int cs)
MAX31855::~MAX31855()
{
// close both m_sensor & m_gpio cleanly
maa_result_t error;
error = maa_spi_stop(m_sensor);
if (error != MAA_SUCCESS) {
maa_result_print(error);
mraa_result_t error;
error = mraa_spi_stop(m_sensor);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close(m_gpio);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close(m_gpio);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
//! [Destructor]
@ -66,7 +66,7 @@ MAX31855::getTemp()
{
//! [spi]
// set chip select low
maa_gpio_write(m_gpio, 0);
mraa_gpio_write(m_gpio, 0);
uint8_t buf[4];
@ -74,14 +74,14 @@ MAX31855::getTemp()
memset(buf, 0, sizeof(uint8_t)*4);
// Write buffer to the spi slave
uint8_t* x = maa_spi_write_buf(m_sensor, buf, 4);
uint8_t* x = mraa_spi_write_buf(m_sensor, buf, 4);
//! [spi]
//! [conversion]
// Endian correct way of making our char array into an 32bit int
int32_t temp = (x[0] << 24) | (x[1] << 16) | (x[2] << 8) | x[3];;
// maa_spi_write_buf does not free the return buffer
// mraa_spi_write_buf does not free the return buffer
free(x);
if (temp & 0x7) {
@ -97,7 +97,7 @@ MAX31855::getTemp()
//! [conversion]
// set chip select high
maa_gpio_write(m_gpio, 1);
mraa_gpio_write(m_gpio, 1);
return c;
}

View File

@ -24,8 +24,8 @@
#pragma once
#include <string>
#include <maa/spi.h>
#include <maa/gpio.h>
#include <mraa/spi.h>
#include <mraa/gpio.h>
namespace upm {
@ -61,8 +61,8 @@ class MAX31855 {
double getTemp();
private:
maa_spi_context m_sensor;
maa_gpio_context m_gpio;
mraa_spi_context m_sensor;
mraa_gpio_context m_gpio;
};
//! [Interesting]

View File

@ -36,10 +36,10 @@ MAX44000::MAX44000 (int bus, int devAddr) {
m_maxControlAddr = devAddr;
m_bus = bus;
m_i2cMaxControlCtx = maa_i2c_init(m_bus);
m_i2cMaxControlCtx = mraa_i2c_init(m_bus);
maa_result_t ret = maa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
if (ret != MAA_SUCCESS) {
mraa_result_t ret = mraa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n");
}
@ -48,7 +48,7 @@ MAX44000::MAX44000 (int bus, int devAddr) {
}
MAX44000::~MAX44000() {
maa_i2c_stop(m_i2cMaxControlCtx);
mraa_i2c_stop(m_i2cMaxControlCtx);
}
uint16_t
@ -80,11 +80,11 @@ uint8_t
MAX44000::i2cReadReg_8 (int reg) {
uint8_t data;
maa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
maa_i2c_write_byte(m_i2cMaxControlCtx, reg);
mraa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
mraa_i2c_write_byte(m_i2cMaxControlCtx, reg);
maa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
maa_i2c_read(m_i2cMaxControlCtx, &data, 0x1);
mraa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
mraa_i2c_read(m_i2cMaxControlCtx, &data, 0x1);
return data;
}
@ -93,22 +93,22 @@ uint16_t
MAX44000::i2cReadReg_16 (int reg) {
uint16_t data;
maa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
maa_i2c_write_byte(m_i2cMaxControlCtx, reg);
mraa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
mraa_i2c_write_byte(m_i2cMaxControlCtx, reg);
maa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
maa_i2c_read(m_i2cMaxControlCtx, (uint8_t *)&data, 0x2);
mraa_i2c_address(m_i2cMaxControlCtx, m_maxControlAddr);
mraa_i2c_read(m_i2cMaxControlCtx, (uint8_t *)&data, 0x2);
return data;
}
maa_result_t
mraa_result_t
MAX44000::i2cWriteReg (uint8_t reg, uint8_t value) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { reg, value };
error = maa_i2c_address (m_i2cMaxControlCtx, m_maxControlAddr);
error = maa_i2c_write (m_i2cMaxControlCtx, data, 2);
error = mraa_i2c_address (m_i2cMaxControlCtx, m_maxControlAddr);
error = mraa_i2c_write (m_i2cMaxControlCtx, data, 2);
return error;
}

View File

@ -24,7 +24,7 @@
#pragma once
#include <string>
#include <maa/i2c.h>
#include <mraa/i2c.h>
#define ADDR 0x4A // device address
@ -122,14 +122,14 @@ class MAX44000 {
* @param reg address of a register
* @param value byte to be written
*/
maa_result_t i2cWriteReg (uint8_t reg, uint8_t value);
mraa_result_t i2cWriteReg (uint8_t reg, uint8_t value);
private:
std::string m_name;
int m_maxControlAddr;
int m_bus;
maa_i2c_context m_i2cMaxControlCtx;
mraa_i2c_context m_i2cMaxControlCtx;
};
}

View File

@ -33,17 +33,17 @@ using namespace upm;
Microphone::Microphone(int micPin) {
// initialise analog mic input
m_micCtx = maa_aio_init(micPin);
m_micCtx = mraa_aio_init(micPin);
}
Microphone::~Microphone() {
// close analog input
maa_result_t error;
error = maa_aio_close(m_micCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
mraa_result_t error;
error = mraa_aio_close(m_micCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
@ -63,7 +63,7 @@ Microphone::getSampledWindow (unsigned int freqMS, unsigned int numberOfSamples,
}
while (sampleIdx < numberOfSamples) {
buffer[sampleIdx++] = maa_aio_read (m_micCtx);
buffer[sampleIdx++] = mraa_aio_read (m_micCtx);
usleep(freqMS * 1000);
}

View File

@ -24,8 +24,8 @@
#pragma once
#include <string>
#include <maa/gpio.h>
#include <maa/aio.h>
#include <mraa/gpio.h>
#include <mraa/aio.h>
struct thresholdContext {
long averageReading;
@ -80,7 +80,7 @@ class Microphone {
void printGraph (thresholdContext* ctx);
private:
maa_aio_context m_micCtx;
mraa_aio_context m_micCtx;
};
}

View File

@ -42,10 +42,10 @@ MMA7455::MMA7455 (int bus, int devAddr) {
m_controlAddr = devAddr;
m_bus = bus;
m_i2ControlCtx = maa_i2c_init(m_bus);
m_i2ControlCtx = mraa_i2c_init(m_bus);
maa_result_t error = maa_i2c_address(m_i2ControlCtx, m_controlAddr);
if (error != MAA_SUCCESS) {
mraa_result_t error = mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
if (error != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n");
return;
}
@ -53,24 +53,24 @@ MMA7455::MMA7455 (int bus, int devAddr) {
// setting GLVL 0x1 (64LSB/g) and MODE 0x1 (Measurement Mode)
data = (BIT (MMA7455_GLVL0) | BIT (MMA7455_MODE0));
error = ic2WriteReg (MMA7455_MCTL, &data, 0x1);
if (error != MAA_SUCCESS) {
if (error != MRAA_SUCCESS) {
std::cout << "ERROR :: MMA7455 instance wan not created (Mode)" << std::endl;
return;
}
if (MAA_SUCCESS != calibrate ()) {
if (MRAA_SUCCESS != calibrate ()) {
std::cout << "ERROR :: MMA7455 instance wan not created (Calibrate)" << std::endl;
return;
}
}
MMA7455::~MMA7455() {
maa_i2c_stop(m_i2ControlCtx);
mraa_i2c_stop(m_i2ControlCtx);
}
maa_result_t
mraa_result_t
MMA7455::calibrate () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
int i = 0;
accelData xyz;
@ -78,7 +78,7 @@ MMA7455::calibrate () {
do {
error = readData (&xyz.value.x, &xyz.value.y, &xyz.value.z);
if (MAA_SUCCESS != error) {
if (MRAA_SUCCESS != error) {
return error;
}
@ -87,7 +87,7 @@ MMA7455::calibrate () {
xyz.value.z += 2 * -(xyz.value.z - 64);
error = ic2WriteReg (MMA7455_XOFFL, (unsigned char *) &xyz, 0x6);
if (error != MAA_SUCCESS) {
if (error != MRAA_SUCCESS) {
return error;
}
@ -96,7 +96,7 @@ MMA7455::calibrate () {
return error;
}
maa_result_t
mraa_result_t
MMA7455::readData (short * ptrX, short * ptrY, short * ptrZ) {
accelData xyz;
unsigned char data = 0;
@ -104,17 +104,17 @@ MMA7455::readData (short * ptrX, short * ptrY, short * ptrZ) {
/*do {
nBytes = ic2ReadReg (MMA7455_STATUS, &data, 0x1);
} while ( !(data & MMA7455_DRDY) && nBytes == MAA_SUCCESS);
} while ( !(data & MMA7455_DRDY) && nBytes == MRAA_SUCCESS);
if (nBytes == MAA_SUCCESS) {
if (nBytes == MRAA_SUCCESS) {
std::cout << "NO_GDB :: 1" << std::endl;
return MAA_SUCCESS;
return MRAA_SUCCESS;
}*/
nBytes = ic2ReadReg (MMA7455_XOUTL, (unsigned char *) &xyz, 0x6);
if (nBytes == 0) {
std::cout << "NO_GDB :: 2" << std::endl;
return MAA_ERROR_UNSPECIFIED;
return MRAA_ERROR_UNSPECIFIED;
}
if (xyz.reg.x_msb & 0x02) {
@ -134,40 +134,40 @@ MMA7455::readData (short * ptrX, short * ptrY, short * ptrZ) {
*ptrY = xyz.value.y;
*ptrZ = xyz.value.z;
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
int
MMA7455::ic2ReadReg (unsigned char reg, unsigned char * buf, unsigned char size) {
if (MAA_SUCCESS != maa_i2c_address(m_i2ControlCtx, m_controlAddr)) {
if (MRAA_SUCCESS != mraa_i2c_address(m_i2ControlCtx, m_controlAddr)) {
return 0;
}
if (MAA_SUCCESS != maa_i2c_write_byte(m_i2ControlCtx, reg)) {
if (MRAA_SUCCESS != mraa_i2c_write_byte(m_i2ControlCtx, reg)) {
return 0;
}
if (MAA_SUCCESS != maa_i2c_address(m_i2ControlCtx, m_controlAddr)) {
if (MRAA_SUCCESS != mraa_i2c_address(m_i2ControlCtx, m_controlAddr)) {
return 0;
}
return (int) maa_i2c_read(m_i2ControlCtx, buf, size);
return (int) mraa_i2c_read(m_i2ControlCtx, buf, size);
}
maa_result_t
mraa_result_t
MMA7455::ic2WriteReg (unsigned char reg, unsigned char * buf, unsigned char size) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[size + 1];
data[0] = reg;
memcpy(&data[1], buf, size);
error = maa_i2c_address (m_i2ControlCtx, m_controlAddr);
if (error != MAA_SUCCESS) {
error = mraa_i2c_address (m_i2ControlCtx, m_controlAddr);
if (error != MRAA_SUCCESS) {
return error;
}
error = maa_i2c_write (m_i2ControlCtx, data, size + 1);
if (error != MAA_SUCCESS) {
error = mraa_i2c_write (m_i2ControlCtx, data, size + 1);
if (error != MRAA_SUCCESS) {
return error;
}

View File

@ -24,7 +24,7 @@
#pragma once
#include <string>
#include <maa/i2c.h>
#include <mraa/i2c.h>
#define ADDR 0x1D // device address
@ -183,7 +183,7 @@ class MMA7455 {
/**
* Calibrate the sensor
*/
maa_result_t calibrate ();
mraa_result_t calibrate ();
/**
* Read X, Y and Z acceleration data
@ -192,7 +192,7 @@ class MMA7455 {
* @param ptrY Y axis
* @param ptrZ Z axis
*/
maa_result_t readData (short * ptrX, short * ptrY, short * ptrZ);
mraa_result_t readData (short * ptrX, short * ptrY, short * ptrZ);
/**
*
@ -210,14 +210,14 @@ class MMA7455 {
* @param buf register data buffer
* @param size buffer size
*/
maa_result_t ic2WriteReg (unsigned char reg, unsigned char * buf, unsigned char size);
mraa_result_t ic2WriteReg (unsigned char reg, unsigned char * buf, unsigned char size);
private:
std::string m_name;
int m_controlAddr;
int m_bus;
maa_i2c_context m_i2ControlCtx;
mraa_i2c_context m_i2ControlCtx;
};
}

View File

@ -39,10 +39,10 @@ MPU9150::MPU9150 (int bus, int devAddr) {
m_i2cAddr = devAddr;
m_bus = bus;
m_i2Ctx = maa_i2c_init(m_bus);
m_i2Ctx = mraa_i2c_init(m_bus);
maa_result_t ret = maa_i2c_address(m_i2Ctx, m_i2cAddr);
if (ret != MAA_SUCCESS) {
mraa_result_t ret = mraa_i2c_address(m_i2Ctx, m_i2cAddr);
if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n");
}
@ -50,10 +50,10 @@ MPU9150::MPU9150 (int bus, int devAddr) {
}
MPU9150::~MPU9150() {
maa_i2c_stop(m_i2Ctx);
mraa_i2c_stop(m_i2Ctx);
}
maa_result_t
mraa_result_t
MPU9150::initSensor () {
uint8_t regData = 0x0;
@ -71,7 +71,7 @@ MPU9150::initSensor () {
regData &= ~(1 << MPU6050_PWR1_SLEEP_BIT);
i2cWriteReg (MPU6050_RA_PWR_MGMT_1, regData);
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
uint8_t
@ -81,7 +81,7 @@ MPU9150::getDeviceID () {
return regData;
}
maa_result_t
mraa_result_t
MPU9150::getData () {
uint8_t buffer[14];
@ -130,31 +130,31 @@ MPU9150::getData () {
axisMagnetomer.data.axisZ = axisMagnetomer.sumData.axisZ / SMOOTH_TIMES;
}
maa_result_t
mraa_result_t
MPU9150::getAcceleromter (Vector3D * data) {
data->axisX = axisAcceleromter.data.axisX;
data->axisY = axisAcceleromter.data.axisY;
data->axisZ = axisAcceleromter.data.axisZ;
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
maa_result_t
mraa_result_t
MPU9150::getGyro (Vector3D * data) {
data->axisX = axisGyroscope.data.axisX;
data->axisY = axisGyroscope.data.axisY;
data->axisZ = axisGyroscope.data.axisZ;
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
maa_result_t
mraa_result_t
MPU9150::getMagnometer (Vector3D * data) {
data->axisX = axisMagnetomer.data.axisX;
data->axisY = axisMagnetomer.data.axisY;
data->axisZ = axisMagnetomer.data.axisZ;
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
float
@ -177,21 +177,21 @@ MPU9150::getTemperature () {
uint16_t
MPU9150::i2cReadReg_N (int reg, unsigned int len, uint8_t * buffer) {
int readByte = 0;
maa_i2c_address(m_i2Ctx, m_i2cAddr);
maa_i2c_write_byte(m_i2Ctx, reg);
mraa_i2c_address(m_i2Ctx, m_i2cAddr);
mraa_i2c_write_byte(m_i2Ctx, reg);
maa_i2c_address(m_i2Ctx, m_i2cAddr);
readByte = maa_i2c_read(m_i2Ctx, buffer, len);
mraa_i2c_address(m_i2Ctx, m_i2cAddr);
readByte = mraa_i2c_read(m_i2Ctx, buffer, len);
return readByte;
}
maa_result_t
mraa_result_t
MPU9150::i2cWriteReg (uint8_t reg, uint8_t value) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { reg, value };
error = maa_i2c_address (m_i2Ctx, m_i2cAddr);
error = maa_i2c_write (m_i2Ctx, data, 2);
error = mraa_i2c_address (m_i2Ctx, m_i2cAddr);
error = mraa_i2c_write (m_i2Ctx, data, 2);
return error;
}

View File

@ -27,7 +27,7 @@
#pragma once
#include <string>
#include <maa/i2c.h>
#include <mraa/i2c.h>
#define MPU6050_ADDRESS_AD0_LOW 0x68 // address pin low (GND), default for InvenSense evaluation board
#define MPU6050_ADDRESS_AD0_HIGH 0x69 // address pin high (VCC)
@ -133,7 +133,7 @@ class MPU9150 {
/**
* Initiate MPU9150 chips
*/
maa_result_t initSensor ();
mraa_result_t initSensor ();
/**
* Get identity of the device
@ -144,22 +144,22 @@ class MPU9150 {
* Get the Accelerometer, Gyro and Compass data from the chip and
* save it in private section.
*/
maa_result_t getData ();
mraa_result_t getData ();
/**
* @param data structure with 3 axis (x,y,z)
*/
maa_result_t getAcceleromter (Vector3D * data);
mraa_result_t getAcceleromter (Vector3D * data);
/**
* @param data structure with 3 axis (x,y,z)
*/
maa_result_t getGyro (Vector3D * data);
mraa_result_t getGyro (Vector3D * data);
/**
* @param data structure with 3 axis (x,y,z)
*/
maa_result_t getMagnometer (Vector3D * data);
mraa_result_t getMagnometer (Vector3D * data);
/**
* Read on die temperature from the chip
@ -179,14 +179,14 @@ class MPU9150 {
int m_i2cAddr;
int m_bus;
maa_i2c_context m_i2Ctx;
mraa_i2c_context m_i2Ctx;
AxisData axisMagnetomer;
AxisData axisAcceleromter;
AxisData axisGyroscope;
uint16_t i2cReadReg_N (int reg, unsigned int len, uint8_t * buffer);
maa_result_t i2cWriteReg (uint8_t reg, uint8_t value);
mraa_result_t i2cWriteReg (uint8_t reg, uint8_t value);
int updateRegBits (uint8_t reg, uint8_t bitStart,
uint8_t length, uint16_t data);
uint8_t getRegBits (uint8_t reg, uint8_t bitStart,

View File

@ -31,51 +31,51 @@
using namespace upm;
MY9221::MY9221 (uint8_t di, uint8_t dcki) {
maa_result_t error = MAA_SUCCESS;
maa_init();
mraa_result_t error = MRAA_SUCCESS;
mraa_init();
// init clock context
m_clkPinCtx = maa_gpio_init(dcki);
m_clkPinCtx = mraa_gpio_init(dcki);
if (m_clkPinCtx == NULL) {
fprintf(stderr, "Are you sure that pin%d you requested is valid on your platform?", dcki);
exit(1);
}
// init data context
m_dataPinCtx = maa_gpio_init(di);
m_dataPinCtx = mraa_gpio_init(di);
if (m_dataPinCtx == NULL) {
fprintf(stderr, "Are you sure that pin%d you requested is valid on your platform?", di);
exit(1);
}
// set direction (out)
error = maa_gpio_dir(m_clkPinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_dir(m_clkPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
// set direction (out)
error = maa_gpio_dir(m_dataPinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_dir(m_dataPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
MY9221::~MY9221() {
maa_result_t error = MAA_SUCCESS;
error = maa_gpio_close (m_dataPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
mraa_result_t error = MRAA_SUCCESS;
error = mraa_gpio_close (m_dataPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close (m_clkPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_clkPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
maa_result_t
mraa_result_t
MY9221::setBarLevel (uint8_t level) {
if (level > 10) {
return MAA_ERROR_INVALID_PARAMETER;
return MRAA_ERROR_INVALID_PARAMETER;
}
send16bitBlock (CMDMODE);
@ -86,25 +86,25 @@ MY9221::setBarLevel (uint8_t level) {
lockData ();
}
maa_result_t
mraa_result_t
MY9221::lockData () {
maa_result_t error = MAA_SUCCESS;
error = maa_gpio_write (m_dataPinCtx, LOW);
mraa_result_t error = MRAA_SUCCESS;
error = mraa_gpio_write (m_dataPinCtx, LOW);
usleep(100);
for(int idx = 0; idx < 4; idx++) {
error = maa_gpio_write (m_dataPinCtx, HIGH);
error = maa_gpio_write (m_dataPinCtx, LOW);
error = mraa_gpio_write (m_dataPinCtx, HIGH);
error = mraa_gpio_write (m_dataPinCtx, LOW);
}
}
maa_result_t
mraa_result_t
MY9221::send16bitBlock (short data) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
for (uint8_t bit_idx = 0; bit_idx < MAX_BIT_PER_BLOCK; bit_idx++) {
uint32_t state = (data & 0x8000) ? HIGH : LOW;
error = maa_gpio_write (m_dataPinCtx, state);
state = maa_gpio_read (m_clkPinCtx);
error = mraa_gpio_write (m_dataPinCtx, state);
state = mraa_gpio_read (m_clkPinCtx);
if (state) {
state = LOW;
@ -112,7 +112,7 @@ MY9221::send16bitBlock (short data) {
state = HIGH;
}
error = maa_gpio_write (m_clkPinCtx, state);
error = mraa_gpio_write (m_clkPinCtx, state);
data <<= 1;
}

View File

@ -24,8 +24,8 @@
#pragma once
#include <string>
#include <maa/aio.h>
#include <maa/gpio.h>
#include <mraa/aio.h>
#include <mraa/gpio.h>
#define MAX_BIT_PER_BLOCK 16
#define CMDMODE 0x0000
@ -64,7 +64,7 @@ class MY9221 {
*
* @param level selected level for the bar (1 - 10)
*/
maa_result_t setBarLevel (uint8_t level);
mraa_result_t setBarLevel (uint8_t level);
/**
* Return name of the component
@ -74,12 +74,12 @@ class MY9221 {
return m_name;
}
private:
maa_result_t lockData ();
maa_result_t send16bitBlock (short data);
mraa_result_t lockData ();
mraa_result_t send16bitBlock (short data);
std::string m_name;
maa_gpio_context m_clkPinCtx;
maa_gpio_context m_dataPinCtx;
mraa_gpio_context m_clkPinCtx;
mraa_gpio_context m_dataPinCtx;
};
}

View File

@ -31,58 +31,58 @@
using namespace upm;
NRF24l01::NRF24l01 (uint8_t cs) {
maa_init();
mraa_init();
nrfInitModule (cs, 8);
}
NRF24l01::~NRF24l01 () {
maa_result_t error = MAA_SUCCESS;
error = maa_spi_stop(m_spi);
if (error != MAA_SUCCESS) {
maa_result_print(error);
mraa_result_t error = MRAA_SUCCESS;
error = mraa_spi_stop(m_spi);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close (m_cePinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_cePinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close (m_csnPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_csnPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
void
NRF24l01::nrfInitModule (uint8_t chip_select, uint8_t chip_enable) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
m_csn = chip_select;
m_ce = chip_enable;
m_channel = 1;
m_csnPinCtx = maa_gpio_init (m_csn);
m_csnPinCtx = mraa_gpio_init (m_csn);
if (m_csnPinCtx == NULL) {
fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_csn);
exit (1);
}
m_cePinCtx = maa_gpio_init (m_ce);
m_cePinCtx = mraa_gpio_init (m_ce);
if (m_cePinCtx == NULL) {
fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_ce);
exit (1);
}
error = maa_gpio_dir (m_csnPinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_dir (m_csnPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
error = maa_gpio_dir (m_cePinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_dir (m_cePinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
nrfCELow ();
m_spi = maa_spi_init (0);
m_spi = mraa_spi_init (0);
}
void
@ -105,8 +105,8 @@ NRF24l01::nrfConfigModule() {
void
NRF24l01::nrfConfigRegister(uint8_t reg, uint8_t value) {
nrfCSOn ();
maa_spi_write (m_spi, W_REGISTER | (REGISTER_MASK & reg));
maa_spi_write (m_spi, value);
mraa_spi_write (m_spi, W_REGISTER | (REGISTER_MASK & reg));
mraa_spi_write (m_spi, value);
nrfCSOff ();
}
@ -122,7 +122,7 @@ NRF24l01::nrfPowerUpRX() {
void
NRF24l01::nrfFlushRX() {
nrfCSOn ();
maa_spi_write (m_spi, FLUSH_RX);
mraa_spi_write (m_spi, FLUSH_RX);
nrfCSOff ();
}
@ -160,7 +160,7 @@ void
NRF24l01::nrfWriteRegister(uint8_t reg, uint8_t * value, uint8_t len)
{
nrfCSOn ();
maa_spi_write (m_spi, W_REGISTER | (REGISTER_MASK & reg));
mraa_spi_write (m_spi, W_REGISTER | (REGISTER_MASK & reg));
nrfTransmitSync(value, len);
nrfCSOff ();
}
@ -169,7 +169,7 @@ void
NRF24l01::nrfTransmitSync(uint8_t *dataout, uint8_t len){
uint8_t i;
for(i = 0; i < len; i++) {
maa_spi_write (m_spi, dataout[i]);
mraa_spi_write (m_spi, dataout[i]);
}
}
@ -196,7 +196,7 @@ void
NRF24l01::nrfReadRegister (uint8_t reg, uint8_t * value, uint8_t len)
{
nrfCSOn ();
maa_spi_write (m_spi, R_REGISTER | (REGISTER_MASK & reg));
mraa_spi_write (m_spi, R_REGISTER | (REGISTER_MASK & reg));
nrfTransferSync (value, value, len);
nrfCSOff ();
}
@ -205,7 +205,7 @@ void
NRF24l01::nrfTransferSync (uint8_t *dataout,uint8_t *datain,uint8_t len) {
uint8_t i;
for(i = 0;i < len;i++) {
datain[i] = maa_spi_write (m_spi, dataout[i]);
datain[i] = mraa_spi_write (m_spi, dataout[i]);
}
}
@ -222,7 +222,7 @@ NRF24l01::nrfGetData (uint8_t * data)
{
nrfCSOn ();
/* Send cmd to read rx payload */
maa_spi_write (m_spi, R_RX_PAYLOAD);
mraa_spi_write (m_spi, R_RX_PAYLOAD);
/* Read payload */
nrfTransferSync(data, data, m_payload);
nrfCSOff ();
@ -248,11 +248,11 @@ NRF24l01::nrfSend(uint8_t * value) {
nrfCELow();
nrfPowerUpTX(); // Set to transmitter mode , Power up
nrfCSOn ();
maa_spi_write (m_spi, FLUSH_TX); // Write cmd to flush tx fifo
mraa_spi_write (m_spi, FLUSH_TX); // Write cmd to flush tx fifo
nrfCSOff ();
nrfCSOn ();
maa_spi_write (m_spi, W_TX_PAYLOAD); // Write cmd to write payload
mraa_spi_write (m_spi, W_TX_PAYLOAD); // Write cmd to write payload
nrfTransmitSync(value, m_payload); // Write payload
nrfCSOff ();
nrfCEHigh(); // Start transmission
@ -290,24 +290,24 @@ NRF24l01::nrfPowerDown () {
nrfConfigRegister (CONFIG, NRF_CONFIG);
}
maa_result_t
mraa_result_t
NRF24l01::nrfCEHigh () {
return maa_gpio_write (m_cePinCtx, HIGH);
return mraa_gpio_write (m_cePinCtx, HIGH);
}
maa_result_t
mraa_result_t
NRF24l01::nrfCELow () {
return maa_gpio_write (m_cePinCtx, LOW);
return mraa_gpio_write (m_cePinCtx, LOW);
}
maa_result_t
mraa_result_t
NRF24l01::nrfCSOn () {
return maa_gpio_write (m_csnPinCtx, LOW);
return mraa_gpio_write (m_csnPinCtx, LOW);
}
maa_result_t
mraa_result_t
NRF24l01::nrfCSOff () {
return maa_gpio_write (m_csnPinCtx, HIGH);
return mraa_gpio_write (m_csnPinCtx, HIGH);
}
void

View File

@ -24,9 +24,9 @@
#pragma once
#include <string>
#include <maa/aio.h>
#include <maa/gpio.h>
#include <maa/spi.h>
#include <mraa/aio.h>
#include <mraa/gpio.h>
#include <mraa/spi.h>
/* Memory Map */
#define CONFIG 0x00
@ -297,22 +297,22 @@ class NRF24l01 {
/**
* Set chip enable pin HIGH
*/
maa_result_t nrfCEHigh ();
mraa_result_t nrfCEHigh ();
/**
* Set chip enable LOW
*/
maa_result_t nrfCELow ();
mraa_result_t nrfCELow ();
/**
* Set chip select pin LOW
*/
maa_result_t nrfCSOn ();
mraa_result_t nrfCSOn ();
/**
* Set chip select pin HIGH
*/
maa_result_t nrfCSOff ();
mraa_result_t nrfCSOff ();
/**
* Flush reciver stack
@ -330,7 +330,7 @@ class NRF24l01 {
funcPtrVoidVoid dataRecievedHandler; /**< Data arrived handler */
private:
maa_spi_context m_spi;
mraa_spi_context m_spi;
uint8_t m_ce;
uint8_t m_csn;
uint8_t m_channel;
@ -338,8 +338,8 @@ class NRF24l01 {
uint8_t m_payload;
uint8_t m_localAddress[5];
maa_gpio_context m_csnPinCtx;
maa_gpio_context m_cePinCtx;
mraa_gpio_context m_csnPinCtx;
mraa_gpio_context m_cePinCtx;
std::string m_name;
};

View File

@ -29,7 +29,7 @@
void init_pulsensor (pulsensor_context * ctx, callback_handler handler) {
ctx->callback = handler;
ctx->pin_ctx = maa_aio_init(0);
ctx->pin_ctx = mraa_aio_init(0);
ctx->sample_counter = 0;
ctx->last_beat_time = 0;
@ -63,8 +63,8 @@ void * do_sample (void * arg) {
clbk_data callback_data;
while (ctx_counter) {
pulsensor_context * ctx = (pulsensor_context *) arg;
maa_aio_context pin = ctx->pin_ctx;
data_from_sensor = maa_aio_read (pin);
mraa_aio_context pin = ctx->pin_ctx;
data_from_sensor = mraa_aio_read (pin);
ctx->ret = FALSE;
ctx->sample_counter += 2;

View File

@ -28,9 +28,9 @@
#include <string>
#include <math.h>
#include <maa/pwm.h>
#include <maa/aio.h>
#include <maa/gpio.h>
#include <mraa/pwm.h>
#include <mraa/aio.h>
#include <mraa/gpio.h>
#include <pthread.h>
#define HIGH 1
@ -62,7 +62,7 @@ struct pulsensor_context {
uint8_t second_beat;
uint8_t pin;
uint8_t ret;
maa_aio_context pin_ctx;
mraa_aio_context pin_ctx;
callback_handler callback;
};

View File

@ -32,7 +32,7 @@
using namespace upm;
Servo::Servo (int pin) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
m_minPulseWidth = MIN_PULSE_WIDTH;
m_maxPulseWidth = MAX_PULSE_WIDTH;
@ -40,7 +40,7 @@ Servo::Servo (int pin) {
m_maxAngle = 180.0;
m_servoPin = pin;
m_pwmServoContext = maa_pwm_init (m_servoPin);
m_pwmServoContext = mraa_pwm_init (m_servoPin);
m_currAngle = 180;
@ -48,7 +48,7 @@ Servo::Servo (int pin) {
}
Servo::~Servo () {
maa_pwm_close (m_pwmServoContext);
mraa_pwm_close (m_pwmServoContext);
}
/*
@ -62,14 +62,14 @@ Servo::~Servo () {
* Max period can be only 7968750(nses) which is ~8(msec)
* so the servo wil not work as expected.
* */
maa_result_t Servo::setAngle (int angle) {
mraa_result_t Servo::setAngle (int angle) {
if (m_pwmServoContext == NULL) {
std::cout << "PWM context is NULL" << std::endl;
return MAA_ERROR_UNSPECIFIED;
return MRAA_ERROR_UNSPECIFIED;
}
if (angle > m_maxAngle || angle < 0) {
return MAA_ERROR_UNSPECIFIED;
return MRAA_ERROR_UNSPECIFIED;
}
int period = (m_maxPulseWidth - m_minPulseWidth) / m_maxAngle;
@ -78,12 +78,12 @@ maa_result_t Servo::setAngle (int angle) {
// int cycles = (int)(100.0 * ((float)angle / (float)m_maxAngle));
maa_pwm_enable (m_pwmServoContext, 1);
mraa_pwm_enable (m_pwmServoContext, 1);
for (int cycle = 0; cycle < cycles; cycle++) {
maa_pwm_period_us (m_pwmServoContext, m_maxPeriod);
maa_pwm_pulsewidth_us (m_pwmServoContext, calcPulseTraveling(angle));
mraa_pwm_period_us (m_pwmServoContext, m_maxPeriod);
mraa_pwm_pulsewidth_us (m_pwmServoContext, calcPulseTraveling(angle));
}
maa_pwm_enable (m_pwmServoContext, 0);
mraa_pwm_enable (m_pwmServoContext, 0);
std::cout << "angle = " << angle << " ,pulse = " << calcPulseTraveling(angle) << ", cycles " << cycles << std::endl;

View File

@ -24,7 +24,7 @@
#pragma once
#include <string>
#include <maa/pwm.h>
#include <mraa/pwm.h>
namespace upm {
@ -70,7 +70,7 @@ class Servo {
*
* @param angle number between 0 and 180
*/
maa_result_t setAngle (int angle);
mraa_result_t setAngle (int angle);
/**
* Return name of the component
@ -122,7 +122,7 @@ class Servo {
std::string m_name;
int m_servoPin;
float m_maxAngle;
maa_pwm_context m_pwmServoContext;
mraa_pwm_context m_pwmServoContext;
int m_currAngle;
int m_minPulseWidth;

View File

@ -40,17 +40,17 @@ GFX::GFX (int width, int height, uint8_t * screenBuffer, const unsigned char * f
GFX::~GFX () {
}
maa_result_t
mraa_result_t
GFX::setPixel (int x, int y, uint16_t color) {
if((x < 0) ||(x >= m_width) || (y < 0) || (y >= m_height)) {
return MAA_ERROR_UNSPECIFIED;
return MRAA_ERROR_UNSPECIFIED;
}
int index = ((y * m_width) + x) * sizeof(uint16_t);
m_map[index] = (uint8_t) (color >> 8);
m_map[++index] = (uint8_t)(color);
return MAA_SUCCESS;
return MRAA_SUCCESS;
}
void

View File

@ -27,7 +27,7 @@
#include <stdio.h>
#include <unistd.h>
#include <stdint.h>
#include <maa.h>
#include <mraa.h>
#define swap(a, b) { int16_t t = a; a = b; b = t; }
@ -106,7 +106,7 @@ class GFX {
* @param y axis on vertical scale
* @param color pixel's color
*/
maa_result_t setPixel (int x, int y, uint16_t color);
mraa_result_t setPixel (int x, int y, uint16_t color);
/**
* Fill screen with selected color

View File

@ -33,7 +33,7 @@
using namespace upm;
ST7735::ST7735 (uint8_t csLCD, uint8_t cSD, uint8_t rs, uint8_t rst) : GFX (160, 128, m_map, font) {
maa_init();
mraa_init();
m_csLCD = csLCD;
m_cSD = cSD;
@ -45,84 +45,84 @@ ST7735::ST7735 (uint8_t csLCD, uint8_t cSD, uint8_t rs, uint8_t rst) : GFX (160,
}
ST7735::~ST7735 () {
maa_result_t error = MAA_SUCCESS;
error = maa_spi_stop(m_spi);
if (error != MAA_SUCCESS) {
maa_result_print(error);
mraa_result_t error = MRAA_SUCCESS;
error = mraa_spi_stop(m_spi);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close (m_csLCDPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_csLCDPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close (m_cSDPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_cSDPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close (m_rSTPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_rSTPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close (m_rSPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_rSPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
void
ST7735::initModule () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
m_height = 160;
m_width = 128;
m_csLCDPinCtx = maa_gpio_init (m_csLCD);
m_csLCDPinCtx = mraa_gpio_init (m_csLCD);
if (m_csLCDPinCtx == NULL) {
fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_csLCD);
exit (1);
}
m_cSDPinCtx = maa_gpio_init (m_cSD);
m_cSDPinCtx = mraa_gpio_init (m_cSD);
if (m_cSDPinCtx == NULL) {
fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_cSD);
exit (1);
}
m_rSTPinCtx = maa_gpio_init (m_rST);
m_rSTPinCtx = mraa_gpio_init (m_rST);
if (m_rSTPinCtx == NULL) {
fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_rST);
exit (1);
}
m_rSPinCtx = maa_gpio_init (m_rS);
m_rSPinCtx = mraa_gpio_init (m_rS);
if (m_rSPinCtx == NULL) {
fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_rS);
exit (1);
}
error = maa_gpio_dir (m_csLCDPinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_dir (m_csLCDPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
error = maa_gpio_dir (m_cSDPinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_dir (m_cSDPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
error = maa_gpio_dir (m_rSTPinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_dir (m_rSTPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
error = maa_gpio_dir (m_rSPinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_dir (m_rSPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
m_spi = maa_spi_init (0);
error = maa_spi_frequency(m_spi, 15 * 1000000);
if (error != MAA_SUCCESS) {
maa_result_print (error);
m_spi = mraa_spi_init (0);
error = mraa_spi_frequency(m_spi, 15 * 1000000);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
lcdCSOn ();
@ -131,13 +131,13 @@ ST7735::initModule () {
void
ST7735::write (uint8_t value) {
rsLOW ();
maa_spi_write (m_spi, value);
mraa_spi_write (m_spi, value);
}
void
ST7735::data (uint8_t value) {
rsHIGH ();
maa_spi_write (m_spi, value);
mraa_spi_write (m_spi, value);
}
void
@ -177,7 +177,7 @@ ST7735::setAddrWindow(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1) {
m_spiBuffer[1] = x0 + colstart; // XSTART
m_spiBuffer[2] = 0x00;
m_spiBuffer[3] = x1 + colstart; // XEND
maa_spi_write_buf(m_spi, m_spiBuffer, 4);
mraa_spi_write_buf(m_spi, m_spiBuffer, 4);
write (ST7735_RASET); // Row addr set
@ -186,14 +186,14 @@ ST7735::setAddrWindow(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1) {
m_spiBuffer[1] = y0 + rowstart; // YSTART
m_spiBuffer[2] = 0x00;
m_spiBuffer[3] = y1 + rowstart; // YEND
maa_spi_write_buf(m_spi, m_spiBuffer, 4);
mraa_spi_write_buf(m_spi, m_spiBuffer, 4);
write (ST7735_RAMWR); // write to RAM
}
void
ST7735::drawPixel(int16_t x, int16_t y, uint16_t color) {
if (MAA_SUCCESS != setPixel (x, y, color)) {
if (MRAA_SUCCESS != setPixel (x, y, color)) {
return;
}
@ -206,7 +206,7 @@ ST7735::refresh () {
int fragmentSize = m_height * m_width * 2 / 20;
for (int fragment = 0; fragment < 20; fragment++) {
maa_spi_write_buf(m_spi, &m_map[fragment * fragmentSize], fragmentSize);
mraa_spi_write_buf(m_spi, &m_map[fragment * fragmentSize], fragmentSize);
}
}
@ -216,11 +216,11 @@ ST7735::configModule() {
lcdCSOff ();
lcdCSOn ();
maa_gpio_write (m_rSTPinCtx, HIGH);
mraa_gpio_write (m_rSTPinCtx, HIGH);
usleep (500000);
maa_gpio_write (m_rSTPinCtx, LOW);
mraa_gpio_write (m_rSTPinCtx, LOW);
usleep (500000);
maa_gpio_write (m_rSTPinCtx, HIGH);
mraa_gpio_write (m_rSTPinCtx, HIGH);
usleep (500000);
executeCMDList (Rcmd1);
@ -236,83 +236,83 @@ ST7735::configModule() {
refresh ();
}
maa_result_t
mraa_result_t
ST7735::lcdCSOn () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = maa_gpio_write (m_csLCDPinCtx, LOW);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_csLCDPinCtx, LOW);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
error = maa_gpio_write (m_cSDPinCtx, HIGH);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_cSDPinCtx, HIGH);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
return error;
}
maa_result_t
mraa_result_t
ST7735::lcdCSOff () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = maa_gpio_write (m_csLCDPinCtx, HIGH);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_csLCDPinCtx, HIGH);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
return error;
}
maa_result_t
mraa_result_t
ST7735::sdCSOn () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = maa_gpio_write (m_cSDPinCtx, LOW);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_cSDPinCtx, LOW);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
error = maa_gpio_write (m_csLCDPinCtx, HIGH);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_csLCDPinCtx, HIGH);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
return error;
}
maa_result_t
mraa_result_t
ST7735::sdCSOff () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = maa_gpio_write (m_cSDPinCtx, HIGH);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_cSDPinCtx, HIGH);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
return error;
}
maa_result_t
mraa_result_t
ST7735::rsHIGH () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = maa_gpio_write (m_rSPinCtx, HIGH);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_rSPinCtx, HIGH);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
return error;
}
maa_result_t
mraa_result_t
ST7735::rsLOW () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = maa_gpio_write (m_rSPinCtx, LOW);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_rSPinCtx, LOW);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
return error;

View File

@ -27,9 +27,9 @@
#pragma once
#include <string>
#include <maa/aio.h>
#include <maa/gpio.h>
#include <maa/spi.h>
#include <mraa/aio.h>
#include <mraa/gpio.h>
#include <mraa/spi.h>
#include <gfx.h>
#define INITR_GREENTAB 0x0
@ -584,45 +584,45 @@ class ST7735 : public GFX {
/**
* LCD chip select LOW.
*/
maa_result_t lcdCSOn ();
mraa_result_t lcdCSOn ();
/**
* LCD chip select HIGH.
*/
maa_result_t lcdCSOff ();
mraa_result_t lcdCSOff ();
/**
* CD card chip select LOW.
*/
maa_result_t sdCSOn ();
mraa_result_t sdCSOn ();
/**
* CD card select HIGH.
*/
maa_result_t sdCSOff ();
mraa_result_t sdCSOff ();
/**
* Data select HIGH.
*/
maa_result_t rsHIGH ();
mraa_result_t rsHIGH ();
/**
* Data select LOW.
*/
maa_result_t rsLOW ();
mraa_result_t rsLOW ();
uint8_t m_map[160 * 128 * 2]; /**< Screens buffer */
private:
maa_spi_context m_spi;
mraa_spi_context m_spi;
uint8_t m_csLCD;
uint8_t m_cSD;
uint8_t m_rST;
uint8_t m_rS;
maa_gpio_context m_csLCDPinCtx;
maa_gpio_context m_cSDPinCtx;
maa_gpio_context m_rSTPinCtx;
maa_gpio_context m_rSPinCtx;
mraa_gpio_context m_csLCDPinCtx;
mraa_gpio_context m_cSDPinCtx;
mraa_gpio_context m_rSTPinCtx;
mraa_gpio_context m_rSPinCtx;
uint8_t m_spiBuffer[32];

View File

@ -31,35 +31,35 @@
using namespace upm;
StepMotor::StepMotor (int dirPin, int stePin) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
m_name = "StepMotor";
maa_init();
mraa_init();
m_stePin = stePin;
m_dirPin = dirPin;
m_pwmStepContext = maa_pwm_init (m_stePin);
m_dirPinCtx = maa_gpio_init (m_dirPin);
m_pwmStepContext = mraa_pwm_init (m_stePin);
m_dirPinCtx = mraa_gpio_init (m_dirPin);
if (m_dirPinCtx == NULL) {
fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_dirPin);
exit (1);
}
error = maa_gpio_dir (m_dirPinCtx, MAA_GPIO_OUT);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_dir (m_dirPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
}
StepMotor::~StepMotor() {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
maa_pwm_close (m_pwmStepContext);
mraa_pwm_close (m_pwmStepContext);
error = maa_gpio_close (m_dirPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_dirPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
@ -76,51 +76,51 @@ StepMotor::setSpeed (int speed) {
m_speed = speed;
}
maa_result_t
mraa_result_t
StepMotor::stepForward (int ticks) {
dirForward ();
move (ticks);
}
maa_result_t
mraa_result_t
StepMotor::stepBackwards (int ticks) {
dirBackwards ();
move (ticks);
}
maa_result_t
mraa_result_t
StepMotor::move (int ticks) {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
maa_pwm_enable (m_pwmStepContext, 1);
mraa_pwm_enable (m_pwmStepContext, 1);
for (int tick = 0; tick < ticks; tick++) {
maa_pwm_period_us (m_pwmStepContext, m_speed);
maa_pwm_pulsewidth_us (m_pwmStepContext, PULSEWIDTH);
mraa_pwm_period_us (m_pwmStepContext, m_speed);
mraa_pwm_pulsewidth_us (m_pwmStepContext, PULSEWIDTH);
}
maa_pwm_enable (m_pwmStepContext, 0);
mraa_pwm_enable (m_pwmStepContext, 0);
return error;
}
maa_result_t
mraa_result_t
StepMotor::dirForward () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = maa_gpio_write (m_dirPinCtx, HIGH);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_dirPinCtx, HIGH);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
return error;
}
maa_result_t
mraa_result_t
StepMotor::dirBackwards () {
maa_result_t error = MAA_SUCCESS;
mraa_result_t error = MRAA_SUCCESS;
error = maa_gpio_write (m_dirPinCtx, LOW);
if (error != MAA_SUCCESS) {
maa_result_print (error);
error = mraa_gpio_write (m_dirPinCtx, LOW);
if (error != MRAA_SUCCESS) {
mraa_result_print (error);
}
return error;

View File

@ -28,9 +28,9 @@
#include <string>
#include <math.h>
#include <maa/pwm.h>
#include <maa/aio.h>
#include <maa/gpio.h>
#include <mraa/pwm.h>
#include <mraa/aio.h>
#include <mraa/gpio.h>
#define MIN_PERIOD 500
#define MAX_PERIOD 1000
@ -75,14 +75,14 @@ class StepMotor {
*
* @param ticks number of tickes the motor will move
*/
maa_result_t stepForward (int ticks);
mraa_result_t stepForward (int ticks);
/**
* Rotate motor backward
*
* @param ticks number of tickes the motor will move
*/
maa_result_t stepBackwards (int ticks);
mraa_result_t stepBackwards (int ticks);
private:
std::string m_name;
@ -91,11 +91,11 @@ class StepMotor {
int m_stePin;
int m_speed;
maa_gpio_context m_dirPinCtx;
maa_pwm_context m_pwmStepContext;
mraa_gpio_context m_dirPinCtx;
mraa_pwm_context m_pwmStepContext;
maa_result_t move (int ticks);
maa_result_t dirForward ();
maa_result_t dirBackwards ();
mraa_result_t move (int ticks);
mraa_result_t dirForward ();
mraa_result_t dirBackwards ();
};
}

View File

@ -51,56 +51,56 @@ const uint8_t digitToSegment[] = {
};
TM1637::TM1637 (uint8_t di, uint8_t dcki) {
maa_result_t error = MAA_SUCCESS;
maa_init();
mraa_result_t error = MRAA_SUCCESS;
mraa_init();
// init clock context
m_clkPinCtx = maa_gpio_init(dcki);
m_clkPinCtx = mraa_gpio_init(dcki);
if (m_clkPinCtx == NULL) {
fprintf(stderr, "Are you sure that pin%d you requested is valid on your platform?", dcki);
exit(1);
}
// init data context
m_dataPinCtx = maa_gpio_init(di);
m_dataPinCtx = mraa_gpio_init(di);
if (m_dataPinCtx == NULL) {
fprintf(stderr, "Are you sure that pin%d you requested is valid on your platform?", di);
exit(1);
}
// set direction (out)
error = maa_gpio_dir(m_clkPinCtx, MAA_GPIO_IN);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_dir(m_clkPinCtx, MRAA_GPIO_IN);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
// set direction (out)
error = maa_gpio_dir(m_dataPinCtx, MAA_GPIO_IN);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_dir(m_dataPinCtx, MRAA_GPIO_IN);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_write (m_dataPinCtx, LOW);
error = maa_gpio_write (m_clkPinCtx, LOW);
error = mraa_gpio_write (m_dataPinCtx, LOW);
error = mraa_gpio_write (m_clkPinCtx, LOW);
}
TM1637::~TM1637() {
maa_result_t error = MAA_SUCCESS;
error = maa_gpio_close (m_dataPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
mraa_result_t error = MRAA_SUCCESS;
error = mraa_gpio_close (m_dataPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
error = maa_gpio_close (m_clkPinCtx);
if (error != MAA_SUCCESS) {
maa_result_print(error);
error = mraa_gpio_close (m_clkPinCtx);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
maa_result_t
mraa_result_t
TM1637::setBrightness (uint8_t level) {
m_brightness = level;
}
maa_result_t
mraa_result_t
TM1637::setSegments (const uint8_t segments[], uint8_t length, uint8_t pos) {
start();
writeByte(TM1637_I2C_COMM1);
@ -118,7 +118,7 @@ TM1637::setSegments (const uint8_t segments[], uint8_t length, uint8_t pos) {
stop();
}
maa_result_t
mraa_result_t
TM1637::write (std::string msg) {
char leter = '\0';
uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
@ -132,60 +132,60 @@ TM1637::write (std::string msg) {
setSegments(data);
}
maa_result_t
TM1637::pinMode (maa_gpio_context ctx, gpio_dir_t mode) {
maa_result_t error = MAA_SUCCESS;
error = maa_gpio_dir(ctx, mode);
if (error != MAA_SUCCESS) {
maa_result_print(error);
mraa_result_t
TM1637::pinMode (mraa_gpio_context ctx, gpio_dir_t mode) {
mraa_result_t error = MRAA_SUCCESS;
error = mraa_gpio_dir(ctx, mode);
if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
}
maa_result_t
mraa_result_t
TM1637::start() {
pinMode (m_dataPinCtx, MAA_GPIO_OUT);
pinMode (m_dataPinCtx, MRAA_GPIO_OUT);
usleep(PULSE_LENGTH);
}
maa_result_t
mraa_result_t
TM1637::stop() {
pinMode (m_dataPinCtx, MAA_GPIO_OUT);
pinMode (m_dataPinCtx, MRAA_GPIO_OUT);
usleep(PULSE_LENGTH);
pinMode (m_clkPinCtx, MAA_GPIO_IN);
pinMode (m_clkPinCtx, MRAA_GPIO_IN);
usleep(PULSE_LENGTH);
pinMode (m_dataPinCtx, MAA_GPIO_IN);
pinMode (m_dataPinCtx, MRAA_GPIO_IN);
usleep(PULSE_LENGTH);
}
maa_result_t
mraa_result_t
TM1637::writeByte(uint8_t value) {
for (uint8_t idx = 0; idx < 8; idx++) {
pinMode(m_clkPinCtx, MAA_GPIO_OUT);
pinMode(m_clkPinCtx, MRAA_GPIO_OUT);
usleep(PULSE_LENGTH);
if (value & 0x01) {
pinMode(m_dataPinCtx, MAA_GPIO_IN);
pinMode(m_dataPinCtx, MRAA_GPIO_IN);
} else {
pinMode(m_dataPinCtx, MAA_GPIO_OUT);
pinMode(m_dataPinCtx, MRAA_GPIO_OUT);
}
usleep(PULSE_LENGTH);
pinMode(m_clkPinCtx, MAA_GPIO_IN);
pinMode(m_clkPinCtx, MRAA_GPIO_IN);
usleep(PULSE_LENGTH);
value = value >> 1;
}
pinMode(m_clkPinCtx, MAA_GPIO_OUT);
pinMode(m_dataPinCtx, MAA_GPIO_IN);
pinMode(m_clkPinCtx, MRAA_GPIO_OUT);
pinMode(m_dataPinCtx, MRAA_GPIO_IN);
usleep(PULSE_LENGTH);
pinMode(m_clkPinCtx, MAA_GPIO_IN);
pinMode(m_clkPinCtx, MRAA_GPIO_IN);
usleep(PULSE_LENGTH);
uint8_t ack = maa_gpio_read (m_dataPinCtx);
uint8_t ack = mraa_gpio_read (m_dataPinCtx);
if (ack == 0) {
pinMode(m_dataPinCtx, MAA_GPIO_OUT);
pinMode(m_dataPinCtx, MRAA_GPIO_OUT);
} usleep(PULSE_LENGTH);
pinMode(m_clkPinCtx, MAA_GPIO_OUT);
pinMode(m_clkPinCtx, MRAA_GPIO_OUT);
usleep(50);
}

View File

@ -24,8 +24,8 @@
#pragma once
#include <string>
#include <maa/aio.h>
#include <maa/gpio.h>
#include <mraa/aio.h>
#include <mraa/gpio.h>
#define SEG_A 0b00000001
#define SEG_B 0b00000010
@ -82,7 +82,7 @@ class TM1637 {
*
* @param level The brightness level of leds
*/
maa_result_t setBrightness (uint8_t level);
mraa_result_t setBrightness (uint8_t level);
/**
* Set the the segment screen data and number of segments
@ -92,14 +92,14 @@ class TM1637 {
* @param length number of elements in segments array
* @param pos data writing offset
*/
maa_result_t setSegments (const uint8_t segments[], uint8_t length = 4, uint8_t pos = 0);
mraa_result_t setSegments (const uint8_t segments[], uint8_t length = 4, uint8_t pos = 0);
/**
* Write message on the screen.
*
* @param msg The message to be written on the sreen
*/
maa_result_t write (std::string msg);
mraa_result_t write (std::string msg);
/**
* Return name of the component
@ -110,13 +110,13 @@ class TM1637 {
}
private:
maa_result_t start();
maa_result_t stop();
maa_result_t writeByte (uint8_t value);
maa_result_t pinMode (maa_gpio_context ctx, gpio_dir_t mode);
mraa_result_t start();
mraa_result_t stop();
mraa_result_t writeByte (uint8_t value);
mraa_result_t pinMode (mraa_gpio_context ctx, gpio_dir_t mode);
maa_gpio_context m_clkPinCtx;
maa_gpio_context m_dataPinCtx;
mraa_gpio_context m_clkPinCtx;
mraa_gpio_context m_dataPinCtx;
std::string m_name;
uint8_t m_brightness;