Compare commits

...

270 Commits

Author SHA1 Message Date
78182278cc upm: update to version 0.2.0
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-22 12:54:32 -07:00
3998cdfb1e docs: updated gsk sensors and @kit tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 15:43:24 -07:00
969a25cf0d adafruitss: updated sensor category to avoid name clash
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 15:32:20 -07:00
a2864d3559 ta12200: python example and JS modification for ta12200 electricity sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:49:40 -07:00
4ab6873a42 adc121c021: python example and JS modification for adc121c021 analog/digital converter
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:49:02 -07:00
7b0dce0992 hmtrp: python example for hmtrp Serial RF radio
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:48:30 -07:00
57bab4f9df l298: python examples for l298 dual-H bridge DC motor and stepper motor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:47:56 -07:00
4f4bd2937a ina132: python example for ina132 differential amplifier
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:47:24 -07:00
8c55b54969 groveehr: python example and js modification for groveehr heart-rate sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:46:50 -07:00
4f53c9c43a adafruitms1438: python examples for adafruitms1438 motor shield
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:46:17 -07:00
94fe1174c6 lsm303: python example and js modification for lsm303 accelerometer/compass
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:45:46 -07:00
f9d0e4621b groveloudness: python example for grove loudness sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:45:13 -07:00
3d535b5dec groveemg: python example for grove emg muscle signal reader
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:44:41 -07:00
97204cfc31 grovegsr: python example for grove gsr skin response sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:44:05 -07:00
d8dc267fef mma7660: python example for mma7660 accelerometer
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:43:29 -07:00
13704fffe0 gas: python examples for mq2, mq3, mq5, and mq9 gas sensors
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:42:55 -07:00
2ceee8bf26 grovevdiv: python example and js modification for grovevdiv voltage divider
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:42:21 -07:00
6c93816a77 cjq4435: python example and js modification for cjq4435 MOSFET sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:41:44 -07:00
20890aa2fb grovemd: python example for grovemd I2C motor driver
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:41:11 -07:00
c95af93490 adxl335: python example (and JS example modification) for adxl335 analog accelerometer
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:40:38 -07:00
60815f034d my9221: python example for my9221 LED bar
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:40:05 -07:00
357018109f tcs3414cs: python example for tcs3414cs I2C color sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:39:34 -07:00
de96a3d327 ds1307: python example for ds1307 RTC clock
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:39:02 -07:00
78482791c1 grovecollision: python example and updated JS example for grove collision sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:38:25 -07:00
2168b404bd groveo2: python example for grove O2 gas sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:37:44 -07:00
ff897e84eb wt5001: new python example and update to JS example for wt5001 mp3 player
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:37:07 -07:00
f0cd7843c7 groveelectromagnet: python example for grove electromagnet
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:36:30 -07:00
aedd3fa4e3 mpr121: python example for mpr121 touch sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:35:49 -07:00
e4ac7c4a13 otp538u: python example for otp538u Grove Infrared Temperature Sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:35:13 -07:00
aba51d10c7 rpr220: python example for rpr220 Infrared Reflective Sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:34:39 -07:00
999eca4598 enc03r: python example for enc03r analog gyro
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:34:04 -07:00
44d31a3dfd tsl2561: python example for tsl2561 digital light sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:33:31 -07:00
66913cdb20 a110x: python example for a110x hall effect (magnet) sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:32:58 -07:00
424ff42b29 grovelinefinder: python example for grove line finder sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:32:24 -07:00
afc4e508d5 grovespeaker: python example for grove speaker
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:31:48 -07:00
f5cd50f7ba rfr359f: python example for rfr359f IR Distance Interrupter
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:31:06 -07:00
018b731fab grovewater: python example for grove water sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:30:29 -07:00
6592cf58d3 guvas12d: python example for guvas12d UV sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:29:52 -07:00
28aacaade6 Jhd1313m1: extending python example for RGB display to match js/c++ examples
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:29:13 -07:00
fffcc2970e nunchuck: python example for nunchuck driver
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:28:36 -07:00
b5d3ab895b ssd1327: python example for ssd1327 OLED Display 0.96"
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:27:59 -07:00
950f4bf4ad mq303a: python example for mq303a alcohol sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:27:18 -07:00
544d76e6ff groveeldriver: python example for grove el driver
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:26:38 -07:00
99c59361a7 ssd1308: JavaScript, python examples for ssd1308 OLED Display 1.12"
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:26:00 -07:00
92039921b1 yg1006: python example for yg1006 flame sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:25:21 -07:00
bbd8483b65 bmpx8x: python example for BMP x8x family of barometers
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:24:43 -07:00
5ed438bc6b grovemoisture: python example for grove moisture sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:24:07 -07:00
2daed538b4 rotaryencoder: python example for rotary encoder
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:23:32 -07:00
14d45b89af at42qt1070: python example for at42qt1070 Q-touch sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:22:58 -07:00
08c116947a joystick12: python example for joystick12 sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:22:22 -07:00
2854302757 biss0001: python example for biss0001 motion sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:21:44 -07:00
51830a0953 ublox6: python example for ublox6 GPS sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:21:08 -07:00
22779337c8 ppd42ns: python example for ppd42ns dust sensor
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-17 11:20:29 -07:00
8d40ca6f10 ldt0028: updated type after rename
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-16 17:14:54 -07:00
a2e80fcc29 flex: changed type name to avoid name clash
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-16 17:14:40 -07:00
7d1976e819 upm.h: removed unused vendors and added kits
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-16 17:14:25 -07:00
c6e87d8c16 adafruitss: placed under servo category
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-16 17:14:11 -07:00
d3471816ba zfm20: fixed doxygen tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-16 17:13:32 -07:00
65fd9804ea htu21d: fixed typo and removed bad altname
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-16 10:47:58 -07:00
8c7065ed09 adafruitms1438: updated header with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-16 10:46:11 -07:00
9a024f1aa1 lpd8806: patching up doxygen comments and removing image 2015-04-15 10:07:52 -07:00
475a4aa48a max5487: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 18:06:53 -07:00
666d7c8459 max31723: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 18:05:22 -07:00
d1258797b0 max31855: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 18:04:21 -07:00
3f09b4ee0c max44000: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 18:02:48 -07:00
72eebf5b6d maxds3231m: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 18:01:25 -07:00
aa94a8bd06 mhz16: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:59:59 -07:00
a48bd35893 mic: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:58:58 -07:00
b9090753db mlx90614: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:57:58 -07:00
76867d8db3 mma7455: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:56:57 -07:00
343bfa2148 mma7660: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:55:54 -07:00
999702e6be mpl3115a2: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:54:46 -07:00
045782b202 mpr121: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:53:45 -07:00
90feee05aa mpu9150: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:52:44 -07:00
9c164b8b9e mq303a: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:51:30 -07:00
ecba83edc5 my9221: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:50:30 -07:00
5dcdc2f9cc nrf24l01: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:49:14 -07:00
c3fbdb9e33 nrf8001: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:48:11 -07:00
55bf019411 nunchuck: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:47:08 -07:00
2ace28a75f otp538u: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:46:05 -07:00
d26b9a03d6 pca9685: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:44:55 -07:00
b3eb36ee47 ppd42ns: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:43:57 -07:00
4cc8adbec5 pulsensor: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:42:49 -07:00
bba42e748c rfr359f: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:37:50 -07:00
fa77863b13 rotaryencoder: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:36:50 -07:00
f0d9ac8fd6 rpr220: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:35:47 -07:00
f9dc9cc4e8 es08a: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:34:47 -07:00
ab5fc3f203 sm130: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:33:44 -07:00
6c45773b36 uln200xa: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:31:49 -07:00
be1c21c3f0 waterlevel: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:31:25 -07:00
04b9e19eeb zfm20: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:29:57 -07:00
b937f1ae3e isd1820: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:09:34 -07:00
ca29e0a307 grovewfs: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:08:08 -07:00
30c8efa3b6 uln200xa: Patching up doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:05:51 -07:00
b1421659c5 sm130: Adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:03:07 -07:00
2a7e9d9cb9 zfm20: patching doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 17:02:36 -07:00
47eaf93e4d isd1820: Initial implementation
This driver implements support for the Grove Recorder.  It records up
to about 10 seconds of audio, and can play it back on command.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 16:36:18 -07:00
ce1e2fd606 grovewfs: Initial implementation
This driver implements support for the Grove Water Flow sensor.  It
uses an integrated hall effect sensor, connected to a GPIO configured
as an interrupt, to compute water flow in LPM (Liters Per Minute).

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 16:36:10 -07:00
2a3485cf98 uln200xa: Initial implementation
This driver was tested on a Grove Geared Stepper with Driver, the
uln2003a paired with a 28BYJ-48 unipolar stepper motor.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 16:35:56 -07:00
8bf92be1ab zfm20: Initial implementation
This driver implements support for the ZFM20 fingerprint module.  It
was tested on a Grove Fingerprint Sensor.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 16:35:38 -07:00
bdaf952e91 grovergblcd: changed file name extension to match file
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 16:06:27 -07:00
1d2b85418e docs: adding grovergblcd image from seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 16:01:24 -07:00
cbd9dd7a2c docs: cleanup file permissions on images
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 16:00:25 -07:00
c7aec0b291 docs: removing image
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:45:23 -07:00
2ac8f8f6ef max5847: Adding doxygen comments and removing image
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:44:30 -07:00
897b0a48c6 max31723: Adding doxygen comments and removing image
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:41:31 -07:00
6da2d5047d max31855: Adding doxygen comments and removing image
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:36:11 -07:00
3567e079f9 maxds3231m: Adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:30:14 -07:00
a3354dca0d max44000: Adding doxygen comments removing image
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:29:10 -07:00
a327872241 maxds3231m: adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:23:24 -07:00
68fcd45873 mhz16: Adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:17:57 -07:00
2555aec888 mic: Adding doxygen comments and image from seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:13:17 -07:00
e9192d14c2 mma7455: Correcting doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:08:28 -07:00
08a81356da mlx90614: Adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:07:57 -07:00
234d166c84 mma7455: Adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:04:51 -07:00
5e6fdb5c30 mma7660: Adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 15:01:17 -07:00
a6a405be31 mpl3115a2: Adding doxygen comments and a manufacturer to upm.h
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 14:54:56 -07:00
0866fb880a nrf8001: Corrected connction type tag
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 14:29:11 -07:00
2376d853e7 mpr121: Adding doxygen comments and image from seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 14:28:25 -07:00
bc65345cf3 mpu9150: Adding doxygen comments and image from Seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 14:24:03 -07:00
f071ebe0ca mq303a: Adding doxygen comments and image from seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 14:16:12 -07:00
78f25b0157 my9221: Adding doxygen comments and image from Seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 14:09:03 -07:00
dfac49ede0 nrf24l01: Adding doxygen comments and image from seeed website
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 14:03:26 -07:00
6abf66ddbc nrf8001: Adding doxygen comments and image from Adafruit website
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 13:56:54 -07:00
1ffbcd59ad nunchuck: Adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 13:46:23 -07:00
c2b42842e4 otp538u: Adding doxygen comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 13:31:22 -07:00
7be414fa5b pca9685: Adding doxygen comments and image from adafruit site
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 13:14:34 -07:00
b10e108977 ppd42ns: Adding doxygen comments and image from seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 13:04:43 -07:00
28e5f1ca6e pulsensor: Adding doxygen comments and image from adafruit website
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 12:22:06 -07:00
3707e359f4 rfr359f: Adding doxygen comments and image from seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 12:12:03 -07:00
3b4e9da7c6 rotaryencoder: Adding doxygen comments and image from seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 12:03:33 -07:00
6a315f817d rpr220: doxygen comments and adding image from seeed wiki
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 11:52:38 -07:00
d70eef06ac es0a: doxygen comments and adding image from seeed wiki site
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 11:18:07 -07:00
34a55d7eae servo: doxygen comments and adding mfg to upm.h
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-14 11:15:05 -07:00
83344a63c5 doxygen: renamed 'Modules' to 'Libraries'
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 17:53:52 -07:00
6dd8358d2f doxygen: fixed relative path to doxygenlayout.xml
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 17:29:01 -07:00
a5048d20fd grove: updated and added headers with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 17:28:29 -07:00
d2bdb8836c i2clcd: updated headers with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 17:24:40 -07:00
35df0fa9d7 lsm303: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 17:00:27 -07:00
4b47f6e84b lpd8806: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 16:59:52 -07:00
f47bc7e5a7 lol: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 13:39:09 -07:00
edcedae0e4 ldt0028: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 13:17:01 -07:00
9ebe68ec0c l298: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 13:07:08 -07:00
18c21f0bc7 joystick12: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 12:55:23 -07:00
d7a389a358 ina132: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 12:24:33 -07:00
44f866f924 hx711: swapped example with image for consistency
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 12:12:58 -07:00
17ecaf522a htu21d: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 12:11:29 -07:00
6428f43599 hmtrp: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 12:04:54 -07:00
e714b0eb24 hcsr04: updated header with tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-13 11:39:10 -07:00
0963b5e140 guvas12d: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-10 15:00:44 -07:00
76a81c09f2 grovewater: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-10 14:49:32 -07:00
a2e7609263 grovevdiv: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-10 14:49:01 -07:00
1e45d8e712 grovespeaker: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-10 14:33:34 -07:00
d932fa606f groveo2: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-10 14:29:59 -07:00
c5b86d3637 grovemoisture: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 17:34:46 -07:00
1e49c43e7a groveloudness: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 17:01:55 -07:00
82a0d4b6b0 grovelinefinder: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 16:58:24 -07:00
687f0188ca grovegsr: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 16:58:11 -07:00
3a989a5ed3 groveelectromagnet: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 16:57:15 -07:00
728e01c582 groveemg: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 15:19:46 -07:00
f98a257ed5 groveeldriver: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 15:09:08 -07:00
d827e58997 groveehr: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 15:06:46 -07:00
8d931fbf74 grovecollision: header updated with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 15:00:19 -07:00
5b4edc8631 gp2y0a: header fix for new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:25:29 -07:00
90019cdc62 gas: header updates with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:22:16 -07:00
cdfdbc3678 flex: header fixes for tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:22:12 -07:00
b218d01248 enc03r: header update
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:22:09 -07:00
dec2e8eacc ecs1030: header update
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:22:04 -07:00
9b3befd6f2 ds1307: header update
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:22:01 -07:00
b243290a36 cjq4435: header update
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:21:57 -07:00
1cf3f43db0 buzzer: header update
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:21:54 -07:00
090035bf1d bmpx8x: header update
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:21:52 -07:00
77be6adf6d gp2y0a: renamed from gp2y0a21yk to indicate support for the gp2y0a family
Additionally, add some error checking in the constructor, and determine
the ADC resolution and use that in the voltage calculation rather than
a hardcoded 1024.0.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-09 13:18:59 -07:00
828d3b928e tm1637: brand new working implementation
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-08 16:19:33 -07:00
1d0284abaf CMakeLists.txt: removed duplicate entries
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-01 10:33:38 -07:00
8f2238835e waterlevel: initial implementation
The library implements support for the grove water level switch.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-01 10:10:24 -07:00
ca506f9fab apds9002: initial implementation
This library implements support for the apds9002 luminance sensor.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-01 10:10:07 -07:00
56a01322b5 mhz16: Initial implementation
This library implements support for the MHZ16 CO2 sensor.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-01 10:03:58 -07:00
4bb077e70b a110x: Add interrupt support and a suitable example
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-01 10:02:37 -07:00
317ad35180 flex: initial implementation
Implements the flex analog sensor.  See
http://bildr.org/2012/11/flex-sensor-arduino/
for wiring instructions.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-04-01 10:02:20 -07:00
e3ba0d7b0a docs: fixed the other tags for at42qt1070 and grovemd
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-30 17:04:58 -07:00
c46dc401d4 docs: fixed library tags for at42qt1070 and grovemd
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-30 16:27:37 -07:00
78baaa9dc1 grovemd: added missing @library tag
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-27 10:14:34 -07:00
4a80a216c7 tm1637: Removing from upm due to possible derivation from lgpl code.
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-26 10:42:36 -07:00
b1fa94f1e3 docs: updated signoff info, authors need to do so too, always
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-25 17:15:27 -07:00
4e89284a37 doxy: added alias for @web tab
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-25 17:14:56 -07:00
72c957e700 hx711: updated sensor block and formatting
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-25 15:15:01 -07:00
df302ff5db hx711: Initial implementation HX711 24bit ADC module
Signed-off-by: Rafael Neri <rafael.neri@gmail.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-25 15:14:27 -07:00
bffecdae89 docs: updated tag comname as per standards
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-25 09:41:31 -07:00
07b904e8f1 docs: updated contributions.md with LGPL no longer accepted
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-24 11:46:01 -07:00
dcccf2d0c8 adafruitms1438: Link against CMake target
Instead of trying to call out the build environment for a .so to link
against, use the one UPM will build as a dependency.

Also add guards around the SWIG commands for both Node and Python
targets

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-23 11:53:23 -07:00
ae83074f6f adafruitms1438: use proper python libs when linking python target
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-23 11:52:40 -07:00
5fac6e9811 adafruitms1438: Initial implementation
The library implements support for the Adafruit MotorShield 1438:
http://www.adafruit.com/products/1438

This shield supports 4 DC motors or 2 Stepper motors.

It makes use of the pca9685 UPM library, and therefore requires that
PR #123 and PR #134 are merged first:

PR 123: pkgconfig.in: allow a module to specify dependencies on
another module

PR 134: pca9685: Initial implementation

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-23 11:51:49 -07:00
8ece990ce9 biss0001: updated header with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 17:08:09 -07:00
8ba8890887 am2315: updated header with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 17:08:06 -07:00
02147dfe4b adis16448: updated header and example with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 17:08:03 -07:00
9544b7789d adc121c021: updated header with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 17:07:59 -07:00
6ee89da4ba adafruitss: updated header with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 17:07:56 -07:00
2203d0b906 a110x: updated header with new tags
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 17:07:53 -07:00
ec067857c5 sm130.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:07 -07:00
5b6b7c479a st7735.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:06 -07:00
49d5c2de34 stepmotor.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:05 -07:00
7f30553a51 ta12200.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:05 -07:00
1e7f1f7cf2 tcs3414cs.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:03 -07:00
af1acd6be7 th02.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:03 -07:00
8388a2867a tm1637.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:02 -07:00
55c8ec0395 tsl2561.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:01 -07:00
7bb661d31b ttp223.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:05:00 -07:00
816a3055f4 ublox6.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:04:59 -07:00
fa4dabf173 wt5001.h: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:04:58 -07:00
5c16dd44a7 yg1006: adding doxygen tags
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 18:04:57 -07:00
9f12002d7a examples: removed extra interesting tags from file
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 14:36:29 -07:00
e54d48f407 nrf8001: documentation updates and showing relation to aci lib
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 14:34:23 -07:00
f53d8e79cc adafruitss: renamed to adafruit pca9685 servo shield
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 14:29:27 -07:00
2725342c19 pca9685ss: Initial implementation
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 14:29:22 -07:00
ff55f641a2 documentation.md: Add details of what code files to put sensor block comments
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-20 14:30:46 -07:00
e1648d7ec7 Revert "adafruitms1438: Initial implementation"
This reverts commit da0071ae71.

Conflicts:
	examples/c++/CMakeLists.txt

Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 12:47:03 -07:00
fd028e2f05 docs: created separate folder for doxygen config files
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 11:35:37 -07:00
3834b92c51 docs: cleaned up top level folder
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 11:35:31 -07:00
1792eb9cfe docs: added optional @web tag for sensor links
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 11:35:27 -07:00
fbbf56a49d groveeldriver: initial implementation
This module implements support for the Grove EL Driver.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-20 11:09:32 -07:00
da0071ae71 adafruitms1438: Initial implementation
The library implements support for the Adafruit MotorShield 1438:
http://www.adafruit.com/products/1438

This shield supports 4 DC motors or 2 Stepper motors.

It makes use of the pca9685 UPM library, and therefore requires that
PR #123 and PR #134 are merged first:

PR 123: pkgconfig.in: allow a module to specify dependencies on
another module

PR 134: pca9685: Initial implementation

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-19 16:46:40 -07:00
2aa24162c3 pca9685: Initial implementation
This library implements generic support for the pca9685 16 channel 12
bit PWM LED controller.  This controller is used on some Adafruit
motor shields.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-19 16:17:33 -07:00
970d6a083f grovemd: allow seperate directions for each DC motor
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-19 15:09:28 -07:00
d380658b40 grovemd: Initial implementation
This module implements support for the Grove I2C Motor Driver.

The device *requires* a 100Khz I2C bus speed.  It will not work on
anything faster.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-19 15:07:39 -07:00
de66c8de56 at42qt1070: Initial implementation
This module implementes support for the Grove QTouch sensor.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-17 17:35:41 -07:00
518d80cdcd l298: Initial implementation
This was tested on the RobotBase Dual H-Bridge motor control board.

There are two examples:

l298-example: This example demonstrates using the class to contol one
of the H-Brdges to control a DC motor.

l298-stepper-example: This example demonstrates using the class to
control a 4-wire dual-phase stepper motor.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-17 17:04:43 -07:00
925260a234 ina132: initial implementation
This module was tested with the Grove Differential Amplifier, with a
weight sensor attached.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-17 14:34:51 -07:00
276ba67583 grovegsr: initial implementation
This module implements support for the Grove GSR (Galvanic Skin
Response) sensor.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-17 14:28:27 -07:00
eeb370556f naming.md: Added rule to use lower case files and folders only
Currently files and folders are all lower case.  Doxygen also
has a tag set to disallow files and folders with upper case
names.  Added an item on the naming.md page which states
only lower case names should be used for files and folders.

Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-17 13:39:51 -07:00
db021fa970 groveo2: initial implementation
This implements support for the Grove O2 (oxygen) sensor.

Keeping with the current convention, as well as the current
config Doxygen uses disallowing uppercase names, this sensor
has been renamed from groveO2 to groveo2 for both files and
folders.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-17 13:08:38 -07:00
2bffccf839 groveemg: initial implementation
The implements support for the Grove EMG detector.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-17 10:47:00 -07:00
ce6cd0a19f groveelectromagnet: Initial implementation
This module implements support for the Grove Electromagnet.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-16 15:44:35 -07:00
ae10518a0f grovecollision: initial implementation
This implements support for the Grove Collision Sensor.

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-16 15:32:46 -07:00
5f3b88b00a adis16448: initial implementation
Signed-off-by: Juan J Chong juanjchong@gmail.com
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-16 14:39:53 -07:00
49ce602808 contributions.md: clarify some details about making a contribution to UPM
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-03-16 12:13:03 -07:00
e2b3cbc0f1 examples: added missing snippets and paired them with right examples
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-13 17:05:12 -07:00
dc932b61e7 examples: updated filenames and snippets to start with chipid
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-13 16:50:18 -07:00
577894851b examples: fixed snippet tag to filename mismatch
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-13 13:34:41 -07:00
6fe96b2195 docs: building.md how to build with all options on
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-12 15:28:12 -07:00
8f969d42f4 docs: updated headers for a few sensors as example
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-11 17:18:49 -07:00
10d1975bc2 docs: prevented doxygen tag name clash and added aliases
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-10 17:11:24 -07:00
0aa3d59487 buzzer: fixed sounds not stopping and added extra functions
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-09 16:30:46 -07:00
3810e7f2cb pkgconfig.in: allow a module to specify dependencies on another module
This patch adds the

Requires: @reqlibname@

and

Requires.private: @reqplibname@

clauses to the src/pkgconfig.in file.

This allows a UPM module to declare a dependency on another module
with a line of the form:

set (reqlibname "upm-somelib")
and/or
set (reqplibname "upm-somelib")

to the CMakeLists.txt file.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-09 16:25:24 -07:00
92615f0637 bmpx8x: fix comments so documentation works properly
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-09 16:08:34 -07:00
23e47fa3b9 bmpx8x: rename gy65 to bmpx8x to more properly reflect supported chips
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-09 16:07:17 -07:00
f0dd5f9530 docs: updated documentation.md with more details
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-06 17:53:11 -08:00
afd560ccdc examples: moved examples to new c++ subfolder
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-05 12:32:34 -08:00
74f00c8a55 i2clcd: added uint8 typemap for python
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-05 12:23:11 -08:00
f50ab24bb3 jhd1313m1: Remove unused variable from Jhd1313m1:write()
Signed-off-by: Clark Scheff <clark@scheffsblend.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-05 11:51:44 -08:00
7bd7e80b2e i2clcd: Add createChar method
LCDs based on the HD44780 allow for setting 8 custom characters.
This patch adds a method that exposes this capability.

Signed-off-by: Clark Scheff <clark@scheffsblend.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-05 11:50:12 -08:00
27a3a90d1f docs: added more info to building.md
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-04 14:50:33 -08:00
b4c265005f docs: few touch ups and typos fixed
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-04 11:26:23 -08:00
9dcef6d7bb docs: created new documentation.md
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-02 11:59:03 -08:00
2ff5dc16aa docs: added sensor categories to upm.h
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-02 09:43:52 -08:00
15ee2dd0ff docs: updated readme.md
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-03-02 09:42:02 -08:00
f13216752e otp538u: Initial implementation
This module was tested on the Grove non-contact IR Temperature
Sensor.  The tables included are only valid for a distance of 9cm.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-25 09:29:39 -08:00
1f3d074261 nunchuck: Initial implementation
This was tested with the Grove Nunchuck adapter.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-25 09:21:43 -08:00
780500ac0a hmtrp: Add proper @defgroup documentation tag
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-25 09:12:16 -08:00
fab4c26238 hmtrp: Initial implementation
This was tested on the Grove Serial RF Pro.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-25 09:11:54 -08:00
fad4accfcc adxl335: Add proper @defgroup documentation tag
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-24 19:22:11 -08:00
b03676222c adxl335: Initial implementation
The was tested with the Grove 3-Axis Analog Gyro.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-24 19:21:54 -08:00
db7d6d7f5f cjq4435: Add proper @defgroup documentation tag
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-24 19:00:16 -08:00
6a0a7b6159 cjq4435: Initial implementation
This module was tested on the Grove MOSFET.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-24 19:00:01 -08:00
0ebb7e0417 mma7660: Add proper @defgroup documentation tag
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-24 17:59:51 -08:00
44b9ce2bdf mma7660: modify JS example to avoid coredumps when run for awhile
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-24 17:59:16 -08:00
12c290de70 mma7660: Initial implementation
This was tested on the Grove I2C 3-axis digital accelerometer.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-24 17:58:45 -08:00
e0e9405634 Fix Servo library so that it correctly moves to the given angle.
Signed-off-by: John Van Drasek <john.r.van.drasek@intel.com>
2015-02-24 11:34:08 -08:00
73be07df74 upm: new upm.i JS interface file with code to call v8 garbage collector
Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-02-19 17:22:07 -08:00
b25cecd315 upm: require correct MRAA version
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-02-19 13:06:04 -08:00
535 changed files with 22395 additions and 1139 deletions

View File

@ -13,7 +13,7 @@ endif ()
find_package (Threads REQUIRED) find_package (Threads REQUIRED)
find_package (PkgConfig REQUIRED) find_package (PkgConfig REQUIRED)
# force the libmraa version to be the required version # force the libmraa version to be the required version
pkg_check_modules (MRAA REQUIRED mraa>=0.5.4) pkg_check_modules (MRAA REQUIRED mraa>=0.6.0)
message (INFO " found libmraa version: ${MRAA_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.
@ -28,7 +28,7 @@ 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 libmraa!") message (WARNING " - Install git to compile a production libmraa!")
set (VERSION "v0.1.9-dirty") set (VERSION "v0.2.0-dirty")
endif () endif ()
message (INFO " - UPM Version ${VERSION}") message (INFO " - UPM Version ${VERSION}")
@ -61,7 +61,7 @@ if (BUILDDOC)
# add a target to generate API documentation with Doxygen # add a target to generate API documentation with Doxygen
find_package (Doxygen) find_package (Doxygen)
if (DOXYGEN_FOUND) if (DOXYGEN_FOUND)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) configure_file (${CMAKE_CURRENT_SOURCE_DIR}/doxy/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
add_custom_target (doc add_custom_target (doc
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
@ -98,4 +98,4 @@ if (IPK)
endif() endif()
add_subdirectory (src) add_subdirectory (src)
add_subdirectory (examples) add_subdirectory (examples/c++)

View File

View File

@ -1,12 +1,12 @@
UPM - Sensor/Actuator repository for Mraa UPM - Sensor/Actuator repository for libmraa
============== ==============
UPM is a high level repository for sensors that use mraa. Each sensor links to UPM is a high level repository for sensors that use libmraa. Each sensor links
libmraa and are not meant to be interlinked although some groups of sensors may to libmraa and are not meant to be interlinked although some groups of sensors
be. Each sensor contains a header which allows to interface with it. Typically may be. Each sensor contains a header which allows to interface with it.
a sensor is represented as a class and instanciated. Typically a sensor is represented as a class and instantiated.
The constructor is expected to initialise the sensor and paramters may be used The constructor is expected to initialise the sensor and parameters may be used
to provide identification/pin location on the board. to provide identification/pin location on the board.
Typically an update() function will be called in order to get new data from the Typically an update() function will be called in order to get new data from the
@ -14,77 +14,44 @@ sensor in order to reduce load when doing multiple reads to sensor data.
### Example ### Example
A sensor/acturo is expected to work as such (here is the servo ES08A api): A sensor/actuator is expected to work as such (here is the servo ES08A API):
@snippet es08a.cxx Interesting @snippet es08a.cxx Interesting
However implementation and API design is compeltely up to the developer, some However implementation and API design is completely up to the developer, some
enumerable sensors for example may provide much clever instanciation. Displays enumerable sensors for example may provide much clever instantiation. Displays
may also create more complex structures in order to interface with them. may also create more complex structures in order to interface with them.
Browse through the list of all [examples](https://github.com/intel-iot-devkit/upm/tree/master/examples).
### Supported Sensors ### Supported Sensors
Temperature Sensors: Supported [sensor list](http://iotdk.intel.com/docs/master/upm/modules.html) from API documentation.
* upm::MAX31723
* upm::MAX31855
* upm::TH02
* upm::GroveTemp
Compass/Gyro/Magnometer Sensors: You can also refer to the [Intel® IoT Developer Zone](https://software.intel.com/iot/sensors).
* upm::Hmc5883l
* upm::MPU9150
* upm::LSM303
Atmospheric Pressure Sensors:
* upm::GY65
Light/Proximity Sensors:
* upm::MAXDS3231M
* upm::MAX44000
* upm::HCSR04
* upm::GroveLight
Gas Sensors:
* upm::MQ2
* upm::MQ3
* upm::MQ5
* upm::MQ9
Displays:
* upm::Jhd1313m1
* upm::Lcm1602
* upm::ST7735
* upm::SSD1308
* upm::SSD1327
LED controllers/segment displays:
* upm::TM1637
* upm::MY9221
RFID:
* upm::SM130
Wireless Communication:
* upm::NRF24l01
Servo/motors:
* upm::ES08A
* upm::StepMotor
Digital potentiometer
* upm::MAX5487
Electricity sensor
* upm::ECS1030
### Building UPM ### Building UPM
See @ref building See @ref building [here](docs/building.md).
### Making your own UPM module ### Making your own UPM module
@ref porting has more information on making new UPM modules @ref porting [link](docs/porting.md) has more information on making new UPM modules.
There is also an example available for @ref max31855 [sensor](docs/max31855.md).
### Naming conventions and rules for new UPM contributions
Before you begin development, take a look at our @ref naming [conventions](docs/naming.md).
Also, please read the guidelines for @ref contributions [to UPM](docs/contributions.md).
Don't forget to check the @ref documentation [section](docs/documentation.md).
Make sure you add yourself as an author on every new code file submitted.
If you are providing a fix with significant changes, feel free to add yourself
as a contributor. Signing-off your commits is mandatory.
C/C++ API Documentation C/C++ API Documentation
=========== ==============
The C/C++ documentation is available [here](http://iotdk.intel.com/docs/master/upm/) The C/C++ documentation is available [here](http://iotdk.intel.com/docs/master/upm/).

34
TODO
View File

@ -1,34 +0,0 @@
** FIXES **
- LPD8806 & MAX5487 SPI constructor needs bus number etc...
- MAX44000 i2c bus number required...
- TCS3414CS & TH-2 i2c params required
** SENSORS **
Easy:
MAX7221 - SPI 8 digit LED
- https://mbed.org/components/MAX7221/
-
SCA61T - inclinometer SPI
- https://mbed.org/components/SCA61T-Inclinometer/
DS1721 - i2c temperature/thermostat
- https://mbed.org/components/DS1721/
MPL3115A2 - i2c altimeter
- https://mbed.org/components/MPL3115A2/
- http://www.ebay.co.uk/itm/Barometric-Pressure-Altitude-Temperature-Sensor-I2C-MPL3115A2-/221499210102?pt=UK_BOI_Electrical_Test_Measurement_Equipment_ET&hash=item339261b976
TEMT6200 - Ambient light sensor
- https://mbed.org/components/TEMT6200/
CMPS03 - i2c digital compass
- https://mbed.org/components/CMPS03-Digital-Compass/
- http://www.ebay.co.uk/itm/Magnetic-Compass-CMPS03-/221437925374?pt=UK_BOI_Electrical_Test_Measurement_Equipment_ET&hash=item338eba97fe
- http://www.robot-italy.com/it/cmps03-robot-compass-module.html
Medium
E-ink sharp 1.3" LCD
- https://mbed.org/components/13-SHARP-Memory-LCD/
LCD-S401
- https://mbed.org/components/Lumex-LCD-S401/
Hard:
RA8875 - 480x272 SPI 4 wire
- https://mbed.org/components/RA8875-Based-Display/

View File

@ -3,7 +3,15 @@ Building UPM {#building}
UPM uses cmake in order to make compilation relatively painless. Cmake runs UPM uses cmake in order to make compilation relatively painless. Cmake runs
build out of tree so the recommended way is to clone from git and make a build/ build out of tree so the recommended way is to clone from git and make a build/
directory. directory. Failure to do an out-of-source build may cause issues when
rebuilding later on.
This project depends on libmraa, so that needs to be installed first. Use the
following environment variables to configure the paths:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:.../mraa/build/lib/pkgconfig
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:.../mraa/build/include
LIBRARY_PATH=$LIBRARY_PATH:.../mraa/build/lib
UPM will attempt to build all directories inside src/ and they must contain UPM will attempt to build all directories inside src/ and they must contain
individual CMakeLists.txt files. individual CMakeLists.txt files.
@ -15,31 +23,64 @@ cmake ..
make make
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
Our cmake configure has a number of options, cmake-gui or ccmake can show you Our cmake configure has a number of options, *cmake-gui* or *ccmake* can show
all the options. The interesting ones are detailed below: you all the options. The interesting ones are detailed below:
Changing install path from /usr/local to /usr Changing install path from /usr/local to /usr
-DCMAKE_INSTALL_PREFIX:PATH=/usr ~~~~~~~~~~~~~
-DCMAKE_INSTALL_PREFIX:PATH=/usr
~~~~~~~~~~~~~
Building debug build: Building debug build:
-DCMAKE_BUILD_TYPE=DEBUG ~~~~~~~~~~~~~
-DCMAKE_BUILD_TYPE=DEBUG
~~~~~~~~~~~~~
Using clang instead of gcc: Using clang instead of gcc:
-DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ ~~~~~~~~~~~~~
-DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++
~~~~~~~~~~~~~
Cross-compiling on a different system:
~~~~~~~~~~~~~
-DCMAKE_CXX_FLAGS:STRING=-m32 -march=i586
-DCMAKE_C_FLAGS:STRING=-m32 -march=i586
~~~~~~~~~~~~~
Building with an older version of swig (swig 2.0+) requires the disabling of javascript: Building with an older version of swig (swig 2.0+) requires the disabling of javascript:
-DBUILDSWIGNODE=OFF ~~~~~~~~~~~~~
-DBUILDSWIGNODE=OFF
~~~~~~~~~~~~~
Disabling python module building Disabling python module building
-DBUILDSWIGPYTHON=OFF ~~~~~~~~~~~~~
-DBUILDSWIGPYTHON=OFF
~~~~~~~~~~~~~
Setting the python library to use:
~~~~~~~~~~~~~
-DPYTHON_LIBRARY:FILEPATH=/usr/lib/libpython2.7.so.1.0
~~~~~~~~~~~~~
Building doxygen doc Building doxygen doc
-BUILDDOC=ON ~~~~~~~~~~~~~
-BUILDDOC=ON
~~~~~~~~~~~~~
If you intend to turn on all the options and build everything at once (C++,
Node, Python and Documentation) you will have to edit the src/doxy2swig.py file
and change the line endings from Windows style to Linux format. This has to be
repeated every time to sync with the master branch since our Github repository
stores files using CR LF line breaks.
You can also generate the include and lib directories containing all the sensor
headers and library files respectively with *make install*. Further, you may
choose to generate these only for a specific sensor you modified, and this can
be achieved by building from the individual makefile of the sensor. Assuming
you're in the build directory, to make the lcd module you would:
~~~~~~~~~~~~~
cd src/lcd
make install
~~~~~~~~~~~~~
Often developers are only interested in building one module or even just the Often developers are only interested in building one module or even just the
python/node module to do some quick testing using scripting. In order to do python/node module to do some quick testing using scripting. In order to do
this you need to use the target name for the python or node module you want to this you need to use the target name for the python or node module you want to
rebuild. For example the lcd module target name is i2clcd. Therfore the python rebuild. For example the lcd module target name is i2clcd. Therefore the python
module target name will be prefixed by _pyupm_. Just do the following to build module target name will be prefixed by _pyupm_. Just do the following to build
only that module. Modules not using the UPM cmake macros may have different only that module. Modules not using the UPM cmake macros may have different
naming. naming.
@ -49,12 +90,12 @@ make _pyupm_i2clcd
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
Sometimes you want to build a small C++ example against an installed library. Sometimes you want to build a small C++ example against an installed library.
This is fairly easy if installed systemwide. Just link against the correct This is fairly easy if installed system-wide. Just link against the correct
librar (in this case libupm-tm1637) and then add /usr/include/upm to the loader library (in this case libupm-i2clcd) and then add /usr/include/upm to the
path: loader path:
~~~~~~~~~~~~ ~~~~~~~~~~~~
g++ test.cxx -lupm_tm1637 -I/usr/include/upm g++ test.cxx -lupm-i2clcd -I/usr/include/upm
~~~~~~~~~~~~ ~~~~~~~~~~~~
You can also use pkg-config to return the information to you, which is You can also use pkg-config to return the information to you, which is
@ -62,5 +103,5 @@ considered the correct way if including UPM in a build system like cmake or
autotools on linux. autotools on linux.
~~~~~~~~~~~ ~~~~~~~~~~~
pkg-config --cflags --libs upm-tm1637 pkg-config --cflags --libs upm-i2clcd
~~~~~~~~~~~ ~~~~~~~~~~~

View File

@ -2,35 +2,57 @@ Contributing a module {#contributions}
===================== =====================
Here are the rules of contribution: Here are the rules of contribution:
- Your module must have an example that builds against your UPM library - Your new module must have an example that builds against your UPM library.
- Commits must have a sign-off line by everyone who reviewed them - Each commit must have a sign-off line by everyone who authored or reviewed
- Commits must be named <file/module>: Some decent description them.
- Commits must be named `<file/module>: Some decent description`.
- You must license your module under a FOSS license. The recommended license - You must license your module under a FOSS license. The recommended license
is MIT but any permissive license is fine. Please consider that people using is MIT but any permissive license is fine. Please consider that people using
UPM may want to write proprietary programs with your sensors so we like to UPM may want to write proprietary programs with your sensors so we like to
avoid GPL. (LGPL is fine). If your license is not MIT please include a avoid GPL. If your license is not MIT please include a LICENSE file in
LICENSE file in src/mymodule/ src/mymodule/.
- The top of each source file must contain a comment block containing the
license information.
- 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 mraa. If you tested on a specific board/platform please the latest version of libmraa. If you tested on a specific board/platform
tell us what this was in your PR. please tell us what this was in your PR.
- Try not to break master. In any commit. - Try not to break master. In any commit.
- Attempt to have some decent API documentation below are the explicit rules on documentation: - Attempt to have some decent API documentation as described in the the @ref
documentation [guide](documentation.md).
Documentation Including the MIT license
============= =========================
Choosing the [MIT license](http://opensource.org/licenses/MIT) is preferred for
the UPM repository. Below is the comment block needed at the top each source
file:
- Try to have no warnings in doxygen, this is generally fairly easy /*
- Have the specific sensor manufacturer/model & version that you used, if you * The MIT License (MIT)
support multiple versions please list *
- Comments do not need full stops * Author: <your full name>
- Stick to <80 chars per line even in comments * Copyright (c) <year> <copyright holder>
- No text is allowed on the same line as the start or end of a comment /** */ *
- All classes should have a "@brief" and a "@snippet" * Author: <contributing author full name - if applicable>
* Copyright (c) <year> <copyright holder>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
The example should have an 'Interesting' section which will be highlighted as a
code sample in doxygen. Everything in between such tags will show up in the
class documentation when the following is put at the end of a class docstring
as show above.
Code signing Code signing
============ ============
@ -66,7 +88,7 @@ the below:
maintained indefinitely and may be redistributed consistent with maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved. this project or the open source license(s) involved.
then you just add a line saying then you just add a line to each of your commits with `--signoff` saying
Signed-off-by: Random J Developer <random@developer.example.org> Signed-off-by: Random J Developer <random@developer.example.org>

114
docs/documentation.md Normal file
View File

@ -0,0 +1,114 @@
Writing sensor documentation {#documentation}
=====================
It is highly encouraged to provide at least some basic documentation for the
sensors that you want to add to UPM:
- If you don't add documentation, the code review will take very long and
your contribution could be rejected.
- Try to have no warnings in doxygen, this is generally fairly easy.
- Have the specific sensor manufacturer/model & version that you used, if you
support multiple versions please list.
- Simple comments do not need full stops.
- Stick to <80 chars per line even in comments.
- No text is allowed on the same line as the start or end of a comment /** */.
####The sensor block
This is added just before the class declaration in your header(.h) file and has
mandatory fields. For single sensor libraries, this block will actually
follow immediately after the library block. If you have multiple physical
sensors, add this to every one.
Here's an example (disregard the "@verbatim" tags in your actual code):
```
@verbatim
/**
* @library <lib-name>
* @sensor <chip-id>
* @comname <component-name>
* @altname <alt-name>
* @type <component-category>
* @man <component-manufacturer>
* @web <component-weblinks>
* @con <connection-type>
* @kit <component-kit>
*
* @brief Short class/sensor description
*
* Then add a longer
* description here.
*
* @image html <component-img.jpeg>
* @snippet <example-name.cxx> Interesting
*/
@endverbatim
```
- `<lib-name>` When adding to an existing library this needs to match that
library's "@defgroup", otherwise this is a new library name, generally the
same as chip id. *Mandatory*
- `<chip-id>` Usually the chip number used by the sensor. When this is not
available or relevant, use a unique descriptor that makes sense. *Mandatory*
- `<component-name>` A short name for your sensor, can include manufacturer
name. *Mandatory*
- `<alt-name>` Alternative names or chip-ids that your sensor driver might
have or support respectively. *Optional*
- `<component-category>` Mention one or more categories the sensor fits in. Can
be 'other'. *Mandatory*
- `<component-manufacturer>` Sensor manufacturer. Can be 'generic'. *Mandatory*
- `<component-weblinks>` Links to vendors or data-sheets. *Optional*
- `<connection-type>` Specifies how does the sensor connect to the board
*Mandatory*
- `<component-kit>` Specifies if the sensor is part of a kit. *Optional*
Existing groups that can be used for the manufacturer, connection, category and
kit tags are found in the src/upm.h file.
Optionally, a small representative image can be placed in the "docs/images"
subfolder and linked with the "@image" tag.
**Please do not use existing, copyrighted images with your sensors!**
The example should have an 'Interesting' section which will be highlighted as
a code sample in doxygen. Everything in between such tags will show up in the
class documentation when "@snippet" is added at the end of a class docstring.
Tags use this format (in "example-name.cxx"):
```
@verbatim
//! [Interesting]
...example code here...
//! [Interesting]
@endverbatim
```
For more examples take a look at the existing headers in our github repository.
####The library block
New libraries must have the "@brief", "@defgroup" and "@ingroup" tags in one
block. This usually follows the namespace and it is common to have one sensor
per library.
You should end up with something like this:
```
@verbatim
/**
* @brief Short description for entire library
*
* Optional longer description.
*
* @defgroup <lib-name> libupm-<lib-name>
* @ingroup <manufacturer> <connection> <category> (<kit>)
*/
@endverbatim
```
In "@defgroup" use the same `<lib-name>` used in the sensor block. Multiple
sensors can be added to the same library this way.
For "@ingroup" add the same values as in the sensor block for manufacturer,
category, connection type and kit. If you have multiple classes or sensors
per library, only use the "@ingroup" tags that are common for all of them.

BIN
docs/images/es0a.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

BIN
docs/images/grovergblcd.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

BIN
docs/images/hx711.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

BIN
docs/images/mic.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
docs/images/mpr121.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

BIN
docs/images/mpu9150.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
docs/images/mq303a.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

BIN
docs/images/my9221.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
docs/images/nrf24l01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

BIN
docs/images/nrf8001.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

BIN
docs/images/pca9685.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 KiB

BIN
docs/images/ppd42ns.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

BIN
docs/images/pulsensor.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

BIN
docs/images/rfr359f.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

BIN
docs/images/rpr220.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
docs/images/tm1637.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -2,7 +2,7 @@ Making a UPM module for MAX31855 {#max31855}
================================ ================================
The Maxim Integrated MAX31855 is a thermocouple amplifier allowing you to read The Maxim Integrated MAX31855 is a thermocouple amplifier allowing you to read
from a K type themocouple. My board comes from the Pmod kit form Maxim from a K type thermocouple. My board comes from the Pmod kit form Maxim
(MAX31855PMB1) but you can get this from many different sources. The adafruit (MAX31855PMB1) but you can get this from many different sources. The adafruit
people made arduino code already so we'll use that as a people made arduino code already so we'll use that as a
[reference](https://github.com/adafruit/Adafruit-MAX31855-library/blob/master/Adafruit_MAX31855.cpp). [reference](https://github.com/adafruit/Adafruit-MAX31855-library/blob/master/Adafruit_MAX31855.cpp).
@ -69,7 +69,7 @@ the implementation of MAX31855::getTemp()
Then using the arduino code as reference we simply reconstruct form the 4 Then using the arduino code as reference we simply reconstruct form the 4
uint8_t values a 32bit int value and select only the valuable parts of uint8_t values a 32bit int value and select only the valuable parts of
information from that. The MAX31855 datahseet explains exactly which bits are information from that. The MAX31855 datasheet explains exactly which bits are
useful, we will just do the same as the adafruit code, first checking the error useful, we will just do the same as the adafruit code, first checking the error
bit and then scrapping everything but the 14bit of thermocouple data that are bit and then scrapping everything but the 14bit of thermocouple data that are
useful to us and converting it to a double. useful to us and converting it to a double.
@ -78,7 +78,7 @@ useful to us and converting it to a double.
### Finalizing ### Finalizing
Our final example, very easy to use api! Our final example, very easy to use API!
@snippet examples/max31855.cxx Interesting @snippet examples/max31855.cxx Interesting
@ -92,6 +92,6 @@ include_directories (${PROJECT_SOURCE_DIR}/src/max31855)
target_link_libraries (max31855-example max31855 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (max31855-example max31855 ${CMAKE_THREAD_LIBS_INIT})
~~~~~~~~~~~ ~~~~~~~~~~~
Note you dont have to rebuild everything, cmake keeps target lists so if you Note you don't have to rebuild everything, cmake keeps target lists so if you
named your example target modulename-example you can simply do make named your example target modulename-example you can simply do make
max31855-example and both the library & example will build. max31855-example and both the library & example will build.

View File

@ -1,7 +1,7 @@
Naming a module {#naming} Naming a module {#naming}
=============== ===============
UPM attemps to follow a clear naming pattern. Modules should be sensibly named UPM attempts to follow a clear naming pattern. Modules should be sensibly named
and then placed in ${libdir}/upm and headers in ${includedir}/upm, all modules and then placed in ${libdir}/upm and headers in ${includedir}/upm, all modules
should be prefixed with libupm-<modulename>. The upm_module_init will should be prefixed with libupm-<modulename>. The upm_module_init will
automatically name python UPM modules as pyupm_<modulename> and javascript automatically name python UPM modules as pyupm_<modulename> and javascript
@ -21,9 +21,13 @@ jsupm_grove.
Other times this does not. Try to pick a generic name so people with a similar Other times this does not. Try to pick a generic name so people with a similar
sensor can inherit your class if they only have minor changes. sensor can inherit your class if they only have minor changes.
3. Avoid brand names, often your module can be very generic with little effort 3. Avoid brand names, often your module can be very generic with little effort
4. Use only lowercase characters in your file names and folder names.
### Doubt ### Doubt
If ever, give me a ping via email: brendan.le.foll@intel.com and I'll try If ever, give either of us a ping via email:
suggest decent names for your module. mihai.tudor.panu@intel.com
john.r.van.drasek@intel.com
brendan.le.foll@intel.com
and we'll try suggest decent names for your module.

View File

@ -3,7 +3,7 @@ Porting a module from Arduino {#porting}
Porting arduino libraries to libmraa 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 interrupts 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
### Adding a new module to UPM ### Adding a new module to UPM
@ -36,9 +36,9 @@ required to talk to the board's IO. An I2c sensor will create a
mraa_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 preferred, depending on
your sensor/actuaotr this may or may not be easy or not even make sense. Most your sensor/actuator 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 libmraa ### Mapping arduino API to libmraa
@ -59,7 +59,7 @@ the UPM build system.
The last step is when you're happy with your module and it works send us a pull The last step is when you're happy with your module and it works send us a pull
request! We'd love to include your sensor in our repository. request! We'd love to include your sensor in our repository.
If you don't like github you can also send brendan.le.foll@intel.com a git If you don't like github you can also send mihai.tudor.panu@intel.com a git
formatted patch if your sensor. More details are on @ref contributions and on formatted patch of your sensor. More details are on @ref contributions and on
https://help.github.com/articles/creating-a-pull-request https://help.github.com/articles/creating-a-pull-request

View File

@ -51,14 +51,14 @@ PROJECT_BRIEF = "Sensor/Actuator repository for libmraa (v@MRAA_VERSION
# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
# to the output directory. # to the output directory.
PROJECT_LOGO = PROJECT_LOGO =
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is # into which the generated documentation will be written. If a relative path is
# entered, it will be relative to the location where doxygen was started. If # entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used. # left blank the current directory will be used.
OUTPUT_DIRECTORY = OUTPUT_DIRECTORY =
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and # directories (in 2 levels) under the output directory of each output format and
@ -156,7 +156,7 @@ FULL_PATH_NAMES = YES
# will be relative from the directory where doxygen is started. # will be relative from the directory where doxygen is started.
# This tag requires that the tag FULL_PATH_NAMES is set to YES. # This tag requires that the tag FULL_PATH_NAMES is set to YES.
STRIP_FROM_PATH = STRIP_FROM_PATH =
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
# path mentioned in the documentation of a class, which tells the reader which # path mentioned in the documentation of a class, which tells the reader which
@ -165,7 +165,7 @@ STRIP_FROM_PATH =
# specify the list of include paths that are normally passed to the compiler # specify the list of include paths that are normally passed to the compiler
# using the -I flag. # using the -I flag.
STRIP_FROM_INC_PATH = STRIP_FROM_INC_PATH =
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
# less readable) file names. This can be useful is your file systems doesn't # less readable) file names. This can be useful is your file systems doesn't
@ -232,13 +232,21 @@ TAB_SIZE = 4
# "Side Effects:". You can put \n's in the value part of an alias to insert # "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines. # newlines.
ALIASES = ALIASES = library="@ingroup " \
sensor="@li **ID:** " \
comname="@li **Name:** " \
altname="@li **Other Names:** " \
type="@li **Category:** " \
man="@li **Manufacturer:** " \
web="@li **Link:** " \
con="@li **Connection:** " \
kit="@li **Kit:** " \
# This tag can be used to specify a number of word-keyword mappings (TCL only). # This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class" # A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning. # will allow you to use the command class in the itcl::class meaning.
TCL_SUBST = TCL_SUBST =
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For # only. Doxygen will then generate output that is more tailored for C. For
@ -282,7 +290,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen. # the files are not read by doxygen.
EXTENSION_MAPPING = EXTENSION_MAPPING =
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable # according to the Markdown format, which allows for more readable
@ -618,7 +626,7 @@ GENERATE_DEPRECATEDLIST= YES
# sections, marked by \if <section_label> ... \endif and \cond <section_label> # sections, marked by \if <section_label> ... \endif and \cond <section_label>
# ... \endcond blocks. # ... \endcond blocks.
ENABLED_SECTIONS = ENABLED_SECTIONS =
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
# initial value of a variable or macro / define can have for it to appear in the # initial value of a variable or macro / define can have for it to appear in the
@ -660,7 +668,7 @@ SHOW_NAMESPACES = YES
# by doxygen. Whatever the program writes to standard output is used as the file # by doxygen. Whatever the program writes to standard output is used as the file
# version. For an example see the documentation. # version. For an example see the documentation.
FILE_VERSION_FILTER = FILE_VERSION_FILTER =
# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
# by doxygen. The layout file controls the global structure of the generated # by doxygen. The layout file controls the global structure of the generated
@ -673,7 +681,7 @@ FILE_VERSION_FILTER =
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
# tag is left empty. # tag is left empty.
LAYOUT_FILE = @CMAKE_CURRENT_SOURCE_DIR@/DoxygenLayout.xml LAYOUT_FILE = @CMAKE_CURRENT_SOURCE_DIR@/doxy/DoxygenLayout.xml
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib # the reference definitions. This must be a list of .bib files. The .bib
@ -684,7 +692,7 @@ LAYOUT_FILE = @CMAKE_CURRENT_SOURCE_DIR@/DoxygenLayout.xml
# search path. Do not use file names with spaces, bibtex cannot handle them. See # search path. Do not use file names with spaces, bibtex cannot handle them. See
# also \cite for info how to create references. # also \cite for info how to create references.
CITE_BIB_FILES = CITE_BIB_FILES =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to warning and progress messages # Configuration options related to warning and progress messages
@ -743,7 +751,7 @@ WARN_FORMAT = "$file:$line: $text"
# messages should be written. If left blank the output is written to standard # messages should be written. If left blank the output is written to standard
# error (stderr). # error (stderr).
WARN_LOGFILE = WARN_LOGFILE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the input files # Configuration options related to the input files
@ -755,7 +763,8 @@ WARN_LOGFILE =
# spaces. # spaces.
# Note: If this tag is empty the current directory is searched. # Note: If this tag is empty the current directory is searched.
INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src \ INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src/upm.h \
@CMAKE_CURRENT_SOURCE_DIR@/src \
@CMAKE_CURRENT_SOURCE_DIR@/docs \ @CMAKE_CURRENT_SOURCE_DIR@/docs \
@CMAKE_CURRENT_SOURCE_DIR@/README.md @CMAKE_CURRENT_SOURCE_DIR@/README.md
@ -849,9 +858,7 @@ EXCLUDE_SYMLINKS = NO
# Note that the wildcards are matched against the file with absolute path, so to # Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/* # exclude all test directories for example use the pattern */test/*
EXCLUDE_PATTERNS = @PROJECT_SOURCE_DIR@/src/nrf8001/aci* \ EXCLUDE_PATTERNS =
@PROJECT_SOURCE_DIR@/src/nrf8001/lib* \
@PROJECT_SOURCE_DIR@/src/nrf8001/hal*
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the # (namespaces, classes, functions, etc.) that should be excluded from the
@ -862,15 +869,15 @@ EXCLUDE_PATTERNS = @PROJECT_SOURCE_DIR@/src/nrf8001/aci* \
# Note that the wildcards are matched against the file with absolute path, so to # Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/* # exclude all test directories use the pattern */test/*
EXCLUDE_SYMBOLS = EXCLUDE_SYMBOLS = aci_*
# The EXAMPLE_PATH tag can be used to specify one or more files or directories # The EXAMPLE_PATH tag can be used to specify one or more files or directories
# that contain example code fragments that are included (see the \include # that contain example code fragments that are included (see the \include
# command). # command).
EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/examples/ \ EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/examples/c++ \
@CMAKE_CURRENT_SOURCE_DIR@/docs/ \ @CMAKE_CURRENT_SOURCE_DIR@/docs/ \
@CMAKE_CURRENT_SOURCE_DIR@/src/max31855/ @CMAKE_CURRENT_SOURCE_DIR@/src/max31855/
# If the value of the EXAMPLE_PATH tag contains directories, you can use the # If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@ -907,7 +914,7 @@ IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/docs/images/
# code is scanned, but not when the output code is generated. If lines are added # code is scanned, but not when the output code is generated. If lines are added
# or removed, the anchors will not be placed correctly. # or removed, the anchors will not be placed correctly.
INPUT_FILTER = INPUT_FILTER =
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
# basis. Doxygen will compare the file name with each pattern and apply the # basis. Doxygen will compare the file name with each pattern and apply the
@ -916,7 +923,7 @@ INPUT_FILTER =
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied. # patterns match the file name, INPUT_FILTER is applied.
FILTER_PATTERNS = FILTER_PATTERNS =
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER ) will also be used to filter the input files that are used for # INPUT_FILTER ) will also be used to filter the input files that are used for
@ -931,7 +938,7 @@ FILTER_SOURCE_FILES = NO
# *.ext= (so without naming a filter). # *.ext= (so without naming a filter).
# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
FILTER_SOURCE_PATTERNS = FILTER_SOURCE_PATTERNS =
# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
# is part of the input, its contents will be placed on the main page # is part of the input, its contents will be placed on the main page
@ -1050,7 +1057,7 @@ COLS_IN_ALPHA_INDEX = 5
# while generating the index headers. # while generating the index headers.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
IGNORE_PREFIX = IGNORE_PREFIX =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the HTML output # Configuration options related to the HTML output
@ -1094,7 +1101,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation. # of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
HTML_HEADER = HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard # generated HTML page. If the tag is left blank doxygen will generate a standard
@ -1104,7 +1111,7 @@ HTML_HEADER =
# that doxygen normally uses. # that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FOOTER = HTML_FOOTER =
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of # sheet that is used by each HTML page. It can be used to fine-tune the look of
@ -1116,7 +1123,7 @@ HTML_FOOTER =
# obsolete. # obsolete.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
HTML_STYLESHEET = HTML_STYLESHEET =
# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- # The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-
# defined cascading style sheet that is included after the standard style sheets # defined cascading style sheet that is included after the standard style sheets
@ -1127,7 +1134,7 @@ HTML_STYLESHEET =
# see the documentation. # see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_STYLESHEET = HTML_EXTRA_STYLESHEET =
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note # other source files which should be copied to the HTML output directory. Note
@ -1137,7 +1144,7 @@ HTML_EXTRA_STYLESHEET =
# files will be copied as-is; there are no commands or markers available. # files will be copied as-is; there are no commands or markers available.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_FILES = HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the stylesheet and background images according to # will adjust the colors in the stylesheet and background images according to
@ -1265,7 +1272,7 @@ GENERATE_HTMLHELP = NO
# written to the html output directory. # written to the html output directory.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES. # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
CHM_FILE = CHM_FILE =
# The HHC_LOCATION tag can be used to specify the location (absolute path # The HHC_LOCATION tag can be used to specify the location (absolute path
# including file name) of the HTML help compiler ( hhc.exe). If non-empty # including file name) of the HTML help compiler ( hhc.exe). If non-empty
@ -1273,7 +1280,7 @@ CHM_FILE =
# The file has to be specified with full path. # The file has to be specified with full path.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES. # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
HHC_LOCATION = HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated ( # The GENERATE_CHI flag controls if a separate .chi index file is generated (
# YES) or that it should be included in the master .chm file ( NO). # YES) or that it should be included in the master .chm file ( NO).
@ -1286,7 +1293,7 @@ GENERATE_CHI = NO
# and project file content. # and project file content.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES. # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
CHM_INDEX_ENCODING = CHM_INDEX_ENCODING =
# The BINARY_TOC flag controls whether a binary table of contents is generated ( # The BINARY_TOC flag controls whether a binary table of contents is generated (
# YES) or a normal table of contents ( NO) in the .chm file. # YES) or a normal table of contents ( NO) in the .chm file.
@ -1316,7 +1323,7 @@ GENERATE_QHP = NO
# the HTML output folder. # the HTML output folder.
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QCH_FILE = QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace # Project output. For more information please see Qt Help Project / Namespace
@ -1341,7 +1348,7 @@ QHP_VIRTUAL_FOLDER = doc
# filters). # filters).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME = QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom # custom filter to add. For more information please see Qt Help Project / Custom
@ -1349,21 +1356,21 @@ QHP_CUST_FILTER_NAME =
# filters). # filters).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS = QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see: # project's filter section matches. Qt Help Project / Filter Attributes (see:
# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS =
# The QHG_LOCATION tag can be used to specify the location of Qt's # The QHG_LOCATION tag can be used to specify the location of Qt's
# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
# generated .qhp file. # generated .qhp file.
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHG_LOCATION = QHG_LOCATION =
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
# generated, together with the HTML files, they form an Eclipse help plugin. To # generated, together with the HTML files, they form an Eclipse help plugin. To
@ -1496,7 +1503,7 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
# This tag requires that the tag USE_MATHJAX is set to YES. # This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_EXTENSIONS = MATHJAX_EXTENSIONS =
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site # of code that will be used on startup of the MathJax code. See the MathJax site
@ -1504,7 +1511,7 @@ MATHJAX_EXTENSIONS =
# example see the documentation. # example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES. # This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_CODEFILE = MATHJAX_CODEFILE =
# When the SEARCHENGINE tag is enabled doxygen will generate a search box for # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
# the HTML output. The underlying search engine uses javascript and DHTML and # the HTML output. The underlying search engine uses javascript and DHTML and
@ -1564,7 +1571,7 @@ EXTERNAL_SEARCH = NO
# Searching" for details. # Searching" for details.
# This tag requires that the tag SEARCHENGINE is set to YES. # This tag requires that the tag SEARCHENGINE is set to YES.
SEARCHENGINE_URL = SEARCHENGINE_URL =
# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
# search data is written to a file for indexing by an external tool. With the # search data is written to a file for indexing by an external tool. With the
@ -1580,7 +1587,7 @@ SEARCHDATA_FILE = searchdata.xml
# projects and redirect the results back to the right project. # projects and redirect the results back to the right project.
# This tag requires that the tag SEARCHENGINE is set to YES. # This tag requires that the tag SEARCHENGINE is set to YES.
EXTERNAL_SEARCH_ID = EXTERNAL_SEARCH_ID =
# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
# projects other than the one defined by this configuration file, but that are # projects other than the one defined by this configuration file, but that are
@ -1590,7 +1597,7 @@ EXTERNAL_SEARCH_ID =
# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
# This tag requires that the tag SEARCHENGINE is set to YES. # This tag requires that the tag SEARCHENGINE is set to YES.
EXTRA_SEARCH_MAPPINGS = EXTRA_SEARCH_MAPPINGS =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the LaTeX output # Configuration options related to the LaTeX output
@ -1651,7 +1658,7 @@ PAPER_TYPE = a4
# If left blank no extra packages will be included. # If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
EXTRA_PACKAGES = EXTRA_PACKAGES =
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
# generated LaTeX document. The header should contain everything until the first # generated LaTeX document. The header should contain everything until the first
@ -1667,7 +1674,7 @@ EXTRA_PACKAGES =
# PROJECT_NAME), or the project number (see PROJECT_NUMBER). # PROJECT_NAME), or the project number (see PROJECT_NUMBER).
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HEADER = LATEX_HEADER =
# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
# generated LaTeX document. The footer should contain everything after the last # generated LaTeX document. The footer should contain everything after the last
@ -1676,7 +1683,7 @@ LATEX_HEADER =
# Note: Only use a user-defined footer if you know what you are doing! # Note: Only use a user-defined footer if you know what you are doing!
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_FOOTER = LATEX_FOOTER =
# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the LATEX_OUTPUT output # other source files which should be copied to the LATEX_OUTPUT output
@ -1684,7 +1691,7 @@ LATEX_FOOTER =
# markers available. # markers available.
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_EXTRA_FILES = LATEX_EXTRA_FILES =
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
@ -1784,14 +1791,14 @@ RTF_HYPERLINKS = NO
# default style sheet that doxygen normally uses. # default style sheet that doxygen normally uses.
# This tag requires that the tag GENERATE_RTF is set to YES. # This tag requires that the tag GENERATE_RTF is set to YES.
RTF_STYLESHEET_FILE = RTF_STYLESHEET_FILE =
# Set optional variables used in the generation of an RTF document. Syntax is # Set optional variables used in the generation of an RTF document. Syntax is
# similar to doxygen's config file. A template extensions file can be generated # similar to doxygen's config file. A template extensions file can be generated
# using doxygen -e rtf extensionFile. # using doxygen -e rtf extensionFile.
# This tag requires that the tag GENERATE_RTF is set to YES. # This tag requires that the tag GENERATE_RTF is set to YES.
RTF_EXTENSIONS_FILE = RTF_EXTENSIONS_FILE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the man page output # Configuration options related to the man page output
@ -1852,13 +1859,13 @@ XML_OUTPUT = xml
# validating XML parser to check the syntax of the XML files. # validating XML parser to check the syntax of the XML files.
# This tag requires that the tag GENERATE_XML is set to YES. # This tag requires that the tag GENERATE_XML is set to YES.
XML_SCHEMA = XML_SCHEMA =
# The XML_DTD tag can be used to specify a XML DTD, which can be used by a # The XML_DTD tag can be used to specify a XML DTD, which can be used by a
# validating XML parser to check the syntax of the XML files. # validating XML parser to check the syntax of the XML files.
# This tag requires that the tag GENERATE_XML is set to YES. # This tag requires that the tag GENERATE_XML is set to YES.
XML_DTD = XML_DTD =
# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
# listings (including syntax highlighting and cross-referencing information) to # listings (including syntax highlighting and cross-referencing information) to
@ -1935,7 +1942,7 @@ PERLMOD_PRETTY = YES
# overwrite each other's variables. # overwrite each other's variables.
# This tag requires that the tag GENERATE_PERLMOD is set to YES. # This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_MAKEVAR_PREFIX = PERLMOD_MAKEVAR_PREFIX =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the preprocessor # Configuration options related to the preprocessor
@ -1976,7 +1983,7 @@ SEARCH_INCLUDES = YES
# preprocessor. # preprocessor.
# This tag requires that the tag SEARCH_INCLUDES is set to YES. # This tag requires that the tag SEARCH_INCLUDES is set to YES.
INCLUDE_PATH = INCLUDE_PATH =
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the # patterns (like *.h and *.hpp) to filter out the header-files in the
@ -1984,7 +1991,7 @@ INCLUDE_PATH =
# used. # used.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
INCLUDE_FILE_PATTERNS = INCLUDE_FILE_PATTERNS =
# The PREDEFINED tag can be used to specify one or more macro names that are # The PREDEFINED tag can be used to specify one or more macro names that are
# defined before the preprocessor is started (similar to the -D option of e.g. # defined before the preprocessor is started (similar to the -D option of e.g.
@ -1994,7 +2001,7 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator. # recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
PREDEFINED = PREDEFINED =
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The # tag can be used to specify a list of macro names that should be expanded. The
@ -2003,7 +2010,7 @@ PREDEFINED =
# definition found in the source code. # definition found in the source code.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
# remove all refrences to function-like macros that are alone on a line, have an # remove all refrences to function-like macros that are alone on a line, have an
@ -2032,13 +2039,13 @@ SKIP_FUNCTION_MACROS = YES
# the path). If a tag file is not located in the directory in which doxygen is # the path). If a tag file is not located in the directory in which doxygen is
# run, you must also specify the path to the tagfile here. # run, you must also specify the path to the tagfile here.
TAGFILES = TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create a # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
# tag file that is based on the input files it reads. See section "Linking to # tag file that is based on the input files it reads. See section "Linking to
# external documentation" for more information about the usage of tag files. # external documentation" for more information about the usage of tag files.
GENERATE_TAGFILE = GENERATE_TAGFILE =
# If the ALLEXTERNALS tag is set to YES all external class will be listed in the # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
# class index. If set to NO only the inherited external classes will be listed. # class index. If set to NO only the inherited external classes will be listed.
@ -2086,14 +2093,14 @@ CLASS_DIAGRAMS = NO
# the mscgen tool resides. If left empty the tool is assumed to be found in the # the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path. # default search path.
MSCGEN_PATH = MSCGEN_PATH =
# You can include diagrams made with dia in doxygen documentation. Doxygen will # You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The # then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides. # DIA_PATH tag allows you to specify the directory where the dia binary resides.
# If left empty dia is assumed to be found in the default search path. # If left empty dia is assumed to be found in the default search path.
DIA_PATH = DIA_PATH =
# If set to YES, the inheritance and collaboration graphs will hide inheritance # If set to YES, the inheritance and collaboration graphs will hide inheritance
# and usage relations if the target is undocumented or is not a class. # and usage relations if the target is undocumented or is not a class.
@ -2142,7 +2149,7 @@ DOT_FONTSIZE = 10
# the path where dot can find it using this tag. # the path where dot can find it using this tag.
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTPATH = DOT_FONTPATH =
# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
# each documented class showing the direct and indirect inheritance relations. # each documented class showing the direct and indirect inheritance relations.
@ -2280,26 +2287,26 @@ INTERACTIVE_SVG = NO
# found. If left blank, it is assumed the dot tool can be found in the path. # found. If left blank, it is assumed the dot tool can be found in the path.
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag HAVE_DOT is set to YES.
DOT_PATH = DOT_PATH =
# The DOTFILE_DIRS tag can be used to specify one or more directories that # The DOTFILE_DIRS tag can be used to specify one or more directories that
# contain dot files that are included in the documentation (see the \dotfile # contain dot files that are included in the documentation (see the \dotfile
# command). # command).
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag HAVE_DOT is set to YES.
DOTFILE_DIRS = DOTFILE_DIRS =
# The MSCFILE_DIRS tag can be used to specify one or more directories that # The MSCFILE_DIRS tag can be used to specify one or more directories that
# contain msc files that are included in the documentation (see the \mscfile # contain msc files that are included in the documentation (see the \mscfile
# command). # command).
MSCFILE_DIRS = MSCFILE_DIRS =
# The DIAFILE_DIRS tag can be used to specify one or more directories that # The DIAFILE_DIRS tag can be used to specify one or more directories that
# contain dia files that are included in the documentation (see the \diafile # contain dia files that are included in the documentation (see the \diafile
# command). # command).
DIAFILE_DIRS = DIAFILE_DIRS =
# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
# that will be shown in the graph. If the number of nodes in a graph becomes # that will be shown in the graph. If the number of nodes in a graph becomes

View File

@ -4,17 +4,18 @@
<navindex> <navindex>
<tab type="mainpage" visible="yes" title=""/> <tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/> <tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="UPM libraries" intro="Here is a <tab type="modules" visible="yes" title="UPM Libraries" intro="Here is a
list of UPM libraries that can be used. Note that each of the classes list of UPM libraries that can be used. Note that each of the classes
listed in these libraries are completely seperate so you will need to link listed in these libraries are completely separate so you will need to link
against all those that you have used in your program"/> <tab against all those that you have used in your program. Use the hierarchical
tree to filter between different types of sensors."/> <tab
type="namespaces" visible="yes" title=""> type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/> <tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/> <tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab> </tab>
<tab type="classes" visible="yes" title=""> <tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/> <tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/> <tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/> <tab type="classmembers" visible="yes" title="" intro=""/>
</tab> </tab>
@ -22,7 +23,7 @@
<tab type="filelist" visible="yes" title="" intro=""/> <tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/> <tab type="globals" visible="yes" title="" intro=""/>
</tab> </tab>
<tab type="examples" visible="yes" title="" intro=""/> <tab type="examples" visible="yes" title="" intro=""/>
</navindex> </navindex>
<!-- Layout definition for a class page --> <!-- Layout definition for a class page -->
@ -143,7 +144,7 @@
<briefdescription visible="yes"/> <briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/> <groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl> <memberdecl>
<nestedgroups visible="yes" title=""/> <nestedgroups visible="yes" title="Libraries"/>
<dirs visible="yes" title=""/> <dirs visible="yes" title=""/>
<files visible="yes" title=""/> <files visible="yes" title=""/>
<namespaces visible="yes" title=""/> <namespaces visible="yes" title=""/>

View File

@ -1,27 +1,31 @@
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/examples)
add_executable (hmc5883l-example hmc5883l.cxx) add_executable (hmc5883l-example hmc5883l.cxx)
add_executable (groveled-example groveled.cxx) add_executable (groveled-example groveled.cxx)
add_executable (groveled-multi-example groveled-multi.cxx)
add_executable (groverelay-example groverelay.cxx) add_executable (groverelay-example groverelay.cxx)
add_executable (grovelight-example grovelight.cxx) add_executable (grovelight-example grovelight.cxx)
add_executable (grovetemp-example grovetemp.cxx) add_executable (grovetemp-example grovetemp.cxx)
add_executable (grovebutton-example grovebutton.cxx) add_executable (grovebutton-example grovebutton.cxx)
add_executable (groverotary-example groverotary.cxx) add_executable (groverotary-example groverotary.cxx)
add_executable (groveslide-example groveslide.cxx) add_executable (groveslide-example groveslide.cxx)
add_executable (lcm-lcd-example lcm-lcd.cxx) add_executable (lcm1602-lcd-example lcm1602-lcd.cxx)
add_executable (rgb-lcd-example rgb-lcd.cxx) add_executable (jhd1313m1-lcd-example jhd1313m1-lcd.cxx)
add_executable (buzzer-sound-example buzzer-sound.cxx) add_executable (buzzer-sound-example buzzer-sound.cxx)
add_executable (led-bar-example led-bar.cxx) add_executable (my9221-ledbar-example my9221-ledbar.cxx)
add_executable (seg-lcd-example 4digitdisplay.cxx) add_executable (my9221-updown-example my9221-updown.cxx)
add_executable (nrf_transmitter-example nrf_transmitter.cxx) add_executable (nrf24l01-transmitter-example nrf24l01-transmitter.cxx)
add_executable (nrf_receiver-example nrf_receiver.cxx) add_executable (nrf24l01-receiver-example nrf24l01-receiver.cxx)
add_executable (nrf24l01-broadcast-example nrf24l01-broadcast.cxx)
add_executable (es08a-example es08a.cxx) add_executable (es08a-example es08a.cxx)
add_executable (son-hcsr04-example hcsr04.cxx) add_executable (son-hcsr04-example hcsr04.cxx)
add_executable (oled-1308-example oled-1308.cxx) add_executable (ssd1308-oled-example ssd1308-oled.cxx)
add_executable (oled-1327-example oled-1327.cxx) add_executable (ssd1327-oled-example ssd1327-oled.cxx)
add_executable (max44000-example max44000.cxx) add_executable (max44000-example max44000.cxx)
add_executable (mma7455-example mma7455.cxx) add_executable (mma7455-example mma7455.cxx)
add_executable (st7735-example st7735.cxx) add_executable (st7735-example st7735.cxx)
add_executable (max31855-example max31855.cxx) add_executable (max31855-example max31855.cxx)
add_executable (gy65-example gy65.cxx) add_executable (bmpx8x-example bmpx8x.cxx)
add_executable (stepmotor-example stepmotor.cxx) add_executable (stepmotor-example stepmotor.cxx)
add_executable (pulsensor-example pulsensor.cxx) add_executable (pulsensor-example pulsensor.cxx)
add_executable (mic-example mic.cxx) add_executable (mic-example mic.cxx)
@ -29,8 +33,8 @@ add_executable (mpu9150-example mpu9150.cxx)
add_executable (maxds3231m-example maxds3231m.cxx) add_executable (maxds3231m-example maxds3231m.cxx)
add_executable (max31723-example max31723.cxx) add_executable (max31723-example max31723.cxx)
add_executable (max5487-example max5487.cxx) add_executable (max5487-example max5487.cxx)
add_executable (nrf8001-broadcast-example nrf8001_broadcast.cxx) add_executable (nrf8001-broadcast-example nrf8001-broadcast.cxx)
add_executable (nrf8001-helloworld-example nrf8001_helloworld.cxx) add_executable (nrf8001-helloworld-example nrf8001-helloworld.cxx)
add_executable (lpd8806-example lpd8806.cxx) add_executable (lpd8806-example lpd8806.cxx)
add_executable (mlx90614-example mlx90614.cxx) add_executable (mlx90614-example mlx90614.cxx)
add_executable (ecs1030-example ecs1030.cxx) add_executable (ecs1030-example ecs1030.cxx)
@ -45,7 +49,6 @@ add_executable (ttp223-example ttp223.cxx)
add_executable (lsm303-example lsm303.cxx) add_executable (lsm303-example lsm303.cxx)
add_executable (joystick12-example joystick12-example.cxx) add_executable (joystick12-example joystick12-example.cxx)
add_executable (lol-example lol-example.cxx) add_executable (lol-example lol-example.cxx)
add_executable (nrf_ble_broadcast-example ble_broadcast.cxx)
add_executable (tsl2561-example tsl2561.cxx) add_executable (tsl2561-example tsl2561.cxx)
add_executable (htu21d-example htu21d.cxx) add_executable (htu21d-example htu21d.cxx)
add_executable (mpl3115a2-example mpl3115a2.cxx) add_executable (mpl3115a2-example mpl3115a2.cxx)
@ -56,7 +59,7 @@ add_executable (enc03r-example enc03r.cxx)
add_executable (adc121c021-example adc121c021.cxx) add_executable (adc121c021-example adc121c021.cxx)
add_executable (ds1307-example ds1307.cxx) add_executable (ds1307-example ds1307.cxx)
add_executable (a110x-example a110x.cxx) add_executable (a110x-example a110x.cxx)
add_executable (gp2y0a21yk-example gp2y0a21yk.cxx) add_executable (gp2y0a-example gp2y0a.cxx)
add_executable (grovemoisture-example grovemoisture.cxx) add_executable (grovemoisture-example grovemoisture.cxx)
add_executable (groveehr-example groveehr.cxx) add_executable (groveehr-example groveehr.cxx)
add_executable (ta12200-example ta12200.cxx) add_executable (ta12200-example ta12200.cxx)
@ -74,19 +77,49 @@ add_executable (mq303a-example mq303a.cxx)
add_executable (grovespeaker-example grovespeaker.cxx) add_executable (grovespeaker-example grovespeaker.cxx)
add_executable (rfr359f-example rfr359f.cxx) add_executable (rfr359f-example rfr359f.cxx)
add_executable (biss0001-example biss0001.cxx) add_executable (biss0001-example biss0001.cxx)
add_executable (my9221-example my9221.cxx)
add_executable (grove_mcfled-example grove_mcfled.cxx)
add_executable (rotaryencoder-example rotaryencoder.cxx) add_executable (rotaryencoder-example rotaryencoder.cxx)
add_executable (adxl345-example adxl345.cxx) add_executable (adxl345-example adxl345.cxx)
add_executable (rpr220-example rpr220.cxx) add_executable (rpr220-example rpr220.cxx)
add_executable (rpr220-intr-example rpr220-intr.cxx) add_executable (rpr220-intr-example rpr220-intr.cxx)
add_executable (mma7660-example mma7660.cxx)
add_executable (cjq4435-example cjq4435.cxx)
add_executable (adxl335-example adxl335.cxx)
add_executable (hmtrp-example hmtrp.cxx)
add_executable (nunchuck-example nunchuck.cxx)
add_executable (otp538u-example otp538u.cxx)
add_executable (grovecollision-example grovecollision.cxx)
add_executable (groveelectromagnet-example groveelectromagnet.cxx)
add_executable (groveemg-example groveemg.cxx)
add_executable (groveo2-example groveo2.cxx)
add_executable (grovegsr-example grovegsr.cxx)
add_executable (ina132-example ina132.cxx)
add_executable (l298-example l298.cxx)
add_executable (l298-stepper-example l298-stepper.cxx)
add_executable (at42qt1070-example at42qt1070.cxx)
add_executable (grovemd-example grovemd.cxx)
add_executable (pca9685-example pca9685.cxx)
add_executable (groveeldriver-example groveeldriver.cxx)
add_executable (adafruitss-example adafruitss.cxx)
add_executable (adafruitms1438-example adafruitms1438.cxx)
add_executable (adafruitms1438-stepper-example adafruitms1438-stepper.cxx)
add_executable (hx711-example hx711.cxx)
add_executable (flex-example flex.cxx)
add_executable (a110x-intr-example a110x-intr.cxx)
add_executable (mhz16-example mhz16.cxx)
add_executable (apds9002-example apds9002.cxx)
add_executable (waterlevel-example waterlevel.cxx)
add_executable (tm1637-example tm1637.cxx)
add_executable (zfm20-example zfm20.cxx)
add_executable (zfm20-register-example zfm20-register.cxx)
add_executable (uln200xa-example uln200xa.cxx)
add_executable (grovewfs-example grovewfs.cxx)
add_executable (isd1820-example isd1820.cxx)
include_directories (${PROJECT_SOURCE_DIR}/src/hmc5883l) include_directories (${PROJECT_SOURCE_DIR}/src/hmc5883l)
include_directories (${PROJECT_SOURCE_DIR}/src/grove) include_directories (${PROJECT_SOURCE_DIR}/src/grove)
include_directories (${PROJECT_SOURCE_DIR}/src/lcd) include_directories (${PROJECT_SOURCE_DIR}/src/lcd)
include_directories (${PROJECT_SOURCE_DIR}/src/buzzer) include_directories (${PROJECT_SOURCE_DIR}/src/buzzer)
include_directories (${PROJECT_SOURCE_DIR}/src/my9221) include_directories (${PROJECT_SOURCE_DIR}/src/my9221)
include_directories (${PROJECT_SOURCE_DIR}/src/tm1637)
include_directories (${PROJECT_SOURCE_DIR}/src/nrf24l01) include_directories (${PROJECT_SOURCE_DIR}/src/nrf24l01)
include_directories (${PROJECT_SOURCE_DIR}/src/servo) include_directories (${PROJECT_SOURCE_DIR}/src/servo)
include_directories (${PROJECT_SOURCE_DIR}/src/hcsr04) include_directories (${PROJECT_SOURCE_DIR}/src/hcsr04)
@ -94,7 +127,7 @@ include_directories (${PROJECT_SOURCE_DIR}/src/max44000)
include_directories (${PROJECT_SOURCE_DIR}/src/mma7455) include_directories (${PROJECT_SOURCE_DIR}/src/mma7455)
include_directories (${PROJECT_SOURCE_DIR}/src/st7735) include_directories (${PROJECT_SOURCE_DIR}/src/st7735)
include_directories (${PROJECT_SOURCE_DIR}/src/max31855) include_directories (${PROJECT_SOURCE_DIR}/src/max31855)
include_directories (${PROJECT_SOURCE_DIR}/src/gy65) include_directories (${PROJECT_SOURCE_DIR}/src/bmpx8x)
include_directories (${PROJECT_SOURCE_DIR}/src/stepmotor) include_directories (${PROJECT_SOURCE_DIR}/src/stepmotor)
include_directories (${PROJECT_SOURCE_DIR}/src/pulsensor) include_directories (${PROJECT_SOURCE_DIR}/src/pulsensor)
include_directories (${PROJECT_SOURCE_DIR}/src/mic) include_directories (${PROJECT_SOURCE_DIR}/src/mic)
@ -123,7 +156,7 @@ include_directories (${PROJECT_SOURCE_DIR}/src/enc03r)
include_directories (${PROJECT_SOURCE_DIR}/src/adc121c021) include_directories (${PROJECT_SOURCE_DIR}/src/adc121c021)
include_directories (${PROJECT_SOURCE_DIR}/src/ds1307) include_directories (${PROJECT_SOURCE_DIR}/src/ds1307)
include_directories (${PROJECT_SOURCE_DIR}/src/a110x) include_directories (${PROJECT_SOURCE_DIR}/src/a110x)
include_directories (${PROJECT_SOURCE_DIR}/src/gp2y0a21yk) include_directories (${PROJECT_SOURCE_DIR}/src/gp2y0a)
include_directories (${PROJECT_SOURCE_DIR}/src/grovemoisture) include_directories (${PROJECT_SOURCE_DIR}/src/grovemoisture)
include_directories (${PROJECT_SOURCE_DIR}/src/groveehr) include_directories (${PROJECT_SOURCE_DIR}/src/groveehr)
include_directories (${PROJECT_SOURCE_DIR}/src/ta12200) include_directories (${PROJECT_SOURCE_DIR}/src/ta12200)
@ -141,35 +174,65 @@ include_directories (${PROJECT_SOURCE_DIR}/src/mq303a)
include_directories (${PROJECT_SOURCE_DIR}/src/grovespeaker) include_directories (${PROJECT_SOURCE_DIR}/src/grovespeaker)
include_directories (${PROJECT_SOURCE_DIR}/src/rfr359f) include_directories (${PROJECT_SOURCE_DIR}/src/rfr359f)
include_directories (${PROJECT_SOURCE_DIR}/src/biss0001) include_directories (${PROJECT_SOURCE_DIR}/src/biss0001)
include_directories (${PROJECT_SOURCE_DIR}/src/my9221)
include_directories (${PROJECT_SOURCE_DIR}/src/rotaryencoder) include_directories (${PROJECT_SOURCE_DIR}/src/rotaryencoder)
include_directories (${PROJECT_SOURCE_DIR}/src/adxl345) include_directories (${PROJECT_SOURCE_DIR}/src/adxl345)
include_directories (${PROJECT_SOURCE_DIR}/src/rpr220) include_directories (${PROJECT_SOURCE_DIR}/src/rpr220)
include_directories (${PROJECT_SOURCE_DIR}/src/mma7660)
include_directories (${PROJECT_SOURCE_DIR}/src/cjq4435)
include_directories (${PROJECT_SOURCE_DIR}/src/adxl335)
include_directories (${PROJECT_SOURCE_DIR}/src/hmtrp)
include_directories (${PROJECT_SOURCE_DIR}/src/nunchuck)
include_directories (${PROJECT_SOURCE_DIR}/src/otp538u)
include_directories (${PROJECT_SOURCE_DIR}/src/grovecollision)
include_directories (${PROJECT_SOURCE_DIR}/src/groveelectromagnet)
include_directories (${PROJECT_SOURCE_DIR}/src/groveemg)
include_directories (${PROJECT_SOURCE_DIR}/src/groveo2)
include_directories (${PROJECT_SOURCE_DIR}/src/grovegsr)
include_directories (${PROJECT_SOURCE_DIR}/src/ina132)
include_directories (${PROJECT_SOURCE_DIR}/src/l298)
include_directories (${PROJECT_SOURCE_DIR}/src/at42qt1070)
include_directories (${PROJECT_SOURCE_DIR}/src/grovemd)
include_directories (${PROJECT_SOURCE_DIR}/src/pca9685)
include_directories (${PROJECT_SOURCE_DIR}/src/groveeldriver)
include_directories (${PROJECT_SOURCE_DIR}/src/adafruitss)
include_directories (${PROJECT_SOURCE_DIR}/src/adafruitms1438)
include_directories (${PROJECT_SOURCE_DIR}/src/hx711)
include_directories (${PROJECT_SOURCE_DIR}/src/flex)
include_directories (${PROJECT_SOURCE_DIR}/src/mhz16)
include_directories (${PROJECT_SOURCE_DIR}/src/apds9002)
include_directories (${PROJECT_SOURCE_DIR}/src/waterlevel)
include_directories (${PROJECT_SOURCE_DIR}/src/tm1637)
include_directories (${PROJECT_SOURCE_DIR}/src/zfm20)
include_directories (${PROJECT_SOURCE_DIR}/src/uln200xa)
include_directories (${PROJECT_SOURCE_DIR}/src/grovewfs)
include_directories (${PROJECT_SOURCE_DIR}/src/isd1820)
target_link_libraries (hmc5883l-example hmc5883l ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (hmc5883l-example hmc5883l ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groveled-example grove ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (groveled-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groveled-multi-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groverelay-example grove ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (groverelay-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovelight-example grove ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (grovelight-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovetemp-example grove ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (grovetemp-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovebutton-example grove ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (grovebutton-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groverotary-example grove ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (groverotary-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groveslide-example grove ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (groveslide-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (lcm-lcd-example i2clcd ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (lcm1602-lcd-example i2clcd ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (rgb-lcd-example i2clcd ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (jhd1313m1-lcd-example i2clcd ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (buzzer-sound-example buzzer ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (buzzer-sound-example buzzer ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (led-bar-example my9221 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (my9221-ledbar-example my9221 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (seg-lcd-example tm1637 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (my9221-updown-example my9221 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (nrf_transmitter-example nrf24l01 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (nrf24l01-transmitter-example nrf24l01 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (nrf_receiver-example nrf24l01 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (nrf24l01-receiver-example nrf24l01 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (nrf24l01-broadcast-example nrf24l01 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (es08a-example servo ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (es08a-example servo ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (son-hcsr04-example hcsr04 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (son-hcsr04-example hcsr04 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (oled-1308-example i2clcd ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (ssd1308-oled-example i2clcd ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (oled-1327-example i2clcd ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (ssd1327-oled-example i2clcd ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (max44000-example max44000 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (max44000-example max44000 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (mma7455-example mma7455 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (mma7455-example mma7455 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (st7735-example st7735 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (st7735-example st7735 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (max31855-example max31855 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (max31855-example max31855 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (gy65-example gy65 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (bmpx8x-example bmpx8x ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (stepmotor-example stepmotor ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (stepmotor-example stepmotor ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (pulsensor-example pulsensor ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (pulsensor-example pulsensor ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (mic-example mic ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (mic-example mic ${CMAKE_THREAD_LIBS_INIT})
@ -193,7 +256,6 @@ target_link_libraries (ttp223-example ttp223 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (lsm303-example lsm303 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (lsm303-example lsm303 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (joystick12-example joystick12 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (joystick12-example joystick12 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (lol-example lol ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (lol-example lol ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (nrf_ble_broadcast-example nrf24l01 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (tsl2561-example tsl2561 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (tsl2561-example tsl2561 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (htu21d-example htu21d ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (htu21d-example htu21d ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (mpl3115a2-example mpl3115a2 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (mpl3115a2-example mpl3115a2 ${CMAKE_THREAD_LIBS_INIT})
@ -204,7 +266,7 @@ target_link_libraries (enc03r-example enc03r ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (adc121c021-example adc121c021 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (adc121c021-example adc121c021 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (ds1307-example ds1307 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (ds1307-example ds1307 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (a110x-example a110x ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (a110x-example a110x ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (gp2y0a21yk-example gp2y0a21yk ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (gp2y0a-example gp2y0a ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovemoisture-example grovemoisture ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (grovemoisture-example grovemoisture ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groveehr-example groveehr ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (groveehr-example groveehr ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (ta12200-example ta12200 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (ta12200-example ta12200 ${CMAKE_THREAD_LIBS_INIT})
@ -222,9 +284,40 @@ target_link_libraries (mq303a-example mq303a ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovespeaker-example grovespeaker ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (grovespeaker-example grovespeaker ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (rfr359f-example rfr359f ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (rfr359f-example rfr359f ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (biss0001-example biss0001 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (biss0001-example biss0001 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (my9221-example my9221 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grove_mcfled-example grove ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (rotaryencoder-example rotaryencoder ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (rotaryencoder-example rotaryencoder ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (adxl345-example adxl345 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (adxl345-example adxl345 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (rpr220-example rpr220 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (rpr220-example rpr220 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (rpr220-intr-example rpr220 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (rpr220-intr-example rpr220 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (mma7660-example mma7660 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (cjq4435-example cjq4435 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (adxl335-example adxl335 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (hmtrp-example hmtrp ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (nunchuck-example nunchuck ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (otp538u-example otp538u ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovecollision-example grovecollision ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groveelectromagnet-example groveelectromagnet ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groveemg-example groveemg ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groveo2-example groveo2 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovegsr-example grovegsr ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (ina132-example ina132 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (l298-example l298 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (l298-stepper-example l298 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (at42qt1070-example at42qt1070 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovemd-example grovemd ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (pca9685-example pca9685 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (groveeldriver-example groveeldriver ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (adafruitss-example adafruitss ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (adafruitms1438-example adafruitms1438 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (adafruitms1438-stepper-example adafruitms1438 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (hx711-example hx711 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (flex-example flex ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (a110x-intr-example a110x ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (mhz16-example mhz16 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (apds9002-example apds9002 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (waterlevel-example waterlevel ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (tm1637-example tm1637 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (zfm20-example zfm20 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (zfm20-register-example zfm20 ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (uln200xa-example uln200xa ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (grovewfs-example grovewfs ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries (isd1820-example isd1820 ${CMAKE_THREAD_LIBS_INIT})

View File

@ -0,0 +1,76 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "a110x.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
// Our pulse counter
volatile unsigned int counter = 0;
// Our interrupt handler
void hallISR(void *arg)
{
counter++;
}
int main ()
{
signal(SIGINT, sig_handler);
//! [Interesting]
// Instantiate an A110X sensor on digital pin D2
upm::A110X* hall = new upm::A110X(2);
// This example uses a user-supplied interrupt handler to count
// pulses that occur when a magnetic field of the correct polarity
// is detected. This could be used to measure the rotations per
// minute (RPM) of a rotor for example.
hall->installISR(hallISR, NULL);
while (shouldRun)
{
cout << "Pulses detected: " << counter << endl;
sleep(1);
}
//! [Interesting]
cout << "Exiting..." << endl;
delete hall;
return 0;
}

View File

@ -0,0 +1,82 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <signal.h>
#include <iostream>
#include "adafruitms1438.h"
using namespace std;
using namespace upm;
int main(int argc, char **argv)
{
//! [Interesting]
// Instantiate an Adafruit MS 1438 on I2C bus 0
upm::AdafruitMS1438 *ms =
new upm::AdafruitMS1438(ADAFRUITMS1438_I2C_BUS,
ADAFRUITMS1438_DEFAULT_I2C_ADDR);
// Setup for use with a stepper motor connected to the M1 & M2 ports
// set a PWM period of 50Hz
// disable first, to be safe
ms->disableStepper(AdafruitMS1438::STEPMOTOR_M12);
// configure for a NEMA-17, 200 steps per revolution
ms->stepConfig(AdafruitMS1438::STEPMOTOR_M12, 200);
// set speed at 10 RPM's
ms->setStepperSpeed(AdafruitMS1438::STEPMOTOR_M12, 10);
ms->setStepperDirection(AdafruitMS1438::STEPMOTOR_M12,
AdafruitMS1438::DIR_CW);
// enable
cout << "Enabling..." << endl;
ms->enableStepper(AdafruitMS1438::STEPMOTOR_M12);
cout << "Rotating 1 full revolution at 10 RPM speed." << endl;
ms->stepperSteps(AdafruitMS1438::STEPMOTOR_M12, 200);
cout << "Sleeping for 2 seconds..." << endl;
sleep(2);
cout << "Rotating 1/2 revolution in opposite direction at 10 RPM speed."
<< endl;
ms->setStepperDirection(AdafruitMS1438::STEPMOTOR_M12,
AdafruitMS1438::DIR_CCW);
ms->stepperSteps(AdafruitMS1438::STEPMOTOR_M12, 100);
cout << "Disabling..." << endl;
ms->disableStepper(AdafruitMS1438::STEPMOTOR_M12);
cout << "Exiting" << endl;
//! [Interesting]
delete ms;
return 0;
}

View File

@ -0,0 +1,75 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <signal.h>
#include <iostream>
#include "adafruitms1438.h"
using namespace std;
using namespace upm;
int main(int argc, char **argv)
{
//! [Interesting]
// Instantiate an Adafruit MS 1438 on I2C bus 0
upm::AdafruitMS1438 *ms =
new upm::AdafruitMS1438(ADAFRUITMS1438_I2C_BUS,
ADAFRUITMS1438_DEFAULT_I2C_ADDR);
// Setup for use with a DC motor connected to the M3 port
// set a PWM period of 50Hz
ms->setPWMPeriod(50);
// disable first, to be safe
ms->disableMotor(AdafruitMS1438::MOTOR_M3);
// set speed at 50%
ms->setMotorSpeed(AdafruitMS1438::MOTOR_M3, 50);
ms->setMotorDirection(AdafruitMS1438::MOTOR_M3, AdafruitMS1438::DIR_CW);
cout << "Spin M3 at half speed for 3 seconds, then reverse for 3 seconds."
<< endl;
ms->enableMotor(AdafruitMS1438::MOTOR_M3);
sleep(3);
cout << "Reversing M3" << endl;
ms->setMotorDirection(AdafruitMS1438::MOTOR_M3, AdafruitMS1438::DIR_CCW);
sleep(3);
cout << "Stopping M3" << endl;
ms->disableMotor(AdafruitMS1438::MOTOR_M3);
cout << "Exiting" << endl;
//! [Interesting]
delete ms;
return 0;
}

View File

@ -0,0 +1,77 @@
/*
* Author: Stan Gifford <stan@gifford.id.au>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/**
* Description
* Demo program for Adafruit 16 channel servo shield/controller
* Physical setup for tests is a single servo attached to one channel.
* Note - when 3 or more GWS servos attached results unpredictable.
* Adafruit do recommend a Cap be installed on the board which should alleviate the issue.
* I (and Adafruit) are unable to give any Capacitor sizing data.
*/
#include <iostream>
#include "adafruitss.h"
#include <unistd.h>
using namespace std;
int main() {
int n;
//! [Interesting]
upm::adafruitss* servos = new upm::adafruitss(6,0x40);
for (;;)
{
cout << "Setting all to 0" << endl;
for (n = 0; n < 16; n++)
servos->servo(n, 1, 0); // GWS Mini Servo = Type 1.
usleep(1000000); // Wait 1 second
cout << "Setting all to 45" << endl;
for (n = 0; n < 16; n++)
servos->servo(n, 1, 45);
usleep(1000000); // Wait 1 second
cout << "Setting all to 90" << endl;
for (n = 0; n < 16; n++)
servos->servo(n, 1, 90);
usleep(1000000); // Wait 1 second
cout << "Setting all to 135" << endl;
for (n = 0; n < 16; n++)
servos->servo(n, 1, 135);
usleep(1000000); // Wait 1 second
cout << "Setting all to 180" << endl;
for (n = 0; n < 16; n++)
servos->servo(n, 1, 160);
usleep(2000000); // Wait 1 second
}
//! [Interesting]
return 0;
}

View File

@ -0,0 +1,66 @@
//////////////////////////////////////////////////////////////////////////////////////
// The MIT License (MIT)
//
// Submit Date: 03/09/2015
// Author: Juan Jose Chong <juanjchong@gmail.com>
// Copyright (c) 2015 Juan Jose Chong
//
//////////////////////////////////////////////////////////////////////////////////////
// adis16448.cxx
//////////////////////////////////////////////////////////////////////////////////////
//
// This example code runs on an Intel Edison and uses mraa to acquire data
// from an ADIS16448. This data is then scaled and printed onto the terminal.
//
// This software has been tested to connect to an ADIS16448 through a level shifter
// such as the TI TXB0104. The SPI lines (DIN, DOUT, SCLK, /CS) are all wired through
// the level shifter and the ADIS16448 is also being powered by the Intel Edison.
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//////////////////////////////////////////////////////////////////////////////////////
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "adis16448.h"
int
main(int argc, char **argv)
{
while(true)
{
//! [Interesting]
upm::ADIS16448* imu = new upm::ADIS16448(0,3); //upm::ADIS16448(SPI,RST)
//Read the specified register, scale it, and display it on the screen
std::cout << "XGYRO_OUT:" << imu->gyroScale(imu->regRead(XGYRO_OUT)) << std::endl;
std::cout << "YGYRO_OUT:" << imu->gyroScale(imu->regRead(YGYRO_OUT)) << std::endl;
std::cout << "ZGYRO_OUT:" << imu->gyroScale(imu->regRead(ZGYRO_OUT)) << std::endl;
std::cout << " " << std::endl;
std::cout << "XACCL_OUT:" << imu->accelScale(imu->regRead(XACCL_OUT)) << std::endl;
std::cout << "YACCL_OUT:" << imu->accelScale(imu->regRead(YACCL_OUT)) << std::endl;
std::cout << "ZACCL_OUT:" << imu->accelScale(imu->regRead(ZACCL_OUT)) << std::endl;
std::cout << " " << std::endl;
//! [Interesting]
sleep(1);
}
return (0);
}

78
examples/c++/adxl335.cxx Normal file
View File

@ -0,0 +1,78 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "adxl335.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main ()
{
signal(SIGINT, sig_handler);
//! [Interesting]
// Instantiate an ADXL335 accelerometer on analog pins A0, A1, and A2
upm::ADXL335* accel = new upm::ADXL335(0, 1, 2);
cout << "Please make sure the sensor is completely still. Sleeping for"
<< " 2 seconds." << endl;
sleep(2);
cout << "Calibrating..." << endl;
accel->calibrate();
while (shouldRun)
{
int x, y, z;
float aX, aY, aZ;
accel->values(&x, &y, &z);
cout << "Raw Values: X: " << x << " Y: " << y << " Z: " << z << endl;
accel->acceleration(&aX, &aY, &aZ);
cout << "Acceleration: X: " << aX << "g" << endl;
cout << "Acceleration: Y: " << aY << "g" << endl;
cout << "Acceleration: Z: " << aZ << "g" << endl;
cout << endl;
usleep(200000);
}
//! [Interesting]
cout << "Exiting" << endl;
delete accel;
return 0;
}

0
examples/am2315.cxx → examples/c++/am2315.cxx Executable file → Normal file
View File

62
examples/c++/apds9002.cxx Normal file
View File

@ -0,0 +1,62 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "apds9002.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main ()
{
signal(SIGINT, sig_handler);
//! [Interesting]
// Instantiate a Grove Luminance sensor on analog pin A0
upm::APDS9002* luminance = new upm::APDS9002(0);
while (shouldRun)
{
int val = luminance->value();
cout << "Luminance value is " << val << endl;
sleep(1);
}
//! [Interesting]
cout << "Exiting" << endl;
delete luminance;
return 0;
}

View File

@ -0,0 +1,90 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <signal.h>
#include <iostream>
#include "at42qt1070.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
void printButtons(upm::AT42QT1070 *touch)
{
bool buttonPressed = false;
uint8_t buttons = touch->getButtons();
cout << "Buttons Pressed: ";
for (int i=0; i<7; i++)
{
if (buttons & (1 << i))
{
cout << i << " ";
buttonPressed = true;
}
}
if (!buttonPressed)
cout << "None";
cout << endl;
if (touch->isCalibrating())
cout << "Calibration is occurring." << endl;
if (touch->isOverflowed())
cout << "Overflow was detected." << endl;
}
int main(int argc, char **argv)
{
signal(SIGINT, sig_handler);
//! [Interesting]
// Instantiate an AT42QT1070 on I2C bus 0
upm::AT42QT1070 *touch = new upm::AT42QT1070(AT42QT1070_I2C_BUS,
AT42QT1070_DEFAULT_I2C_ADDR);
while (shouldRun)
{
touch->updateState();
printButtons(touch);
usleep(100000);
}
//! [Interesting]
cout << "Exiting..." << endl;
delete touch;
return 0;
}

View File

@ -24,11 +24,11 @@
#include <unistd.h> #include <unistd.h>
#include <iostream> #include <iostream>
#include "gy65.h" #include "bmpx8x.h"
#include <signal.h> #include <signal.h>
int doWork = 0; int doWork = 0;
upm::GY65 *sensor = NULL; upm::BMPX8X *sensor = NULL;
void void
sig_handler(int signo) sig_handler(int signo)
@ -49,8 +49,8 @@ main(int argc, char **argv)
float altitude = 0; float altitude = 0;
uint32_t sealevel = 0; uint32_t sealevel = 0;
// Instantiate a GY65 sensor on I2C // Instantiate a BMPX8X sensor on I2C
sensor = new upm::GY65(0, ADDR); sensor = new upm::BMPX8X(0, ADDR);
// Print the pressure, altitude, sea level, and // Print the pressure, altitude, sea level, and
// temperature values every 0.1 seconds // temperature values every 0.1 seconds

77
examples/c++/cjq4435.cxx Normal file
View File

@ -0,0 +1,77 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "cjq4435.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main ()
{
signal(SIGINT, sig_handler);
//! [Interesting]
// Instantiate a CJQ4435 MOSFET on a PWM capable digital pin D3
upm::CJQ4435* mosfet = new upm::CJQ4435(3);
mosfet->setPeriodMS(10);
mosfet->enable(true);
while (shouldRun)
{
// start with a duty cycle of 0.0 (off) and increment to 1.0 (on)
for (float i=0.0; i <= 1.0; i+=0.1)
{
mosfet->setDutyCycle(i);
usleep(100000);
}
sleep(1);
// Now take it back down
// start with a duty cycle of 1.0 (on) and decrement to 0.0 (off)
for (float i=1.0; i >= 0.0; i-=0.1)
{
mosfet->setDutyCycle(i);
usleep(100000);
}
sleep(1);
}
//! [Interesting]
cout << "Exiting..." << endl;
delete mosfet;
return 0;
}

66
examples/c++/flex.cxx Normal file
View File

@ -0,0 +1,66 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "flex.h"
using namespace std;
bool shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main()
{
signal(SIGINT, sig_handler);
//! [Interesting]
// The was tested with a Spectra Symbol flex sensor.
// We attached a 22K resistor to a breadboard,
// with 1 end attached to GND and the other connected to
// both the flex sensor and A0.
// The flex sensor was connected on 1 pin to the 22K resistor and A0
// and on the other pin to 5V.
// Instantiate a Flex sensor on analog pin A0
upm::Flex *flex = new upm::Flex(0);
while (shouldRun)
{
cout << "Flex value: " << flex->value() << endl;
sleep(1);
}
//! [Interesting]
cout << "Exiting" << endl;
delete flex;
return 0;
}

View File

@ -25,14 +25,14 @@
#include <unistd.h> #include <unistd.h>
#include <iostream> #include <iostream>
#include <signal.h> #include <signal.h>
#include "gp2y0a21yk.h" #include "gp2y0a.h"
using namespace std; using namespace std;
bool shouldRun = true; bool shouldRun = true;
// analog voltage, usually 3.3 or 5.0 // analog voltage, usually 3.3 or 5.0
#define GP2Y0A21YK_AREF 5.0 #define GP2Y0A_AREF 5.0
#define SAMPLES_PER_QUERY 20 #define SAMPLES_PER_QUERY 20
void sig_handler(int signo) void sig_handler(int signo)
@ -46,21 +46,21 @@ int main()
signal(SIGINT, sig_handler); signal(SIGINT, sig_handler);
//! [Interesting] //! [Interesting]
// Note, for the Grove version of this sensor, due to the way it is wired, // Note, for the Grove 80cm version of this sensor, due to the way
// you need to plug this into the A0 port, where it will use the available // it is wired, you need to plug this into the A0 port, where it
// A1 pin for data. // will use the available A1 pin for data.
// Instantiate a GP2Y0A21YK on analog pin A1 // Instantiate a GP2Y0A on analog pin A1
upm::GP2Y0A21YK *volts = new upm::GP2Y0A21YK(1); upm::GP2Y0A *volts = new upm::GP2Y0A(1);
// The higher the voltage (closer to AREF) the closer the object is. NOTE: // The higher the voltage (closer to AREF) the closer the object is. NOTE:
// the measured voltage will probably not exceed 3.3 volts. // the measured voltage will probably not exceed 3.3 volts.
// Every second, print the averaged voltage value (averaged over 20 samples). // Every second, print the averaged voltage value (averaged over 20 samples).
while (shouldRun) while (shouldRun)
{ {
cout << "AREF: " << GP2Y0A21YK_AREF cout << "AREF: " << GP2Y0A_AREF
<< ", Voltage value (higher means closer): " << ", Voltage value (higher means closer): "
<< volts->value(GP2Y0A21YK_AREF, SAMPLES_PER_QUERY) << endl; << volts->value(GP2Y0A_AREF, SAMPLES_PER_QUERY) << endl;
sleep(1); sleep(1);
} }

View File

@ -0,0 +1,69 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <iostream>
#include <unistd.h>
#include <signal.h>
#include "grovecollision.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main(int argc, char **argv)
{
signal(SIGINT, sig_handler);
//! [Interesting]
// The was tested with the Grove Collision Sensor
// Instantiate a Grove Collision on digital pin D2
upm::GroveCollision* collision = new upm::GroveCollision(2);
bool collisionState = false;
cout << "No collision" << endl;
while (shouldRun)
{
if (collision->isColliding() && !collisionState)
{
cout << "Collision!" << endl;
collisionState = true;
}
else if (collisionState)
{
cout << "No collision" << endl;
collisionState = false;
}
}
//! [Interesting]
cout << "Exiting" << endl;
delete collision;
return 0;
}

View File

@ -0,0 +1,66 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <iostream>
#include <unistd.h>
#include <signal.h>
#include "groveeldriver.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main(int argc, char **argv)
{
signal(SIGINT, sig_handler);
//! [Interesting]
// The was tested with the Grove El Driver Module
// Instantiate a Grove El Driver on digital pin D2
upm::GroveElDriver* eldriver = new upm::GroveElDriver(2);
bool lightState = true;
while (shouldRun)
{
if (lightState)
eldriver->on();
else
eldriver->off();
lightState = !lightState;
sleep(1);
}
//! [Interesting]
eldriver->off();
cout << "Exiting" << endl;
delete eldriver;
return 0;
}

View File

@ -0,0 +1,79 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <iostream>
#include <time.h>
#include <signal.h>
#include "groveelectromagnet.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
float get_time()
{
return ((float)(clock()))/CLOCKS_PER_SEC;
}
int main(int argc, char **argv)
{
signal(SIGINT, sig_handler);
//! [Interesting]
// The was tested with the Grove Electromagnetic Module
// Instantiate a Grove Electromagnet on digital pin D2
upm::GroveElectromagnet* magnet = new upm::GroveElectromagnet(2);
cout << "Starting up magnet...." << endl;
magnet->off();
bool magnetState = false;
float time_passed = get_time();
// Turn magnet on and off every 5 seconds
while (shouldRun)
{
if ((get_time() - time_passed) > 5.0)
{
magnetState = !magnetState;
if (magnetState)
magnet->on();
else
magnet->off();
cout << "Turning magnet " << ((magnetState) ? "on" : "off") << endl;
time_passed = get_time();
}
}
//! [Interesting]
magnet->off();
cout << "Exiting" << endl;
delete magnet;
return 0;
}

60
examples/c++/groveemg.cxx Normal file
View File

@ -0,0 +1,60 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "groveemg.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main(int argc, char **argv)
{
signal(SIGINT, sig_handler);
//! [Interesting]
// The was tested with the GroveEMG Muscle Signal Reader Sensor Module
// Instantiate a GroveEMG on analog pin A0
upm::GroveEMG *emg = new upm::GroveEMG(0);
cout << "Calibrating...." << endl;
emg->calibrate();
while (shouldRun)
{
cout << emg->value() << endl;
usleep(100000);
}
//! [Interesting]
cout << "Exiting" << endl;
delete emg;
return 0;
}

63
examples/c++/grovegsr.cxx Normal file
View File

@ -0,0 +1,63 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "grovegsr.h"
using namespace std;
bool shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main()
{
signal(SIGINT, sig_handler);
//! [Interesting]
// The was tested with the GroveGSR Galvanic Skin Response Sensor module.
// Instantiate a GroveGSR on analog pin A0
upm::GroveGSR *gsr = new upm::GroveGSR(0);
cout << "Calibrating...." << endl;
gsr->calibrate();
while (shouldRun)
{
cout << gsr->value() << endl;
usleep(500000);
}
//! [Interesting]
cout << "Exiting" << endl;
delete gsr;
return 0;
}

60
examples/c++/grovemd.cxx Normal file
View File

@ -0,0 +1,60 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2014 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <signal.h>
#include <iostream>
#include "grovemd.h"
using namespace std;
int main(int argc, char **argv)
{
//! [Interesting]
// Instantiate an I2C Grove Motor Driver on I2C bus 0
upm::GroveMD *motors = new upm::GroveMD(GROVEMD_I2C_BUS,
GROVEMD_DEFAULT_I2C_ADDR);
// set direction to CW and set speed to 50%
cout << "Spin M1 and M2 at half speed for 3 seconds" << endl;
motors->setMotorDirections(upm::GroveMD::DIR_CW, upm::GroveMD::DIR_CW);
motors->setMotorSpeeds(127, 127);
sleep(3);
// counter clockwise
cout << "Reversing M1 and M2 for 3 seconds" << endl;
motors->setMotorDirections(upm::GroveMD::DIR_CCW, upm::GroveMD::DIR_CCW);
sleep(3);
//! [Interesting]
cout << "Stopping motors" << endl;
motors->setMotorSpeeds(0, 0);
cout << "Exiting..." << endl;
delete motors;
return 0;
}

57
examples/c++/groveo2.cxx Normal file
View File

@ -0,0 +1,57 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "groveo2.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main(int argc, char **argv)
{
signal(SIGINT, sig_handler);
//! [Interesting]
// The was tested with the O2 Oxygen Concentration Sensor Module
// Instantiate a GroveO2 on analog pin A0
upm::GroveO2 *O2 = new upm::GroveO2(0);
while (shouldRun)
{
cout << "The output voltage is: " << O2->voltageValue() << "mV" << endl;
usleep(100000);
}
//! [Interesting]
cout << "Exiting" << endl;
delete O2;
return 0;
}

78
examples/c++/grovewfs.cxx Normal file
View File

@ -0,0 +1,78 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2014 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "grovewfs.h"
using namespace std;
int shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main()
{
signal(SIGINT, sig_handler);
//! [Interesting]
// Instantiate a Grove Water Flow Sensor on digital pin D2
upm::GroveWFS* flow = new upm::GroveWFS(2);
// set the flow counter to 0 and start counting
flow->clearFlowCounter();
flow->startFlowCounter();
while (shouldRun)
{
// we grab these (,illis and flowCount) just for display
// purposes in this example
uint32_t millis = flow->getMillis();
uint32_t flowCount = flow->flowCounter();
float fr = flow->flowRate();
// output milliseconds passed, flow count, and computed flow rate
cout << "Millis: " << millis << " Flow Count: " << flowCount;
cout << " Flow Rate: " << fr << " LPM" << endl;
// best to gather data for at least one second for reasonable
// results.
sleep(2);
}
flow->stopFlowCounter();
//! [Interesting]
cout << "Exiting..." << endl;
delete flow;
return 0;
}

164
examples/c++/hmtrp.cxx Normal file
View File

@ -0,0 +1,164 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "hmtrp.h"
using namespace std;
bool shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
void printUsage()
{
cout << "Usage:" << endl;
cout << "Pass a commandline argument (any argument) to this program"
<< endl;
cout << "to query the radio configuration and output it. NOTE: the"
<< endl;
cout << "radio must be in CONFIG mode for this to work."
<< endl;
cout << endl;
cout << "Running this program without arguments will simply transmit"
<< endl;
cout << "'Hello World!' every second, and output any data received from"
<< endl;
cout << "another radio."
<< endl;
cout << endl;
}
const size_t bufferLength = 256;
int main (int argc, char **argv)
{
signal(SIGINT, sig_handler);
//! [Interesting]
// Instantiate a HMTRP radio device on uart 0
upm::HMTRP* radio = new upm::HMTRP(0);
// make sure port is initialized properly. 9600 baud is the default.
if (!radio->setupTty(B9600))
{
cerr << "Failed to setup tty port parameters" << endl;
return 1;
}
printUsage();
// By default, this radio simply transmits data sent via writeData()
// and reads any available data via readData().
// It can be placed into a configuration mode by grounding the
// CONFIG pin on the module. When this is done, the various
// configuration query and config methods can be used. In this
// example, by default, we just read any data available fom the
// device, and periodically transmit "Hello World".
// If any argument was specified on the command line, do a simple
// configuration query and output the results. The radio must be in
// CONFIG mode for this to work.
if (argc > 1)
{
// config mode
uint32_t freq;
uint32_t dataRate;
uint16_t rxBandwidth;
uint8_t modulation;
uint8_t txPower;
uint32_t uartBaud;
if (radio->getConfig(&freq, &dataRate, &rxBandwidth, &modulation,
&txPower, &uartBaud))
{
cout << "Radio configuration:" << endl;
cout << "freq: " << freq << " dataRate: " << dataRate
<< " rxBandwidth: " << rxBandwidth << "Khz" << endl;
cout << "modulation: " << int(modulation) << "Khz txPower: "
<< int(txPower) << " uartBaud: " << uartBaud << endl;
}
else
{
cerr << "getConfig() failed. Make sure the radio is in "
<< "CONFIG mode." << endl;
}
}
else
{
// normal read/write mode
char radioBuffer[bufferLength];
int counter = 0;
cout << "Running in normal read/write mode." << endl;
while (shouldRun)
{
// we don't want the read to block in this example, so always
// check to see if data is available first.
if (radio->dataAvailable())
{
int rv = radio->readData(radioBuffer, bufferLength);
if (rv > 0)
cout << "Received: " << radioBuffer << endl;
if (rv < 0) // some sort of read error occured
{
cerr << "Port read error." << endl;
break;
}
continue;
}
usleep(100000); // 100ms
counter++;
// every second, transmit "Hello World"
if (counter > 10)
{
static const char *hello = "Hello World!";
cout << "Transmitting hello world..." << endl;
radio->writeData((char *)hello, strlen(hello) + 1);
counter = 0;
}
}
}
//! [Interesting]
cout << "Exiting..." << endl;
delete radio;
return 0;
}

43
examples/c++/hx711.cxx Normal file
View File

@ -0,0 +1,43 @@
/*
*
* Author: Rafael da Mata Neri <rafael.neri@gmail.com>
* Copyright (c) 2015 Intel Corporation.
*
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
//! [Interesting]
#include "hx711.h"
int
main(int argc, char **argv)
{
upm::HX711 *scale = new upm::HX711(3, 2);
// 2837: value obtained via calibration
scale->setScale(2837);
scale->tare();
std::cout << scale->getUnits() << std::endl;
return 0;
}
//! [Interesting]

61
examples/c++/ina132.cxx Normal file
View File

@ -0,0 +1,61 @@
/*
* Author: Zion Orent <zorent@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "ina132.h"
using namespace std;
bool shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main()
{
signal(SIGINT, sig_handler);
//! [Interesting]
// The was tested with the INA132 Differential Amplifier Sensor module.
// Instantiate an INA132 on analog pin A0
upm::INA132 *amplifier = new upm::INA132(0);
while (shouldRun)
{
cout << amplifier->value() << endl;
sleep(1);
}
//! [Interesting]
cout << "Exiting" << endl;
delete amplifier;
return 0;
}

80
examples/c++/isd1820.cxx Normal file
View File

@ -0,0 +1,80 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include <signal.h>
#include "isd1820.h"
using namespace std;
int main (int argc, char **argv)
{
//! [Interesting]
// Instantiate a ISD1820 on digital pins 2 (play) and 3 (record)
// This example was tested on the Grove Recorder.
upm::ISD1820* recorder = new upm::ISD1820(2, 3);
// if an argument was specified (any argument), go into record mode,
// else playback a previously recorded sample
cout << "Supply any argument to the command line to record." << endl;
cout << "Running this example without arguments will play back any " << endl;
cout << "previously recorded sound." << endl;
cout << "There is approximately 10 seconds of recording time." << endl;
cout << endl;
bool doRecord = false;
if (argc > 1)
doRecord = true;
// depending on what was selected, do it, and sleep for 15 seconds
if (doRecord)
recorder->record(true);
else
recorder->play(true);
// There are about 10 seconds of recording/playback time, so we will
// sleep for a little extra time.
cout << "Sleeping for 15 seconds..." << endl;
sleep(15);
// now, turn off whatever we were doing.
if (doRecord)
recorder->record(false);
else
recorder->play(false);
//! [Interesting]
cout << "Exiting..." << endl;
delete recorder;
return 0;
}

View File

@ -0,0 +1,61 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include "l298.h"
using namespace std;
int main ()
{
//! [Interesting]
// Instantiate a Stepper motor on a L298 Dual H-Bridge.
// This was tested with the NEMA-17 12V, 350mA, with 200 steps per rev.
upm::L298* l298 = new upm::L298(200, 3, 4, 7, 8, 9);
l298->setSpeed(10); // 10 RPMs
l298->setDirection(upm::L298::DIR_CW);
l298->enable(true);
cout << "Rotating 1 full revolution at 10 RPM speed." << endl;
// move 200 steps, a full rev
l298->stepperSteps(200);
cout << "Sleeping for 2 seconds..." << endl;
sleep(2);
cout << "Rotating 1/2 revolution in opposite direction at 10 RPM speed."
<< endl;
l298->setDirection(upm::L298::DIR_CCW);
l298->stepperSteps(100);
// release
l298->enable(false);
//! [Interesting]
cout << "Exiting..." << endl;
delete l298;
return 0;
}

61
examples/c++/l298.cxx Normal file
View File

@ -0,0 +1,61 @@
/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2015 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <iostream>
#include "l298.h"
using namespace std;
int main ()
{
//! [Interesting]
// Instantiate one of the 2 possible DC motors on a L298 Dual
// H-Bridge. For controlling a stepper motor, see the l298-stepper
// example.
upm::L298* l298 = new upm::L298(3, 4, 7);
cout << "Starting motor at 50% for 3 seconds..." << endl;
l298->setSpeed(50);
l298->setDirection(upm::L298::DIR_CW);
l298->enable(true);
sleep(3);
cout << "Reversing direction..." << endl;
l298->setDirection(upm::L298::DIR_NONE); // fast stop
l298->setDirection(upm::L298::DIR_CCW);
sleep(3);
l298->setSpeed(0);
l298->enable(false);
//! [Interesting]
cout << "Exiting..." << endl;
delete l298;
return 0;
}

Some files were not shown because too many files have changed in this diff Show More