思澈科技软件开发工具包  2.20
Data service Provider

Sifli Data service provider interface. More...

Data Structures

struct  data_service_config_tag
 
typedef void * datas_handle_t
 
typedef int32_t(* data_service_msg_handler_t) (datas_handle_t service, data_msg_t *msg)
 
typedef bool(* data_filter_t) (data_req_t *config, uint16_t msg_id, uint32_t len, uint8_t *data)
 
typedef struct data_service_config_tag data_service_config_t
 
int32_t datas_push_msg_to_client (datas_handle_t service, uint16_t msg_id, uint32_t len, uint8_t *data)
 Trigger service main thread to send customer message to the subscriber. More...
 
int32_t datas_push_msg_to_client_no_copy (datas_handle_t svc, uint16_t msg_id, uint32_t len, uint8_t *data)
 Trigger service main thread to send customer message to the subscriber,. More...
 
rt_err_t datas_data_ready (datas_handle_t service, uint32_t size, uint8_t *data)
 Inform service that data is available to. More...
 
rt_err_t datas_send_response (datas_handle_t service, data_msg_t *msg_req, rt_err_t result)
 Send response message to req message. More...
 
rt_err_t datas_send_response_data (datas_handle_t service, data_msg_t *msg_req, uint32_t len, uint8_t *data)
 Send response message to req message. More...
 
datas_handle_t datas_register (const char *name, data_service_config_t *config)
 Register data service provider. More...
 
#define DATA_SERVICE_INVALID_ID   (0x7F)
 
#define datas_push_data_to_client(service, len, data)   datas_push_msg_to_client(service,MSG_SERVICE_DATA_NTF_IND,len,data)
 
#define datas_ind_size(service, size)   datas_data_ready(service,size,RT_NULL);
 

Detailed Description

Sifli Data service provider interface.

Typedef Documentation

◆ data_service_msg_handler_t

typedef int32_t(* data_service_msg_handler_t) (datas_handle_t service, data_msg_t *msg)

service message handler

◆ datas_handle_t

typedef void* datas_handle_t

Data service client

Function Documentation

◆ datas_data_ready()

rt_err_t datas_data_ready ( datas_handle_t  service,
uint32_t  size,
uint8_t *  data 
)

Inform service that data is available to.

Parameters
[in]serviceHandle of data service
[in]sizesize of data in bytes available to service.
[in]datapoint to data, the pointer is carried by message MSG_SERVICE_DATA_RDY_IND, so the receiver is responsible to free the memory
Return values
RT_EOKif successful, otherwise return error number < 0.

◆ datas_push_msg_to_client()

int32_t datas_push_msg_to_client ( datas_handle_t  service,
uint16_t  msg_id,
uint32_t  len,
uint8_t *  data 
)

Trigger service main thread to send customer message to the subscriber.

Parameters
[in]serviceHandle of data service
[in]msg_idMessage id
[in]lenSize of data available
[in]datacontent of data
Return values
RT_EOKif successful, otherwise return error number < 0.

◆ datas_push_msg_to_client_no_copy()

int32_t datas_push_msg_to_client_no_copy ( datas_handle_t  svc,
uint16_t  msg_id,
uint32_t  len,
uint8_t *  data 
)

Trigger service main thread to send customer message to the subscriber,.

data is not copied and accessed directly by client if serivce and client are in the same core. Service cannot free data after this function call as it would be used by client. If service and client are in different core, the message is relayed to the client side, i.e. client would use a copy of data. So data can be freed after this function call.

Parameters
[in]svcHandle of data service
[in]msg_idMessage id
[in]lenSize of data available
[in]datacontent of data
Return values
RT_EOKif successful, otherwise return error number < 0.

◆ datas_register()

datas_handle_t datas_register ( const char *  name,
data_service_config_t config 
)

Register data service provider.

Parameters
[in]nameName of data service
[in]configData service config
Return values
Servicehandle.

◆ datas_send_response()

rt_err_t datas_send_response ( datas_handle_t  service,
data_msg_t msg_req,
rt_err_t  result 
)

Send response message to req message.

Parameters
[in]serviceHandle of data service
[in]msg_reqRequest message to respond
[in]resultResult of response
Return values
RT_EOKif successful, otherwise return error number < 0.

◆ datas_send_response_data()

rt_err_t datas_send_response_data ( datas_handle_t  service,
data_msg_t msg_req,
uint32_t  len,
uint8_t *  data 
)

Send response message to req message.

Parameters
[in]serviceHandle of data service
[in]msg_reqRequest message to respond
[in]lenSize of data available
[in]datacontent of data
Return values
RT_EOKif successful, otherwise return error number < 0.