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

Dependencies:   BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1

Fork of keiki2016ver5 by albatross

Committer:
tsumagari
Date:
Wed Nov 30 08:08:14 2016 +0000
Branch:
fusokukei
Revision:
16:22aae833bdae
Parent:
15:6966299bea4c
Child:
19:95aa2ab2b777
?????twe-lite?????????BufferedSoftSerial???????Cadence????BufferedSoftSerial????????????p11(=tx),p12(=rx)?????????

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 15:6966299bea4c 16 char data[DATAS_NUM];
tsumagari 15:6966299bea4c 17 string strData;
tsumagari 15:6966299bea4c 18 int data_count, data_num;
tsumagari 15:6966299bea4c 19 double cadence, voltage;
tsumagari 16:22aae833bdae 20 Cadence(PinName tx, PinName rx) : BufferedSoftSerial(tx, rx){
tsumagari 15:6966299bea4c 21 for(int i=0;i<DATAS_NUM;i++) data[i]= NULL;
tsumagari 15:6966299bea4c 22 data_num=0;
tsumagari 15:6966299bea4c 23 data_count=0;
tsumagari 16:22aae833bdae 24 baud(9600);
tsumagari 15:6966299bea4c 25 cadence=0;
tsumagari 15:6966299bea4c 26 voltage=0;
tsumagari 15:6966299bea4c 27 }
tsumagari 15:6966299bea4c 28 void readData(){ //Ticker で定期的に呼び出して値を更新
tsumagari 15:6966299bea4c 29 data_count = 0;
tsumagari 15:6966299bea4c 30 data_num = 0;
tsumagari 15:6966299bea4c 31 do{
tsumagari 15:6966299bea4c 32 if(readable()) {
tsumagari 15:6966299bea4c 33 data[data_count] = getc();
tsumagari 15:6966299bea4c 34 data_count++;
tsumagari 15:6966299bea4c 35 }
tsumagari 15:6966299bea4c 36 }while(data[data_count-1] != '\n');
tsumagari 15:6966299bea4c 37
tsumagari 16:22aae833bdae 38 if(data_count-1 > DATAS_NUM-4 ){
tsumagari 16:22aae833bdae 39 strData = data;
tsumagari 15:6966299bea4c 40 switch (strData.length()){
tsumagari 15:6966299bea4c 41 case DATAS_NUM-3 :
tsumagari 15:6966299bea4c 42 strData.erase(0,2);
tsumagari 15:6966299bea4c 43 break;
tsumagari 15:6966299bea4c 44 case DATAS_NUM-2 :
tsumagari 15:6966299bea4c 45 strData.erase(0,3);
tsumagari 15:6966299bea4c 46 break;
tsumagari 15:6966299bea4c 47 case DATAS_NUM-1 :
tsumagari 15:6966299bea4c 48 strData.erase(0,4);
tsumagari 15:6966299bea4c 49 break;
tsumagari 15:6966299bea4c 50 case DATAS_NUM :
tsumagari 15:6966299bea4c 51 strData.erase(0,5);
tsumagari 15:6966299bea4c 52 }
tsumagari 15:6966299bea4c 53 strV = strData.substr(26,4);
tsumagari 15:6966299bea4c 54 strC = strData.substr(64,4);
tsumagari 15:6966299bea4c 55 sscanf(strV.c_str(),"%lf",&voltage);
tsumagari 15:6966299bea4c 56 sscanf(strC.c_str(),"%lf",&cadence);
tsumagari 16:22aae833bdae 57 cadence /= 6.0;
tsumagari 16:22aae833bdae 58 voltage *= 0.001;
tsumagari 15:6966299bea4c 59 }
tsumagari 15:6966299bea4c 60 }
tsumagari 15:6966299bea4c 61 };
tsumagari 15:6966299bea4c 62 #endif