FEP interrupt, response, ring buffer
Dependents: 087_myFEP_TX 087_myFEP_RX
FEP.h
- Committer:
- piroro4560
- Date:
- 2021-10-09
- Revision:
- 0:b01dc5fd59bc
- Child:
- 1:a4103af46277
File content as of revision 0:b01dc5fd59bc:
#ifndef FEP_H #define FEP_H class myFEP{ public : /** コンストラクタ * @param tx FEPtxに繋いでるピン * @param rx FEPrxに繋いでるピン * @param addr 通信相手のアドレス * @param baud 通信速度 */ myFEP(PinName tx, PinName rx, uint8_t addr_, int baud=115200); /** 受信開始用関数 */ void StartReceive(); /** 受信割り込み用関数 */ void ReceiveBytes(); /** メッセージ読み取り用関数 */ void CheckData(); /** 受信メッセージ引き渡し用関数 * @param data 格納先のデータアドレス */ void GetData(uint8_t *data); /** 通信相手FEPにデータ送信 * @brief 引数の中のデータ全部送信 * @param data 送信する配列 * @return 0 送信成功 * @return 1 データ量過多 * @return 2 コマンドエラー * @return 3 相手からの応答なし * @return 4 相手が受信失敗 * @return -1 可否不明 */ uint8_t SendData(uint8_t *data); /** 長さ指定ver * @brief dataの配列をlength分送る * @param data 送信する配列 * @param length 送信する長さ * @return 0 送信成功 * @return 1 データ量過多 * @return 2 コマンドエラー * @return 3 相手からの応答なし * @return 4 相手が受信失敗 * @return -1 可否不明 */ uint8_t SendData(uint8_t *data, uint8_t length); /** レスポンス取得用関数 * @return 0 送信成功 * @return 1 データ量過多 * @return 2 コマンドエラー * @return 3 相手からの応答なし * @return 4 相手が受信失敗 * @return -1 可否不明 */ uint8_t GetResponse(); private : uint8_t ctoi(char c); uint8_t addr; //! 通信相手のアドレス uint8_t buffer[256]; //! 受信データ格納用配列 uint8_t retdata[256]; //! 引き渡し用データ格納用配列 uint16_t bufindex; //! bufferの添え字用変数 uint16_t retindex; //! retdataの添え字用変数 } #endif