binary
DataControl.h@3:78735753b3cc, 2022-10-06 (annotated)
- Committer:
- ikarashikota
- Date:
- Thu Oct 06 23:33:23 2022 +0000
- Revision:
- 3:78735753b3cc
- Parent:
- 1:d37d53d33f0d
fixed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ikarashikota | 0:65149aeacbcc | 1 | /** @author 五十嵐幸多 |
ikarashikota | 0:65149aeacbcc | 2 | * |
ikarashikota | 0:65149aeacbcc | 3 | * 2進数の操作を楽にしたかったので作りました。 |
ikarashikota | 0:65149aeacbcc | 4 | * 主に、送受信のデータを1byteずつに分けたり、結合したりします。 |
ikarashikota | 0:65149aeacbcc | 5 | */ |
ikarashikota | 0:65149aeacbcc | 6 | #ifndef DATACONTROL |
ikarashikota | 0:65149aeacbcc | 7 | |
ikarashikota | 0:65149aeacbcc | 8 | #define DATACONTROL |
ikarashikota | 0:65149aeacbcc | 9 | #include "mbed.h" |
ikarashikota | 0:65149aeacbcc | 10 | |
ikarashikota | 0:65149aeacbcc | 11 | /// 2進数の操作ができるクラスです。 |
ikarashikota | 0:65149aeacbcc | 12 | class DataControl |
ikarashikota | 0:65149aeacbcc | 13 | { |
ikarashikota | 0:65149aeacbcc | 14 | public: |
ikarashikota | 0:65149aeacbcc | 15 | |
ikarashikota | 0:65149aeacbcc | 16 | /** コンストラクタ |
ikarashikota | 0:65149aeacbcc | 17 | * |
ikarashikota | 0:65149aeacbcc | 18 | * 何の変哲もないコンストラクタです。初期化用。 |
ikarashikota | 0:65149aeacbcc | 19 | */ |
ikarashikota | 0:65149aeacbcc | 20 | DataControl(); |
ikarashikota | 0:65149aeacbcc | 21 | |
ikarashikota | 0:65149aeacbcc | 22 | /** 16bitデータを8bitずつに分ける関数 |
ikarashikota | 0:65149aeacbcc | 23 | * |
ikarashikota | 0:65149aeacbcc | 24 | * uint16_t型のデータを8bitに分けて配列arrayに格納します。 |
ikarashikota | 0:65149aeacbcc | 25 | * @param data 分けたいデータ |
ikarashikota | 0:65149aeacbcc | 26 | * @param *array 分けたデータを格納する配列 |
ikarashikota | 0:65149aeacbcc | 27 | */ |
ikarashikota | 0:65149aeacbcc | 28 | void dataSeparate(uint16_t data, char* array); |
ikarashikota | 0:65149aeacbcc | 29 | |
ikarashikota | 0:65149aeacbcc | 30 | /** データを結合する関数 |
ikarashikota | 0:65149aeacbcc | 31 | * |
ikarashikota | 0:65149aeacbcc | 32 | * 受信したデータを結合してint型で返すやつです。 |
ikarashikota | 0:65149aeacbcc | 33 | * @param *array 受信したデータの配列 |
ikarashikota | 0:65149aeacbcc | 34 | * @param _data_size 結合したいデータのサイズ(byte) 例:int型 → 4 |
ikarashikota | 0:65149aeacbcc | 35 | * @return int 受信したデータ |
ikarashikota | 0:65149aeacbcc | 36 | */ |
ikarashikota | 0:65149aeacbcc | 37 | int dataCombine(unsigned char *array, int _data_size); |
ikarashikota | 0:65149aeacbcc | 38 | |
ikarashikota | 0:65149aeacbcc | 39 | /** 送信するデータをセットする関数 |
ikarashikota | 0:65149aeacbcc | 40 | * |
ikarashikota | 0:65149aeacbcc | 41 | * 送信したいデータをセットします。 |
ikarashikota | 0:65149aeacbcc | 42 | * @param data セットしたいデータ |
ikarashikota | 0:65149aeacbcc | 43 | * @param *data_array 送信するデータの配列 |
ikarashikota | 0:65149aeacbcc | 44 | * @note 関数のオーバーロードを使っていろんな型のデータをセットできます。 |
ikarashikota | 1:d37d53d33f0d | 45 | * 現時点ではchar型、uint16_t型、int型を実装しています。 |
ikarashikota | 0:65149aeacbcc | 46 | */ |
ikarashikota | 1:d37d53d33f0d | 47 | void dataSet(char data, char *data_array); |
ikarashikota | 1:d37d53d33f0d | 48 | void dataSet(uint16_t data, char *data_array); |
ikarashikota | 0:65149aeacbcc | 49 | void dataSet(int data, char *data_array); |
ikarashikota | 0:65149aeacbcc | 50 | |
ikarashikota | 0:65149aeacbcc | 51 | protected: |
ikarashikota | 0:65149aeacbcc | 52 | |
ikarashikota | 0:65149aeacbcc | 53 | /// dataSetの際にデータのbyte数が格納されます。 |
ikarashikota | 0:65149aeacbcc | 54 | size_t separated_data_size; |
ikarashikota | 0:65149aeacbcc | 55 | |
ikarashikota | 0:65149aeacbcc | 56 | /// データ結合用変数。いじる必要はありません。 |
ikarashikota | 0:65149aeacbcc | 57 | int dataBuff[5]; |
ikarashikota | 0:65149aeacbcc | 58 | |
ikarashikota | 0:65149aeacbcc | 59 | }; |
ikarashikota | 0:65149aeacbcc | 60 | |
ikarashikota | 0:65149aeacbcc | 61 | #endif |
ikarashikota | 0:65149aeacbcc | 62 |