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

@ -8,9 +8,9 @@ endif ()
find_package (Threads REQUIRED) find_package (Threads REQUIRED)
find_package (PkgConfig REQUIRED) find_package (PkgConfig REQUIRED)
# force the libmaa version to be the required version # force the libmraa version to be the required version
pkg_check_modules (MAA REQUIRED maa>=0.3.1) pkg_check_modules (MRAA REQUIRED mraa>=0.4.0)
message (INFO " found libmaa version: ${MAA_VERSION}") message (INFO " found libmraa version: ${MRAA_VERSION}")
# Appends the cmake/modules path to MAKE_MODULE_PATH variable. # Appends the cmake/modules path to MAKE_MODULE_PATH variable.
set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
@ -19,7 +19,7 @@ set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_
include (GetGitRevisionDescription) include (GetGitRevisionDescription)
git_describe (VERSION "--tags") git_describe (VERSION "--tags")
if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND") if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND")
message (WARNING " - Install git to compile a production libmaa!") message (WARNING " - Install git to compile a production libmraa!")
set (VERSION "v0.1.4-dirty") set (VERSION "v0.1.4-dirty")
endif () endif ()
@ -81,7 +81,7 @@ if (IPK)
set(CPACK_DEBIAN_PACKAGE_SECTION "libs") set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DETECTED_ARCH}) set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DETECTED_ARCH})
set(CPACK_SYSTEM_NAME ${DETECTED_ARCH}) set(CPACK_SYSTEM_NAME ${DETECTED_ARCH})
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libmaa0 (>= ${MAA_VERSION})") set(CPACK_DEBIAN_PACKAGE_DEPENDS "libmraa0 (>= ${MRAA_VERSION})")
set(CPACK_DEBIAN_PACKAGE_PROVIDES "upm-dev, upm-dbg, upm-doc") set(CPACK_DEBIAN_PACKAGE_PROVIDES "upm-dev, upm-dbg, upm-doc")
set(CPACK_DEBIAN_PACKAGE_REPLACES ${CPACK_DEBIAN_PACKAGE_PROVIDES}) set(CPACK_DEBIAN_PACKAGE_REPLACES ${CPACK_DEBIAN_PACKAGE_PROVIDES})
set(CPACK_DEBIAN_PACKAGE_CONFLICTS ${CPACK_DEBIAN_PACKAGE_PROVIDES}) set(CPACK_DEBIAN_PACKAGE_CONFLICTS ${CPACK_DEBIAN_PACKAGE_PROVIDES})

View File

@ -44,7 +44,7 @@ PROJECT_NUMBER = @upm_VERSION_STRING@
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short. # quick idea about the purpose of the project. Keep the description short.
PROJECT_BRIEF = "Sensor/Actuator repository for libmaa (v@MAA_VERSION@)" PROJECT_BRIEF = "Sensor/Actuator repository for libmraa (v@MRAA_VERSION@)"
# With the PROJECT_LOGO tag one can specify an logo or icon that is included in # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
# the documentation. The maximum height of the logo should not exceed 55 pixels # the documentation. The maximum height of the logo should not exceed 55 pixels

View File

@ -1,8 +1,8 @@
UPM - Sensor/Actuator repository for Maa UPM - Sensor/Actuator repository for Mraa
============== ==============
UPM is a high level repository for sensors that use maa. Each sensor links to UPM is a high level repository for sensors that use mraa. Each sensor links to
libmaa and are not meant to be interlinked although some groups of sensors may libmraa and are not meant to be interlinked although some groups of sensors may
be. Each sensor contains a header which allows to interface with it. Typically be. Each sensor contains a header which allows to interface with it. Typically
a sensor is represented as a class and instanciated. a sensor is represented as a class and instanciated.

View File

@ -11,6 +11,6 @@ Here are the rules of contribution:
avoid GPL. (LGPL is fine). If your license is not MIT please include a avoid GPL. (LGPL is fine). If your license is not MIT please include a
LICENSE file in src/<mymodule>/ LICENSE file in src/<mymodule>/
- Please test your module builds before contributing and make sure it works on - Please test your module builds before contributing and make sure it works on
the latest version of maa. If you tested on a specific board/platform please the latest version of mraa. If you tested on a specific board/platform please
tell us what this was in your PR. tell us what this was in your PR.

View File

@ -9,7 +9,7 @@ people made arduino code already so we'll use that as a
### Basics ### Basics
This is a spi module so we will use the maa spi functions to build our module. This is a spi module so we will use the mraa spi functions to build our module.
First thing to do is to create a tree structure like this in upm/src/max31855: First thing to do is to create a tree structure like this in upm/src/max31855:
* max31855.cxx * max31855.cxx

View File

@ -1,7 +1,7 @@
Porting a module from Arduino {#porting} Porting a module from Arduino {#porting}
============================= =============================
Porting arduino libraries to libmaa as UPM libraries is usually fairly easy. Porting arduino libraries to libmraa as UPM libraries is usually fairly easy.
The issues typically come from misunderstanding of how a non real time OS deals The issues typically come from misunderstanding of how a non real time OS deals
with interupts and timers. It also highly depends on the sensor. A concrete with interupts and timers. It also highly depends on the sensor. A concrete
example is explained in detail on @ref max31855 example is explained in detail on @ref max31855
@ -31,22 +31,22 @@ upm_module_init()
The easiest way to do this is to have a look at a similar sensor to yours. The easiest way to do this is to have a look at a similar sensor to yours.
Typically create a class for your sensor with a constructor that defines the Typically create a class for your sensor with a constructor that defines the
pins it is on. This constructor will create the maa_*_context structs that are pins it is on. This constructor will create the mraa_*_context structs that are
required to talk to the board's IO. An I2c sensor will create a required to talk to the board's IO. An I2c sensor will create a
maa_i2c_context, keep it as a private member and require a bus number and slave mraa_i2c_context, keep it as a private member and require a bus number and slave
address in it's constructor. address in it's constructor.
Typically in sensors a simple object->read() function is prefered, depending on Typically in sensors a simple object->read() function is prefered, depending on
your sensor/actuaotr this may or may not be easy or not even make sense. Most your sensor/actuaotr this may or may not be easy or not even make sense. Most
UPM apis have a simple set of functions. UPM apis have a simple set of functions.
### Mapping arduino API to libmaa ### Mapping arduino API to libmraa
Your constructor is similar to the setup() function in arduino, you should Your constructor is similar to the setup() function in arduino, you should
initialise your IO the way you want it. This means initialising contexts initialise your IO the way you want it. This means initialising contexts
(private members) and setting the correct modes for them. (private members) and setting the correct modes for them.
See the maa API documentation for exact API. See the mraa API documentation for exact API.
### Building ### Building

View File

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

View File

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

View File

@ -24,7 +24,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <maa/pwm.h> #include <mraa/pwm.h>
#define DO 3300 // 261 Hz 3830 #define DO 3300 // 261 Hz 3830
#define RE 2930 // 294 Hz #define RE 2930 // 294 Hz
@ -76,6 +76,6 @@ class Buzzer {
protected: protected:
std::string m_name; std::string m_name;
private: 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) GroveLed::GroveLed(int pin)
{ {
maa_init(); mraa_init();
m_gpio = maa_gpio_init(pin); m_gpio = mraa_gpio_init(pin);
maa_gpio_dir(m_gpio, MAA_GPIO_OUT); mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT);
m_name = "LED Socket"; m_name = "LED Socket";
} }
GroveLed::~GroveLed() 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) { 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); return write(1);
} }
maa_result_t GroveLed::off() mraa_result_t GroveLed::off()
{ {
return write(0); return write(0);
} }
@ -66,19 +66,19 @@ maa_result_t GroveLed::off()
GroveTemp::GroveTemp(unsigned int pin) GroveTemp::GroveTemp(unsigned int pin)
{ {
maa_init(); mraa_init();
m_aio = maa_aio_init(pin); m_aio = mraa_aio_init(pin);
m_name = "Temperature Sensor"; m_name = "Temperature Sensor";
} }
GroveTemp::~GroveTemp() GroveTemp::~GroveTemp()
{ {
maa_aio_close(m_aio); mraa_aio_close(m_aio);
} }
int GroveTemp::value () 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 r = (float)(1023-a)*10000/a;
float t = 1/(logf(r/10000)/3975 + 1/298.15)-273.15; float t = 1/(logf(r/10000)/3975 + 1/298.15)-273.15;
return (int) t; return (int) t;
@ -86,32 +86,32 @@ int GroveTemp::value ()
float GroveTemp::raw_value() float GroveTemp::raw_value()
{ {
return (float) maa_aio_read(m_aio); return (float) mraa_aio_read(m_aio);
} }
//// GroveLight //// //// GroveLight ////
GroveLight::GroveLight(unsigned int pin) GroveLight::GroveLight(unsigned int pin)
{ {
maa_init(); mraa_init();
m_aio = maa_aio_init(pin); m_aio = mraa_aio_init(pin);
m_name = "Light Sensor"; m_name = "Light Sensor";
} }
GroveLight::~GroveLight() GroveLight::~GroveLight()
{ {
maa_aio_close(m_aio); mraa_aio_close(m_aio);
} }
int GroveLight::value () int GroveLight::value ()
{ {
// rough conversion to Lux // 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); a = 10000/(((1023-a)*10/a)*15)^(4/3);
return a; return a;
} }
float GroveLight::raw_value() 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 #pragma once
#include <string> #include <string>
#include <maa/aio.h> #include <mraa/aio.h>
#include <maa/gpio.h> #include <mraa/gpio.h>
namespace upm { namespace upm {
@ -44,11 +44,11 @@ class GroveLed: public Grove {
public: public:
GroveLed(int pin); GroveLed(int pin);
~GroveLed(); ~GroveLed();
maa_result_t write(int value); mraa_result_t write(int value);
maa_result_t off(); mraa_result_t off();
maa_result_t on(); mraa_result_t on();
private: private:
maa_gpio_context m_gpio; mraa_gpio_context m_gpio;
}; };
class GroveTemp: public Grove { class GroveTemp: public Grove {
@ -58,7 +58,7 @@ class GroveTemp: public Grove {
float raw_value(); float raw_value();
int value(); int value();
private: private:
maa_aio_context m_aio; mraa_aio_context m_aio;
}; };
class GroveLight: public Grove { class GroveLight: public Grove {
@ -68,7 +68,7 @@ class GroveLight: public Grove {
float raw_value(); float raw_value();
int value(); int value();
private: 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_controlAddr = devAddr;
m_bus = bus; 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); mraa_result_t ret = mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
if (ret != MAA_SUCCESS) { if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n"); fprintf(stderr, "Messed up i2c bus\n");
} }
@ -70,7 +70,7 @@ GY65::GY65 (int bus, int devAddr, uint8_t mode) {
} }
GY65::~GY65() { GY65::~GY65() {
maa_i2c_stop(m_i2ControlCtx); mraa_i2c_stop(m_i2ControlCtx);
} }
int32_t int32_t
@ -180,13 +180,13 @@ GY65::computeB5(int32_t UT) {
return X1 + X2; return X1 + X2;
} }
maa_result_t mraa_result_t
GY65::i2cWriteReg (uint8_t reg, uint8_t value) { 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 }; uint8_t data[2] = { reg, value };
error = maa_i2c_address (m_i2ControlCtx, m_controlAddr); error = mraa_i2c_address (m_i2ControlCtx, m_controlAddr);
error = maa_i2c_write (m_i2ControlCtx, data, 2); error = mraa_i2c_write (m_i2ControlCtx, data, 2);
return error; return error;
} }
@ -195,11 +195,11 @@ uint16_t
GY65::i2cReadReg_16 (int reg) { GY65::i2cReadReg_16 (int reg) {
uint16_t data; uint16_t data;
maa_i2c_address(m_i2ControlCtx, m_controlAddr); mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
maa_i2c_write_byte(m_i2ControlCtx, reg); mraa_i2c_write_byte(m_i2ControlCtx, reg);
maa_i2c_address(m_i2ControlCtx, m_controlAddr); mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
maa_i2c_read(m_i2ControlCtx, (uint8_t *)&data, 0x2); mraa_i2c_read(m_i2ControlCtx, (uint8_t *)&data, 0x2);
uint8_t high = (data & 0xFF00) >> 8; uint8_t high = (data & 0xFF00) >> 8;
data = (data << 8) & 0xFF00; data = (data << 8) & 0xFF00;
@ -212,11 +212,11 @@ uint8_t
GY65::i2cReadReg_8 (int reg) { GY65::i2cReadReg_8 (int reg) {
uint8_t data; uint8_t data;
maa_i2c_address(m_i2ControlCtx, m_controlAddr); mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
maa_i2c_write_byte(m_i2ControlCtx, reg); mraa_i2c_write_byte(m_i2ControlCtx, reg);
maa_i2c_address(m_i2ControlCtx, m_controlAddr); mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
maa_i2c_read(m_i2ControlCtx, &data, 0x1); mraa_i2c_read(m_i2ControlCtx, &data, 0x1);
return data; return data;
} }

View File

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

View File

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

View File

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

View File

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

View File

@ -23,7 +23,7 @@
*/ */
#pragma once #pragma once
#include <maa/i2c.h> #include <mraa/i2c.h>
#define MAX_BUFFER_LENGTH 6 #define MAX_BUFFER_LENGTH 6
@ -55,7 +55,7 @@ public:
private: private:
int m_coor[3]; int m_coor[3];
uint8_t m_rx_tx_buf[MAX_BUFFER_LENGTH]; 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_lcd_control_address = lcdAddress;
m_bus = bus; 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); mraa_result_t ret = mraa_i2c_address(m_i2c_lcd_control, m_lcd_control_address);
if (ret != MAA_SUCCESS) { if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n"); fprintf(stderr, "Messed up i2c bus\n");
} }
} }
maa_result_t mraa_result_t
I2CLcd::write (int row, int column, std::string msg) { I2CLcd::write (int row, int column, std::string msg) {
setCursor (row, column); setCursor (row, column);
write (msg); write (msg);
} }
maa_result_t mraa_result_t
I2CLcd::close() { I2CLcd::close() {
return maa_i2c_stop(m_i2c_lcd_control); return mraa_i2c_stop(m_i2c_lcd_control);
} }
maa_result_t mraa_result_t
I2CLcd::i2cReg (maa_i2c_context ctx, int deviceAdress, int addr, uint8_t value) { I2CLcd::i2cReg (mraa_i2c_context ctx, int deviceAdress, int addr, uint8_t value) {
maa_result_t error = MAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { addr, value }; uint8_t data[2] = { addr, value };
error = maa_i2c_address (ctx, deviceAdress); error = mraa_i2c_address (ctx, deviceAdress);
error = maa_i2c_write (ctx, data, 2); error = mraa_i2c_write (ctx, data, 2);
return error; return error;
} }
maa_result_t mraa_result_t
I2CLcd::i2Cmd (maa_i2c_context ctx, uint8_t value) { I2CLcd::i2Cmd (mraa_i2c_context ctx, uint8_t value) {
maa_result_t error = MAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { LCD_CMD, value }; uint8_t data[2] = { LCD_CMD, value };
error = maa_i2c_address (ctx, m_lcd_control_address); error = mraa_i2c_address (ctx, m_lcd_control_address);
error = maa_i2c_write (ctx, data, 2); error = mraa_i2c_write (ctx, data, 2);
return error; return error;
} }
maa_result_t mraa_result_t
I2CLcd::i2cData (maa_i2c_context ctx, uint8_t value) { I2CLcd::i2cData (mraa_i2c_context ctx, uint8_t value) {
maa_result_t error = MAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = { LCD_DATA, value }; uint8_t data[2] = { LCD_DATA, value };
error = maa_i2c_address (ctx, m_lcd_control_address); error = mraa_i2c_address (ctx, m_lcd_control_address);
error = maa_i2c_write (ctx, data, 2); error = mraa_i2c_write (ctx, data, 2);
return error; return error;
} }

View File

@ -24,7 +24,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <maa/i2c.h> #include <mraa/i2c.h>
namespace upm { namespace upm {
@ -70,17 +70,17 @@ namespace upm {
class I2CLcd { class I2CLcd {
public: public:
I2CLcd (int bus, int lcdAddress); 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 mraa_result_t write (std::string msg) = 0;
virtual maa_result_t setCursor (int row, int column) = 0; virtual mraa_result_t setCursor (int row, int column) = 0;
virtual maa_result_t clear () = 0; virtual mraa_result_t clear () = 0;
virtual maa_result_t home () = 0; virtual mraa_result_t home () = 0;
virtual maa_result_t i2Cmd (maa_i2c_context ctx, uint8_t value); virtual mraa_result_t i2Cmd (mraa_i2c_context ctx, uint8_t value);
virtual maa_result_t i2cReg (maa_i2c_context ctx, int deviceAdress, int addr, uint8_t data); virtual mraa_result_t i2cReg (mraa_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 i2cData (mraa_i2c_context ctx, uint8_t value);
maa_result_t close(); mraa_result_t close();
std::string name() std::string name()
{ {
return m_name; return m_name;
@ -89,7 +89,7 @@ class I2CLcd {
std::string m_name; std::string m_name;
int m_lcd_control_address; int m_lcd_control_address;
int m_bus; 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; using namespace upm;
Jhd1313m1::Jhd1313m1 (int bus, int lcdAddress, int rgbAddress) : I2CLcd(bus, lcdAddress) { 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_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); mraa_result_t ret = mraa_i2c_address(m_i2c_lcd_rgb, m_rgb_address);
if (ret != MAA_SUCCESS) { if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n"); fprintf(stderr, "Messed up i2c bus\n");
} }
@ -75,9 +75,9 @@ Jhd1313m1::~Jhd1313m1() {
* virtual area * virtual area
* ************** * **************
*/ */
maa_result_t mraa_result_t
Jhd1313m1::write (std::string msg) { Jhd1313m1::write (std::string msg) {
maa_result_t error = MAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = {0x40, 0}; uint8_t data[2] = {0x40, 0};
for (std::string::size_type i = 0; i < msg.size(); ++i) { for (std::string::size_type i = 0; i < msg.size(); ++i) {
error = i2cData (m_i2c_lcd_control, msg[i]); error = i2cData (m_i2c_lcd_control, msg[i]);
@ -86,9 +86,9 @@ Jhd1313m1::write (std::string msg) {
return error; return error;
} }
maa_result_t mraa_result_t
Jhd1313m1::setCursor (int row, int column) { 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}; int row_addr[] = { 0x80, 0xc0, 0x14, 0x54};
uint8_t offset = ((column % 16) + row_addr[row]); uint8_t offset = ((column % 16) + row_addr[row]);
error = i2Cmd (m_i2c_lcd_control, offset); error = i2Cmd (m_i2c_lcd_control, offset);
@ -96,12 +96,12 @@ Jhd1313m1::setCursor (int row, int column) {
return error; return error;
} }
maa_result_t mraa_result_t
Jhd1313m1::clear () { Jhd1313m1::clear () {
return i2Cmd (m_i2c_lcd_control, LCD_CLEARDISPLAY); return i2Cmd (m_i2c_lcd_control, LCD_CLEARDISPLAY);
} }
maa_result_t mraa_result_t
Jhd1313m1::home () { Jhd1313m1::home () {
return i2Cmd (m_i2c_lcd_control, LCD_RETURNHOME); return i2Cmd (m_i2c_lcd_control, LCD_RETURNHOME);
} }

View File

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

View File

@ -35,21 +35,21 @@ namespace upm {
class Lcm1602 : public I2CLcd { class Lcm1602 : public I2CLcd {
public: public:
/** LCM1602 Constructor. /** LCM1602 Constructor.
* Calls MAA initialisation functions. * Calls MRAA initialisation functions.
* @param bus i2c bus to use * @param bus i2c bus to use
* @param address the slave address the lcd is registered on. * @param address the slave address the lcd is registered on.
*/ */
Lcm1602(int bus, int address); Lcm1602(int bus, int address);
~Lcm1602(); ~Lcm1602();
maa_result_t write (std::string msg); mraa_result_t write (std::string msg);
maa_result_t setCursor (int row, int column); mraa_result_t setCursor (int row, int column);
maa_result_t clear (); mraa_result_t clear ();
maa_result_t home (); mraa_result_t home ();
private : private :
maa_result_t send (uint8_t value, int mode); mraa_result_t send (uint8_t value, int mode);
maa_result_t write4bits(uint8_t value); mraa_result_t write4bits(uint8_t value);
maa_result_t expandWrite(uint8_t value); mraa_result_t expandWrite(uint8_t value);
maa_result_t pulseEnable(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) { SSD1308::draw (uint8_t *data, int bytes) {
maa_result_t error = MAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
setAddressingMode (HORIZONTAL); setAddressingMode (HORIZONTAL);
for (int idx = 0; idx < bytes; idx++) { for (int idx = 0; idx < bytes; idx++) {
@ -62,9 +62,9 @@ SSD1308::draw (uint8_t *data, int bytes) {
* virtual area * virtual area
* ************** * **************
*/ */
maa_result_t mraa_result_t
SSD1308::write (std::string msg) { SSD1308::write (std::string msg) {
maa_result_t error = MAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
uint8_t data[2] = {0x40, 0}; uint8_t data[2] = {0x40, 0};
setAddressingMode (PAGE); setAddressingMode (PAGE);
@ -75,9 +75,9 @@ SSD1308::write (std::string msg) {
return error; return error;
} }
maa_result_t mraa_result_t
SSD1308::setCursor (int row, int column) { 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_PAGE_START_ADDR + row); // set page address
error = i2Cmd (m_i2c_lcd_control, BASE_LOW_COLUMN_ADDR + (8 * column & 0x0F)); // set column lower 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; return error;
} }
maa_result_t mraa_result_t
SSD1308::clear () { SSD1308::clear () {
maa_result_t error = MAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
uint8_t columnIdx, rowIdx; uint8_t columnIdx, rowIdx;
i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_OFF); // display off 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 i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_ON); // display on
home (); home ();
return MAA_SUCCESS; return MRAA_SUCCESS;
} }
maa_result_t mraa_result_t
SSD1308::home () { SSD1308::home () {
return setCursor (0, 0); return setCursor (0, 0);
} }
@ -116,8 +116,8 @@ SSD1308::home () {
* private area * private area
* ************** * **************
*/ */
maa_result_t mraa_result_t
SSD1308::writeChar (maa_i2c_context ctx, uint8_t value) { SSD1308::writeChar (mraa_i2c_context ctx, uint8_t value) {
if (value < 0x20 || value > 0x7F) { if (value < 0x20 || value > 0x7F) {
value = 0x20; // space value = 0x20; // space
} }
@ -127,12 +127,12 @@ SSD1308::writeChar (maa_i2c_context ctx, uint8_t value) {
} }
} }
maa_result_t mraa_result_t
SSD1308::setNormalDisplay () { SSD1308::setNormalDisplay () {
return i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_SET_NORMAL); // set to normal display '1' is ON 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) { SSD1308::setAddressingMode (displayAddressingMode mode) {
i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_MEM_ADDR_MODE); //set addressing mode i2Cmd (m_i2c_lcd_control, DISPLAY_CMD_MEM_ADDR_MODE); //set addressing mode
i2Cmd (m_i2c_lcd_control, mode); //set page addressing mode i2Cmd (m_i2c_lcd_control, mode); //set page addressing mode

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -24,7 +24,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <maa/i2c.h> #include <mraa/i2c.h>
#define ADDR 0x4A // device address #define ADDR 0x4A // device address
@ -122,14 +122,14 @@ class MAX44000 {
* @param reg address of a register * @param reg address of a register
* @param value byte to be written * @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: private:
std::string m_name; std::string m_name;
int m_maxControlAddr; int m_maxControlAddr;
int m_bus; 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) { Microphone::Microphone(int micPin) {
// initialise analog mic input // initialise analog mic input
m_micCtx = maa_aio_init(micPin); m_micCtx = mraa_aio_init(micPin);
} }
Microphone::~Microphone() { Microphone::~Microphone() {
// close analog input // close analog input
maa_result_t error; mraa_result_t error;
error = maa_aio_close(m_micCtx); error = mraa_aio_close(m_micCtx);
if (error != MAA_SUCCESS) { if (error != MRAA_SUCCESS) {
maa_result_print(error); mraa_result_print(error);
} }
} }
@ -63,7 +63,7 @@ Microphone::getSampledWindow (unsigned int freqMS, unsigned int numberOfSamples,
} }
while (sampleIdx < numberOfSamples) { while (sampleIdx < numberOfSamples) {
buffer[sampleIdx++] = maa_aio_read (m_micCtx); buffer[sampleIdx++] = mraa_aio_read (m_micCtx);
usleep(freqMS * 1000); usleep(freqMS * 1000);
} }

View File

@ -24,8 +24,8 @@
#pragma once #pragma once
#include <string> #include <string>
#include <maa/gpio.h> #include <mraa/gpio.h>
#include <maa/aio.h> #include <mraa/aio.h>
struct thresholdContext { struct thresholdContext {
long averageReading; long averageReading;
@ -80,7 +80,7 @@ class Microphone {
void printGraph (thresholdContext* ctx); void printGraph (thresholdContext* ctx);
private: 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_controlAddr = devAddr;
m_bus = bus; 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); mraa_result_t error = mraa_i2c_address(m_i2ControlCtx, m_controlAddr);
if (error != MAA_SUCCESS) { if (error != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n"); fprintf(stderr, "Messed up i2c bus\n");
return; return;
} }
@ -53,24 +53,24 @@ MMA7455::MMA7455 (int bus, int devAddr) {
// setting GLVL 0x1 (64LSB/g) and MODE 0x1 (Measurement Mode) // setting GLVL 0x1 (64LSB/g) and MODE 0x1 (Measurement Mode)
data = (BIT (MMA7455_GLVL0) | BIT (MMA7455_MODE0)); data = (BIT (MMA7455_GLVL0) | BIT (MMA7455_MODE0));
error = ic2WriteReg (MMA7455_MCTL, &data, 0x1); 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; std::cout << "ERROR :: MMA7455 instance wan not created (Mode)" << std::endl;
return; return;
} }
if (MAA_SUCCESS != calibrate ()) { if (MRAA_SUCCESS != calibrate ()) {
std::cout << "ERROR :: MMA7455 instance wan not created (Calibrate)" << std::endl; std::cout << "ERROR :: MMA7455 instance wan not created (Calibrate)" << std::endl;
return; return;
} }
} }
MMA7455::~MMA7455() { MMA7455::~MMA7455() {
maa_i2c_stop(m_i2ControlCtx); mraa_i2c_stop(m_i2ControlCtx);
} }
maa_result_t mraa_result_t
MMA7455::calibrate () { MMA7455::calibrate () {
maa_result_t error = MAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
int i = 0; int i = 0;
accelData xyz; accelData xyz;
@ -78,7 +78,7 @@ MMA7455::calibrate () {
do { do {
error = readData (&xyz.value.x, &xyz.value.y, &xyz.value.z); error = readData (&xyz.value.x, &xyz.value.y, &xyz.value.z);
if (MAA_SUCCESS != error) { if (MRAA_SUCCESS != error) {
return error; return error;
} }
@ -87,7 +87,7 @@ MMA7455::calibrate () {
xyz.value.z += 2 * -(xyz.value.z - 64); xyz.value.z += 2 * -(xyz.value.z - 64);
error = ic2WriteReg (MMA7455_XOFFL, (unsigned char *) &xyz, 0x6); error = ic2WriteReg (MMA7455_XOFFL, (unsigned char *) &xyz, 0x6);
if (error != MAA_SUCCESS) { if (error != MRAA_SUCCESS) {
return error; return error;
} }
@ -96,7 +96,7 @@ MMA7455::calibrate () {
return error; return error;
} }
maa_result_t mraa_result_t
MMA7455::readData (short * ptrX, short * ptrY, short * ptrZ) { MMA7455::readData (short * ptrX, short * ptrY, short * ptrZ) {
accelData xyz; accelData xyz;
unsigned char data = 0; unsigned char data = 0;
@ -104,17 +104,17 @@ MMA7455::readData (short * ptrX, short * ptrY, short * ptrZ) {
/*do { /*do {
nBytes = ic2ReadReg (MMA7455_STATUS, &data, 0x1); 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; std::cout << "NO_GDB :: 1" << std::endl;
return MAA_SUCCESS; return MRAA_SUCCESS;
}*/ }*/
nBytes = ic2ReadReg (MMA7455_XOUTL, (unsigned char *) &xyz, 0x6); nBytes = ic2ReadReg (MMA7455_XOUTL, (unsigned char *) &xyz, 0x6);
if (nBytes == 0) { if (nBytes == 0) {
std::cout << "NO_GDB :: 2" << std::endl; std::cout << "NO_GDB :: 2" << std::endl;
return MAA_ERROR_UNSPECIFIED; return MRAA_ERROR_UNSPECIFIED;
} }
if (xyz.reg.x_msb & 0x02) { if (xyz.reg.x_msb & 0x02) {
@ -134,40 +134,40 @@ MMA7455::readData (short * ptrX, short * ptrY, short * ptrZ) {
*ptrY = xyz.value.y; *ptrY = xyz.value.y;
*ptrZ = xyz.value.z; *ptrZ = xyz.value.z;
return MAA_SUCCESS; return MRAA_SUCCESS;
} }
int int
MMA7455::ic2ReadReg (unsigned char reg, unsigned char * buf, unsigned char size) { 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; return 0;
} }
if (MAA_SUCCESS != maa_i2c_write_byte(m_i2ControlCtx, reg)) { if (MRAA_SUCCESS != mraa_i2c_write_byte(m_i2ControlCtx, reg)) {
return 0; 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 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) { 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]; uint8_t data[size + 1];
data[0] = reg; data[0] = reg;
memcpy(&data[1], buf, size); memcpy(&data[1], buf, size);
error = maa_i2c_address (m_i2ControlCtx, m_controlAddr); error = mraa_i2c_address (m_i2ControlCtx, m_controlAddr);
if (error != MAA_SUCCESS) { if (error != MRAA_SUCCESS) {
return error; return error;
} }
error = maa_i2c_write (m_i2ControlCtx, data, size + 1); error = mraa_i2c_write (m_i2ControlCtx, data, size + 1);
if (error != MAA_SUCCESS) { if (error != MRAA_SUCCESS) {
return error; return error;
} }

View File

@ -24,7 +24,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <maa/i2c.h> #include <mraa/i2c.h>
#define ADDR 0x1D // device address #define ADDR 0x1D // device address
@ -183,7 +183,7 @@ class MMA7455 {
/** /**
* Calibrate the sensor * Calibrate the sensor
*/ */
maa_result_t calibrate (); mraa_result_t calibrate ();
/** /**
* Read X, Y and Z acceleration data * Read X, Y and Z acceleration data
@ -192,7 +192,7 @@ class MMA7455 {
* @param ptrY Y axis * @param ptrY Y axis
* @param ptrZ Z 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 buf register data buffer
* @param size buffer size * @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: private:
std::string m_name; std::string m_name;
int m_controlAddr; int m_controlAddr;
int m_bus; 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_i2cAddr = devAddr;
m_bus = bus; 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); mraa_result_t ret = mraa_i2c_address(m_i2Ctx, m_i2cAddr);
if (ret != MAA_SUCCESS) { if (ret != MRAA_SUCCESS) {
fprintf(stderr, "Messed up i2c bus\n"); fprintf(stderr, "Messed up i2c bus\n");
} }
@ -50,10 +50,10 @@ MPU9150::MPU9150 (int bus, int devAddr) {
} }
MPU9150::~MPU9150() { MPU9150::~MPU9150() {
maa_i2c_stop(m_i2Ctx); mraa_i2c_stop(m_i2Ctx);
} }
maa_result_t mraa_result_t
MPU9150::initSensor () { MPU9150::initSensor () {
uint8_t regData = 0x0; uint8_t regData = 0x0;
@ -71,7 +71,7 @@ MPU9150::initSensor () {
regData &= ~(1 << MPU6050_PWR1_SLEEP_BIT); regData &= ~(1 << MPU6050_PWR1_SLEEP_BIT);
i2cWriteReg (MPU6050_RA_PWR_MGMT_1, regData); i2cWriteReg (MPU6050_RA_PWR_MGMT_1, regData);
return MAA_SUCCESS; return MRAA_SUCCESS;
} }
uint8_t uint8_t
@ -81,7 +81,7 @@ MPU9150::getDeviceID () {
return regData; return regData;
} }
maa_result_t mraa_result_t
MPU9150::getData () { MPU9150::getData () {
uint8_t buffer[14]; uint8_t buffer[14];
@ -130,31 +130,31 @@ MPU9150::getData () {
axisMagnetomer.data.axisZ = axisMagnetomer.sumData.axisZ / SMOOTH_TIMES; axisMagnetomer.data.axisZ = axisMagnetomer.sumData.axisZ / SMOOTH_TIMES;
} }
maa_result_t mraa_result_t
MPU9150::getAcceleromter (Vector3D * data) { MPU9150::getAcceleromter (Vector3D * data) {
data->axisX = axisAcceleromter.data.axisX; data->axisX = axisAcceleromter.data.axisX;
data->axisY = axisAcceleromter.data.axisY; data->axisY = axisAcceleromter.data.axisY;
data->axisZ = axisAcceleromter.data.axisZ; data->axisZ = axisAcceleromter.data.axisZ;
return MAA_SUCCESS; return MRAA_SUCCESS;
} }
maa_result_t mraa_result_t
MPU9150::getGyro (Vector3D * data) { MPU9150::getGyro (Vector3D * data) {
data->axisX = axisGyroscope.data.axisX; data->axisX = axisGyroscope.data.axisX;
data->axisY = axisGyroscope.data.axisY; data->axisY = axisGyroscope.data.axisY;
data->axisZ = axisGyroscope.data.axisZ; data->axisZ = axisGyroscope.data.axisZ;
return MAA_SUCCESS; return MRAA_SUCCESS;
} }
maa_result_t mraa_result_t
MPU9150::getMagnometer (Vector3D * data) { MPU9150::getMagnometer (Vector3D * data) {
data->axisX = axisMagnetomer.data.axisX; data->axisX = axisMagnetomer.data.axisX;
data->axisY = axisMagnetomer.data.axisY; data->axisY = axisMagnetomer.data.axisY;
data->axisZ = axisMagnetomer.data.axisZ; data->axisZ = axisMagnetomer.data.axisZ;
return MAA_SUCCESS; return MRAA_SUCCESS;
} }
float float
@ -177,21 +177,21 @@ MPU9150::getTemperature () {
uint16_t uint16_t
MPU9150::i2cReadReg_N (int reg, unsigned int len, uint8_t * buffer) { MPU9150::i2cReadReg_N (int reg, unsigned int len, uint8_t * buffer) {
int readByte = 0; int readByte = 0;
maa_i2c_address(m_i2Ctx, m_i2cAddr); mraa_i2c_address(m_i2Ctx, m_i2cAddr);
maa_i2c_write_byte(m_i2Ctx, reg); mraa_i2c_write_byte(m_i2Ctx, reg);
maa_i2c_address(m_i2Ctx, m_i2cAddr); mraa_i2c_address(m_i2Ctx, m_i2cAddr);
readByte = maa_i2c_read(m_i2Ctx, buffer, len); readByte = mraa_i2c_read(m_i2Ctx, buffer, len);
return readByte; return readByte;
} }
maa_result_t mraa_result_t
MPU9150::i2cWriteReg (uint8_t reg, uint8_t value) { 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 }; uint8_t data[2] = { reg, value };
error = maa_i2c_address (m_i2Ctx, m_i2cAddr); error = mraa_i2c_address (m_i2Ctx, m_i2cAddr);
error = maa_i2c_write (m_i2Ctx, data, 2); error = mraa_i2c_write (m_i2Ctx, data, 2);
return error; return error;
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -27,7 +27,7 @@
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <stdint.h> #include <stdint.h>
#include <maa.h> #include <mraa.h>
#define swap(a, b) { int16_t t = a; a = b; b = t; } #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 y axis on vertical scale
* @param color pixel's color * @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 * Fill screen with selected color

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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