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

Dependencies:   BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1

Fork of keiki2016ver5 by albatross

Committer:
tsumagari
Date:
Sat Jan 28 10:17:50 2017 +0000
Branch:
noThread2017ver.
Revision:
27:d2955f29a3aa
Parent:
26:50272431cd1e
Child:
28:02e21f1fbe3d
Child:
34:c46f2f687c7b
Thread??ver.????????????????????????

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 27:d2955f29a3aa 5 #include "BufferedSoftSerial.h"
tsumagari 15:6966299bea4c 6 #include <string>
tsumagari 15:6966299bea4c 7
tsumagari 27:d2955f29a3aa 8 double cadence;
tsumagari 27:d2955f29a3aa 9
tsumagari 27:d2955f29a3aa 10 class Cadence : public /*BufferedSoft*/RawSerial{
tsumagari 15:6966299bea4c 11 private:
tsumagari 27:d2955f29a3aa 12 static const int DATAS_NUM = 69 + 4 + 1; //経過時間の文字数は最大4
tsumagari 27:d2955f29a3aa 13 //;1816; 00 00000 0;168 ;001; 10133 e9;34 00;00 0e;00 00;10 70;06 89;G; -005; -009; -006; //2+4+67+2(\r\n)
tsumagari 27:d2955f29a3aa 14 // -- -- ----
tsumagari 15:6966299bea4c 15 protected:
tsumagari 15:6966299bea4c 16
tsumagari 15:6966299bea4c 17 public:
tsumagari 27:d2955f29a3aa 18 char strC[4],strV[4];
tsumagari 15:6966299bea4c 19 char data[DATAS_NUM];
tsumagari 15:6966299bea4c 20 string strData;
tsumagari 15:6966299bea4c 21 int data_count, data_num;
tsumagari 27:d2955f29a3aa 22 double voltage, safeflag;
tsumagari 27:d2955f29a3aa 23 int cadence_i, voltage_i;
tsumagari 27:d2955f29a3aa 24 Cadence(PinName tx, PinName rx/*, const char* name = NULL*/) : /*BufferedSoft*/RawSerial(tx, rx/*, NULL*/){
tsumagari 15:6966299bea4c 25 for(int i=0;i<DATAS_NUM;i++) data[i]= NULL;
tsumagari 15:6966299bea4c 26 data_count=0;
tsumagari 15:6966299bea4c 27 baud(115200);
tsumagari 15:6966299bea4c 28 cadence=0;
tsumagari 15:6966299bea4c 29 voltage=0;
tsumagari 27:d2955f29a3aa 30 strC[0] = '0';
tsumagari 27:d2955f29a3aa 31 strV[0] = '0';
tsumagari 15:6966299bea4c 32 }
tsumagari 15:6966299bea4c 33 void readData(){ //Ticker で定期的に呼び出して値を更新
tsumagari 27:d2955f29a3aa 34 if(readable()){
tsumagari 15:6966299bea4c 35 data_count = 0;
tsumagari 15:6966299bea4c 36 do{
tsumagari 27:d2955f29a3aa 37 if(readable()){
tsumagari 15:6966299bea4c 38 data[data_count] = getc();
tsumagari 27:d2955f29a3aa 39 if(data[data_count] != '\n') data_count++;
tsumagari 15:6966299bea4c 40 }
tsumagari 27:d2955f29a3aa 41 }while( data[data_count-1] != '\r' && data_count < DATAS_NUM );
tsumagari 27:d2955f29a3aa 42 if( data_count > 71 ) {
tsumagari 27:d2955f29a3aa 43 for(int i = 0; i<4; i++){
tsumagari 27:d2955f29a3aa 44 strC[i] = data[data_count - 6 + i]; // 7 = 5 + 1
tsumagari 27:d2955f29a3aa 45 strV[i] = data[data_count - 43 + i]; // 44 = 42 + 1
tsumagari 15:6966299bea4c 46 }
tsumagari 27:d2955f29a3aa 47 sscanf(strC,"%4d",&cadence_i);
tsumagari 27:d2955f29a3aa 48 sscanf(strV,"%4d",&voltage_i);
tsumagari 27:d2955f29a3aa 49 cadence = cadence_i/6.0;
tsumagari 27:d2955f29a3aa 50 voltage = voltage_i/1000.0;
tsumagari 15:6966299bea4c 51 }
tsumagari 26:50272431cd1e 52 }
tsumagari 15:6966299bea4c 53 }
tsumagari 15:6966299bea4c 54 };
tsumagari 15:6966299bea4c 55 #endif