2018年度計器mbed用プログラム

Dependencies:   BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS

Fork of keiki2017 by albatross

Branch:
fasterCadence
Revision:
17:95aa2ab2b777
Parent:
16:22aae833bdae
--- a/Cadence.h	Wed Nov 30 08:08:14 2016 +0000
+++ b/Cadence.h	Sat Dec 17 07:54:06 2016 +0000
@@ -13,6 +13,7 @@
     
     public:
     string strC,strV;
+    char charC[4],charV[4];
     char data[DATAS_NUM];
     string strData;
     int data_count, data_num;
@@ -36,24 +37,44 @@
         }while(data[data_count-1] != '\n');
         
         if(data_count-1 > DATAS_NUM-4 ){
-            strData = data;
-            switch (strData.length()){
+//            strData = data;
+//            switch (strData.length()){
+            switch(data_count-1){
                 case DATAS_NUM-3 :
-                    strData.erase(0,2);
+//                    strData.erase(0,2);
+                    for(int i=0; i<4; i++){
+                        charV[i] = data[26+2];
+                        charC[i] = data[64+2];
+                    }
                     break;
                 case DATAS_NUM-2 :
-                    strData.erase(0,3);
+//                    strData.erase(0,3);
+                    for(int i=0; i<4; i++){
+                        charV[i] = data[26+3];
+                        charC[i] = data[64+3];
+                    }
                     break;
                 case DATAS_NUM-1 :
                     strData.erase(0,4);
+                    for(int i=0; i<4; i++){
+                        charV[i] = data[26+4];
+                        charC[i] = data[64+4];
+                    }
                     break;
                 case DATAS_NUM :
-                    strData.erase(0,5);
+//                    strData.erase(0,5);
+                    for(int i=0; i<4; i++){
+                        charV[i] = data[26+5];
+                        charC[i] = data[64+5];
+                    }
             }
-            strV = strData.substr(26,4);
-            strC = strData.substr(64,4);
-            sscanf(strV.c_str(),"%lf",&voltage);
-            sscanf(strC.c_str(),"%lf",&cadence);
+//            strV = strData.substr(26,4);
+//            strC = strData.substr(64,4);
+//            sscanf(strV.c_str(),"%lf",&voltage);
+//            sscanf(strC.c_str(),"%lf",&cadence);
+            
+            sscanf(charC,"%lf",&cadence);
+            sscanf(charV,"%lf",&voltage);
             cadence /= 6.0;
             voltage *= 0.001;
         }