diff --git a/src/servo/CMakeLists.txt b/src/servo/CMakeLists.txt index 2a5d527c..923c09c0 100644 --- a/src/servo/CMakeLists.txt +++ b/src/servo/CMakeLists.txt @@ -1,5 +1,5 @@ set (libname "servo") set (libdescription "upm servo") -set (module_src servo.cxx es08a.cxx) -set (module_h servo.h es08a.h) +set (module_src servo.cxx es08a.cxx es9257.cxx) +set (module_h servo.h es08a.h es9257.h) upm_module_init() diff --git a/src/servo/es9257.cxx b/src/servo/es9257.cxx new file mode 100644 index 00000000..b7edf0fa --- /dev/null +++ b/src/servo/es9257.cxx @@ -0,0 +1,41 @@ +/* + * Author: Mihai Tudor Panu + * 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 "es9257.h" + +using namespace upm; + +ES9257::ES9257 (int pin) : Servo(pin) { + m_name = "ES9257"; + m_maxAngle = 180.0; + m_minPulseWidth = 475; + m_maxPulseWidth = 2100; +} + +ES9257::~ES9257() { + +} diff --git a/src/servo/es9257.h b/src/servo/es9257.h new file mode 100644 index 00000000..51b41ef1 --- /dev/null +++ b/src/servo/es9257.h @@ -0,0 +1,65 @@ +/* + * Author: Mihai Tudor Panu + * 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 +#include "servo.h" + +namespace upm { + +/** + * @library servo + * @sensor es9257 + * @comname ES9257 Servo + * @altname Grove Servo + * @type servos + * @man emax + * @web http://www.seeedstudio.com/wiki/Grove_-_Servo + * @con pwm + * @kit gsk + * + * @brief API for the ES9257 Servo + * + * This module defines the ES9257 interface for ES9257 servos. + * The ES9257 servo is a fast, heavy duty servo that is popular for moving the + * control surfaces on RC models. + * + * @image html es9257.jpg + */ + class ES9257 : public Servo { + public: + /** + * Instantiates an ES9257 object + * + * @param pin Servo pin number + */ + ES9257 (int pin); + + /** + * ES9257 object destructor + */ + ~ES9257 (); +}; + +} diff --git a/src/servo/javaupm_servo.i b/src/servo/javaupm_servo.i index d93d758f..87547860 100644 --- a/src/servo/javaupm_servo.i +++ b/src/servo/javaupm_servo.i @@ -10,3 +10,8 @@ %{ #include "es08a.h" %} + +%include "es9257.h" +%{ + #include "es9257.h" +%} diff --git a/src/servo/jsupm_servo.i b/src/servo/jsupm_servo.i index 5373fd03..6b17bc24 100644 --- a/src/servo/jsupm_servo.i +++ b/src/servo/jsupm_servo.i @@ -10,3 +10,8 @@ %{ #include "es08a.h" %} + +%include "es9257.h" +%{ + #include "es9257.h" +%} diff --git a/src/servo/pyupm_servo.i b/src/servo/pyupm_servo.i index 59805989..696587dd 100644 --- a/src/servo/pyupm_servo.i +++ b/src/servo/pyupm_servo.i @@ -10,3 +10,8 @@ %{ #include "es08a.h" %} + +%include "es9257.h" +%{ + #include "es9257.h" +%}