wireless sensor / Mbed 2 deprecated rssi_test_915

Dependencies:   libmDot915 mbed-rtos mbed

Fork of rssi_test by wireless sensor

Files at this revision

API Documentation at this revision

Comitter:
wang1tao
Date:
Sat Aug 13 09:34:57 2016 +0000
Parent:
8:dfcee7a96019
Child:
10:79124c0a5952
Commit message:
Changed for multi-channel PH measurement

Changed in this revision

LinearAnalogSensors.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/LinearAnalogSensors.lib	Fri Aug 12 03:33:55 2016 +0000
+++ b/LinearAnalogSensors.lib	Sat Aug 13 09:34:57 2016 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/teams/wireless-sensor/code/LinearAnalogSensors/#ab7e37fda3a3
+https://developer.mbed.org/teams/wireless-sensor/code/LinearAnalogSensors/#61e97a2029f8
--- a/main.cpp	Fri Aug 12 03:33:55 2016 +0000
+++ b/main.cpp	Sat Aug 13 09:34:57 2016 +0000
@@ -4,35 +4,44 @@
 #include <string>
 #include <vector>
 #include <algorithm>
-//#include "DHT.h"
-#include "LinearTemp.h"
+#include "AnalogPH.h"
+
+//defined for mDot SVB debug, comment it if applying for whole system
+#define NO_MULTITECH_GATEWAY
+
+//Define the number of channels
+#define NUM_OF_CH     4
  
-//DHT sensor(PB_1, DHT11);
-LinearTemp  myPHSensor(PB_0, 0.005, -273.15);
+AnalogPHSensor CH0_PH(PB_0, 0.0, 0.0);
+
+#if (NUM_OF_CH >1)
+  AnalogPHSensor CH1_PH(PB_1, 0.0, 0.0);
+#endif
+
+#if (NUM_OF_CH >2)
+  AnalogPHSensor CH2_PH(PA_4, 0.0, 0.0);
+#endif
+#if (NUM_OF_CH >3)
+  AnalogPHSensor CH3_PH(PA_5, 0.0, 0.0);
+#endif
 
 // these options must match the settings on your Conduit
 // uncomment the following lines and edit their values to match your configuration
 static std::string config_network_name = "chinaiot";
 static std::string config_network_pass = "password";
-static uint8_t config_frequency_sub_band = 2;
 
 int main() {
-    int32_t ret;
+
     mDot* dot;
     std::vector<uint8_t> data;
-    std::vector<uint8_t> send_data;
-    float PhValue;
-    std::string data_str = "T&H Sensors";
+    float phValue;
+    char _header[] = "PH Sensors";
     char dataBuf[11];
-//    int error = 0;
-//    float h = 0.0f, c = 0.0f, f = 0.0f, k = 0.0f, dp = 0.0f, dpf = 0.0f;
-//    float h = 0.0f, c = 0.0f;
- 
- 
+    int  i, k;
+
     // get a mDot handle
     dot = mDot::getInstance();
 
-
     // print library version information
     logInfo("version: %s", dot->getId().c_str());
 
@@ -43,7 +52,7 @@
     dot->resetConfig();
 
     dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
-
+#ifndef NO_MULTITECH_GATEWAY
     // set up the mDot with our network information: frequency sub band, network name, and network password
     // these can all be saved in NVM so they don't need to be set every time - see mDot::saveConfig()
 
@@ -97,32 +106,62 @@
     }
 
     // format data for sending to the gateway
-    for (std::string::iterator it = data_str.begin(); it != data_str.end(); it++)
-        data.push_back((uint8_t) *it);
-    
+    for( int i=0; i< strlen(_header); i++ )
+               data.push_back( _header[i] );
+               
+    // send the data to the gateway
+    if ((ret = dot->send(data)) != mDot::MDOT_OK) {
+        logError("failed to send", ret, mDot::getReturnCodeString(ret).c_str());
+    } else {
+            logInfo("successfully sent data to gateway");
+    } 
+#else
+  logInfo("%s", _header);
+#endif 
     while (true) {
-        // send the data to the gateway
-        if ((ret = dot->send(data)) != mDot::MDOT_OK) {
-            logError("failed to send", ret, mDot::getReturnCodeString(ret).c_str());
-        } else {
+        
+        // Read the PH values
+        for(k=0; k<NUM_OF_CH; k++){
+           switch(k){
+              case 0:  phValue = CH0_PH; break;
+            #if (NUM_OF_CH >1)
+              case 1:  phValue = CH1_PH; break;
+            #endif
+            #if (NUM_OF_CH >2)
+              case 2:  phValue = CH2_PH; break;
+            #endif  
+            #if (NUM_OF_CH >3)
+              case 3:  phValue = CH3_PH; break;
+            #endif
+              default: 
+                   break;
+            }  
+            //for(i=0; i<1;i++)  printf("3:[CH%d]", k);          
+            sprintf(dataBuf, "CH%d:%5.4f", k, phValue);
+            //for(i=0; i<1;i++)  printf("4:[%s]", dataBuf);
+            logInfo("%s", dataBuf);
+            
+         #ifndef NO_MULTITECH_GATEWAY
+            //Send the data to Gateway
+            data.clear();   
+            // probably not the most efficent way to do this
+            for( int i=0; i< strlen(dataBuf); i++ )
+               data.push_back( dataBuf[i] );
+        
+            // send the data to the gateway
+            if ((ret = dot->send(data)) != mDot::MDOT_OK) {
+               logError("failed to send", ret, mDot::getReturnCodeString(ret).c_str());
+            } else {
             logInfo("successfully sent data to gateway");
-        }
-        
+            }
+          #endif
+        } //for 
         // in the 868 (EU) frequency band, we need to wait until another channel is available before transmitting again
+     #ifndef NO_MULTITECH_GATEWAY
         osDelay(std::max((uint32_t)5000, (uint32_t)dot->getNextTxMs()));
-
-        data.clear();
-        
-        // Read the PH value
-        PhValue = myPHSensor;
-        
-        sprintf(dataBuf, "CH0:%5.4f", PhValue);
-        logInfo("%s", dataBuf);
-        
-        // probably not the most efficent way to do this
-        for( int i=0; i< strlen(dataBuf); i++ )
-            data.push_back( dataBuf[i] );
-
+     #else
+        osDelay(1000);
+     #endif
     }
 
 }