Сбор информации о погодных условиях
Dependencies: RF24 USBDevice mbed
WirelessListener.cpp
- Committer:
- pro100kot14
- Date:
- 2015-12-05
- Revision:
- 6:db4538895ae7
- Parent:
- 3:346b49152f1e
File content as of revision 6:db4538895ae7:
#include "WirelessListener.h" WirelessListener::WirelessListener(uint64_t readPipe, uint64_t writePipe){ this->readPipe = readPipe; this->writePipe = writePipe; radio = new RF24(P1_22, P1_21, P1_20, P1_25, P1_24); wirelessInit(); termTmp36 = new ThermometerTmp36(AnalogIn(A0)); term503 = new Thermistor(AnalogIn(A1), 0.001995, 0.00007997, 0.0000003863); //term503->setError(-5000); photores = new Photoresistor(AnalogIn(A2)); } WirelessListener::~WirelessListener(){ delete(radio); delete(termTmp36); delete(term503); delete(photores); } void WirelessListener::wirelessInit(){ radio->begin(); radio->setAutoAck(true); radio->enableAckPayload(); radio->powerUp(); radio->setPALevel(RF24_PA_HIGH); radio->setDataRate(RF24_2MBPS); radio->setRetries(15,15); // Retry 15 times with 4000us delay between retries. radio->openReadingPipe(1,readPipe); radio->openWritingPipe(writePipe); } void WirelessListener::startListening(){ radio->startListening(); //-------------------------------- //платформозависимая от базы часть short request; short response; //-------------------------------- while(1){ if(radio->available()){ #ifdef DEBUG pc.printf("available()\r\n"); #endif radio->read(&request, sizeof(request)); #ifdef DEBUG pc.printf("request = %d\r\n", request); #endif switch(request){ case SHADE_TEMPERATURE: response = termTmp36->getTemperature()*100.0; break; case LIGHT_TEMPERATURE: response = term503->getTemperature()*100.0; break; case LIGHT: response = photores->getIllumination(); break; default: response = 0; } #ifdef DEBUG pc.printf("response = %d\r\n", response); #endif radio->stopListening(); radio->write(&response, sizeof(response)); radio->startListening(); } } }