2021A Conste RX/TX lib

Dependents:   R21_ConsteSlave2

conste.h

Committer:
TakushimaYukimasa
Date:
2021-11-08
Revision:
3:1a22afd67175
Parent:
2:4571cb39d887
Parent:
1:b67e696c0ec3
Child:
4:2e24564f6427

File content as of revision 3:1a22afd67175:

#ifndef INCLUDED_CONSTE_h_
#define INCLUDED_CONSTE_h_

#include "mbed.h"

/* マクロ定義 ----------------------------------------------------------------*/

/* 定数定義 ------------------------------------------------------------------*/

/* クラス定義 ----------------------------------------------------------------*/

/*******************************************************************************
 * @名称   CONSTE
 * @概要   2021Aチーム コントロールステーション受信クラス
 
 *****受信データフォーマット(6byte)*****
 | [COBS] | βββββββX | XXXXXXXX | XXXXXXXX | YZαααααα | [COBS] |
 timeMs   17bit X タイマーの時間[ms]
 isstart   1bit Y タイマーが動いているか否か
 isEMO     1bit Z 非常停止状態か否か
 Status    6bit α 2bit×3台のステータス
 CheckSUM  7bit β XYZαααの十進数1桁ずつの合計
 
 *****送信データフォーマット-ロボット*****
 | XYY000ZZ |
 isRimocon 1bit X 0
 number    2bit Y 識別番号 0…のあ 1…ねぷちゅーん 2…とりとん
 Status    2bit Z ステータス 1…モード異常 2…座標追従失敗 3…正常
 
 *****送信データフォーマット-リモコン*****
 | XYZαββββ |
 isRimocon 1bit X 1
 number    1bit Y 識別番号 0…リモコン1 1…リモコン2
 isEMO     1bit Z 非常停止状態か否か
 isEMO     1bit α タイマーが動いているか否か
 battery   4bit β バッテリー残量(4bitADC)
 
 
*******************************************************************************/
class CONSTE
{
private:

    /* 受信割り込み用関数 */
    void uartRX(void);
    
    /* タイマ割り込み用関数 */
    void IT_CallBack(void);
    
    uint8_t severalRX;
    
    /* 受信生データ */
    uint8_t readData[255];
    uint8_t readLoc;
<<<<<<< working copy
    
    Ticker ticker;
=======
>>>>>>> merge rev
    
    
public:
<<<<<<< working copy
        /* 処理済みデータ */
    uint8_t arrayRestore[4];
=======
    /* 各種処理済みデータ */
    uint8_t arrayRestore[255];
>>>>>>> merge rev
    Serial uart;
    Timer lostRX;
    Timer timeUpdate;
    
    CONSTE(PinName tx, PinName rx, int baud);
    
    /* 受信データ */
    //タイマ時間(ms)
    uint32_t timeMs;
    // タイマが動いてるか否か
    bool isStart;
    // 非常停止状態 (trueの時はモーターを止めてください)
    bool isEMO;
    // ロボットの状態 1…モード異常 2…座標追従失敗 3…正常
    uint8_t RobotStat[3];
    
    
    /* 送信データ */
    // 識別番号 0…のあ 1…ねぷちゅーん 2…とりとん 4…リモコン1 6…リモコン2
    uint8_t identificationNum;
    /* ロボット送信データ */
    // ロボットの状態 1…モード異常 2…座標追従失敗 3…正常
    uint8_t status;
    /* リモコン送信データ */
    // 非常停止SW状態
    bool swEMO;
    // スタートSW状態
    bool swStart;
    // バッテリ電圧 (4bit)
    int8_t batteryRemain;
};

#endif