Adam Piekarski / XBEE

Fork of XBEE by GDP 4

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers XBEE.cpp Source File

XBEE.cpp

00001 #include "XBEE.h"
00002 #include <string>
00003 #include "SwitchCase.h"
00004 
00005 
00006 
00007 XBEE::XBEE(Serial* SerialAddress)
00008 {
00009     //Serial fish3(PTC17, PTC16);
00010     cBuffer = new CBuffer(SerialAddress);
00011     xbeeSerial = SerialAddress;
00012     
00013 }
00014 
00015 bool XBEE::scanForStartBytes()
00016 {
00017 startBytes[0] = 0;
00018 startBytes[1] = 0;
00019 startBytes[2] = 0;    
00020     
00021     while(startBytes[0] != STARTBYTE0)
00022     {
00023         if(cBuffer->available() <=0){return false;}
00024         startBytes[0] = cBuffer->read();    
00025     }
00026     if(cBuffer->available() <=0){return false;}
00027     startBytes[1] = cBuffer->read();
00028     if(startBytes[1] == STARTBYTE1)
00029         {
00030         if(cBuffer->available() <=0){return false;}
00031         startBytes[2] = cBuffer->read(); 
00032         }
00033         
00034      if( (startBytes[0] != STARTBYTE0) || (startBytes[1] != STARTBYTE1) || (startBytes[2] != STARTBYTE2)){return false;}  
00035     return true;
00036 }
00037 
00038 
00039 void XBEE::checkForCommand()
00040 {
00041 while(cBuffer->available() > 0)
00042 {
00043     if(scanForStartBytes() && (cBuffer->available() > 0))
00044         {
00045             
00046           switchCase(cBuffer->read());  
00047             
00048         }  
00049     
00050     
00051     
00052 }    
00053      
00054 }
00055 
00056 void XBEE::sendCommand(const char* info)
00057 {
00058 xbeeSerial->putc(STARTBYTE0);
00059 xbeeSerial->putc(STARTBYTE1);
00060 xbeeSerial->putc(STARTBYTE2);
00061 xbeeSerial->putc(STATUSSTRING);    
00062 xbeeSerial->printf(info);    
00063 }
00064 void XBEE::sendCommand(int info)
00065 {
00066 xbeeSerial->putc(STARTBYTE0);
00067 xbeeSerial->putc(STARTBYTE1);
00068 xbeeSerial->putc(STARTBYTE2);
00069 xbeeSerial->putc(STATUSSTRING);    
00070 xbeeSerial->printf("%d",info);    
00071 }
00072 
00073 void XBEE::sendCommand(float info)
00074 {
00075 xbeeSerial->putc(STARTBYTE0);
00076 xbeeSerial->putc(STARTBYTE1);
00077 xbeeSerial->putc(STARTBYTE2);
00078 xbeeSerial->putc(STATUSSTRING);    
00079 xbeeSerial->printf("%f",info);    
00080 }
00081 
00082 void XBEE::sendCommand(double info)
00083 {
00084 xbeeSerial->putc(STARTBYTE0);
00085 xbeeSerial->putc(STARTBYTE1);
00086 xbeeSerial->putc(STARTBYTE2);
00087 xbeeSerial->putc(STATUSSTRING);    
00088 xbeeSerial->printf("%f",info);    
00089 }
00090 void XBEE::sendCommand(char command, int sizeOfPayload,char payload[])
00091 {
00092 xbeeSerial->putc(STARTBYTE0);
00093 xbeeSerial->putc(STARTBYTE1);
00094 xbeeSerial->putc(STARTBYTE2);
00095 xbeeSerial->putc(command); 
00096 for(int i=0; i<sizeOfPayload; i++)
00097     {
00098     xbeeSerial->putc(payload[i]); 
00099     }
00100     
00101 }
00102 void XBEE::sendCommand(char command)
00103 {
00104 xbeeSerial->putc(STARTBYTE0);
00105 xbeeSerial->putc(STARTBYTE1);
00106 xbeeSerial->putc(STARTBYTE2);
00107 xbeeSerial->putc(command); 
00108 }
00109 
00110 void XBEE::test()
00111 {
00112 
00113     if(cBuffer->available()){xbeeSerial->printf("Receiving The Following Data:\n\r");}
00114     while(cBuffer->available() > 0){xbeeSerial->putc(cBuffer->read());}
00115     //xbeeSerial->putc('A');
00116     
00117 
00118     
00119 }