C2A_Core
di_uart_test.c
[詳解]
1 #pragma section REPRO
6 #include "di_uart_test.h"
7 #include <stddef.h> // for NULL
10 #include "../../Settings/port_config.h"
11 #include "../../Settings/DriverSuper/driver_buffer_define.h"
12 
13 static void UART_TEST_init_by_AM_(void);
14 static void UART_TEST_init_(void);
15 static void UART_TEST_update_(void);
16 // TODO: 実装する
17 // static int UART_TEST_fill_with_zero_(uint32_t no);
18 // static int UART_TEST_abort_fill_nodata_(uint8_t err);
19 // static int UART_TEST_set_rec_flag_(uint32_t no);
20 // static int UART_TEST_unset_rec_flag_(uint32_t no);
21 // static int UART_TEST_is_rec_flag_up_(uint32_t no);
22 
25 
26 // バッファ
31 
32 
33 // !!!!!!!!!! 注意 !!!!!!!!!!
34 // このDriverは,AM_initialize_app_ では初期化されない!!
35 // initコマンドで初期化すること
37 {
38  return AI_create_app_info("update_uart_test", UART_TEST_init_by_AM_, UART_TEST_update_);
39 }
40 
41 
42 static void UART_TEST_init_by_AM_(void)
43 {
44  // ひとまず何もしない
45 }
46 
47 
48 static void UART_TEST_init_(void)
49 {
50  DS_ERR_CODE ret1;
51  DS_INIT_ERR_CODE ret2;
52  DS_StreamRecBuffer* rx_buffers[DS_STREAM_MAX];
54 
58  if (ret1 != DS_ERR_CODE_OK)
59  {
60  Printf("UART_TEST buffer0 init Failed ! %d \n", ret1);
61  }
65  if (ret1 != DS_ERR_CODE_OK)
66  {
67  Printf("UART_TEST buffer1 init Failed ! %d \n", ret1);
68  }
69 
70  if (DS_STREAM_MAX < 2)
71  {
72  Printf("UART_TEST init Failed ! Lack of streams \n");
73  return;
74  }
75 
76  rx_buffers[0] = &DI_UART_TEST_rx_buffer_0_;
77  rx_buffers[1] = &DI_UART_TEST_rx_buffer_1_;
78 
80  if (ret2 != DS_INIT_OK)
81  {
82  Printf("UART_TEST init Failed! Err:%d \n", ret2);
83  }
84 
85  Printf("######################### \n");
86  Printf(" UART_TEST init !!!!!!!! \n");
87  Printf("######################### \n");
88 }
89 
90 
91 static void UART_TEST_update_(void)
92 {
93  DS_REC_ERR_CODE ret;
94 
96 
97  // TODO: エラー処理
98  (void)ret;
99 }
100 
101 
103 {
104  (void)packet;
105 
106  UART_TEST_init_();
107 
109 }
110 
111 
113 {
114  (void)packet;
115 
117 
119 }
120 
121 
123 {
124  const uint8_t* param = CCP_get_param_head(packet);
125  uint8_t id;
126  DS_CMD_ERR_CODE ret;
127 
128  id = param[0];
129 
130  ret = UART_TEST_send(&uart_test_driver_, id);
131  return DS_conv_cmd_err_to_ccp_cmd_ret(ret);
132 }
133 
134 #pragma section
AppInfo AI_create_app_info(const char *name, void(*initializer)(void), void(*entry_point)(void))
AppInfo を作る
Definition: app_info.c:9
@ CCP_EXEC_SUCCESS
const uint8_t * CCP_get_param_head(const CommonCmdPacket *packet)
先頭のパラメタのポインタを取得
CCP_CmdRet CCP_make_cmd_ret_without_err_code(CCP_EXEC_STS exec_sts)
コマンド返り値である CCP_CmdRet を作成(エラーコード不使用版)
CCP の汎用 Utility
static uint8_t DI_UART_TEST_rx_buffer_allocation_1_[DS_STREAM_REC_BUFFER_SIZE_DEFAULT]
Definition: di_uart_test.c:30
static DS_StreamRecBuffer DI_UART_TEST_rx_buffer_0_
Definition: di_uart_test.c:27
static void UART_TEST_init_(void)
Definition: di_uart_test.c:48
static DS_StreamRecBuffer DI_UART_TEST_rx_buffer_1_
Definition: di_uart_test.c:28
CCP_CmdRet Cmd_UART_TEST_UPDATE(const CommonCmdPacket *packet)
Definition: di_uart_test.c:112
static void UART_TEST_init_by_AM_(void)
Definition: di_uart_test.c:42
const UART_TEST_Driver *const uart_test_driver
Definition: di_uart_test.c:24
static void UART_TEST_update_(void)
Definition: di_uart_test.c:91
CCP_CmdRet Cmd_UART_TEST_SEND_TEST(const CommonCmdPacket *packet)
Definition: di_uart_test.c:122
AppInfo UART_TEST_update(void)
Definition: di_uart_test.c:36
CCP_CmdRet Cmd_UART_TEST_INIT_DI(const CommonCmdPacket *packet)
Definition: di_uart_test.c:102
static uint8_t DI_UART_TEST_rx_buffer_allocation_0_[DS_STREAM_REC_BUFFER_SIZE_DEFAULT]
Definition: di_uart_test.c:29
static UART_TEST_Driver uart_test_driver_
Definition: di_uart_test.c:23
UART と DriverSuper テスト用
#define DS_STREAM_REC_BUFFER_SIZE_DEFAULT
DS_ERR_CODE DS_init_stream_rec_buffer(DS_StreamRecBuffer *stream_rec_buffer, uint8_t *buffer, const uint16_t buffer_capacity)
DS_StreamRecBuffer に確保したメモリを与えて初期化する
CCP_CmdRet DS_conv_cmd_err_to_ccp_cmd_ret(DS_CMD_ERR_CODE code)
DS_CMD_ERR_CODE から CCP_CmdRet への変換関数
void DS_nullify_stream_rec_buffers(DS_StreamRecBuffer *rx_buffers[DS_STREAM_MAX])
DS_StreamRecBuffer の要素数 DS_STREAM_MAX の配列を NULL で初期化する
DS_INIT_ERR_CODE
Driver の初期化関数のエラーコード
Definition: driver_super.h:70
@ DS_INIT_OK
OK
Definition: driver_super.h:71
#define DS_STREAM_MAX
Definition: driver_super.h:31
DS_REC_ERR_CODE
Driver の受信関数のエラーコード
Definition: driver_super.h:84
DS_CMD_ERR_CODE
各DIが Driver にコマンドを送るときに,統一的に使うコード
Definition: driver_super.h:100
DS_ERR_CODE
DriverSuper の汎用エラーコード
Definition: driver_super.h:116
@ DS_ERR_CODE_OK
返り値は継承先や IF 先で上書きされるため,OK は 0 であることが必須
Definition: driver_super.h:117
#define PORT_CH_UART_TEST
Definition: port_config.h:16
HW 依存 Print, つまり ログ情報のフォーマット出力(デバッグ出力)
void Printf(const char *format,...)
Definition: print.c:9
コマンド返り値
Space Packet (コマンド用)
フレーム受信バッファ
Definition: driver_super.h:222
DS_CMD_ERR_CODE UART_TEST_send(UART_TEST_Driver *uart_test_driver, uint8_t id)
UART_TESTへのコマンド送信
Definition: uart_test.c:147
DS_INIT_ERR_CODE UART_TEST_init(UART_TEST_Driver *uart_test_driver, uint8_t ch, DS_StreamRecBuffer *rx_buffers[DS_STREAM_MAX])
UART_TEST初期化
Definition: uart_test.c:31
DS_REC_ERR_CODE UART_TEST_rec(UART_TEST_Driver *uart_test_driver)
UART_TESTのデータ(テレメ)受信
Definition: uart_test.c:93