9 #include "../../Library/endian.h"
23 uint8_t register_address,
void* data_v, uint8_t data_len);
36 uint8_t register_address,
void* data_v, uint8_t buffer_size);
40 return I2C_write_bytes_(p_super, stream, p_i2c_config, register_address, &data,
sizeof(data));
45 return I2C_write_bytes_(p_super, stream, p_i2c_config, register_address, &data,
sizeof(data));
49 uint8_t register_address,
void* data_v, uint8_t data_len)
51 uint8_t tx_data[
sizeof(register_address) +
sizeof(uint16_t)];
54 tx_data[0] = register_address;
55 ENDIAN_memcpy(tx_data +
sizeof(register_address), data_v, data_len);
64 uint8_t register_address, uint8_t* data)
66 return I2C_read_bytes_(p_super, stream, p_i2c_config, register_address, data,
sizeof(*data));
70 uint8_t register_address, uint16_t* data)
72 return I2C_read_bytes_(p_super, stream, p_i2c_config, register_address, data,
sizeof(*data));
76 uint8_t register_address,
void* data_v, uint8_t buffer_size)
79 const uint8_t* rx_data;
void DSSC_set_rx_frame_size(DS_StreamConfig *p_stream_config, const int16_t rx_frame_size)
void DSSC_set_tx_frame(DS_StreamConfig *p_stream_config, uint8_t *tx_frame)
const DS_StreamRecStatus * DSSC_get_rec_status(const DS_StreamConfig *p_stream_config)
void DSSC_set_tx_frame_size(DS_StreamConfig *p_stream_config, const uint16_t tx_frame_size)
DS_ERR_CODE DS_receive(DriverSuper *p_super)
継承先の機器からテレメトリを受信する
DS_ERR_CODE DS_clear_rx_buffer(DriverSuper *p_super)
受信バッファをクリアする
const uint8_t * DSSC_get_rx_frame(const DS_StreamConfig *p_stream_config)
確定したフレームを取得
DS_ERR_CODE DS_send_general_cmd(DriverSuper *p_super, uint8_t stream)
継承先の機器に一般コマンドを発行する
DS_ERR_CODE DS_send_req_tlm_cmd(DriverSuper *p_super, uint8_t stream)
継承先の機器にテレメ要求コマンドを発行する
@ DS_STREAM_REC_STATUS_FIXED_FRAME
DS_ERR_CODE
DriverSuper の汎用エラーコード
@ DS_ERR_CODE_OK
返り値は継承先や IF 先で上書きされるため,OK は 0 であることが必須
void * ENDIAN_memcpy(void *dest, const void *src, size_t size)
エンディアンを考慮した memcpy
void I2C_set_rx_length(void *my_i2c_v, const uint32_t rx_length)
rx_lengthを設定する
void I2C_set_stop_flag(void *my_i2c_v, const uint8_t stop_flag)
stop_flagを設定する
DS_ERR_CODE I2C_write_2bytes(DriverSuper *p_super, uint8_t stream, I2C_Config *p_i2c_config, uint8_t register_address, uint16_t data)
I2C_Config 構造体にて指定されたデバイスのレジスタへ 2 バイトデータを書き込む
DS_ERR_CODE I2C_write_byte(DriverSuper *p_super, uint8_t stream, I2C_Config *p_i2c_config, uint8_t register_address, uint8_t data)
I2C_Config 構造体にて指定されたデバイスのレジスタへ 1 バイトデータを書き込む
static DS_ERR_CODE I2C_write_bytes_(DriverSuper *p_super, uint8_t stream, I2C_Config *p_i2c_config, uint8_t register_address, void *data_v, uint8_t data_len)
I2C_Config 構造体にて指定されたデバイスのレジスタへ書き込む
static DS_ERR_CODE I2C_read_bytes_(DriverSuper *p_super, uint8_t stream, I2C_Config *p_i2c_config, uint8_t register_address, void *data_v, uint8_t buffer_size)
I2C_Config 構造体にて指定されたデバイスのレジスタへ読み込む
DS_ERR_CODE I2C_read_byte(DriverSuper *p_super, uint8_t stream, I2C_Config *p_i2c_config, uint8_t register_address, uint8_t *data)
I2C_Config 構造体にて指定されたデバイスのレジスタから 1 バイトデータを読み込む
DS_ERR_CODE I2C_read_2bytes(DriverSuper *p_super, uint8_t stream, I2C_Config *p_i2c_config, uint8_t register_address, uint16_t *data)
I2C_Config 構造体にて指定されたデバイスのレジスタから 2 バイトデータを読み込む
DriverSuper の設定 各 IF はこれを継承してつかう.
DS_StreamConfig stream_config[DS_STREAM_MAX]