Handle LoRa Basic Function

Dependents:   lora_example_miun

Parking.cpp

Committer:
biwa1400
Date:
2017-03-08
Revision:
0:f8af47d9f0cd

File content as of revision 0:f8af47d9f0cd:

#include "Lora.h"
#include "mbed.h"
#include "mDot.h"
#include "MTSLog.h"
#include <string>
#include <vector>
#include <sstream>
#include <iostream>
#include "Parking.h"

const string Parking::SATAE_TITLE = "DISTANCE=";
//const string Parking::EXIST = "QWE";
//const string Parking::DISAPPEAR = "ZXC";




//ADC



bool Parking::init()
{
     loraNode1.joinNetwork();
     return true;
}



bool Parking::capture_sent()
{
     static int i=0;
     stringstream  command;
     command <<"num: "<<i;
     string result;
     command >> result;
    // char buf[10];
    // sprintf(buf,"%d;\0",sensor1.sample());
     //result =SATAE_TITLE+(string)buf;
     loraNode1.sendData_string(result);
//     loraNode1.useDot()->openRxWindow(5000,2);
     return true;
}

bool Parking::recevie_set_sleeptime()
{
    string sleepTimeString;
    loraNode1.receiveData_string(sleepTimeString);
    logInfo("receive: %s",sleepTimeString.c_str());
    uint32_t sleeptime = (uint32_t)atoi(findKeyWord(sleepTimeString,"SLEEP").c_str());
    logInfo("sleepTime: %d",sleeptime);
    if( 0<sleeptime && sleeptime<1000)
    {
        uint32_t sleep_time = std::max(sleeptime*1000, (uint32_t)useDot()->getNextTxMs()) / 1000;
        logInfo("SettingSleeping...");
        useDot()->sleep(sleep_time, mDot::RTC_ALARM,false);
    }
    return true;
}
 
std::string
Parking::findKeyWord(std::string in_string, std::string keyWord)
{
        int title;
        int begin;
        int end;

        title = in_string.find(keyWord);
        begin = in_string.find("=",title)+1;
        if(in_string.find("{",begin)==begin)
        {
                begin++;
                end = in_string.find("}",begin);
        }
        else end = in_string.find(";",begin);

        return in_string.substr (begin, end-begin);
}