2017年度の製作を開始します。
Dependencies: BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1
Fork of keiki2016ver5 by
Cadence.h
- Committer:
- tsumagari
- Date:
- 2017-02-18
- Branch:
- Thread-gyogetsuMPU
- Revision:
- 34:c46f2f687c7b
- Parent:
- 27:d2955f29a3aa
- Child:
- 37:34aaa1951390
File content as of revision 34:c46f2f687c7b:
#ifndef CADENCE_H #define CADENCE_H #include "mbed.h" //#include "BufferedSoftSerial.h" #include <string> DigitalOut led3(LED3); double cadence; class Cadence : public /*BufferedSoft*/RawSerial{ private: static const int DATAS_NUM = 69 + 4 + 1; //経過時間の文字数は最大4 //;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) // -- -- ---- protected: public: char strC[4],strV[4]; char data[DATAS_NUM]; string strData; int data_count, data_num; double voltage, safeflag; int cadence_i, voltage_i; Cadence(PinName tx, PinName rx/*, const char* name = NULL*/) : /*BufferedSoft*/RawSerial(tx, rx/*, NULL*/){ for(int i=0;i<DATAS_NUM;i++) data[i]= NULL; data_count=0; baud(115200); cadence=0; voltage=0; strC[0] = '0'; strV[0] = '0'; } int checkInt(char c[]){ for(int i = 0; i< sizeof(c)/sizeof(c[0]); i++){ if( c[i] - '0' >9 || c[i] - '0' < 0 ) return -1; } return 1; } void readData(){ //Ticker で定期的に呼び出して値を更新 // if(readable()){ data_count = 0; do{ if(readable()){ data[data_count] = getc(); if(data[data_count] != '\n') data_count++; led3 = !led3; } }while( data[data_count-1] != '\r' && data_count < DATAS_NUM ); if( data_count > 71 ) { for(int i = 0; i<4; i++){ strC[i] = data[data_count - 6 + i]; // 6 = 5 + 1 strV[i] = data[data_count - 43 + i]; // 43 = 42 + 1 } if(checkInt(strC)) sscanf(strC,"%4d",&cadence_i); if(checkInt(strV)) sscanf(strV,"%4d",&voltage_i); cadence = cadence_i/6.0; voltage = voltage_i/1000.0; } // } } }; #endif