Сбор информации о погодных условиях

Dependencies:   RF24 USBDevice mbed

Committer:
pro100kot14
Date:
Sat Dec 05 16:57:30 2015 +0000
Revision:
6:db4538895ae7
Parent:
3:346b49152f1e
Added unit testing. Test results are displayed on the device LEDs.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pro100kot14 3:346b49152f1e 1 #include "WirelessListener.h"
pro100kot14 3:346b49152f1e 2
pro100kot14 3:346b49152f1e 3 WirelessListener::WirelessListener(uint64_t readPipe, uint64_t writePipe){
pro100kot14 3:346b49152f1e 4 this->readPipe = readPipe;
pro100kot14 3:346b49152f1e 5 this->writePipe = writePipe;
pro100kot14 3:346b49152f1e 6
pro100kot14 3:346b49152f1e 7 radio = new RF24(P1_22, P1_21, P1_20, P1_25, P1_24);
pro100kot14 3:346b49152f1e 8 wirelessInit();
pro100kot14 3:346b49152f1e 9
pro100kot14 3:346b49152f1e 10 termTmp36 = new ThermometerTmp36(AnalogIn(A0));
pro100kot14 3:346b49152f1e 11 term503 = new Thermistor(AnalogIn(A1), 0.001995, 0.00007997, 0.0000003863);
pro100kot14 3:346b49152f1e 12 //term503->setError(-5000);
pro100kot14 3:346b49152f1e 13 photores = new Photoresistor(AnalogIn(A2));
pro100kot14 3:346b49152f1e 14
pro100kot14 3:346b49152f1e 15
pro100kot14 3:346b49152f1e 16 }
pro100kot14 3:346b49152f1e 17
pro100kot14 3:346b49152f1e 18 WirelessListener::~WirelessListener(){
pro100kot14 3:346b49152f1e 19 delete(radio);
pro100kot14 3:346b49152f1e 20 delete(termTmp36);
pro100kot14 3:346b49152f1e 21 delete(term503);
pro100kot14 3:346b49152f1e 22 delete(photores);
pro100kot14 3:346b49152f1e 23 }
pro100kot14 3:346b49152f1e 24
pro100kot14 3:346b49152f1e 25 void WirelessListener::wirelessInit(){
pro100kot14 3:346b49152f1e 26 radio->begin();
pro100kot14 3:346b49152f1e 27 radio->setAutoAck(true);
pro100kot14 3:346b49152f1e 28 radio->enableAckPayload();
pro100kot14 3:346b49152f1e 29 radio->powerUp();
pro100kot14 3:346b49152f1e 30 radio->setPALevel(RF24_PA_HIGH);
pro100kot14 3:346b49152f1e 31 radio->setDataRate(RF24_2MBPS);
pro100kot14 3:346b49152f1e 32 radio->setRetries(15,15); // Retry 15 times with 4000us delay between retries.
pro100kot14 3:346b49152f1e 33 radio->openReadingPipe(1,readPipe);
pro100kot14 3:346b49152f1e 34 radio->openWritingPipe(writePipe);
pro100kot14 3:346b49152f1e 35 }
pro100kot14 3:346b49152f1e 36
pro100kot14 3:346b49152f1e 37 void WirelessListener::startListening(){
pro100kot14 3:346b49152f1e 38 radio->startListening();
pro100kot14 3:346b49152f1e 39 //--------------------------------
pro100kot14 3:346b49152f1e 40 //платформозависимая от базы часть
pro100kot14 3:346b49152f1e 41 short request;
pro100kot14 3:346b49152f1e 42 short response;
pro100kot14 3:346b49152f1e 43 //--------------------------------
pro100kot14 3:346b49152f1e 44 while(1){
pro100kot14 3:346b49152f1e 45 if(radio->available()){
pro100kot14 3:346b49152f1e 46 #ifdef DEBUG
pro100kot14 3:346b49152f1e 47 pc.printf("available()\r\n");
pro100kot14 3:346b49152f1e 48 #endif
pro100kot14 3:346b49152f1e 49 radio->read(&request, sizeof(request));
pro100kot14 3:346b49152f1e 50 #ifdef DEBUG
pro100kot14 3:346b49152f1e 51 pc.printf("request = %d\r\n", request);
pro100kot14 3:346b49152f1e 52 #endif
pro100kot14 3:346b49152f1e 53 switch(request){
pro100kot14 3:346b49152f1e 54 case SHADE_TEMPERATURE:
pro100kot14 3:346b49152f1e 55 response = termTmp36->getTemperature()*100.0;
pro100kot14 3:346b49152f1e 56 break;
pro100kot14 3:346b49152f1e 57 case LIGHT_TEMPERATURE:
pro100kot14 3:346b49152f1e 58 response = term503->getTemperature()*100.0;
pro100kot14 3:346b49152f1e 59 break;
pro100kot14 3:346b49152f1e 60 case LIGHT:
pro100kot14 3:346b49152f1e 61 response = photores->getIllumination();
pro100kot14 3:346b49152f1e 62 break;
pro100kot14 3:346b49152f1e 63 default:
pro100kot14 3:346b49152f1e 64 response = 0;
pro100kot14 3:346b49152f1e 65 }
pro100kot14 3:346b49152f1e 66 #ifdef DEBUG
pro100kot14 3:346b49152f1e 67 pc.printf("response = %d\r\n", response);
pro100kot14 3:346b49152f1e 68 #endif
pro100kot14 3:346b49152f1e 69 radio->stopListening();
pro100kot14 3:346b49152f1e 70 radio->write(&response, sizeof(response));
pro100kot14 3:346b49152f1e 71 radio->startListening();
pro100kot14 3:346b49152f1e 72 }
pro100kot14 3:346b49152f1e 73 }
pro100kot14 3:346b49152f1e 74 }