aboutsummaryrefslogtreecommitdiff
path: root/core/libraries/Firmata
diff options
context:
space:
mode:
authorDavid A. Mellis <d.mellis@arduino.cc>2007-10-06 13:04:46 +0000
committerDavid A. Mellis <d.mellis@arduino.cc>2007-10-06 13:04:46 +0000
commit9e48dfc4fd53a2bc53367568077fbea44f88eda2 (patch)
tree356854e8239e0f0676bcf6105b7ea6a53cb9a880 /core/libraries/Firmata
parent179fcdbda432ff33a921a70994087b08b2a79caa (diff)
Moving libraries out from inside targets and creating bootloaders directory.
Diffstat (limited to 'core/libraries/Firmata')
-rw-r--r--core/libraries/Firmata/Firmata.cpp128
-rw-r--r--core/libraries/Firmata/Firmata.h95
-rw-r--r--core/libraries/Firmata/keywords.txt18
3 files changed, 0 insertions, 241 deletions
diff --git a/core/libraries/Firmata/Firmata.cpp b/core/libraries/Firmata/Firmata.cpp
deleted file mode 100644
index de58a41..0000000
--- a/core/libraries/Firmata/Firmata.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- Firmata.cpp - Firmata library
- Copyright (c) 2007 Free Software Foundation. All right reserved.
- Written by Hans-Christoph Steiner <hans@at.or.at>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-//******************************************************************************
-//* Includes
-//******************************************************************************
-
-extern "C" {
- // AVR LibC Includes
- #include <inttypes.h>
- #include <stdlib.h>
-
- // Wiring Core Includes
- #include "WConstants.h"
-}
-
-#include "Firmata.h"
-#include "EEPROM.h"
-#include "HardwareSerial.h"
-
-//******************************************************************************
-//* Definitions
-//******************************************************************************
-
-//******************************************************************************
-//* Constructors
-//******************************************************************************
-
-FirmataClass::FirmataClass()
-{
- // TODO: init serial here
- // TODO: printVersion
-}
-
-//******************************************************************************
-//* Private Methods
-//******************************************************************************
-// resets the system state upon a SYSTEM_RESET message from the host software
-void FirmataClass::systemReset(void)
-{
- // TODO automatically call this in response to SYSTEM_RESET
- // TODO reset EEPROM to 0 here
-}
-
-//******************************************************************************
-//* Public Methods
-//******************************************************************************
-
-// output type of message that is next on the queue
-int FirmataClass::available(void)
-{
- // TODO output next available message type, or -1 if nothing
-}
-
-
-// output the protocol version message to the serial port
-void FirmataClass::printVersion() {
- Serial.print(REPORT_VERSION, BYTE);
- Serial.print(FIRMATA_MINOR_VERSION, BYTE);
- Serial.print(FIRMATA_MAJOR_VERSION, BYTE);
-}
-
-// send an analog message
-void FirmataClass::sendAnalog(int pin, int value)
-{
- // pin can only be 0-15, so chop higher bits
- Serial.print(ANALOG_MESSAGE | (pin & 0xF), BYTE);
- Serial.print(value % 128, BYTE);
- Serial.print(value >> 7, BYTE);
-}
-
-// send a single digital pin in a digital message
-void FirmataClass::sendDigital(int pin, int value)
-{
- // TODO add single pin digital messages to the protocol
-}
-
-// send 14-bits in a single digital message
-void FirmataClass::sendDigitalPortPair(int port, int value)
-{
- // TODO: the digital message should not be sent on the serial port every
- // time sendDigital() is called. Instead, it should add it to an int
- // which will be sent on a schedule. If a pin changes more than once
- // before the digital message is sent on the serial port, it should send a
- // digital message for each change.
-
- // TODO: some math needs to happen for pin > 14 since MIDI channels are used
- Serial.print(DIGITAL_MESSAGE | (port & 0xF),BYTE);
- Serial.print(value % 128, BYTE); // Tx pins 0-6
- Serial.print(value >> 7, BYTE); // Tx pins 7-13
-}
-
-// Internal Actions/////////////////////////////////////////////////////////////
-
-void FirmataClass::loadState(void)
-{
- // TODO load state from EEPROM
-}
-
-void FirmataClass::saveState(void)
-{
- // TODO save state to EEPROM
-}
-
-void FirmataClass::resetState(void)
-{
- // TODO reset state bytes in EEPROM
-}
-
-// make one instance for the user to use
-FirmataClass Firmata;
diff --git a/core/libraries/Firmata/Firmata.h b/core/libraries/Firmata/Firmata.h
deleted file mode 100644
index 1c6604b..0000000
--- a/core/libraries/Firmata/Firmata.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- Firmata.h - Firmata library
- Copyright (c) 2007 Free Software Foundation. All right reserved.
- Written by Hans-Christoph Steiner <hans@at.or.at>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef Firmata_h
-#define Firmata_h
-
-#include <inttypes.h>
-
-class FirmataClass
-{
-private:
- void systemReset(void);
-public:
- FirmataClass();
- int available(void);
- // serial receive actions
- // send serial messages
- void printVersion(void);
- void sendAnalog(int, int);
- void sendDigital(int, int);
- void sendDigitalPortPair(int, int);
- // internal actions
- void loadState(void);
- void saveState(void);
- void resetState(void);
-};
-
-extern FirmataClass Firmata;
-
-/*==============================================================================
- * MACROS
- *============================================================================*/
-
-/* Version numbers for the protocol. The protocol is still changing, so these
- * version numbers are important. This number can be queried so that host
- * software can test whether it will be compatible with the currently
- * installed firmware. */
-#define FIRMATA_MAJOR_VERSION 1 // for non-compatible changes
-#define FIRMATA_MINOR_VERSION 0 // for backwards compatible changes
-
-// total number of pins currently supported
-#define TOTAL_ANALOG_PINS 6
-#define TOTAL_DIGITAL_PINS 14
-
-// for comparing along with INPUT and OUTPUT
-#define PWM 2
-
-// for selecting digital inputs
-#define PB 2 // digital input, pins 8-13
-#define PC 3 // analog input port
-#define PD 4 // digital input, pins 0-7
-
-#define MAX_DATA_BYTES 2 // max number of data bytes in non-SysEx messages
-// message command bytes
-#define DIGITAL_MESSAGE 0x90 // send data for a digital pin
-#define ANALOG_MESSAGE 0xE0 // send data for an analog pin (or PWM)
-//#define PULSE_MESSAGE 0xA0 // proposed pulseIn/Out message (SysEx)
-//#define SHIFTOUT_MESSAGE 0xB0 // proposed shiftOut message (SysEx)
-#define REPORT_ANALOG_PIN 0xC0 // enable analog input by pin #
-#define REPORT_DIGITAL_PORTS 0xD0 // enable digital input by port pair
-#define START_SYSEX 0xF0 // start a MIDI SysEx message
-#define SET_DIGITAL_PIN_MODE 0xF4 // set a digital pin to INPUT or OUTPUT
-#define END_SYSEX 0xF7 // end a MIDI SysEx message
-#define REPORT_VERSION 0xF9 // report firmware version
-#define SYSTEM_RESET 0xFF // reset from MIDI
-
-// these are used for EEPROM reading and writing
-#define ANALOGINPUTSTOREPORT_LOW_BYTE 0x1F0 // analogInputsToReport is an int
-#define ANALOGINPUTSTOREPORT_HIGH_BYTE 0x1F1 // analogInputsToReport is an int
-#define REPORTDIGITALINPUTS_BYTE 0x1F2 //
-#define DIGITALPINSTATUS_LOW_BYTE 0x1F3 // digitalPinStatus is an int
-#define DIGITALPINSTATUS_HIGH_BYTE 0x1F4 // digitalPinStatus is an int
-#define PWMSTATUS_LOW_BYTE 0x1F5 // pwmStatus is an int
-#define PWMSTATUS_HIGH_BYTE 0x1F6 // pwmStatus is an int
-
-
-#endif /* Firmata_h */
-
diff --git a/core/libraries/Firmata/keywords.txt b/core/libraries/Firmata/keywords.txt
deleted file mode 100644
index a241593..0000000
--- a/core/libraries/Firmata/keywords.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-#######################################
-# Syntax Coloring Map For Firmata
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-Firmata KEYWORD1
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-