mirror of
				https://github.com/eclipse/upm.git
				synced 2025-10-29 14:15:33 +03:00 
			
		
		
		
	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>
This commit is contained in:
		 Zion Orent
					Zion Orent
				
			
				
					committed by
					
						 Mihai Tudor Panu
						Mihai Tudor Panu
					
				
			
			
				
	
			
			
			 Mihai Tudor Panu
						Mihai Tudor Panu
					
				
			
						parent
						
							da0071ae71
						
					
				
				
					commit
					fbbf56a49d
				
			| @@ -101,6 +101,7 @@ add_executable (grovemd-example grovemd.cxx) | ||||
| add_executable (pca9685-example pca9685.cxx) | ||||
| add_executable (adafruitms1438-example adafruitms1438.cxx) | ||||
| add_executable (adafruitms1438-stepper-example adafruitms1438-stepper.cxx) | ||||
| add_executable (groveeldriver-example groveeldriver.cxx) | ||||
|  | ||||
| include_directories (${PROJECT_SOURCE_DIR}/src/hmc5883l) | ||||
| include_directories (${PROJECT_SOURCE_DIR}/src/grove) | ||||
| @@ -182,6 +183,7 @@ 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/adafruitms1438) | ||||
| include_directories (${PROJECT_SOURCE_DIR}/src/groveeldriver) | ||||
|  | ||||
| target_link_libraries (hmc5883l-example hmc5883l ${CMAKE_THREAD_LIBS_INIT}) | ||||
| target_link_libraries (groveled-example grove ${CMAKE_THREAD_LIBS_INIT}) | ||||
| @@ -284,3 +286,4 @@ target_link_libraries (grovemd-example grovemd ${CMAKE_THREAD_LIBS_INIT}) | ||||
| target_link_libraries (pca9685-example pca9685 ${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 (groveeldriver-example groveeldriver ${CMAKE_THREAD_LIBS_INIT}) | ||||
|   | ||||
							
								
								
									
										66
									
								
								examples/c++/groveeldriver.cxx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								examples/c++/groveeldriver.cxx
									
									
									
									
									
										Normal 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; | ||||
| } | ||||
							
								
								
									
										54
									
								
								examples/javascript/groveeldriver.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								examples/javascript/groveeldriver.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| /*jslint node:true, vars:true, bitwise:true, unparam:true */ | ||||
| /*jshint unused:true */ | ||||
| /* | ||||
| * 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. | ||||
| */ | ||||
|  | ||||
| var eldriver_lib = require("jsupm_groveeldriver"); | ||||
|  | ||||
| // The was tested with the Grove El Driver Module | ||||
| // Instantiate a Grove El Driver on digital pin D2 | ||||
| var eldriver_obj = new eldriver_lib.GroveElDriver(2); | ||||
|  | ||||
| var lightState = true; | ||||
|  | ||||
| var myInterval = setInterval(function() | ||||
| { | ||||
| 	if (lightState) | ||||
| 		eldriver_obj.on(); | ||||
| 	else | ||||
| 		eldriver_obj.off(); | ||||
| 	lightState = !lightState; | ||||
| }, 1000); | ||||
|  | ||||
| // When exiting: turn off EL wire, clear interval, and print message | ||||
| process.on('SIGINT', function() | ||||
| { | ||||
| 	clearInterval(myInterval); | ||||
| 	eldriver_obj.off(); | ||||
| 	eldriver_obj = null; | ||||
| 	eldriver_lib.cleanUp(); | ||||
| 	eldriver_lib = null; | ||||
| 	console.log("Exiting..."); | ||||
| 	process.exit(0); | ||||
| }); | ||||
							
								
								
									
										5
									
								
								src/groveeldriver/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/groveeldriver/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| set (libname "groveeldriver") | ||||
| set (libdescription "upm groveeldriver sensor module") | ||||
| set (module_src ${libname}.cxx) | ||||
| set (module_h ${libname}.h) | ||||
| upm_module_init("-lrt") | ||||
							
								
								
									
										54
									
								
								src/groveeldriver/groveeldriver.cxx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								src/groveeldriver/groveeldriver.cxx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| /* | ||||
|  * Author: Zion Orent <sorent@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 "groveeldriver.h" | ||||
|  | ||||
| using namespace upm; | ||||
|  | ||||
| GroveElDriver::GroveElDriver(int pin) | ||||
| { | ||||
|     m_gpio = mraa_gpio_init(pin); | ||||
|     mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT); | ||||
| } | ||||
|  | ||||
| GroveElDriver::~GroveElDriver() | ||||
| { | ||||
|     mraa_gpio_close(m_gpio); | ||||
| } | ||||
|  | ||||
| void GroveElDriver::on() | ||||
| { | ||||
| 	mraa_result_t error = MRAA_SUCCESS; | ||||
| 	error = mraa_gpio_write (m_gpio, HIGH); | ||||
| 	if (error != MRAA_SUCCESS) | ||||
| 		mraa_result_print(error); | ||||
| } | ||||
|  | ||||
| void GroveElDriver::off() | ||||
| { | ||||
| 	mraa_result_t error = MRAA_SUCCESS; | ||||
| 	error = mraa_gpio_write (m_gpio, LOW); | ||||
| 	if (error != MRAA_SUCCESS) | ||||
| 		mraa_result_print(error); | ||||
| } | ||||
							
								
								
									
										69
									
								
								src/groveeldriver/groveeldriver.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								src/groveeldriver/groveeldriver.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| /* | ||||
|  * Author: Zion Orent <sorent@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. | ||||
|  */ | ||||
| #pragma once | ||||
|  | ||||
| #include <mraa/gpio.h> | ||||
|  | ||||
| #define HIGH      1 | ||||
| #define LOW       0 | ||||
|  | ||||
| namespace upm { | ||||
|   /** | ||||
|    * @brief UPM module for the Grove El Driver Module | ||||
|    * @defgroup groveeldriver libupm-groveeldriver | ||||
|    */ | ||||
|   /** | ||||
|    * @brief C++ API for the Grove El Driver Module | ||||
|    *  | ||||
|    * The Grove EL Driver allows you to easily light up an | ||||
|    * EL Wire with just one single Grove cable. | ||||
|    * | ||||
|    * @ingroup gpio groveeldriver | ||||
|    * @snippet groveeldriver.cxx Interesting | ||||
|    */ | ||||
|   class GroveElDriver { | ||||
|   public: | ||||
|     /** | ||||
|      * Grove El Driver Constructor | ||||
|      * | ||||
|      * @param pin digital pin to use | ||||
|      */ | ||||
|     GroveElDriver(int pin); | ||||
|     /** | ||||
|      * Grove El Driver Destructor | ||||
|      */ | ||||
|     ~GroveElDriver(); | ||||
|     /** | ||||
|      * Turn el wire on | ||||
|      */ | ||||
|      void on(); | ||||
|     /** | ||||
|      * Turn el wire off | ||||
|      */ | ||||
|      void off(); | ||||
|  | ||||
|   private: | ||||
|         mraa_gpio_context m_gpio; | ||||
| 	}; | ||||
| } | ||||
							
								
								
									
										8
									
								
								src/groveeldriver/jsupm_groveeldriver.i
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/groveeldriver/jsupm_groveeldriver.i
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| %module jsupm_groveeldriver | ||||
| %include "../upm.i" | ||||
|  | ||||
| %{ | ||||
|     #include "groveeldriver.h" | ||||
| %} | ||||
|  | ||||
| %include "groveeldriver.h" | ||||
							
								
								
									
										9
									
								
								src/groveeldriver/pyupm_groveeldriver.i
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/groveeldriver/pyupm_groveeldriver.i
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| %module pyupm_groveeldriver | ||||
| %include "../upm.i" | ||||
|  | ||||
| %feature("autodoc", "3"); | ||||
|  | ||||
| %include "groveeldriver.h" | ||||
| %{ | ||||
|     #include "groveeldriver.h" | ||||
| %} | ||||
		Reference in New Issue
	
	Block a user