Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of APP4 by
Revision 3:350f07072089, committed 2014-02-24
- Comitter:
- joGenie
- Date:
- Mon Feb 24 15:40:33 2014 +0000
- Parent:
- 2:7515831bb5f5
- Child:
- 4:aac38b016952
- Commit message:
- NEW;
Changed in this revision
--- a/coordinateur.hpp Mon Feb 24 14:08:10 2014 +0000
+++ b/coordinateur.hpp Mon Feb 24 15:40:33 2014 +0000
@@ -12,6 +12,8 @@
// Constructeur
Coordinateur(PinName _tx, PinName _rx);
+ void setPanId(string _pan) { pan = _pan); }
+
private:
Trame trame;
string pan;
--- a/readfile.cpp Mon Feb 24 14:08:10 2014 +0000
+++ b/readfile.cpp Mon Feb 24 15:40:33 2014 +0000
@@ -3,7 +3,30 @@
ReadFile::ReadFile()
{}
-void ReadFile::setConfigCoord(Coordinateur *coord, const string filename)
+bool ReadFile::setConfigCoord(Coordinateur *coord, const string filename)
+{
+ string line;
+ ifstream myfile(filename.c_str());
+ if (myfile.is_open())
+ {
+ while (getline(myfile,line))
+ {
+ if (line[0] != "#")
+ {
+ if (line.find("PANID") != string::npos)
+ ://coord->setPanID(line.substr(
+ }
+ }
+
+ myfile.close();
+
+ return true;
+ }
+
+ return false;
+}
+
+bool ReadFile::setConfigRouteur(Routeur *rout, const string filename)
{
string line;
ifstream myfile(filename.c_str());
@@ -14,19 +37,9 @@
}
myfile.close();
- }
-}
-
-void ReadFile::setConfigRouteur(Routeur *rout, const string filename)
-{
- string line;
- ifstream myfile(filename.c_str());
- if (myfile.is_open())
- {
- while (getline(myfile,line))
- {
- }
- myfile.close();
+ return true;
}
+
+ return false;
}
\ No newline at end of file
--- a/readfile.hpp Mon Feb 24 14:08:10 2014 +0000
+++ b/readfile.hpp Mon Feb 24 15:40:33 2014 +0000
@@ -19,10 +19,10 @@
ReadFile();
//Set information of the coordinateur
- void setConfigCoord(Coordinateur *coord, const string filename);
+ bool setConfigCoord(Coordinateur *coord, const string filename);
//Set information of the routeur
- void setConfigRouteur(Routeur *rout, const string filename);
+ bool setConfigRouteur(Routeur *rout, const string filename);
};
#endif
\ No newline at end of file
--- a/trame.cpp Mon Feb 24 14:08:10 2014 +0000
+++ b/trame.cpp Mon Feb 24 15:40:33 2014 +0000
@@ -6,8 +6,65 @@
{
}
-void Trame::sendATCommand(const char* command, int data)
+void Trame::sendATCommand(const char* command, const char* data, int length)
{
+ int tmp = length + 8;
+ char* trm = new char[tmp];
+
+ trm[0] = 0x7E; // Delimiter
+ trm[1] = static_cast<char>((tmp >> 8) & 0xFF); // MSB de length
+ trm[2] = static_cast<char>(tmp & 0xFF); // LSB length
+ trm[3] = 0x08; // Type
+ trm[4] = 0x01; // API
+ trm[5] = command[0];
+ trm[6] = command[1];
+ for (int i = 0; i < length; i++)
+ trm[7+i] = data[i]; //Data
+ trm[7+length] = crc8(trm, tmp - 1);
+
Serial xbee(tx, rx);
- xbee.putc(0x10);
+ for (int i = 0; i < tmp; i++)
+ xbee.putc(trm[i]);
+
+ wait(0.01);
+ delete trm;
+}
+
+void Trame::sendTransmitRequest(const char* destination, const char* data, int length)
+{
+ int tmp = length + 18;
+ char* trm = new char[tmp];
+
+ trm[0] = 0x7E; // Delimiter
+ trm[1] = static_cast<char>((tmp >> 8) & 0xFF); // MSB de length
+ trm[2] = static_cast<char>(tmp & 0xFF); // LSB length
+ trm[3] = 0x10; // Type
+ trm[4] = 0x01; // API
+ for (int i = 0; i < 8; i++)
+ trm[5 + i] = destination[i]; //Destination
+ trm[13] = 0x00; // 16 bits address
+ trm[14] = 0x00; // 16 bits address
+ trm[15] = 0x00; // Radius
+ trm[16] = 0x00; // Options
+
+ for (int i = 0; i < length; i++)
+ trm[17 + i] = data[i]; // Data
+
+ trm[17 + length] = crc8(trm, tmp - 1);
+
+ Serial xbee(tx, rx);
+ for (int i = 0; i < tmp; i++)
+ xbee.putc(trm[i]);
+
+ wait(0.01);
+ delete trm;
+}
+
+unsigned char Trame::crc8(const char* data, int length)
+{
+ unsigned char crc = 0;
+ for (int i = 1; i < length; i++)
+ crc += data[i];
+
+ return (0xFF - crc);
}
\ No newline at end of file
--- a/trame.hpp Mon Feb 24 14:08:10 2014 +0000
+++ b/trame.hpp Mon Feb 24 15:40:33 2014 +0000
@@ -11,9 +11,15 @@
// Constructeur
Trame(PinName _tx, PinName _rx);
- void sendATCommand(const char* command, int data = 0);
+ // Envoie une trame pour une commande AT
+ void sendATCommand(const char* command, const char* data, int length);
- unsigned int checksum();
+ // Envoie une trame pour une requete transmition
+ void sendTransmitRequest(const char* destination, const char* data, int length);
+
+ //Effectue le checksum d'un AT command
+ unsigned char crc8(const char* data, int length);
+
private:
PinName tx, rx;
};
