Private
Public Access
2
0
Commit Graph

46 Commits

Author SHA1 Message Date
Nicola Lunghi
64fe50ffa8 aio: fix wrong max_analog_value and improve floating point value precision
Signed-off-by: Nicola Lunghi <nicola.lunghi@emutex.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2018-01-04 13:59:22 +01:00
Nicola Lunghi
54c9c1aff1 aio: improve resolution. fix error with max_analog_value rounding.
Signed-off-by: Nicola Lunghi <nicola.lunghi@emutex.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2018-01-04 13:59:22 +01:00
Nick Crast
bb3584fcdb mraa_internal_types.h, aio.c, beaglebone.c:
Beaglebone AIO pins seem to be a little different than most boards, so
this is my attempt to work with that without impacting other boards. I
added a new flag in mraa_board_t to indicate whether or not the aio pins
are sequential. One the beaglebone, they are not. To go along with this,
I added a new device mraa_aio_dev_t, that will map each aio to a
physical pin.

In the main aio logic, if aio_non_seq is true for the board, the manual
mapping is used, otherwise the old mathematical mapping is used.

Signed-off-by: Nick Crast  <nrcrast@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-06-06 15:51:30 +02:00
Alex Tereschenko
816be65ba0 gpio.c,aio.c,iio.c: misc fixes of static code analysis findings
SonarQube is awesome!

Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
2017-05-18 20:41:51 +02:00
Thomas Ingleby
fce4daab02 mraa: Correct spelling of capabilities
Type was correctly spelt, but the member in the platform strut was not.
My mistake from 2014.

Signed-off-by: Thomas Ingleby <thomas.ingleby@intel.com>
2016-08-08 21:44:00 +02:00
Alex Tereschenko
917a1bd371 aio: added context validity and replace function checks to aio_close()
Added standard context validity check, another check for a replace function
and corrected a return statement to fit our standard code style.

Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-07-11 10:48:43 +01:00
Alex Tereschenko
e43459d031 aio: added standard context validity check to aio_read()
Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-07-11 10:48:43 +01:00
Brendan Le Foll
b258867c37 aio.c: pass channel to mraa_aio_init_internal
This fixes previous broken commit because dev is not defined before
_internal_init but since fp is taken during internal init we need to know the
channel number. This does not affect the internal override API.

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-04-25 12:17:32 +01:00
Brendan Le Foll
56e45f6de5 aio.c: Set channel number before grabbing filepointer
Fixes #495

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-04-25 11:53:49 +01:00
Brendan Le Foll
0b74aa68ab aio: Change mraa_aio_read to use int and return -1
This commit changes also the _replace function and adds exceptions to the C++
API for errors in AIO read

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-04-22 11:57:26 +01:00
Brendan Le Foll
4b76fbd14c mraa: with NULL platform board max counts need to be checked to >= not just >
This fixes bugs when USBPLAT or FIRMATA is enabled when a NULL platform is
added or even a platform without ADC

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-22 18:12:29 +00:00
Brendan Le Foll
78caa990f1 firmata: initial work
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-22 18:12:29 +00:00
Brendan Le Foll
f2cbe1c68d aio.c: Attempt to make aio.c understand subplatforms
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-22 18:12:29 +00:00
Ian Johnson
ab14b9de43 mraa: Prefer calloc over malloc
Switch to using calloc on all calls to malloc where the memory isn't
initialized. For things like the mraa_board_t, not allocating all to zero
causes issues such as with the sub_platform member, where if that's not zero
mraa_get_platform_type will try to dereference a random memory location for the
sub_platform->platform_name, which can result in segmentation faults and other
issues.

Note that in some places where immediately after the malloc call is a copy
operation, there is no need for calloc, as all the memory gets overwritten
anyways, but in cases where there may or may not be memory written to (such as
in mraa_file_contains, with reading from a file), even though in most cases the
memory is overwritten, it could be the case that the read operation does
nothing, but the memory still has non-zero values, by virtue of the fact it
wasn't overwritten.

Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-01-20 08:20:28 +00:00
Brendan Le Foll
54bf18b246 aio.c: missing free for aio contexts in error cases for _init()
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 15:09:06 +01:00
Brendan Le Foll
1937473c01 aio.c: missing return for internal init
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:58:55 +01:00
Brendan Le Foll
07343e2ee7 mraa: Remove global advance_func struct and place it in platform configuration
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Brendan Le Foll
ffcf3d7d07 clang-format: run clang-format on C/C++ code
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-03-23 15:15:48 +00:00
Alex Tereschenko
cd6701d604 aio.c: added normalized read returning a float in a 0.0-1.0 range
Closes #32.

Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-02-04 18:22:20 +00:00
Kurt Eckhardt
cf1a8645f7 aio.c: properly cleanup after mraa_aio_close
Problem not closing file handle when you destroy the mraa_aio_context

Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-12-07 15:05:27 +00:00
Brendan Le Foll
a7b8d4a0ca aio.c: check aio_get_valid_fp return value
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-11-26 13:30:10 +00:00
Brendan Le Foll
bb5314efc1 aio.c: remove less-than-zero comparison of an unsigned var
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-11-26 11:43:30 +00:00
Thomas Ingleby
66c5011cfb aio: move aio setup from core into module
Added additional syslog messages for debugging

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-11-17 17:40:48 +00:00
Brendan Le Foll
a6b3d384b2 syslog: unify error msg style
syslog messages should be written as <module>: Message in order to increase
readability and usefulness

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-10-22 21:09:11 +01:00
Brendan Le Foll
2b5e38b40c coverity: Fix issues found by coverity scan
* Fix a few resource leaks in error conditions
* Makes strtol() calls safer in pwm module
* Make sure buffer is terminated after read() in aio

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-10-03 22:50:18 +01:00
Brendan Le Foll
32d8a6f0ca syslog: remove all fprintf calls and use syslog instead
Syslog is now used for all error messages, return values in the code should be
used by programmers to see the status of the library/board and syslog can be
used to see quickly from a debugging perspective what has gone wrong. A few
cosmetics where improved as well as a mraa_set_log_level() call where the
syslog log mask can be set directly from libmraa.

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-09-25 14:31:04 +01:00
Brendan Le Foll
886044b90f aio.c: cosmetic fix on file
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-09-24 12:06:10 +01:00
Thomas Ingleby
e82a76593d aio: change return from uint16 to unsigned int
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-09-22 15:29:02 +01:00
Thomas Ingleby
6a7add6b99 aio: add calls for changing bit value of the read
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-09-22 14:52:45 +01:00
Thomas Ingleby
62a1493bdf aio: internal aio context to mraa_internal_types
* Some comments for members of structure also added

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-09-09 18:00:27 +01:00
Thomas Ingleby
92cbb6097c aio: add init hooks, and fp hook
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-09-09 18:00:23 +01:00
Brendan Le Foll
0ed1508315 aio.c: fix ordering of comparison operator
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-09-09 17:29:40 +01:00
Thomas Ingleby
e5c7e64cf3 aio: added configuration within platform data.
* Allows for different bit shifting for each platform.
* New functions added for obtaining this information
* mraa_adc_raw_bits
* mraa_adc_supported_bits

* Update board information to include this. AIO module changed to allow
* use of the new board data

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-06-25 17:32:41 +01:00
Thomas Ingleby
9a81b043be aio: minor formatting fix
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-06-25 14:58:15 +01:00
Thomas Ingleby
6853997a92 mraa: rename from maa to mraa
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-06-24 17:24:54 +01:00
Brendan Le Foll
e5a9af65a8 aio: make types used more logical and simplify logic
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-26 16:05:17 +01:00
Thomas Ingleby
2b8ab38418 maa: hide and rename internal maa functions
Based on feedback received. All check functions renamed to setup.
Update all modules to use new name and header.

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-05-21 13:17:16 +01:00
Thomas Ingleby
546157a9ab aio: fix spacing
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-05-21 12:58:55 +01:00
Brendan Le Foll
554505b640 aio.hpp: Add C++ wrapper around Aio
* maa_aio_context becomes an opaque pointer
* C++ wrapper class Aio created
* examples/c++ with a sample for Aio created
* swig now uses C++ wrapper Aio to generate an API
* python generated code is now C++

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-16 14:31:30 +01:00
Brendan Le Foll
f185877860 aio: remove _u16 suffix from call. Make return type a uint16_t
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-13 22:25:21 +00:00
Brendan Le Foll
e35cfb6861 aio: remove use of atoi and cleanup debug
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-13 22:10:41 +00:00
Brendan Le Foll
4ef5176dad aio: use posix read/lseek API
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-13 21:59:54 +00:00
Brendan Le Foll
320341df4d aio: fix styling of case statement
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-13 21:59:22 +00:00
Brendan Le Foll
4f7277f389 aio: fix error checking of maa_check_aio
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-13 21:58:43 +00:00
Thomas Ingleby
fd1c1c80f4 pinmap: Added aio support.
* Intel Galileo Rev D: Added analog information
* maa_check_aio, similar to maa_check_gpio, will setup multiplexers.
* aio: Removed now duplicated functionality.

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-05-02 11:52:40 +01:00
Nandkishor Sonar
207c54a5e7 aio: add initial analog input support
Signed-off-by: Nandkishor Sonar <nandkishor.sonar@intel.com>
Reviewed-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-01 16:38:17 +01:00