Sigfox library with integration of ATParser
Sigfox.cpp
- Committer:
- Raffaello
- Date:
- 2017-05-18
- Revision:
- 4:c77d5019b264
- Parent:
- 3:279bed56f354
- Child:
- 5:66e05787ad5c
File content as of revision 4:c77d5019b264:
#include "Sigfox.h" bool Sigfox::ready() { _at->send("AT"); return _at->recv("OK"); } bool Sigfox::send(const char *data, char* response) { // If require a response add plus in message if(response != NULL) { // Add request response data _at->send("AT$SF=%s,1", data); // Wait response from sigfox after send if(_at->recv("OK")) { char message[20]; // Wait return // TODO add loop to load data if(_at->recv("+RX%s", &message)) { // Check if message received is equal to " OK" if(strcmp(message, " OK") == 0) { return true; } } } return false; } else { _at->send("AT$SF=%s", data); return _at->recv("OK"); } } bool Sigfox::setKey(bool type) { _at->send("ATS410=%d", type); return _at->recv("OK"); } bool Sigfox::setPower(uint8_t power) { _at->send("ATS302=%d", power); return _at->recv("OK"); } bool Sigfox::setPowerMode(uint8_t power) { _at->send("AT$P=%d", power); return _at->recv("OK"); } void Sigfox::wakeup(DigitalInOut sig_rst, float time) { // Wake up sigfox sig_rst.output(); sig_rst = 0; wait(time); // Set high impendance the sigfox reset pin sig_rst.input(); wait(time); } char *Sigfox::getID() { char buff[8+2]; _at->send("AT$I=10"); _at->read(buff, 8+2); memcpy(&ID[0],&buff[2],8); return &ID[0]; } char *Sigfox::getPAC() { char buff[16+2]; _at->send("AT$I=11"); _at->read(buff, 16+2); memcpy(&PAC[0],&buff[2],16); return &PAC[0]; }