2018年度計器mbed用プログラム
Dependencies: BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS
Fork of keiki2017 by
Cadence.h@27:d2955f29a3aa, 2017-01-28 (annotated)
- 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?
User | Revision | Line number | New 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 |