c2a-core 4.5.1

Core of Command Centric Architecture
Documentation
/**
 * @file
 * @brief CCSDS通信のHALです。(MOBC用 バックグラウンド取り込みVer)
 *
 *        CCSDS HALは、
 *        CCSDSポートの初期化、データ送信、データ受信を行う、
 *        CCSDS通信の抽象化レイヤです。
 *        個々の機器でこのインターフェースを実装して使用します。
 */

#ifndef CCSDS_H_
#define CCSDS_H_

#include <stdint.h>

/**
 * @struct CCSDS_Config
 * @brief  CCSDS ポートの初期化, データ送信, データ受信の際に必要となる設定情報を格納する構造体
 */
typedef struct
{
  uint8_t  ch;      //!< 将来的にchが追加されることを想定して
  uint32_t bitrate; //!< 継承先の機器のビットレート値 (bps)
} CCSDS_Config;

/**
 * @brief CCSDS の init
 * @note  実際には初期化 API は無いので bps の設定のみ行っている
 * @param[in] my_ccsds_v: CCSDS config
 * @return int: 初期化結果 (OK)
 */
int CCSDS_init(void* my_ccsds_v);

/**
 * @brief CCSDS 受信. API を呼び出し, buffer に受信結果をコピーする
 * @param[in]  my_ccsds_v: CCSDS config
 * @param[out] data_v: buffer
 * @param[in]  buffer_size: buffer size
 * @return int: 非負の場合は受信データサイズ, 負の場合は CCSDS_ERR_CODE に従う
 */
int CCSDS_rx(void* my_ccsds_v, void* data_v, int buffer_size);

/**
 * @brief CCSDS 送信. API を呼び出し, 送信を行う
 * @param[in] my_ccsds_v: CCSDS config
 * @param[in] data_v: 送信 データ
 * @param[in] data_size: 送信 size
 * @return CCSDS_ERR_CODE
 */
int CCSDS_tx(void* my_ccsds_v, void* data_v, int data_size);

/**
 * @brief CCSDS reopen
 * @note  実際には reopen API は無いので何もしない
 * @param[in] my_ccsds_v: CCSDS config
 * @param[in] reason: reopen 理由
 * @return 0
 */
int CCSDS_reopen(void* my_ccsds_v, int reason);

#endif