2017年度の製作を開始します。

Dependencies:   BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1

Fork of keiki2016ver5 by albatross

Committer:
tsumagari
Date:
Fri Feb 17 07:38:36 2017 +0000
Revision:
29:2da9b8d03c0b
Parent:
26:50272431cd1e
Child:
35:4c02c7ff81ab
mpu??????????????????????????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tsumagari 15:6966299bea4c 1 #ifndef CADENCE_H
tsumagari 15:6966299bea4c 2 #define CADENCE_H
tsumagari 15:6966299bea4c 3
tsumagari 15:6966299bea4c 4 #include "mbed.h"
tsumagari 15:6966299bea4c 5 #include <string>
tsumagari 15:6966299bea4c 6
tsumagari 21:8802034b7810 7 class Cadence : public RawSerial{
tsumagari 15:6966299bea4c 8 private:
tsumagari 15:6966299bea4c 9 static const int DATAS_NUM = 75;
tsumagari 15:6966299bea4c 10
tsumagari 15:6966299bea4c 11 protected:
tsumagari 15:6966299bea4c 12
tsumagari 15:6966299bea4c 13 public:
tsumagari 15:6966299bea4c 14 string strC,strV;
tsumagari 15:6966299bea4c 15 char data[DATAS_NUM];
tsumagari 15:6966299bea4c 16 string strData;
tsumagari 15:6966299bea4c 17 int data_count, data_num;
tsumagari 15:6966299bea4c 18 double cadence, voltage;
tsumagari 21:8802034b7810 19 Cadence(PinName tx, PinName rx, const char* name = NULL) : RawSerial(tx, rx){
tsumagari 15:6966299bea4c 20 for(int i=0;i<DATAS_NUM;i++) data[i]= NULL;
tsumagari 15:6966299bea4c 21 data_num=0;
tsumagari 15:6966299bea4c 22 data_count=0;
tsumagari 15:6966299bea4c 23 baud(115200);
tsumagari 15:6966299bea4c 24 cadence=0;
tsumagari 15:6966299bea4c 25 voltage=0;
tsumagari 15:6966299bea4c 26 }
tsumagari 29:2da9b8d03c0b 27 void readData(){
tsumagari 26:50272431cd1e 28 if(readable()){
tsumagari 15:6966299bea4c 29 data_count = 0;
tsumagari 15:6966299bea4c 30 data_num = 0;
tsumagari 15:6966299bea4c 31 cadence = 0;
tsumagari 15:6966299bea4c 32 do{
tsumagari 15:6966299bea4c 33 if(readable()) {
tsumagari 15:6966299bea4c 34 data[data_count] = getc();
tsumagari 15:6966299bea4c 35 data_count++;
tsumagari 15:6966299bea4c 36 }
tsumagari 15:6966299bea4c 37 }while(data[data_count-1] != '\n');
tsumagari 15:6966299bea4c 38 strData = data;
tsumagari 26:50272431cd1e 39 if( int strlength = strData.length() > DATAS_NUM-4 ){
tsumagari 26:50272431cd1e 40 // for(int i = 0; i<4; i++){
tsumagari 26:50272431cd1e 41 // strC += data[data_count-6+i];
tsumagari 26:50272431cd1e 42 // strV += data[data_count-43+i];
tsumagari 26:50272431cd1e 43 // }
tsumagari 15:6966299bea4c 44 switch (strData.length()){
tsumagari 15:6966299bea4c 45 case DATAS_NUM-3 :
tsumagari 15:6966299bea4c 46 strData.erase(0,2);
tsumagari 15:6966299bea4c 47 break;
tsumagari 15:6966299bea4c 48 case DATAS_NUM-2 :
tsumagari 15:6966299bea4c 49 strData.erase(0,3);
tsumagari 15:6966299bea4c 50 break;
tsumagari 15:6966299bea4c 51 case DATAS_NUM-1 :
tsumagari 15:6966299bea4c 52 strData.erase(0,4);
tsumagari 15:6966299bea4c 53 break;
tsumagari 15:6966299bea4c 54 case DATAS_NUM :
tsumagari 15:6966299bea4c 55 strData.erase(0,5);
tsumagari 15:6966299bea4c 56 }
tsumagari 15:6966299bea4c 57 strV = strData.substr(26,4);
tsumagari 15:6966299bea4c 58 strC = strData.substr(64,4);
tsumagari 15:6966299bea4c 59 sscanf(strV.c_str(),"%lf",&voltage);
tsumagari 15:6966299bea4c 60 sscanf(strC.c_str(),"%lf",&cadence);
tsumagari 26:50272431cd1e 61 cadence /= 6.0;
tsumagari 26:50272431cd1e 62 voltage *= 0.001;
tsumagari 15:6966299bea4c 63 }
tsumagari 26:50272431cd1e 64 }
tsumagari 15:6966299bea4c 65 }
tsumagari 15:6966299bea4c 66 };
tsumagari 15:6966299bea4c 67 #endif