diff --git a/examples/c++/CMakeLists.txt b/examples/c++/CMakeLists.txt index 5c327d85..353bf69d 100644 --- a/examples/c++/CMakeLists.txt +++ b/examples/c++/CMakeLists.txt @@ -136,7 +136,6 @@ add_executable (eboled-example eboled.cxx) add_executable (hyld9767-example hyld9767.cxx) add_executable (mg811-example mg811.cxx) add_executable (wheelencoder-example wheelencoder.cxx) -add_executable (grovegprs-example grovegprs.cxx) include_directories (${PROJECT_SOURCE_DIR}/src/hmc5883l) include_directories (${PROJECT_SOURCE_DIR}/src/grove) @@ -246,7 +245,6 @@ include_directories (${PROJECT_SOURCE_DIR}/src/lsm9ds0) include_directories (${PROJECT_SOURCE_DIR}/src/hyld9767) include_directories (${PROJECT_SOURCE_DIR}/src/mg811) include_directories (${PROJECT_SOURCE_DIR}/src/wheelencoder) -include_directories (${PROJECT_SOURCE_DIR}/src/grovegprs) target_link_libraries (hmc5883l-example hmc5883l ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (groveled-example grove ${CMAKE_THREAD_LIBS_INIT}) @@ -384,4 +382,3 @@ target_link_libraries (eboled-example i2clcd ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (hyld9767-example hyld9767 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (mg811-example mg811 ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries (wheelencoder-example wheelencoder ${CMAKE_THREAD_LIBS_INIT}) -target_link_libraries (grovegprs-example grovegprs ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/c++/grovegprs.cxx b/examples/c++/grovegprs.cxx deleted file mode 100644 index 8652131a..00000000 --- a/examples/c++/grovegprs.cxx +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Author: Jon Trulson - * 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 -#include -#include -#include -#include "grovegprs.h" - -using namespace std; -using namespace upm; - -void printUsage(char *progname) -{ - cout << "Usage: " << progname << " [AT command]" << endl; - cout << endl; - - cout << "If an argument is supplied on the command line, that argument is" - << endl; - cout << "sent to the module and the response is printed out." << endl; - cout << endl; - cout << "If no argument is used, then the manufacturer and the current" - << endl; - cout << "saved profiles are queried and the results printed out." << endl; - cout << endl; - cout << endl; -} - -// simple helper function to send a command and wait for a response -void sendCommand(upm::GroveGPRS* sensor, string cmd) -{ - // commands need to be terminated with a carriage return - cmd += "\r"; - - sensor->writeDataStr(cmd); - - // wait up to 1 second - if (sensor->dataAvailable(1000)) - { - cout << "Returned: " << sensor->readDataStr(1024) << endl; - } - else - { - cerr << "Timed out waiting for response" << endl; - } -} - - -int main(int argc, char **argv) -{ -//! [Interesting] - - // Instantiate a GroveGPRS Module on UART 0 - upm::GroveGPRS* sensor = new upm::GroveGPRS(0); - - // Set the baud rate, 19200 baud is the default. - if (sensor->setBaudRate(19200) != MRAA_SUCCESS) - { - cerr << "Failed to set tty baud rate" << endl; - return 1; - } - - printUsage(argv[0]); - - if (argc > 1) - { - cout << "Sending command line argument (" << argv[1] << ")..." << endl; - sendCommand(sensor, argv[1]); - } - else - { - // query the module manufacturer - cout << "Querying module manufacturer (AT+CGMI)..." << endl; - sendCommand(sensor, "AT+CGMI"); - - sleep(1); - - // query the saved profiles - cout << "Querying the saved profiles (AT&V)..." << endl; - sendCommand(sensor, "AT&V"); - - // A comprehensive list is available from the datasheet at: - // http://www.seeedstudio.com/wiki/images/7/72/AT_Commands_v1.11.pdf - } - -//! [Interesting] - - delete sensor; - return 0; -} diff --git a/examples/javascript/grovegprs.js b/examples/javascript/grovegprs.js deleted file mode 100644 index d63f0880..00000000 --- a/examples/javascript/grovegprs.js +++ /dev/null @@ -1,114 +0,0 @@ -/*jslint node:true, vars:true, bitwise:true, unparam:true */ -/*jshint unused:true */ - -/* - * Author: Jon Trulson - * 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 sensorObj = require('jsupm_grovegprs'); - - -/************** Functions **************/ -function printUsage(progname) -{ - var outputStr = "Usage: " + progname + " [AT command]\n\n" + - "If an argument is supplied on the command line, that argument is\n" + - "sent to the module and the response is printed out.\n\n" + - "If no argument is used, then the manufacturer and the current\n" + - "saved profiles are queried and the results printed out.\n\n" - console.log(outputStr); -} - -// simple helper function to send a command and wait for a response -function sendCommand(sensor, cmd, callback) -{ - // commands need to be terminated with a carriage return - cmd += "\r"; - sensor.writeDataStr(cmd); - - // wait up to 1 second - if (sensor.dataAvailable(1000)) - { - console.log("Returned: " + sensor.readDataStr(1024)); - } - else - console.log("Timed out waiting for response"); - - if (callback) - callback(); -} - -/************** Main code **************/ -// Instantiate a GROVEGPRS Module on UART 0 -var sensor = new sensorObj.GroveGPRS(0); - -// Set the baud rate, 19200 baud is the default. -if (sensor.setBaudRate(19200)) -{ - console.log("Failed to set baud rate"); - process.exit(0); -} - -printUsage(process.argv[1]); - -// Note: in nodeJS, command-line argument 0 is "node". -// Command-line argument 1 is "grovegprs.js" -// If you have a third argument, then it's a command -if (process.argv.length > 2) -{ - console.log("Sending command line argument (" + process.argv[2] + ")..."); - sendCommand(sensor, process.argv[2]); -} -else -{ - // sending this command as a synchronous callback ensures better timing - var callbackFunc = function() - { - setTimeout(function() - { - // query the saved profiles - console.log("Querying the saved profiles (AT&V)..."); - sendCommand(sensor, "AT&V"); - - // A comprehensive list is available from the - // datasheet at: - // http://www.seeedstudio.com/wiki/images/7/72/AT_Commands_v1.11.pdf - }, 1000); - }; - - // query the module manufacturer - console.log("Querying module manufacturer (AT+CGMI)..."); - sendCommand(sensor, "AT+CGMI", callbackFunc); -} - - -/************** Exit code **************/ -process.on('SIGINT', function() -{ - sensor = null; - sensorObj.cleanUp(); - sensorObj = null; - console.log("Exiting..."); - process.exit(0); -}); diff --git a/examples/python/grovegprs.py b/examples/python/grovegprs.py deleted file mode 100644 index d441e38a..00000000 --- a/examples/python/grovegprs.py +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/python -# Author: Jon Trulson -# 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. - -import time, sys, signal, atexit -import pyupm_grovegprs as sensorObj - -# Instantiate a GroveGPRS Module on UART 0 -sensor = sensorObj.GroveGPRS(0) - -## Exit handlers ## -# This stops python from printing a stacktrace when you hit control-C -def SIGINTHandler(signum, frame): - raise SystemExit - -# This function lets you run code on exit -def exitHandler(): - print "Exiting" - sys.exit(0) - -# Register exit handlers -atexit.register(exitHandler) -signal.signal(signal.SIGINT, SIGINTHandler) - -# Set the baud rate, 19200 baud is the default. -if (sensor.setBaudRate(19200)): - print "Failed to set baud rate" - sys.exit(0) - - -usageStr = ("Usage:\n" -"If an argument is supplied on the command line, that argument is\n" -"sent to the module and the response is printed out.\n\n" -"If no argument is used, then the manufacturer and the current\n" -"saved profiles are queried and the results printed out.\n\n") -print usageStr - -# simple helper function to send a command and wait for a response -def sendCommand(sensor, cmd): - # commands need to be terminated with a carriage return - cmd += "\r"; - sensor.writeDataStr(cmd) - - # wait up to 1 second - if (sensor.dataAvailable(1000)): - print "Returned: ", - print sensor.readDataStr(1024) - else: - print "Timed out waiting for response" - - -if (len(sys.argv) > 1): - print "Sending command line argument (" + sys.argv[1] + ")..." - sendCommand(sensor, sys.argv[1]) -else: - # query the module manufacturer - print "Querying module manufacturer (AT+CGMI)..." - sendCommand(sensor, "AT+CGMI"); - - time.sleep(1); - - # query the saved profiles - print "Querying the saved profiles (AT&V)..." - sendCommand(sensor, "AT&V"); - - # A comprehensive list is available from the datasheet at: - # http://www.seeedstudio.com/wiki/images/7/72/AT_Commands_v1.11.pdf diff --git a/src/grovegprs/CMakeLists.txt b/src/grovegprs/CMakeLists.txt deleted file mode 100644 index 524cb362..00000000 --- a/src/grovegprs/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -set (libname "grovegprs") -set (libdescription "upm grove GPRS module") -set (module_src ${libname}.cxx) -set (module_h ${libname}.h) -upm_module_init() diff --git a/src/grovegprs/grovegprs.cxx b/src/grovegprs/grovegprs.cxx deleted file mode 100644 index aefda637..00000000 --- a/src/grovegprs/grovegprs.cxx +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Author: Jon Trulson - * 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 - -#include "grovegprs.h" - -using namespace upm; -using namespace std; - -static const int defaultDelay = 100; // max wait time for read - -GroveGPRS::GroveGPRS(int uart) : - m_uart(uart) -{ -} - -GroveGPRS::~GroveGPRS() -{ -} - -bool GroveGPRS::dataAvailable(unsigned int millis) -{ - return m_uart.dataAvailable(millis); -} - -int GroveGPRS::readData(char *buffer, unsigned int len) -{ - return m_uart.read(buffer, len); -} - -std::string GroveGPRS::readDataStr(int len) -{ - return m_uart.readStr(len); -} - -int GroveGPRS::writeData(char *buffer, unsigned int len) -{ - m_uart.flush(); - return m_uart.write(buffer, len); -} - -int GroveGPRS::writeDataStr(std::string data) -{ - m_uart.flush(); - return m_uart.writeStr(data); -} - -mraa_result_t GroveGPRS::setBaudRate(int baud) -{ - return m_uart.setBaudRate(baud); -} - diff --git a/src/grovegprs/grovegprs.h b/src/grovegprs/grovegprs.h deleted file mode 100644 index 5cabea8a..00000000 --- a/src/grovegprs/grovegprs.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Author: Jon Trulson - * Copyright (c) 2015 Intel Corporation. - * - * Thanks to Adafruit for supplying a google translated version of the - * Chinese datasheet and some clues in their code. - * - * 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 -#include - -#include - -#define GROVEGPRS_DEFAULT_UART 0 - -namespace upm { - /** - * @brief Grove GPRS Module library - * @defgroup grovegprs libupm-grovegprs - * @ingroup seeed uart wifi - */ - - /** - * @library grovegprs - * @sensor grovegprs - * @comname Grove GPRS Module - * @type wifi - * @man seeed - * @con uart - * @web http://www.seeedstudio.com/wiki/GPRS_Shield_V2.0 - * - * @brief API for the Grove GPRS Module - * - * The driver was tested with the Grove GPRS Module, V2. It's a - * GSM GPRS module based on the SIM900. This module uses a - * standard 'AT' command set. See the datasheet for a full list - * of available commands and their possible responses: - * - * http://www.seeedstudio.com/wiki/images/7/72/AT_Commands_v1.11.pdf - * - * It is connected via a UART at 19200 baud. - * - * @image html grovegprs.jpg - * @snippet grovegprs.cxx Interesting - */ - - class GroveGPRS { - public: - - /** - * GroveGPRS object constructor - * - * @param uart Default UART to use (0 or 1). Default is 0. - */ - GroveGPRS(int uart=GROVEGPRS_DEFAULT_UART); - - /** - * GroveGPRS object destructor - */ - ~GroveGPRS(); - - /** - * Checks to see if there is data available for reading - * - * @param millis Number of milliseconds to wait; 0 means no waiting - * @return true if there is data available for reading - */ - bool dataAvailable(unsigned int millis); - - /** - * Reads any available data into a user-supplied buffer. Note: the - * call blocks until data is available for reading. Use - * dataAvailable() to determine whether there is data available - * beforehand, to avoid blocking. - * - * @param buffer Buffer to hold the data read - * @param len Length of the buffer - * @return Number of bytes read - */ - int readData(char *buffer, unsigned int len); - - /** - * Reads any available data and returns it in a std::string. Note: - * the call blocks until data is available for reading. Use - * dataAvailable() to determine whether there is data available - * beforehand, to avoid blocking. - * - * @param len Maximum length of the data to be returned - * @return Number of bytes read - */ - std::string readDataStr(int len); - - /** - * Writes the data in the buffer to the device. If you are - * writing a command, be sure to terminate it with a carriage - * return (\r) - * - * @param buffer Buffer to hold the data to write - * @param len Length of the buffer - * @return Number of bytes written - */ - int writeData(char *buffer, unsigned len); - - /** - * Writes the std:string data to the device. If you are writing a - * command, be sure to terminate it with a carriage return (\r) - * - * @param data Buffer to write to the device - * @return Number of bytes written - */ - int writeDataStr(std::string data); - - /** - * Sets the baud rate for the device. The default is 19200. - * - * @param baud Desired baud rate. - * @return true if successful - */ - mraa_result_t setBaudRate(int baud=19200); - - - protected: - mraa::Uart m_uart; - - private: - }; -} - - diff --git a/src/grovegprs/javaupm_grovegprs.i b/src/grovegprs/javaupm_grovegprs.i deleted file mode 100644 index 00f57499..00000000 --- a/src/grovegprs/javaupm_grovegprs.i +++ /dev/null @@ -1,11 +0,0 @@ -%module javaupm_grovegprs -%include "../upm.i" -%include "carrays.i" -%include "std_string.i" - -%{ - #include "grovegprs.h" -%} - -%include "grovegprs.h" -%array_class(char, charArray); diff --git a/src/grovegprs/jsupm_grovegprs.i b/src/grovegprs/jsupm_grovegprs.i deleted file mode 100644 index a4f05561..00000000 --- a/src/grovegprs/jsupm_grovegprs.i +++ /dev/null @@ -1,11 +0,0 @@ -%module jsupm_grovegprs -%include "../upm.i" -%include "carrays.i" -%include "std_string.i" - -%{ - #include "grovegprs.h" -%} - -%include "grovegprs.h" -%array_class(char, charArray); diff --git a/src/grovegprs/pyupm_grovegprs.i b/src/grovegprs/pyupm_grovegprs.i deleted file mode 100644 index a171655a..00000000 --- a/src/grovegprs/pyupm_grovegprs.i +++ /dev/null @@ -1,12 +0,0 @@ -%module pyupm_grovegprs -%include "../upm.i" -%include "carrays.i" -%include "std_string.i" - -%feature("autodoc", "3"); - -%{ - #include "grovegprs.h" -%} -%include "grovegprs.h" -%array_class(char, charArray);