diff --git a/src/grovecircularled/CMakeLists.txt b/src/grovecircularled/CMakeLists.txt deleted file mode 100644 index 19dca9a8..00000000 --- a/src/grovecircularled/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -set (libname "grovecircularled") -set (libdescription "upm grove circular led") -set (module_src ${libname}.cxx) -set (module_h ${libname}.h) -upm_module_init() diff --git a/src/grovecircularled/grovecircularled.cxx b/src/grovecircularled/grovecircularled.cxx deleted file mode 100644 index a698f328..00000000 --- a/src/grovecircularled/grovecircularled.cxx +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Author: Jun Kato and Yevgeniy Kiveisha - * Contributions: Jon Trulson - * Copyright (c) 2015 Intel Corporation. - * - * This module is based on the my9221 driver - * - * 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 -#include -#include -#include -#include - -#include "grovecircularled.h" - -using namespace upm; - -GroveCircularLED::GroveCircularLED (uint8_t di, uint8_t dcki) - : m_clkPinCtx(dcki), - m_dataPinCtx(di) -{ - mraa::Result error = mraa::SUCCESS; - - // set direction (out) - error = m_dataPinCtx.dir(mraa::DIR_OUT); - if (error != mraa::SUCCESS) { - printError(error); - } - error = m_clkPinCtx.dir(mraa::DIR_OUT); - if (error != mraa::SUCCESS) { - printError(error); - } - - m_clkPinCtx.useMmap(true); - m_dataPinCtx.useMmap(true); -} - -mraa::Result -GroveCircularLED::setSpinner (uint8_t position) { - if (position < 0 || position >= 24) { - return mraa::ERROR_INVALID_PARAMETER; - } - for(uint8_t block_idx = 0; block_idx < 24; block_idx++) { - if (block_idx % 12 == 0) { - send16bitBlock (CMDMODE); - } - uint32_t state = (block_idx == position) ? BIT_HIGH : BIT_LOW; - send16bitBlock (state); - } - return lockData (); -} - -mraa::Result -GroveCircularLED::setLevel (uint8_t level, bool direction) { - if (level < 0 || level > 24) { - return mraa::ERROR_INVALID_PARAMETER; - } - if (direction) { - for(uint8_t block_idx = 24; block_idx > 0; block_idx--) { - if (block_idx % 12 == 0) { - send16bitBlock (CMDMODE); - } - uint32_t state = (block_idx <= level) ? BIT_HIGH : BIT_LOW; - send16bitBlock (state); - } - } else { - for(uint8_t block_idx = 0; block_idx < 24; block_idx++) { - if (block_idx % 12 == 0) { - send16bitBlock (CMDMODE); - } - uint32_t state = (block_idx <= level - 1) ? BIT_HIGH : BIT_LOW; - send16bitBlock (state); - } - } - return lockData (); -} - -mraa::Result -GroveCircularLED::setStatus (bool status[24]) { - for(uint8_t block_idx = 0; block_idx < 24; block_idx++) { - if (block_idx % 12 == 0) { - send16bitBlock (CMDMODE); - } - send16bitBlock (status[block_idx] ? BIT_HIGH : BIT_LOW); - } - return lockData (); -} - -mraa::Result -GroveCircularLED::lockData () { - mraa::Result error = mraa::SUCCESS; - error = m_dataPinCtx.write (LOW); - usleep(10); - - for(int idx = 0; idx < 4; idx++) { - error = m_dataPinCtx.write(HIGH); - error = m_dataPinCtx.write(LOW); - } - return error; -} - -mraa::Result -GroveCircularLED::send16bitBlock (short data) { - mraa::Result error = mraa::SUCCESS; - for (uint8_t bit_idx = 0; bit_idx < MAX_BIT_PER_BLOCK; bit_idx++) { - uint32_t state = (data & 0x8000) ? HIGH : LOW; - error = m_dataPinCtx.write (state); - state = m_clkPinCtx.read (); - - if (state) { - state = LOW; - } else { - state = HIGH; - } - - error = m_clkPinCtx.write (state); - - data <<= 1; - } - return error; -} diff --git a/src/grovecircularled/grovecircularled.h b/src/grovecircularled/grovecircularled.h deleted file mode 100644 index 627f3838..00000000 --- a/src/grovecircularled/grovecircularled.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Author: Jun Kato and Yevgeniy Kiveisha - * Contributions: Jon Trulson - * Copyright (c) 2014 Intel Corporation. - * - * This module is based on the my9221 driver - * - * 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 -#include -#include - -#include - -#define MAX_BIT_PER_BLOCK 16 -#define CMDMODE 0x0000 -#define BIT_HIGH 0x00ff -#define BIT_LOW 0x0000 - -#define HIGH 1 -#define LOW 0 - -namespace upm { - - /** - * @brief Grove Circular LED library - * @defgroup grovecircularled libupm-grovecircularled - * @ingroup seeed display gpio - */ - - /** - * @library grovecircularled - * @sensor grovecircularled - * @comname Grove Circular LED - * @type display - * @man seeed - * @web http://www.seeedstudio.com/wiki/Grove_-_Circular_LED - * @con gpio - * - * @brief API for the Grove Circular LED module - * - * This is a circular LED ring based on the MY9221 chip. It is often used - * with a rotary encoder and has 24 controllable LEDs. - * - * @image html grovecircularled.jpg - * @snippet grovecircularled.cxx Interesting - */ - class GroveCircularLED { - public: - /** - * Instantiates an MY9221 object - * - * @param di Data pin - * @param dcki Clock pin - */ - GroveCircularLED (uint8_t di, uint8_t dcki); - - /** - * Sets the lighting status - * - * @param level Selected level for the circular LED (0-24) - * @param direction Up or down; up is true and default - */ - mraa::Result setLevel (uint8_t level, bool direction=true); - - /** - * Sets the spinner (lights up all the other LEDs but one) - * - * @param position Selected position for the spinner (0-23) - */ - mraa::Result setSpinner (uint8_t position); - - /** - * Sets the lighting status - * - * @param status Boolean array (24 elements) - */ - mraa::Result setStatus (bool status[24]); - - /** - * Returns the name of the component - */ - std::string name() - { - return m_name; - } - private: - mraa::Result lockData (); - mraa::Result send16bitBlock (short data); - - std::string m_name; - mraa::Gpio m_clkPinCtx; - mraa::Gpio m_dataPinCtx; - }; - -} diff --git a/src/grovecircularled/javaupm_grovecircularled.i b/src/grovecircularled/javaupm_grovecircularled.i deleted file mode 100644 index 054c4521..00000000 --- a/src/grovecircularled/javaupm_grovecircularled.i +++ /dev/null @@ -1,20 +0,0 @@ -%module javaupm_grovecircularled -%include "../upm.i" -%include "arrays_java.i"; - -%{ - #include "grovecircularled.h" -%} - -%include "grovecircularled.h" - -%pragma(java) jniclasscode=%{ - static { - try { - System.loadLibrary("javaupm_grovecircularled"); - } catch (UnsatisfiedLinkError e) { - System.err.println("Native code library failed to load. \n" + e); - System.exit(1); - } - } -%} \ No newline at end of file diff --git a/src/grovecircularled/jsupm_grovecircularled.i b/src/grovecircularled/jsupm_grovecircularled.i deleted file mode 100644 index c943147a..00000000 --- a/src/grovecircularled/jsupm_grovecircularled.i +++ /dev/null @@ -1,8 +0,0 @@ -%module jsupm_grovecircularled -%include "../upm.i" - -%{ - #include "grovecircularled.h" -%} - -%include "grovecircularled.h" diff --git a/src/grovecircularled/pyupm_grovecircularled.i b/src/grovecircularled/pyupm_grovecircularled.i deleted file mode 100644 index 4704762a..00000000 --- a/src/grovecircularled/pyupm_grovecircularled.i +++ /dev/null @@ -1,11 +0,0 @@ -// Include doxygen-generated documentation -%include "pyupm_doxy2swig.i" -%module pyupm_grovecircularled -%include "../upm.i" - -%feature("autodoc", "3"); - -%include "grovecircularled.h" -%{ - #include "grovecircularled.h" -%}