summaryrefslogtreecommitdiff
path: root/arduino_libs/SerialManager
diff options
context:
space:
mode:
Diffstat (limited to 'arduino_libs/SerialManager')
-rwxr-xr-xarduino_libs/SerialManager/.DS_Storebin6148 -> 0 bytes
-rwxr-xr-xarduino_libs/SerialManager/.svn/all-wcprops17
-rwxr-xr-xarduino_libs/SerialManager/.svn/entries144
-rwxr-xr-xarduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base197
-rwxr-xr-xarduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base63
-rwxr-xr-xarduino_libs/SerialManager/SerialManager.cpp193
-rwxr-xr-xarduino_libs/SerialManager/SerialManager.h62
7 files changed, 0 insertions, 676 deletions
diff --git a/arduino_libs/SerialManager/.DS_Store b/arduino_libs/SerialManager/.DS_Store
deleted file mode 100755
index 5008ddf..0000000
--- a/arduino_libs/SerialManager/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/arduino_libs/SerialManager/.svn/all-wcprops b/arduino_libs/SerialManager/.svn/all-wcprops
deleted file mode 100755
index e920984..0000000
--- a/arduino_libs/SerialManager/.svn/all-wcprops
+++ /dev/null
@@ -1,17 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 58
-/r/prg/!svn/ver/5369/trunk/arduino/libraries/SerialManager
-END
-SerialManager.h
-K 25
-svn:wc:ra_dav:version-url
-V 74
-/r/prg/!svn/ver/5812/trunk/arduino/libraries/SerialManager/SerialManager.h
-END
-SerialManager.cpp
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/r/prg/!svn/ver/5812/trunk/arduino/libraries/SerialManager/SerialManager.cpp
-END
diff --git a/arduino_libs/SerialManager/.svn/entries b/arduino_libs/SerialManager/.svn/entries
deleted file mode 100755
index a965507..0000000
--- a/arduino_libs/SerialManager/.svn/entries
+++ /dev/null
@@ -1,144 +0,0 @@
-10
-
-dir
-5369
-https://svn.media.mit.edu/r/prg/trunk/arduino/libraries/SerialManager
-https://svn.media.mit.edu/r/prg
-
-
-
-2010-07-20T00:55:06.830758Z
-5369
-siggi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-bd000cc4-1869-4481-ad02-c3af97ea9c83
-
-SerialManager.h
-file
-5812
-
-
-
-2010-09-02T16:01:59.000000Z
-81120736a5f09269c146fab073728dcf
-2010-09-02T18:42:42.362483Z
-5812
-siggi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1242
-
-SerialPacketHandler.cpp
-file
-5812
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-deleted
-
-SerialManager.cpp
-file
-5812
-
-
-
-2010-09-02T16:02:09.000000Z
-d7812d43c015d22e6970f3b8884d9b37
-2010-09-02T18:42:42.362483Z
-5812
-siggi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4793
-
-SerialPacketHandler.h
-file
-5812
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-deleted
-
diff --git a/arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base b/arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base
deleted file mode 100755
index ed06dbc..0000000
--- a/arduino_libs/SerialManager/.svn/text-base/SerialManager.cpp.svn-base
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- SerialManager.cpp - Library for doing packetized serial comm with Arduinos.
- Created by Sigurdur Orn, May 23, 2010.
- */
-
-#include "WProgram.h"
-#include "SerialManager.h"
-#include "ByteBuffer.h"
-
-
-SerialManager::SerialManager(unsigned int in_buf_size, unsigned int out_buf_size){
- serial_in_checksum = 0;
-
- incoming_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
- outgoing_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
- temp_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
-
- incoming_buffer->init(in_buf_size);
- outgoing_buffer->init(out_buf_size);
- temp_buffer->init(10);
-
- byte1 = 0;
- byte2 = 0;
- byte3 = 0;
- byte4 = 0;
-
- handlePacketFunction = 0;
-}
-
-void SerialManager::init(int serial_port, int baud_rate){
- _serial_port = serial_port;
-
- if( serial_port == 0)
- Serial.begin(baud_rate);
-#if defined(__AVR_ATmega1280__)
- else if( serial_port == 1)
- Serial1.begin(baud_rate);
- else if( serial_port == 2)
- Serial2.begin(baud_rate);
- else if( serial_port == 3)
- Serial3.begin(baud_rate);
-#endif
-}
-
-
-
-bool SerialManager::isBusySending(){
- return ( outgoing_buffer->getSize() > 0 );
-}
-
-// Sends a single byte
-int SerialManager::sendSerialByte(byte b){
- return outgoing_buffer->put(b);
-}
-
-// Sends a packet with a header and a checksum
-int SerialManager::sendSerialPacket(ByteBuffer* packet_buffer){
- // Copy buffer and calc checksum
- byte checksum = 0;
- while( packet_buffer->getSize() > 0 ){
- byte b = packet_buffer->get();
- outgoing_buffer->put(b);
- checksum += b;
- }
-
- outgoing_buffer->put( checksum );
- outgoing_buffer->put( 1 );
- outgoing_buffer->put( 2 );
- outgoing_buffer->put( 3 );
- outgoing_buffer->put( 4 );
-
- return 0;
-}
-
-// Sends a raw packet with no header or checksum
-int SerialManager::sendRawSerial(ByteBuffer* packet_buffer){
- while( packet_buffer->getSize() > 0 ){
- byte b = packet_buffer->get();
- outgoing_buffer->put(b);
- }
-
- return 0;
-}
-
-void SerialManager::update(){
-
- // If we have received stuff
- if( _serial_port == 0 ){
- while( Serial.available() != 0 ) {
- byte incoming = Serial.read();
- handleIncomingByte(incoming);
- }
- }
-
-#if defined(__AVR_ATmega1280__)
- else if( _serial_port == 1 ){
- while( Serial1.available() != 0 ) {
- byte incoming = Serial1.read();
- handleIncomingByte(incoming);
- }
- }
- else if( _serial_port == 2 ){
- while( Serial2.available() != 0 ) {
- byte incoming = Serial2.read();
- handleIncomingByte(incoming);
- }
- }
- else if( _serial_port == 3 ){
- while( Serial3.available() != 0 ) {
- byte incoming = Serial3.read();
- handleIncomingByte(incoming);
- }
- }
-#endif
-
-
- // If we should be sending stuff
- if( outgoing_buffer->getSize() > 0 ){
- // If serial port not currently busy
- if( _serial_port == 0 )
- if(((UCSRA) & (1 << UDRE)) ) Serial.write( outgoing_buffer->get() );
-
-#if defined(__AVR_ATmega1280__)
- else if( _serial_port == 1 )
- if(((UCSRA1) & (1 << UDRE1)) ) Serial1.write( outgoing_buffer->get() );
- else if( _serial_port == 2 )
- if(((UCSRA2) & (1 << UDRE2)) ) Serial2.write( outgoing_buffer->get() );
- else if( _serial_port == 3 )
- if(((UCSRA3) & (1 << UDRE3)) ) Serial3.write( outgoing_buffer->get() );
-#endif
- }
-}
-
-void SerialManager::setPacketHandler(void (*packetHandlerFunction)(ByteBuffer*)){
- handlePacketFunction = packetHandlerFunction;
-}
-
-
-void SerialManager::handleIncomingByte(byte incoming){
-
- // If buffer overflows then reset (we could do something smarter here)
-// if( incoming_buffer->getSize() == incoming_buffer->getCapacity() ){
-// incoming_buffer->clear();
-// }
-
- incoming_buffer->put( incoming );
- serial_in_checksum += incoming;
-
- byte1 = byte2;
- byte2 = byte3;
- byte3 = byte4;
- byte4 = incoming;
-
- // If we have a full packet ready
- if( byte1==1 && byte2==2 && byte3==3 && byte4==4 ){
- // Remove header from buffer
- incoming_buffer->getFromBack();
- incoming_buffer->getFromBack();
- incoming_buffer->getFromBack();
- incoming_buffer->getFromBack();
-
- byte checksum_received = incoming_buffer->getFromBack();
-
- // Remove the whole header from the calculated checksum
- serial_in_checksum -= checksum_received + 10;
-
- // If checksums don't match, then do something ()
- if( checksum_received != serial_in_checksum ){
- temp_buffer->clear();
- temp_buffer->put(123);
- temp_buffer->put(234);
- temp_buffer->put( checksum_received );
- temp_buffer->put( serial_in_checksum );
- sendSerialPacket(temp_buffer);
- }
-
- // We have a successful packet
- else{
-
- if( handlePacketFunction != 0 )
- handlePacketFunction(incoming_buffer);
- else
- handlePacketDefault(incoming_buffer);
- }
-
- // Clear variables
- incoming_buffer->clear();
- serial_in_checksum = 0;
- }
-
-}
-
-void SerialManager::handlePacketDefault(ByteBuffer* packet){
- // We could do something here like send the data to the host again for debug
- // Or just do nothing
- return;
-}
diff --git a/arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base b/arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base
deleted file mode 100755
index dcbdba6..0000000
--- a/arduino_libs/SerialManager/.svn/text-base/SerialManager.h.svn-base
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- SerialManager.h - Library for doing packetized serial comm with Arduinos.
- Created by Sigurdur Orn, May 23, 2010.
- */
-#ifndef SerialManager_h
-#define SerialManager_h
-
-#include "ByteBuffer.h"
-#include "WProgram.h"
-
-typedef void (*voidFuncPtr)(ByteBuffer*);
-
-#if defined(__AVR_ATmega8__)
- #define UCSRA UCSRA
- #define UDRE UDRE
-#else
- #define UCSRA UCSR0A
- #define UDRE UDRE0
-#endif
-
-#if defined(__AVR_ATmega1280__)
- #define UCSRA1 UCSR1A
- #define UDRE1 UDRE1
- #define UCSRA2 UCSR2A
- #define UDRE2 UDRE2
- #define UCSRA3 UCSR3A
- #define UDRE3 UDRE3
-#endif
-
-
-class SerialManager
-{
-public:
- SerialManager(unsigned int in_buf_size, unsigned int out_buf_size);
- void init(int serial_port, int baud_rate);
- void setPacketHandler(void (*rx_func)(ByteBuffer*));
-
- void update();
- bool isBusySending();
-
- int sendSerialByte(byte b);
- int sendSerialPacket(ByteBuffer* packet);
- int sendRawSerial(ByteBuffer* packet);
-
-private:
- void handleIncomingByte(byte incoming);
- void handlePacketDefault(ByteBuffer* packet);
-
- voidFuncPtr handlePacketFunction;
-
- byte _serial_port;
- ByteBuffer* incoming_buffer;
- ByteBuffer* outgoing_buffer;
- ByteBuffer* temp_buffer;
- byte serial_in_checksum;
- byte byte1;
- byte byte2;
- byte byte3;
- byte byte4;
-};
-
-#endif
-
diff --git a/arduino_libs/SerialManager/SerialManager.cpp b/arduino_libs/SerialManager/SerialManager.cpp
deleted file mode 100755
index 2e2d306..0000000
--- a/arduino_libs/SerialManager/SerialManager.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- SerialManager.cpp - Library for doing packetized serial comm with Arduinos.
- Created by Sigurdur Orn, May 23, 2010.
- siggi@mit.edu
- */
-
-#include "WProgram.h"
-#include "SerialManager.h"
-#include "ByteBuffer.h"
-
-
-SerialManager::SerialManager(unsigned int in_buf_size, unsigned int out_buf_size){
- serial_in_checksum = 0;
-
- incoming_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
- outgoing_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
- temp_buffer = (ByteBuffer*)malloc(sizeof(ByteBuffer));
-
- incoming_buffer->init(in_buf_size);
- outgoing_buffer->init(out_buf_size);
- temp_buffer->init(10);
-
- byte1 = 0;
- byte2 = 0;
- byte3 = 0;
- byte4 = 0;
-
- handlePacketFunction = 0;
-}
-
-void SerialManager::init(int serial_port, int baud_rate){
- _serial_port = serial_port;
-
- if( serial_port == 0)
- Serial.begin(baud_rate);
-#if defined(__AVR_ATmega1280__)
- else if( serial_port == 1)
- Serial1.begin(baud_rate);
- else if( serial_port == 2)
- Serial2.begin(baud_rate);
- else if( serial_port == 3)
- Serial3.begin(baud_rate);
-#endif
-}
-
-
-
-bool SerialManager::isBusySending(){
- return ( outgoing_buffer->getSize() > 0 );
-}
-
-// Sends a single byte
-int SerialManager::sendSerialByte(byte b){
- return outgoing_buffer->put(b);
-}
-
-// Sends a packet with a header and a checksum
-int SerialManager::sendSerialPacket(ByteBuffer* packet_buffer){
- // Copy buffer and calc checksum
- byte checksum = 0;
- while( packet_buffer->getSize() > 0 ){
- byte b = packet_buffer->get();
- outgoing_buffer->put(b);
- checksum += b;
- }
-
- outgoing_buffer->put( checksum );
- outgoing_buffer->put( 1 );
- outgoing_buffer->put( 2 );
- outgoing_buffer->put( 3 );
- outgoing_buffer->put( 4 );
-
- return 0;
-}
-
-// Sends a raw packet with no header or checksum
-int SerialManager::sendRawSerial(ByteBuffer* packet_buffer){
- while( packet_buffer->getSize() > 0 ){
- byte b = packet_buffer->get();
- outgoing_buffer->put(b);
- }
-
- return 0;
-}
-
-void SerialManager::update(){
-
- // If we have received stuff
- if( _serial_port == 0 ){
- while( Serial.available() != 0 ) {
- byte incoming = Serial.read();
- handleIncomingByte(incoming);
- }
- }
-
-#if defined(__AVR_ATmega1280__)
- else if( _serial_port == 1 ){
- while( Serial1.available() != 0 ) {
- byte incoming = Serial1.read();
- handleIncomingByte(incoming);
- }
- }
- else if( _serial_port == 2 ){
- while( Serial2.available() != 0 ) {
- byte incoming = Serial2.read();
- handleIncomingByte(incoming);
- }
- }
- else if( _serial_port == 3 ){
- while( Serial3.available() != 0 ) {
- byte incoming = Serial3.read();
- handleIncomingByte(incoming);
- }
- }
-#endif
-
-
- // If we should be sending stuff
- if( outgoing_buffer->getSize() > 0 ){
- // If serial port not currently busy
- if( _serial_port == 0 )
- if(((UCSRA) & (1 << UDRE)) ) Serial.write( outgoing_buffer->get() );
-
-#if defined(__AVR_ATmega1280__)
- else if( _serial_port == 1 )
- if(((UCSR1A) & (1 << UDRE1)) ) Serial1.write( outgoing_buffer->get() );
- else if( _serial_port == 2 )
- if(((UCSR2A) & (1 << UDRE2)) ) Serial2.write( outgoing_buffer->get() );
- else if( _serial_port == 3 )
- if(((UCSR3A) & (1 << UDRE3)) ) Serial3.write( outgoing_buffer->get() );
-#endif
- }
-}
-
-void SerialManager::setPacketHandler(void (*packetHandlerFunction)(ByteBuffer*)){
- handlePacketFunction = packetHandlerFunction;
-}
-
-
-void SerialManager::handleIncomingByte(byte incoming){
-
- // If buffer overflows then reset (we could do something smarter here)
- if( incoming_buffer->getSize() == incoming_buffer->getCapacity() ){
- incoming_buffer->clear();
- }
-
- incoming_buffer->put( incoming );
- serial_in_checksum += incoming;
-
- byte1 = byte2;
- byte2 = byte3;
- byte3 = byte4;
- byte4 = incoming;
-
- // If we have a full packet ready
- if( byte1==1 && byte2==2 && byte3==3 && byte4==4 ){
- // Remove header from buffer
- incoming_buffer->getFromBack();
- incoming_buffer->getFromBack();
- incoming_buffer->getFromBack();
- incoming_buffer->getFromBack();
-
- byte checksum_received = incoming_buffer->getFromBack();
-
- // Remove the whole header from the calculated checksum
- serial_in_checksum -= checksum_received + 10;
-
- // If checksums don't match, then do something ()
- if( checksum_received != serial_in_checksum ){
- ; // We could do something about this here
- }
-
- // We have a successful packet
- else{
-
- if( handlePacketFunction != 0 )
- handlePacketFunction(incoming_buffer);
- else
- handlePacketDefault(incoming_buffer);
- }
-
- // Clear variables
- incoming_buffer->clear();
- serial_in_checksum = 0;
- }
-
-}
-
-void SerialManager::handlePacketDefault(ByteBuffer* packet){
- // We could do something here like send the data to the host again for debug
- // Or just do nothing
- return;
-}
diff --git a/arduino_libs/SerialManager/SerialManager.h b/arduino_libs/SerialManager/SerialManager.h
deleted file mode 100755
index f1474c5..0000000
--- a/arduino_libs/SerialManager/SerialManager.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- SerialManager.h - Library for doing packetized serial comm with Arduinos.
- Created by Sigurdur Orn, May 23, 2010.
- siggi@mit.edu
- */
-
-#ifndef SerialManager_h
-#define SerialManager_h
-
-#include "ByteBuffer.h"
-#include "WProgram.h"
-
-typedef void (*voidFuncPtr)(ByteBuffer*);
-
-#if defined(__AVR_ATmega8__)
- #define UCSRA UCSRA
- #define UDRE UDRE
-#else
- #define UCSRA UCSR0A
- #define UDRE UDRE0
-#endif
-
-#if defined(__AVR_ATmega1280__)
- #define UCSRA1 UCSR1A
- #define UCSRA2 UCSR2A
- #define UCSRA3 UCSR3A
-#endif
-
-
-class SerialManager
-{
-public:
- SerialManager(unsigned int in_buf_size, unsigned int out_buf_size);
- void init(int serial_port, int baud_rate);
- void setPacketHandler(void (*rx_func)(ByteBuffer*));
-
- void update();
- bool isBusySending();
-
- int sendSerialByte(byte b);
- int sendSerialPacket(ByteBuffer* packet);
- int sendRawSerial(ByteBuffer* packet);
-
-private:
- void handleIncomingByte(byte incoming);
- void handlePacketDefault(ByteBuffer* packet);
-
- voidFuncPtr handlePacketFunction;
-
- byte _serial_port;
- ByteBuffer* incoming_buffer;
- ByteBuffer* outgoing_buffer;
- ByteBuffer* temp_buffer;
- byte serial_in_checksum;
- byte byte1;
- byte byte2;
- byte byte3;
- byte byte4;
-};
-
-#endif
-