2021A Conste RX/TX lib

Dependents:   R21_ConsteSlave2

Committer:
TakushimaYukimasa
Date:
Thu Nov 11 09:08:05 2021 +0000
Revision:
6:1236f49af4b7
Parent:
5:7bd291d159ac
Child:
8:9fb5088cd76f
add shift TX time

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 4:2e24564f6427 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 4:2e24564f6427 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 4:2e24564f6427 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 4:2e24564f6427 37
TakushimaYukimasa 4:2e24564f6427 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 5:7bd291d159ac 46 /* 送信割り込み用関数 */
TakushimaYukimasa 5:7bd291d159ac 47 void uartTX(void);
TakushimaYukimasa 4:2e24564f6427 48
TakushimaYukimasa 2:4571cb39d887 49 /* タイマ割り込み用関数 */
TakushimaYukimasa 2:4571cb39d887 50 void IT_CallBack(void);
TakushimaYukimasa 4:2e24564f6427 51
TakushimaYukimasa 0:847ba7e5b1a0 52 uint8_t severalRX;
TakushimaYukimasa 4:2e24564f6427 53
TakushimaYukimasa 6:1236f49af4b7 54 Timeout shotIT;
TakushimaYukimasa 2:4571cb39d887 55 Ticker ticker;
TakushimaYukimasa 4:2e24564f6427 56
TakushimaYukimasa 4:2e24564f6427 57 /* 受信生データ */
TakushimaYukimasa 4:2e24564f6427 58 uint8_t readLoc;
TakushimaYukimasa 4:2e24564f6427 59 uint8_t readData[255];
TakushimaYukimasa 4:2e24564f6427 60 /* 処理済みデータ */
TakushimaYukimasa 4:2e24564f6427 61 uint8_t arrayRestore[4];
TakushimaYukimasa 4:2e24564f6427 62
TakushimaYukimasa 0:847ba7e5b1a0 63 public:
TakushimaYukimasa 5:7bd291d159ac 64 int hoge;
TakushimaYukimasa 4:2e24564f6427 65
TakushimaYukimasa 0:847ba7e5b1a0 66 Serial uart;
TakushimaYukimasa 0:847ba7e5b1a0 67 Timer lostRX;
TakushimaYukimasa 2:4571cb39d887 68 Timer timeUpdate;
TakushimaYukimasa 4:2e24564f6427 69
TakushimaYukimasa 0:847ba7e5b1a0 70 CONSTE(PinName tx, PinName rx, int baud);
TakushimaYukimasa 4:2e24564f6427 71
TakushimaYukimasa 0:847ba7e5b1a0 72 /* 受信データ */
TakushimaYukimasa 0:847ba7e5b1a0 73 //タイマ時間(ms)
TakushimaYukimasa 0:847ba7e5b1a0 74 uint32_t timeMs;
TakushimaYukimasa 0:847ba7e5b1a0 75 // タイマが動いてるか否か
TakushimaYukimasa 0:847ba7e5b1a0 76 bool isStart;
TakushimaYukimasa 0:847ba7e5b1a0 77 // 非常停止状態 (trueの時はモーターを止めてください)
TakushimaYukimasa 0:847ba7e5b1a0 78 bool isEMO;
TakushimaYukimasa 0:847ba7e5b1a0 79 // ロボットの状態 1…モード異常 2…座標追従失敗 3…正常
TakushimaYukimasa 0:847ba7e5b1a0 80 uint8_t RobotStat[3];
TakushimaYukimasa 4:2e24564f6427 81
TakushimaYukimasa 4:2e24564f6427 82
TakushimaYukimasa 0:847ba7e5b1a0 83 /* 送信データ */
TakushimaYukimasa 0:847ba7e5b1a0 84 // 識別番号 0…のあ 1…ねぷちゅーん 2…とりとん 4…リモコン1 6…リモコン2
TakushimaYukimasa 0:847ba7e5b1a0 85 uint8_t identificationNum;
TakushimaYukimasa 0:847ba7e5b1a0 86 /* ロボット送信データ */
TakushimaYukimasa 0:847ba7e5b1a0 87 // ロボットの状態 1…モード異常 2…座標追従失敗 3…正常
TakushimaYukimasa 0:847ba7e5b1a0 88 uint8_t status;
TakushimaYukimasa 0:847ba7e5b1a0 89 /* リモコン送信データ */
TakushimaYukimasa 0:847ba7e5b1a0 90 // 非常停止SW状態
TakushimaYukimasa 0:847ba7e5b1a0 91 bool swEMO;
TakushimaYukimasa 0:847ba7e5b1a0 92 // スタートSW状態
TakushimaYukimasa 0:847ba7e5b1a0 93 bool swStart;
TakushimaYukimasa 0:847ba7e5b1a0 94 // バッテリ電圧 (4bit)
TakushimaYukimasa 0:847ba7e5b1a0 95 int8_t batteryRemain;
TakushimaYukimasa 0:847ba7e5b1a0 96 };
TakushimaYukimasa 0:847ba7e5b1a0 97
TakushimaYukimasa 0:847ba7e5b1a0 98 #endif