From 827e1974bf12d9b318883818b9078f9b44335ad8 Mon Sep 17 00:00:00 2001 From: Michael Ring Date: Wed, 18 Mar 2015 20:48:14 +0100 Subject: [PATCH] api/mraa: add mraa_get_pin_name Add mraa_get_pin_name to get the real world name of the pin. Signed-off-by: Michael Ring Signed-off-by: Thomas Ingleby --- api/mraa/common.h | 9 +++++++++ api/mraa/common.hpp | 13 +++++++++++++ src/mraa.c | 11 +++++++++++ 3 files changed, 33 insertions(+) diff --git a/api/mraa/common.h b/api/mraa/common.h index b4c0839..9c75536 100644 --- a/api/mraa/common.h +++ b/api/mraa/common.h @@ -149,6 +149,15 @@ mraa_platform_t mraa_get_platform_type(); */ unsigned int mraa_get_pin_count(); +/** +* Get name of pin, board must be initialised. +* +* @param pin number +* +* @return char* of pin name +*/ +char* mraa_get_pin_name(int pin); + #ifdef __cplusplus } #endif diff --git a/api/mraa/common.hpp b/api/mraa/common.hpp index 7c9fe12..fb4bb40 100644 --- a/api/mraa/common.hpp +++ b/api/mraa/common.hpp @@ -151,6 +151,19 @@ inline unsigned int getPinCount() return mraa_get_pin_count(); } +/** +* Get name of pin, board must be initialised. +* +* @param pin number +* +* @return char* of pin name +*/ +inline std::string getPinName(int pin) +{ + std::string ret_val(mraa_get_pin_name(pin)); + return ret_val; +} + /** * Sets the log level to use from 0-7 where 7 is very verbose. These are the * syslog log levels, see syslog(3) for more information on the levels. diff --git a/src/mraa.c b/src/mraa.c index 5ecbae4..c2bd2a0 100644 --- a/src/mraa.c +++ b/src/mraa.c @@ -327,6 +327,17 @@ mraa_file_exist(char *filename) { return file_found; } +char* +mraa_get_pin_name(int pin) +{ + if (plat == NULL) { + return NULL; + } + if (pin > (plat->phy_pin_count -1) || pin < 0) + return NULL; + return (char*) plat->pins[pin].name; +} + char* mraa_file_unglob(char *filename) { glob_t results;