Voici le programme que vous m'avez demandé aujourd'hui

Dependencies:   mbed-os-example-mbed5-lorawan

Fork of mbed-os-example-mbed5-lorawan by mbed-os-examples

Revision:
23:3dfaed332d89
Parent:
18:1720bc3831ea
--- a/main.cpp	Wed Jun 06 08:30:19 2018 +0100
+++ b/main.cpp	Fri Jun 08 18:13:32 2018 +0000
@@ -15,13 +15,15 @@
  * limitations under the License.
  */
 #include <stdio.h>
+#include "mbed.h"
+#include "Sensors.h"
+#include "qsd.h"
 
 #include "lorawan/LoRaWANInterface.h"
 #include "lorawan/system/lorawan_data_structures.h"
 #include "events/EventQueue.h"
 
 // Application helpers
-#include "DummySensor.h"
 #include "trace_helper.h"
 #include "lora_radio_helper.h"
 
@@ -58,7 +60,6 @@
 /**
  * Dummy sensor class object
  */
-DS1820  ds1820(PC_9);
 
 /**
 * This event queue is the global event queue for both the
@@ -90,8 +91,65 @@
 /**
  * Entry point for application
  */
+ 
+// Masque selection de bits
+#define MSK1    0xFF
+#define MSK2    0xFF00
+#define MSK3    0xFF0000
+#define MSK4    0xFF000000
+ 
+uint8_t MSGtosend[30];
+int pos, pos_1,pos_2;
+SENSORS capteur;
+QSD  qsd;
+int QSD_value;
+int QSD_VAL1,QSD_VAL2,QSD_VAL3,QSD_VAL4;
+
+int courant , courant_1,courant_2 ;
+
+int tension_bat;
+
 int main (void)
 {
+        tension_bat = capteur.vbat_sensor();
+        MSGtosend[0]=0x07;
+        MSGtosend[1]=0x01;
+        MSGtosend[2]= tension_bat ;   
+        /*
+        courant = capteur.current_sensor();
+        courant_1 = ((courant) & MSK1) >>0;
+        courant_2 = ((courant) & MSK2) >>8;
+        MSGtosend[0]=0x06;
+        MSGtosend[1]=0x02;
+        MSGtosend[2]=courant_2;
+        MSGtosend[3]=courant_1;
+        */
+        
+        /*
+        pos = capteur.transducer_sensor();
+        
+        pos_1 = (pos & MSK1) >>0;
+        pos_2 = (pos & MSK2) >>8;
+        
+        MSGtosend[0]=0x04;
+        MSGtosend[1]=0x02;
+        MSGtosend[2]=0x00;
+        MSGtosend[3]=pos;
+        */
+        /*
+        
+        QSD_value = qsd.read();
+        //printf("\r\n QSD Sensor Value = %d \r\n", QSD_value);
+        QSD_VAL1 = (QSD_value & MSK1)>>0;
+        QSD_VAL2 = (QSD_value & MSK2)>>8;
+        QSD_VAL3 = (QSD_value & MSK3)>>16;
+        QSD_VAL4 = (QSD_value & MSK4)>>24;
+        MSGtosend[0]=QSD_VAL4;
+        MSGtosend[1]=QSD_VAL3;
+        MSGtosend[2]=QSD_VAL2;
+        MSGtosend[3]=QSD_VAL1;
+        */
+        
     // setup tracing
     setup_trace();
 
@@ -141,8 +199,10 @@
 
     // make your event queue dispatching events forever
     ev_queue.dispatch_forever();
+    
+    return 0;
 
-    return 0;
+
 }
 
 
@@ -151,29 +211,17 @@
  */
 static void send_message()
 {
-    uint16_t packet_len;
-    int16_t retcode;
-    float sensor_value;
+     uint8_t packet_len;
+    int8_t retcode;
 
-    if (ds1820.begin()) {
-        ds1820.startConversion();
-        sensor_value = ds1820.read();
-        printf("\r\n Dummy Sensor Value = %3.1f \r\n", sensor_value);
-        ds1820.startConversion();
-    } else {
-        printf("\r\n No sensor found \r\n");
-        return;
-    }
+    packet_len = 4;
 
-    packet_len = sprintf((char*) tx_buffer, "Dummy Sensor Value is %3.1f",
-                    sensor_value);
-
-    retcode = lorawan.send(MBED_CONF_LORA_APP_PORT, tx_buffer, packet_len,
+    retcode = lorawan.send(MBED_CONF_LORA_APP_PORT, MSGtosend, packet_len,
                            MSG_CONFIRMED_FLAG);
 
     if (retcode < 0) {
         retcode == LORAWAN_STATUS_WOULD_BLOCK ? printf("send - WOULD BLOCK\r\n")
-                : printf("\r\n send() - Error code %d \r\n", retcode);
+        : printf("\r\n send() - Error code %d \r\n", retcode);
         return;
     }
 
@@ -184,6 +232,7 @@
 /**
  * Receive a message from the Network Server
  */
+ /*
 static void receive_message()
 {
     int16_t retcode;
@@ -206,13 +255,14 @@
 
     memset(rx_buffer, 0, sizeof(rx_buffer));
 }
-
+*/
 /**
  * Event handler
  */
 static void lora_event_handler(lorawan_event_t event)
 {
-    switch (event) {
+    switch (event) 
+    {
         case CONNECTED:
             printf("\r\n Connection - Successful \r\n");
             if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
@@ -222,40 +272,13 @@
             }
 
             break;
-        case DISCONNECTED:
-            ev_queue.break_dispatch();
-            printf("\r\n Disconnected Successfully \r\n");
-            break;
         case TX_DONE:
             printf("\r\n Message Sent to Network Server \r\n");
             if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
-                send_message();
-            }
-            break;
-        case TX_TIMEOUT:
-        case TX_ERROR:
-        case TX_CRYPTO_ERROR:
-        case TX_SCHEDULING_ERROR:
-            printf("\r\n Transmission Error - EventCode = %d \r\n", event);
-            // try again
-            if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
-                send_message();
-            }
-            break;
-        case RX_DONE:
-            printf("\r\n Received message from Network Server \r\n");
-            receive_message();
-            break;
-        case RX_TIMEOUT:
-        case RX_ERROR:
-            printf("\r\n Error in reception - Code = %d \r\n", event);
-            break;
-        case JOIN_FAILURE:
-            printf("\r\n OTAA Failed - Check Keys \r\n");
-            break;
-        default:
-            MBED_ASSERT("Unknown Event");
-    }
+               ev_queue.break_dispatch();
+               //timer.reset();
+            }                        
+    } 
+    
 }
-
 // EOF