920MHz帯無線機モジュール ES920LR用ライブラリ いわゆるLoRaWAN

Dependents:   HYBRYD2018_IZU_GROUND_STATION HYBRYD2018_IZU_ROCKET Hybrid_IZU201811_GNDv1 Hybrid_IZU2019 ... more

Revision:
1:febb32df437c
Parent:
0:3dede5174e85
Child:
2:1c4cb24c834b
--- a/ES920LR.hpp	Tue Feb 20 02:08:18 2018 +0000
+++ b/ES920LR.hpp	Tue Feb 20 17:58:41 2018 +0000
@@ -1,6 +1,6 @@
 #pragma once
 /*
-*   ES920LR ライブラリ ver0.2.1
+*   ES920LR ライブラリ ver0.2.2
 *   RSSI値、アドレス付与はまだ未対応です。
 *   データ形式はbinaryです。asciiには未対応です。
 *   設定の変更はあらかじめ行うという形式です。
@@ -115,7 +115,7 @@
     };
     union ES920LR_CAST es920lr_cast;
 
-    char data[51];
+
     int sendDataSize;
     void(*p_callFunc[256])(void);
     char sendBuff[52];
@@ -138,16 +138,9 @@
     ON_OFF _rssiAdd;//RSSI値を付加するかどうか
     
     int sendIndex;//送信バッファの現在のインデックス,1以上51以下
-    int responseFlag = 0;//送信後のレスポンスを受け取るかどうか
-
-public:
+    int responseFlag;//送信後のレスポンスを受け取るかどうか
 
-    char rssi[5];//最新の電波強度
-    char rcvPANID[5];
-    char rcvADDR[5];
-    char header;//最新のデータのヘッダー
-
-    void init(){
+    void init() {
         _nodeNumber = Coordinator;
         _band_width = _125kHz;
         _diffusivity = 7;//拡散率
@@ -186,6 +179,16 @@
 
     }
 
+public:
+
+    char data[51];
+    char rssi[5];//最新の電波強度
+    char rcvPANID[5];
+    char rcvADDR[5];
+    char header;//最新のデータのヘッダー
+
+
+
     //送信バッファを送信する
     void send() {
         printf("index:%d\r\n", sendIndex);
@@ -298,6 +301,80 @@
         return;
     }
 
+    int asciiToNumber(char c) {
+        //printf("%c ", c);
+        int temp = (int)c;
+        if (temp >= 65) {//A ~ F
+            return (temp - 55);
+        }
+        else {//0 ~ 9
+            return (temp - 48);
+        }
+    }
+
+    //RSSI値を数値に変換する
+    int calcRSSI() {
+        return asciiToNumber(rssi[0]) * 4096 + asciiToNumber(rssi[1]) * 256 + asciiToNumber(rssi[2]) * 16 + asciiToNumber(rssi[3]);
+    }
+
+    void dummyFunc() {
+        printf("ATTACH NO FUNCTION\r\n");
+    }
+
+    short toShort(char *array) {
+        //es920lr_cast.s = ((uint16_t)array[0] << 8) | (uint16_t)array[1];
+        es920lr_cast.u[0] = array[0];
+        es920lr_cast.u[1] = array[1];
+        return es920lr_cast.s;
+    }
+    short toShort(int i) {
+        return toShort(&data[i]);
+    }
+
+    int toInt(char *array) {
+        //es920lr_cast.i = ((uint32_t)array[0] << 24) | ((uint32_t)array[1] << 16) | ((uint32_t)array[2] << 8) | (uint32_t)array[3];
+        es920lr_cast.u[0] = array[0];
+        es920lr_cast.u[1] = array[1];
+        es920lr_cast.u[2] = array[2];
+        es920lr_cast.u[3] = array[3];
+        return es920lr_cast.i;
+    }
+    int toInt(int i) {
+        return toInt(&data[i]);
+    }
+
+    float toFloat(char *array) {
+        es920lr_cast.u[0] = array[0];
+        es920lr_cast.u[1] = array[1];
+        es920lr_cast.u[2] = array[2];
+        es920lr_cast.u[3] = array[3];
+        return es920lr_cast.f;
+    }
+    float toFloat(int i) {
+        return toFloat(&data[i]);
+    }
+
+    double toDouble(char *array) {
+        for (int i = 0; i< 8; ++i) {
+            es920lr_cast.u[i] = array[i];
+        }
+        return es920lr_cast.d;
+    }
+    double toDouble(int i) {
+        return toDouble(&data[i]);
+    }
+
+    long toLong(char *array) {
+        for (int i = 0; i < 8; ++i) {
+            es920lr_cast.u[i] = array[i];
+        }
+        return es920lr_cast.l;
+    }
+    long toLong(int i) {
+        return toLong(&data[i]);
+    }
+
+private:
     //1文字受信するたびに呼ばれ、データを受信バッファに入れる
     void es920lrHandler() {
 
@@ -390,16 +467,7 @@
         ser->baud(baudrate);
     }
 
-    int asciiToNumber(char c) {
-        //printf("%c ", c);
-        int temp = (int)c;
-        if (temp >= 65) {//A ~ F
-            return (temp - 55);
-        }
-        else {//0 ~ 9
-            return (temp - 48);
-        }
-    }
+
 
     /**
     @bref データを取得します
@@ -474,67 +542,7 @@
 
     }
 
-    //RSSI値を数値に変換する
-    int calcRSSI() {
-        return asciiToNumber(rssi[0]) * 4096 + asciiToNumber(rssi[1]) * 256 + asciiToNumber(rssi[2]) * 16 + asciiToNumber(rssi[3]);
-    }
-
-    void dummyFunc() {
-        printf("ATTACH NO FUNCTION\r\n");
-    }
-
-    short toShort(char *array) {
-        //es920lr_cast.s = ((uint16_t)array[0] << 8) | (uint16_t)array[1];
-        es920lr_cast.u[0] = array[0];
-        es920lr_cast.u[1] = array[1];
-        return es920lr_cast.s;
-    }
-    short toShort(int i) {
-        return toShort(&data[i]);
-    }
-
-    int toInt(char *array) {
-        //es920lr_cast.i = ((uint32_t)array[0] << 24) | ((uint32_t)array[1] << 16) | ((uint32_t)array[2] << 8) | (uint32_t)array[3];
-        es920lr_cast.u[0] = array[0];
-        es920lr_cast.u[1] = array[1];
-        es920lr_cast.u[2] = array[2];
-        es920lr_cast.u[3] = array[3];
-        return es920lr_cast.i;
-    }
-    int toInt(int i) {
-        return toInt(&data[i]);
-    }
-
-    float toFloat(char *array) {
-        es920lr_cast.u[0] = array[0];
-        es920lr_cast.u[1] = array[1];
-        es920lr_cast.u[2] = array[2];
-        es920lr_cast.u[3] = array[3];
-        return es920lr_cast.f;
-    }
-    float toFloat(int i) {
-        return toFloat(&data[i]);
-    }
-
-    double toDouble(char *array) {
-        for (int i = 0; i< 8; ++i) {
-            es920lr_cast.u[i] = array[i];
-        }
-        return es920lr_cast.d;
-    }
-    double toDouble(int i) {
-        return toDouble(&data[i]);
-    }
-
-    long toLong(char *array) {
-        for (int i = 0; i < 8; ++i) {
-            es920lr_cast.u[i] = array[i];
-        }
-        return es920lr_cast.l;
-    }
-    long toLong(int i) {
-        return toLong(&data[i]);
-    }
+    
 
 };