C2A_Core
uart_sils.cpp
[詳解]
1 #pragma section REPRO
3 #include "../../Settings/port_config.h"
4 
5 #ifdef USE_SCI_COM_UART
6 #include "uart_sils_sci_if.hpp"
7 #endif
8 
9 int OBC_C2A_SendFromObc(int port_id, unsigned char* buffer, int offset, int count);
10 int OBC_C2A_ReceivedByObc(int port_id, unsigned char* buffer, int offset, int count);
11 
12 int UART_init(void* my_uart_v)
13 {
14  return 0;
15 }
16 
17 int UART_rx(void* my_uart_v, void* data_v, int buffer_size)
18 {
19  UART_Config* my_uart = (UART_Config*)my_uart_v;
20 
21  if (my_uart->ch != PORT_CH_UART_TEST)
22  {
23  return OBC_C2A_ReceivedByObc(my_uart->ch, (unsigned char*)data_v, 0, buffer_size);
24  }
25 
26 #ifdef USE_SCI_COM_UART
27  return SILS_SCI_UART_IF_RX((unsigned char*)data_v, buffer_size);
28 #else
29  return OBC_C2A_ReceivedByObc(my_uart->ch, (unsigned char*)data_v, 0, buffer_size);
30 #endif
31 }
32 
33 int UART_tx(void* my_uart_v, void* data_v, int data_size)
34 {
35  UART_Config* my_uart = (UART_Config*)my_uart_v;
36 
37  if (my_uart->ch != PORT_CH_UART_TEST)
38  {
39  if (OBC_C2A_SendFromObc(my_uart->ch, (unsigned char*)data_v, 0, data_size) < 0)
40  {
41  return -1;
42  }
43  else
44  {
45  return 0;
46  }
47  }
48 #ifdef USE_SCI_COM_UART
49  SILS_SCI_UART_IF_TX((unsigned char*)data_v, data_size);
50 #else
51  if (OBC_C2A_SendFromObc(my_uart->ch, (unsigned char*)data_v, 0, data_size) < 0)
52  {
53  return -1;
54  }
55 #endif
56 
57  return 0;
58 }
59 
60 int UART_reopen(void* my_uart_v, int reason)
61 {
62  return 0;
63 }
64 
65 #pragma section
#define PORT_CH_UART_TEST
Definition: port_config.h:16
UARTポートの初期化、データ送信、データ受信の際に必要となる設定情報を格納する構造体
Definition: uart.h:81
uint8_t ch
継承先の機器がつながっているポート番号
Definition: uart.h:82
UART通信ラッパーのクラスです。
int UART_reopen(void *my_uart_v, int reason)
指定されたchを開きなおす
Definition: uart_sils.cpp:60
int UART_init(void *my_uart_v)
UART_CONFIG構造体をグローバルインスタンスとして定義し, ポインタを渡すことでポートを初期化する.
Definition: uart_sils.cpp:12
int OBC_C2A_SendFromObc(int port_id, unsigned char *buffer, int offset, int count)
int UART_tx(void *my_uart_v, void *data_v, int data_size)
UART_CONFIG構造体にて指定されたchへデータを送信します
Definition: uart_sils.cpp:33
int UART_rx(void *my_uart_v, void *data_v, int buffer_size)
UART_CONFIG構造体にて指定されたchからデータを受信します
Definition: uart_sils.cpp:17
int OBC_C2A_ReceivedByObc(int port_id, unsigned char *buffer, int offset, int count)
int SILS_SCI_UART_IF_TX(unsigned char *data_v, int count)
int SILS_SCI_UART_IF_RX(unsigned char *data_v, int count)
uart_sils_sci_if