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

Dependencies:   BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1

Fork of keiki2016ver5 by albatross

Committer:
tsumagari
Date:
Sat Dec 17 07:54:06 2016 +0000
Branch:
fasterCadence
Revision:
19:95aa2ab2b777
Parent:
16:22aae833bdae
cadence.h??????;

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 16:22aae833bdae 5 #include "BufferedSoftSerial.h"
tsumagari 15:6966299bea4c 6 #include <string>
tsumagari 15:6966299bea4c 7
tsumagari 16:22aae833bdae 8 class Cadence : public BufferedSoftSerial{
tsumagari 15:6966299bea4c 9 private:
tsumagari 15:6966299bea4c 10 static const int DATAS_NUM = 75;
tsumagari 15:6966299bea4c 11
tsumagari 15:6966299bea4c 12 protected:
tsumagari 15:6966299bea4c 13
tsumagari 15:6966299bea4c 14 public:
tsumagari 15:6966299bea4c 15 string strC,strV;
tsumagari 19:95aa2ab2b777 16 char charC[4],charV[4];
tsumagari 15:6966299bea4c 17 char data[DATAS_NUM];
tsumagari 15:6966299bea4c 18 string strData;
tsumagari 15:6966299bea4c 19 int data_count, data_num;
tsumagari 15:6966299bea4c 20 double cadence, voltage;
tsumagari 16:22aae833bdae 21 Cadence(PinName tx, PinName rx) : BufferedSoftSerial(tx, rx){
tsumagari 15:6966299bea4c 22 for(int i=0;i<DATAS_NUM;i++) data[i]= NULL;
tsumagari 15:6966299bea4c 23 data_num=0;
tsumagari 15:6966299bea4c 24 data_count=0;
tsumagari 16:22aae833bdae 25 baud(9600);
tsumagari 15:6966299bea4c 26 cadence=0;
tsumagari 15:6966299bea4c 27 voltage=0;
tsumagari 15:6966299bea4c 28 }
tsumagari 15:6966299bea4c 29 void readData(){ //Ticker で定期的に呼び出して値を更新
tsumagari 15:6966299bea4c 30 data_count = 0;
tsumagari 15:6966299bea4c 31 data_num = 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
tsumagari 16:22aae833bdae 39 if(data_count-1 > DATAS_NUM-4 ){
tsumagari 19:95aa2ab2b777 40 // strData = data;
tsumagari 19:95aa2ab2b777 41 // switch (strData.length()){
tsumagari 19:95aa2ab2b777 42 switch(data_count-1){
tsumagari 15:6966299bea4c 43 case DATAS_NUM-3 :
tsumagari 19:95aa2ab2b777 44 // strData.erase(0,2);
tsumagari 19:95aa2ab2b777 45 for(int i=0; i<4; i++){
tsumagari 19:95aa2ab2b777 46 charV[i] = data[26+2];
tsumagari 19:95aa2ab2b777 47 charC[i] = data[64+2];
tsumagari 19:95aa2ab2b777 48 }
tsumagari 15:6966299bea4c 49 break;
tsumagari 15:6966299bea4c 50 case DATAS_NUM-2 :
tsumagari 19:95aa2ab2b777 51 // strData.erase(0,3);
tsumagari 19:95aa2ab2b777 52 for(int i=0; i<4; i++){
tsumagari 19:95aa2ab2b777 53 charV[i] = data[26+3];
tsumagari 19:95aa2ab2b777 54 charC[i] = data[64+3];
tsumagari 19:95aa2ab2b777 55 }
tsumagari 15:6966299bea4c 56 break;
tsumagari 15:6966299bea4c 57 case DATAS_NUM-1 :
tsumagari 15:6966299bea4c 58 strData.erase(0,4);
tsumagari 19:95aa2ab2b777 59 for(int i=0; i<4; i++){
tsumagari 19:95aa2ab2b777 60 charV[i] = data[26+4];
tsumagari 19:95aa2ab2b777 61 charC[i] = data[64+4];
tsumagari 19:95aa2ab2b777 62 }
tsumagari 15:6966299bea4c 63 break;
tsumagari 15:6966299bea4c 64 case DATAS_NUM :
tsumagari 19:95aa2ab2b777 65 // strData.erase(0,5);
tsumagari 19:95aa2ab2b777 66 for(int i=0; i<4; i++){
tsumagari 19:95aa2ab2b777 67 charV[i] = data[26+5];
tsumagari 19:95aa2ab2b777 68 charC[i] = data[64+5];
tsumagari 19:95aa2ab2b777 69 }
tsumagari 15:6966299bea4c 70 }
tsumagari 19:95aa2ab2b777 71 // strV = strData.substr(26,4);
tsumagari 19:95aa2ab2b777 72 // strC = strData.substr(64,4);
tsumagari 19:95aa2ab2b777 73 // sscanf(strV.c_str(),"%lf",&voltage);
tsumagari 19:95aa2ab2b777 74 // sscanf(strC.c_str(),"%lf",&cadence);
tsumagari 19:95aa2ab2b777 75
tsumagari 19:95aa2ab2b777 76 sscanf(charC,"%lf",&cadence);
tsumagari 19:95aa2ab2b777 77 sscanf(charV,"%lf",&voltage);
tsumagari 16:22aae833bdae 78 cadence /= 6.0;
tsumagari 16:22aae833bdae 79 voltage *= 0.001;
tsumagari 15:6966299bea4c 80 }
tsumagari 15:6966299bea4c 81 }
tsumagari 15:6966299bea4c 82 };
tsumagari 15:6966299bea4c 83 #endif