2021A Conste RX/TX lib

Dependents:   R21_ConsteSlave2

Committer:
TakushimaYukimasa
Date:
Sun Nov 07 16:05:45 2021 +0000
Revision:
2:4571cb39d887
Parent:
0:847ba7e5b1a0
Child:
3:1a22afd67175
add comment;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TakushimaYukimasa 0:847ba7e5b1a0 1 #ifndef INCLUDED_CONSTE_h_
TakushimaYukimasa 0:847ba7e5b1a0 2 #define INCLUDED_CONSTE_h_
TakushimaYukimasa 0:847ba7e5b1a0 3
TakushimaYukimasa 0:847ba7e5b1a0 4 #include "mbed.h"
TakushimaYukimasa 0:847ba7e5b1a0 5
TakushimaYukimasa 0:847ba7e5b1a0 6 /* マクロ定義 ----------------------------------------------------------------*/
TakushimaYukimasa 0:847ba7e5b1a0 7
TakushimaYukimasa 0:847ba7e5b1a0 8 /* 定数定義 ------------------------------------------------------------------*/
TakushimaYukimasa 0:847ba7e5b1a0 9
TakushimaYukimasa 0:847ba7e5b1a0 10 /* クラス定義 ----------------------------------------------------------------*/
TakushimaYukimasa 0:847ba7e5b1a0 11
TakushimaYukimasa 0:847ba7e5b1a0 12 /*******************************************************************************
TakushimaYukimasa 0:847ba7e5b1a0 13 * @名称 CONSTE
TakushimaYukimasa 0:847ba7e5b1a0 14 * @概要 2021Aチーム コントロールステーション受信クラス
TakushimaYukimasa 2:4571cb39d887 15
TakushimaYukimasa 2:4571cb39d887 16 *****受信データフォーマット(6byte)*****
TakushimaYukimasa 2:4571cb39d887 17 | [COBS] | βββββββX | XXXXXXXX | XXXXXXXX | YZαααααα | [COBS] |
TakushimaYukimasa 2:4571cb39d887 18 timeMs 17bit X タイマーの時間[ms]
TakushimaYukimasa 2:4571cb39d887 19 isstart 1bit Y タイマーが動いているか否か
TakushimaYukimasa 2:4571cb39d887 20 isEMO 1bit Z 非常停止状態か否か
TakushimaYukimasa 2:4571cb39d887 21 Status 6bit α 2bit×3台のステータス
TakushimaYukimasa 2:4571cb39d887 22 CheckSUM 7bit β XYZαααの十進数1桁ずつの合計
TakushimaYukimasa 2:4571cb39d887 23
TakushimaYukimasa 2:4571cb39d887 24 *****送信データフォーマット-ロボット*****
TakushimaYukimasa 2:4571cb39d887 25 | XYY000ZZ |
TakushimaYukimasa 2:4571cb39d887 26 isRimocon 1bit X 0
TakushimaYukimasa 2:4571cb39d887 27 number 2bit Y 識別番号 0…のあ 1…ねぷちゅーん 2…とりとん
TakushimaYukimasa 2:4571cb39d887 28 Status 2bit Z ステータス 1…モード異常 2…座標追従失敗 3…正常
TakushimaYukimasa 2:4571cb39d887 29
TakushimaYukimasa 2:4571cb39d887 30 *****送信データフォーマット-リモコン*****
TakushimaYukimasa 2:4571cb39d887 31 | XYZαββββ |
TakushimaYukimasa 2:4571cb39d887 32 isRimocon 1bit X 1
TakushimaYukimasa 2:4571cb39d887 33 number 1bit Y 識別番号 0…リモコン1 1…リモコン2
TakushimaYukimasa 2:4571cb39d887 34 isEMO 1bit Z 非常停止状態か否か
TakushimaYukimasa 2:4571cb39d887 35 isEMO 1bit α タイマーが動いているか否か
TakushimaYukimasa 2:4571cb39d887 36 battery 4bit β バッテリー残量(4bitADC)
TakushimaYukimasa 2:4571cb39d887 37
TakushimaYukimasa 2:4571cb39d887 38
TakushimaYukimasa 0:847ba7e5b1a0 39 *******************************************************************************/
TakushimaYukimasa 0:847ba7e5b1a0 40 class CONSTE
TakushimaYukimasa 0:847ba7e5b1a0 41 {
TakushimaYukimasa 0:847ba7e5b1a0 42 private:
TakushimaYukimasa 0:847ba7e5b1a0 43
TakushimaYukimasa 0:847ba7e5b1a0 44 /* 受信割り込み用関数 */
TakushimaYukimasa 0:847ba7e5b1a0 45 void uartRX(void);
TakushimaYukimasa 0:847ba7e5b1a0 46
TakushimaYukimasa 2:4571cb39d887 47 /* タイマ割り込み用関数 */
TakushimaYukimasa 2:4571cb39d887 48 void IT_CallBack(void);
TakushimaYukimasa 2:4571cb39d887 49
TakushimaYukimasa 0:847ba7e5b1a0 50 uint8_t severalRX;
TakushimaYukimasa 0:847ba7e5b1a0 51
TakushimaYukimasa 0:847ba7e5b1a0 52 /* 受信生データ */
TakushimaYukimasa 0:847ba7e5b1a0 53 uint8_t readData[255];
TakushimaYukimasa 0:847ba7e5b1a0 54 uint8_t readLoc;
TakushimaYukimasa 2:4571cb39d887 55
TakushimaYukimasa 2:4571cb39d887 56 Ticker ticker;
TakushimaYukimasa 0:847ba7e5b1a0 57
TakushimaYukimasa 0:847ba7e5b1a0 58
TakushimaYukimasa 0:847ba7e5b1a0 59 public:
TakushimaYukimasa 2:4571cb39d887 60 /* 処理済みデータ */
TakushimaYukimasa 2:4571cb39d887 61 uint8_t arrayRestore[4];
TakushimaYukimasa 0:847ba7e5b1a0 62 Serial uart;
TakushimaYukimasa 0:847ba7e5b1a0 63 Timer lostRX;
TakushimaYukimasa 2:4571cb39d887 64 Timer timeUpdate;
TakushimaYukimasa 0:847ba7e5b1a0 65
TakushimaYukimasa 0:847ba7e5b1a0 66 CONSTE(PinName tx, PinName rx, int baud);
TakushimaYukimasa 0:847ba7e5b1a0 67
TakushimaYukimasa 0:847ba7e5b1a0 68 /* 受信データ */
TakushimaYukimasa 0:847ba7e5b1a0 69 //タイマ時間(ms)
TakushimaYukimasa 0:847ba7e5b1a0 70 uint32_t timeMs;
TakushimaYukimasa 0:847ba7e5b1a0 71 // タイマが動いてるか否か
TakushimaYukimasa 0:847ba7e5b1a0 72 bool isStart;
TakushimaYukimasa 0:847ba7e5b1a0 73 // 非常停止状態 (trueの時はモーターを止めてください)
TakushimaYukimasa 0:847ba7e5b1a0 74 bool isEMO;
TakushimaYukimasa 0:847ba7e5b1a0 75 // ロボットの状態 1…モード異常 2…座標追従失敗 3…正常
TakushimaYukimasa 0:847ba7e5b1a0 76 uint8_t RobotStat[3];
TakushimaYukimasa 0:847ba7e5b1a0 77
TakushimaYukimasa 0:847ba7e5b1a0 78
TakushimaYukimasa 0:847ba7e5b1a0 79 /* 送信データ */
TakushimaYukimasa 0:847ba7e5b1a0 80 // 識別番号 0…のあ 1…ねぷちゅーん 2…とりとん 4…リモコン1 6…リモコン2
TakushimaYukimasa 0:847ba7e5b1a0 81 uint8_t identificationNum;
TakushimaYukimasa 0:847ba7e5b1a0 82 /* ロボット送信データ */
TakushimaYukimasa 0:847ba7e5b1a0 83 // ロボットの状態 1…モード異常 2…座標追従失敗 3…正常
TakushimaYukimasa 0:847ba7e5b1a0 84 uint8_t status;
TakushimaYukimasa 0:847ba7e5b1a0 85 /* リモコン送信データ */
TakushimaYukimasa 0:847ba7e5b1a0 86 // 非常停止SW状態
TakushimaYukimasa 0:847ba7e5b1a0 87 bool swEMO;
TakushimaYukimasa 0:847ba7e5b1a0 88 // スタートSW状態
TakushimaYukimasa 0:847ba7e5b1a0 89 bool swStart;
TakushimaYukimasa 0:847ba7e5b1a0 90 // バッテリ電圧 (4bit)
TakushimaYukimasa 0:847ba7e5b1a0 91 int8_t batteryRemain;
TakushimaYukimasa 0:847ba7e5b1a0 92 };
TakushimaYukimasa 0:847ba7e5b1a0 93
TakushimaYukimasa 0:847ba7e5b1a0 94 #endif