diff --git a/examples/c++/CMakeLists.txt b/examples/c++/CMakeLists.txt index 7e4200ed..179755bb 100644 --- a/examples/c++/CMakeLists.txt +++ b/examples/c++/CMakeLists.txt @@ -167,7 +167,7 @@ add_example (adxl335) add_example (hmtrp) add_example (nunchuck) add_example (otp538u) -add_example (grovecollision) +add_example (collision) add_example (groveelectromagnet) add_example (emg) add_example (o2) diff --git a/examples/c++/grovecollision.cxx b/examples/c++/collision.cxx similarity index 90% rename from examples/c++/grovecollision.cxx rename to examples/c++/collision.cxx index e7ad0f8d..0d9f19fc 100644 --- a/examples/c++/grovecollision.cxx +++ b/examples/c++/collision.cxx @@ -24,7 +24,7 @@ #include #include #include -#include "grovecollision.hpp" +#include "collision.hpp" using namespace std; @@ -41,9 +41,9 @@ 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); + // The was tested with the Collision Sensor + // Instantiate a Collision on digital pin D2 + upm::Collision* collision = new upm::Collision(2); bool collisionState = false; cout << "No collision" << endl; diff --git a/examples/c/CMakeLists.txt b/examples/c/CMakeLists.txt index 67b74069..5771211b 100644 --- a/examples/c/CMakeLists.txt +++ b/examples/c/CMakeLists.txt @@ -113,6 +113,7 @@ add_example (gp2y0a) add_example (ttp223) add_example (loudness) add_example (tsl2561) +add_example (collision) # Custom examples add_custom_example (nmea_gps_i2c-example-c nmea_gps_i2c.c nmea_gps) diff --git a/examples/c/collision.c b/examples/c/collision.c new file mode 100644 index 00000000..df3bce71 --- /dev/null +++ b/examples/c/collision.c @@ -0,0 +1,22 @@ +//Modified: Abhishek Malik + +#include +#include +#include +#include +#include +#include "collision.h" + +int main() +{ + collision_context dev = collision_init(2); + bool abc = 0; + while(1){ + if(collision_is_colliding(dev, &abc) != UPM_SUCCESS){ + printf("an error has occured\n"); + } + upm_delay(1); + printf("value retrieved: %d\n", abc); + } + collision_close(dev); +} diff --git a/examples/c/main_mvs0608.c b/examples/c/main_mvs0608.c new file mode 100644 index 00000000..4a056d21 --- /dev/null +++ b/examples/c/main_mvs0608.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2012-2014 Wind River Systems, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +#define SLEEPTICKS MSEC(200) +#if defined(CONFIG_STDOUT_CONSOLE) +#include +#define PRINT printf +#else +#include +#define PRINT printk +#endif + +/* + * @file + * @brief Hello World demo + * Nanokernel version of hello world demo + */ + + +void main(void) +{ + mraa_init(); + struct nano_timer timer; + void *timer_data[1]; + nano_timer_init(&timer, timer_data); + mvs0608_context dev = mvs0608_init(2); + bool abc = 0; + while(1){ + if(mvs0608_is_colliding(dev, &abc) != UPM_SUCCESS){ + printf("an error has occured\n"); + } + nano_timer_start(&timer, SLEEPTICKS); + nano_timer_test(&timer, TICKS_UNLIMITED); + printf("value retrieved: %d\n", abc); + } + mvs0608_close(dev); +} diff --git a/examples/java/CMakeLists.txt b/examples/java/CMakeLists.txt index 8bac10d0..8632b4f3 100644 --- a/examples/java/CMakeLists.txt +++ b/examples/java/CMakeLists.txt @@ -32,7 +32,7 @@ add_example(ENC03RSample enc03r) add_example(ES08ASample servo) add_example(GroveButtonSample grove) add_example(GroveButton_intrSample grove) -add_example(GroveCollision grovecollision) +add_example(Collision collision) add_example(GroveEHRSample groveehr) add_example(Emg emg) add_example(Gsr gsr) diff --git a/examples/java/GroveCollision.java b/examples/java/Collision.java similarity index 91% rename from examples/java/GroveCollision.java rename to examples/java/Collision.java index e1ace72e..a89c4ff5 100644 --- a/examples/java/GroveCollision.java +++ b/examples/java/Collision.java @@ -22,13 +22,13 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -import upm_grovecollision.*; +import upm_collision.*; -public class GroveCollision { +public class Collision { public static void main(String[] args) { // Initializing the sensor on D2 on the Base Shield - upm_grovecollision.GroveCollision collision = new upm_grovecollision.GroveCollision(2); + upm_collision.Collision collision = new upm_collision.Collision(2); boolean collisionState = false; // ! [Interesting] diff --git a/examples/javascript/grovecollision.js b/examples/javascript/collision.js similarity index 90% rename from examples/javascript/grovecollision.js rename to examples/javascript/collision.js index 7fa1c0a9..6607bf1d 100644 --- a/examples/javascript/grovecollision.js +++ b/examples/javascript/collision.js @@ -22,11 +22,11 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -var collision_lib = require("jsupm_grovecollision"); +var collision_lib = require("jsupm_collision"); -// The was tested with the Grove Collision Sensor -// Instantiate a Grove Collision on digital pin D2 -var collision_obj = new collision_lib.GroveCollision(2); +// The was tested with the Collision Sensor +// Instantiate a Collision on digital pin D2 +var collision_obj = new collision_lib.Collision(2); var collisionState = false; console.log("No collision"); diff --git a/examples/python/grovecollision.py b/examples/python/collision.py similarity index 83% rename from examples/python/grovecollision.py rename to examples/python/collision.py index 6cdd05cf..463aba9b 100644 --- a/examples/python/grovecollision.py +++ b/examples/python/collision.py @@ -22,11 +22,11 @@ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. import time, sys, signal, atexit -import pyupm_grovecollision as upmGrovecollision +import pyupm_collision as upmcollision -# The was tested with the Grove Collision Sensor -# Instantiate a Grove Collision on digital pin D2 -myGrovecollision = upmGrovecollision.GroveCollision(2) +# The was tested with the Collision Sensor +# Instantiate a Collision on digital pin D2 +mycollision = upmcollision.Collision(2) ## Exit handlers ## @@ -49,9 +49,9 @@ collisionState = False print "No collision" while(1): - if (myGrovecollision.isColliding() and not collisionState): + if (mycollision.isColliding() and not collisionState): print "Collision!" collisionState = True - elif (not myGrovecollision.isColliding() and collisionState): + elif (not mycollision.isColliding() and collisionState): print "No collision" collisionState = False diff --git a/src/collision/CMakeLists.txt b/src/collision/CMakeLists.txt new file mode 100644 index 00000000..c5f200f7 --- /dev/null +++ b/src/collision/CMakeLists.txt @@ -0,0 +1,9 @@ +upm_mixed_module_init (NAME collision + DESCRIPTION "upm collisionsensor module" + C_HDR collision.h + C_SRC collision.c + CPP_HDR collision.hpp + CPP_SRC collision.cxx + FTI_SRC collision_fti.c + CPP_WRAPS_C + REQUIRES mraa) \ No newline at end of file diff --git a/src/grovecollision/grovecollision.c b/src/collision/collision.c similarity index 85% rename from src/grovecollision/grovecollision.c rename to src/collision/collision.c index 90c332af..4dcc0c37 100644 --- a/src/grovecollision/grovecollision.c +++ b/src/collision/collision.c @@ -23,11 +23,11 @@ * 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 "grovecollision.h" +#include "collision.h" -mvs0608_context mvs0608_init(int pin){ - mvs0608_context dev = - (mvs0608_context)malloc(sizeof(struct _mvs0608_context)); +collision_context collision_init(int pin){ + collision_context dev = + (collision_context)malloc(sizeof(struct _collision_context)); if (!dev) return NULL; @@ -44,11 +44,11 @@ mvs0608_context mvs0608_init(int pin){ return dev; } -void mvs0608_close(mvs0608_context dev){ +void collision_close(collision_context dev){ free(dev); } -upm_result_t mvs0608_is_colliding(mvs0608_context dev, bool* collision_val){ +upm_result_t collision_is_colliding(collision_context dev, bool* collision_val){ int value = mraa_gpio_read(dev->gpio); if(!value) diff --git a/src/grovecollision/grovecollision.cxx b/src/collision/collision.cxx similarity index 92% rename from src/grovecollision/grovecollision.cxx rename to src/collision/collision.cxx index d83e02ea..5d79f9ed 100644 --- a/src/grovecollision/grovecollision.cxx +++ b/src/collision/collision.cxx @@ -25,11 +25,11 @@ #include #include -#include "grovecollision.hpp" +#include "collision.hpp" using namespace upm; -GroveCollision::GroveCollision(int pin) +Collision::Collision(int pin) { if ( !(m_gpio = mraa_gpio_init(pin)) ) @@ -41,12 +41,12 @@ GroveCollision::GroveCollision(int pin) mraa_gpio_dir(m_gpio, MRAA_GPIO_IN); } -GroveCollision::~GroveCollision() +Collision::~Collision() { mraa_gpio_close(m_gpio); } -bool GroveCollision::isColliding() +bool Collision::isColliding() { // Collisions cause 0; no collision is 1 return (!(bool)mraa_gpio_read(m_gpio)); diff --git a/src/grovecollision/grovecollision.h b/src/collision/collision.h similarity index 77% rename from src/grovecollision/grovecollision.h rename to src/collision/collision.h index 559699ab..3fefe2a8 100644 --- a/src/grovecollision/grovecollision.h +++ b/src/collision/collision.h @@ -22,8 +22,8 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef MVS0608_H_ -#define MVS0608_H_ +#ifndef COLLISION_H_ +#define COLLISION_H_ #include #include @@ -33,49 +33,50 @@ #include "mraa/gpio.h" /** - * @brief MVS0608 - Grove Collision Sensor library + * @brief MVS0608 - GPIO Collision Sensor library * @ingroup gpio accelerometer */ /** - * @library mvs0608 - * @sensor mvs0608 - * @comname Grove Collision Sensor + * @library collision + * @sensor Collision + * @comname Collision Sensor + * @altname Grove Collision Sensor * @type accelerometer * @con gpio * - * @brief API for the mvs0608 + * @brief API for the Collision Sensor * * MVS0608 can detect whether any * collision movement or vibration happens. * It outputs a low pulse signal when vibration is detected. * * @image html grovecollision.jpg - * @snippet grovecollision.cxx Interesting + * @snippet collision.c Interesting */ /** * device context */ -typedef struct _mvs0608_context { +typedef struct _collision_context { mraa_gpio_context gpio; uint8_t gpio_pin; -} *mvs0608_context; +} *collision_context; /** - * MVS0608 Initialization function + * Collision Initialization function * * @param pin number * @return void* pointer to the sensor struct */ -mvs0608_context mvs0608_init(int pin); +collision_context collision_init(int pin); /** - * MVS0608 Initialization function + * Collision Initialization function * * @param void* pointer to the sensor struct */ -void mvs0608_close(mvs0608_context dev); +void collision_close(collision_context dev); /** * This function tells you whether the sensor has @@ -85,6 +86,6 @@ void mvs0608_close(mvs0608_context dev); * @param bool* pointer to hold the collision value * @return upm_result_t UPM success/error code */ -upm_result_t mvs0608_is_colliding(mvs0608_context dev, bool* collision_val); +upm_result_t collision_is_colliding(collision_context dev, bool* collision_val); -#endif /* MVS0608_H_ */ +#endif /* COLLISION_H_ */ diff --git a/src/grovecollision/grovecollision.hpp b/src/collision/collision.hpp similarity index 78% rename from src/grovecollision/grovecollision.hpp rename to src/collision/collision.hpp index 57b93f61..18c6099e 100644 --- a/src/grovecollision/grovecollision.hpp +++ b/src/collision/collision.hpp @@ -27,40 +27,41 @@ namespace upm { /** - * @brief Grove Collision Sensor library - * @defgroup grovecollision libupm-grovecollision + * @brief Collision Sensor library + * @defgroup collision libupm-collision * @ingroup seeed gpio accelerometer */ /** - * @library grovecollision - * @sensor grovecollision - * @comname Grove Collision Sensor + * @library collision + * @sensor collision + * @comname Collision Sensor + * @altname Grove Collision Sensor * @type accelerometer * @man seeed * @con gpio * - * @brief API for the Grove Collision Sensor + * @brief API for the Collision Sensor * - * The Grove Collision Sensor can detect whether any + * The Collision Sensor can detect whether any * collision movement or vibration happens. * It outputs a low pulse signal when vibration is detected. * * @image html grovecollision.jpg - * @snippet grovecollision.cxx Interesting + * @snippet collision.cxx Interesting */ - class GroveCollision { + class Collision { public: /** - * Grove collision sensor constructor + * Collision sensor constructor * * @param pin Digital pin to use */ - GroveCollision(int pin); + Collision(int pin); /** - * GroveCollision destructor + * Collision destructor */ - ~GroveCollision(); + ~Collision(); /** * @return bool Defines whether something is colliding with sensor */ diff --git a/src/grovecollision/grovecollision_fti.c b/src/collision/collision_fti.c similarity index 57% rename from src/grovecollision/grovecollision_fti.c rename to src/collision/collision_fti.c index 0d639878..bee35162 100644 --- a/src/grovecollision/grovecollision_fti.c +++ b/src/collision/collision_fti.c @@ -22,57 +22,57 @@ * 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 "grovecollision.h" +#include "collision.h" #include "upm_fti.h" /** * This file implements the Function Table Interface (FTI) for this sensor */ -const char upm_mvs0608_name[] = "MVS0608"; -const char upm_mvs0608_description[] = "MVS0608 Grove Collision sensor"; -const upm_protocol_t upm_mvs0608_protocol[] = {UPM_GPIO}; -const upm_sensor_t upm_mvs0608_category[] = {UPM_ELECTRICITY}; +const char upm_collision_name[] = "Collision"; +const char upm_collision_description[] = "Collision sensor"; +const upm_protocol_t upm_collision_protocol[] = {UPM_GPIO}; +const upm_sensor_t upm_collision_category[] = {UPM_ELECTRICITY}; // forward declarations -const upm_sensor_descriptor_t upm_mvs0608_get_descriptor(); -const void* upm_mvs0608_get_ft(upm_sensor_t sensor_type); -void* upm_mvs0608_init_name(); -void upm_mvs0608_close(void* dev); +const upm_sensor_descriptor_t upm_collision_get_descriptor(); +const void* upm_collision_get_ft(upm_sensor_t sensor_type); +void* upm_collision_init_name(); +void upm_collision_close(void* dev); -const upm_sensor_descriptor_t upm_mvs0608_get_descriptor(){ +const upm_sensor_descriptor_t upm_collision_get_descriptor(){ upm_sensor_descriptor_t usd; - usd.name = upm_mvs0608_name; - usd.description = upm_mvs0608_description; + usd.name = upm_collision_name; + usd.description = upm_collision_description; usd.protocol_size = 1; - usd.protocol = upm_mvs0608_protocol; + usd.protocol = upm_collision_protocol; usd.category_size = 1; - usd.category = upm_mvs0608_category; + usd.category = upm_collision_category; return usd; } static const upm_sensor_ft ft = { - .upm_sensor_init_name = &upm_mvs0608_init_name, - .upm_sensor_close = &upm_mvs0608_close, - .upm_sensor_get_descriptor = &upm_mvs0608_get_descriptor + .upm_sensor_init_name = &upm_collision_init_name, + .upm_sensor_close = &upm_collision_close, + .upm_sensor_get_descriptor = &upm_collision_get_descriptor }; -const void* upm_mvs0608_get_ft(upm_sensor_t sensor_type){ +const void* upm_collision_get_ft(upm_sensor_t sensor_type){ if(sensor_type == UPM_SENSOR){ return &ft; } return NULL; } -void* upm_mvs0608_init_name(){ +void* upm_collision_init_name(){ return NULL; } -void upm_mvs0608_close(void* dev){ - mvs0608_close((mvs0608_context)dev); +void upm_collision_close(void* dev){ + collision_close((collision_context)dev); } -upm_result_t upm_mvs0608_is_colliding(void* dev, bool* collision_val){ - return mvs0608_is_colliding((mvs0608_context)dev, collision_val); +upm_result_t upm_collision_is_colliding(void* dev, bool* collision_val){ + return collision_is_colliding((collision_context)dev, collision_val); } \ No newline at end of file diff --git a/src/grovecollision/javaupm_grovecollision.i b/src/collision/javaupm_collision.i similarity index 62% rename from src/grovecollision/javaupm_grovecollision.i rename to src/collision/javaupm_collision.i index 39b50252..c4f74673 100644 --- a/src/grovecollision/javaupm_grovecollision.i +++ b/src/collision/javaupm_collision.i @@ -1,16 +1,16 @@ -%module javaupm_grovecollision +%module javaupm_collision %include "../upm.i" %{ - #include "grovecollision.hpp" + #include "collision.hpp" %} -%include "grovecollision.hpp" +%include "collision.hpp" %pragma(java) jniclasscode=%{ static { try { - System.loadLibrary("javaupm_grovecollision"); + System.loadLibrary("javaupm_collision"); } catch (UnsatisfiedLinkError e) { System.err.println("Native code library failed to load. \n" + e); System.exit(1); diff --git a/src/collision/jsupm_collision.i b/src/collision/jsupm_collision.i new file mode 100644 index 00000000..db6a3da0 --- /dev/null +++ b/src/collision/jsupm_collision.i @@ -0,0 +1,8 @@ +%module jsupm_collision +%include "../upm.i" + +%{ + #include "collision.hpp" +%} + +%include "collision.hpp" diff --git a/src/grovecollision/pyupm_grovecollision.i b/src/collision/pyupm_collision.i similarity index 57% rename from src/grovecollision/pyupm_grovecollision.i rename to src/collision/pyupm_collision.i index 7ce2d3f7..3b0eff39 100644 --- a/src/grovecollision/pyupm_grovecollision.i +++ b/src/collision/pyupm_collision.i @@ -1,11 +1,11 @@ // Include doxygen-generated documentation %include "pyupm_doxy2swig.i" -%module pyupm_grovecollision +%module pyupm_collision %include "../upm.i" %feature("autodoc", "3"); -%include "grovecollision.hpp" +%include "collision.hpp" %{ - #include "grovecollision.hpp" + #include "collision.hpp" %} diff --git a/src/grovecollision/CMakeLists.txt b/src/grovecollision/CMakeLists.txt deleted file mode 100644 index 38a57999..00000000 --- a/src/grovecollision/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -upm_mixed_module_init (NAME grovecollision - DESCRIPTION "upm grovecollisionsensor module" - C_HDR grovecollision.h - C_SRC grovecollision.c - CPP_HDR grovecollision.hpp - CPP_SRC grovecollision.cxx - FTI_SRC grovecollision_fti.c - CPP_WRAPS_C - REQUIRES mraa) \ No newline at end of file diff --git a/src/grovecollision/jsupm_grovecollision.i b/src/grovecollision/jsupm_grovecollision.i deleted file mode 100644 index 7cd1ca0b..00000000 --- a/src/grovecollision/jsupm_grovecollision.i +++ /dev/null @@ -1,8 +0,0 @@ -%module jsupm_grovecollision -%include "../upm.i" - -%{ - #include "grovecollision.hpp" -%} - -%include "grovecollision.hpp"