ACU6 Device API
Data Structures | Enumerations | Enumerator | Functions
ipc_accelerometer

Accelerometer Service. More...

Data Structures

struct  a_ipc_dyn_array_enum_accelerometer_result
 Dynamic-length array of a_ipc_enum_accelerometer_result. More...
 
struct  a_ipc_msg_accelerometer_request_req
 Request the accelerometer service. More...
 
struct  a_ipc_msg_accelerometer_request_rsp
 Accelerometer request result. More...
 
struct  a_ipc_msg_accelerometer_release_req_norsp
 Release accelerometer service for given user user. More...
 
struct  a_ipc_msg_accelerometer_configure_req
 Request to configure the accelerometer service. More...
 
struct  a_ipc_msg_accelerometer_configure_rsp
 Sent in response to accelerometer_configure_req message. More...
 
struct  a_ipc_msg_accelerometer_publish_ind
 accelerometer data event. More...
 
struct  a_ipc_msg_accelerometer_unsubscribe_req_norsp
 Unsubscribe from updates for accelerometer. More...
 

Enumerations

enum  a_ipc_enum_accelerometer_result { A_IPC_ENUM_ACCELEROMETER_RESULT_OK , A_IPC_ENUM_ACCELEROMETER_RESULT_ERROR }
 Result codes. More...
 

Functions

A_IPC_RESULT a_ipc_init_accelerometer_request_req (a_ipc_msg *msg, uint32_t user_maxlength)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_request_req. More...
 
A_IPC_RESULT a_ipc_init_accelerometer_request_rsp (a_ipc_msg *msg)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_request_rsp. More...
 
A_IPC_RESULT a_ipc_init_accelerometer_release_req_norsp (a_ipc_msg *msg, uint32_t user_maxlength)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_release_req_norsp. More...
 
A_IPC_RESULT a_ipc_init_accelerometer_configure_req (a_ipc_msg *msg)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_configure_req. More...
 
A_IPC_RESULT a_ipc_init_accelerometer_configure_rsp (a_ipc_msg *msg)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_configure_rsp. More...
 
A_IPC_RESULT a_ipc_init_accelerometer_publish_ind (a_ipc_msg *msg, uint32_t sample_buffer_maxlength)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_publish_ind. More...
 
A_IPC_RESULT a_ipc_init_accelerometer_subscribe_req (a_ipc_msg *msg)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_subscribe_req. More...
 
A_IPC_RESULT a_ipc_init_accelerometer_subscribe_rsp (a_ipc_msg *msg)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_subscribe_rsp. More...
 
A_IPC_RESULT a_ipc_init_accelerometer_unsubscribe_req_norsp (a_ipc_msg *msg)
 Initialize the message buffer to contain a_ipc_msg_accelerometer_unsubscribe_req_norsp. More...
 

Detailed Description

Accelerometer Service.

This page contains documentation of the Accelerometer Service API.

According to the interface description, the values in the a_ipc_msg_accelerometer_publish_ind comes as an array of bytes. To be able to read out the actual values, these bytes need to be re-composed to an accelerometer_sample struct:

struct accelerometer_sample {
int16_t x;
int16_t y;
int16_t z;
int16_t pad;
int64_t ts;
} __attribute__ ((__packed__));

Here is an example of how to do this:

static void handle_publish_ind(a_ipc_msg* message)
{
struct accelerometer_sample {
int16_t x;
int16_t y;
int16_t z;
int16_t pad;
int64_t ts;
} __attribute__ ((__packed__));
struct accelerometer_sample* samples = (struct accelerometer_sample*)
message->accelerometer_publish_ind.sample_buffer.value;
int number_of_samples =
message->accelerometer_publish_ind.sample_buffer.length /
sizeof(struct accelerometer_sample);
for (int i = 0; i < number_of_samples; i++)
{
printf("Received values (sample %d of %d):\n", i + 1, number_of_samples);
printf("x: %i\n", samples[i].x);
printf("y: %i\n", samples[i].y);
printf("z: %i\n", samples[i].z);
printf("time stamp: %lu\n", samples[i].ts);
}
exit_main_loop_with_return_code(0);
}
AIPC Message.
Definition: ipc_generated.h:1204

Data Structure Documentation

◆ a_ipc_dyn_array_enum_accelerometer_result

struct a_ipc_dyn_array_enum_accelerometer_result

Dynamic-length array of a_ipc_enum_accelerometer_result.

Data Fields
uint32_t length Length of the array (number of elements)
a_ipc_enum_accelerometer_result * value The contents of the array.

◆ a_ipc_msg_accelerometer_request_req

struct a_ipc_msg_accelerometer_request_req

Request the accelerometer service.

Response is delivered in a_ipc_msg_accelerometer_request_rsp.

Create using a_ipc_init_accelerometer_request_req().

Message type is A_IPC_MSG_ACCELEROMETER_REQUEST_REQ.

Data Fields
a_ipc_dyn_string user User identifier, max 15 characters long.

◆ a_ipc_msg_accelerometer_request_rsp

struct a_ipc_msg_accelerometer_request_rsp

Accelerometer request result.

Sent in response to a_ipc_msg_accelerometer_request_req.

Create using a_ipc_init_accelerometer_request_rsp().

Message type is A_IPC_MSG_ACCELEROMETER_REQUEST_RSP.

Data Fields
a_ipc_enum_accelerometer_result result Result of the operation.

◆ a_ipc_msg_accelerometer_release_req_norsp

struct a_ipc_msg_accelerometer_release_req_norsp

Release accelerometer service for given user user.

Create using a_ipc_init_accelerometer_release_req_norsp().

Message type is A_IPC_MSG_ACCELEROMETER_RELEASE_REQ_NORSP.

Data Fields
a_ipc_dyn_string user User identifier, max 15 characters long.

◆ a_ipc_msg_accelerometer_configure_req

struct a_ipc_msg_accelerometer_configure_req

Request to configure the accelerometer service.

Response is delivered in a_ipc_msg_accelerometer_configure_rsp.

Create using a_ipc_init_accelerometer_configure_req().

Message type is A_IPC_MSG_ACCELEROMETER_CONFIGURE_REQ.

Data Fields
uint32_t samplerate_sps Requested sample rate in samples per second.
uint32_t samples_per_buffer Number of samples per buffer.

◆ a_ipc_msg_accelerometer_configure_rsp

struct a_ipc_msg_accelerometer_configure_rsp

Sent in response to accelerometer_configure_req message.

Sent in response to a_ipc_msg_accelerometer_configure_req.

Create using a_ipc_init_accelerometer_configure_rsp().

Message type is A_IPC_MSG_ACCELEROMETER_CONFIGURE_RSP.

Data Fields
uint32_t actual_samplerate_sps Actual sample rate configured, in samples per second.
a_ipc_enum_accelerometer_result result Result of the operation.

◆ a_ipc_msg_accelerometer_publish_ind

struct a_ipc_msg_accelerometer_publish_ind
Data Fields
uint32_t no_of_samples Number of samples included in sample buffer.
a_ipc_dyn_array_uint8 sample_buffer The sample values.

◆ a_ipc_msg_accelerometer_subscribe_req

struct a_ipc_msg_accelerometer_subscribe_req

Subscribe to updates for accelerometer.

a_ipc_msg_accelerometer_publish_ind will be received until a_ipc_msg_accelerometer_unsubscribe_req_norsp is sent.

Response is delivered in a_ipc_msg_accelerometer_subscribe_rsp.

Create using a_ipc_init_accelerometer_subscribe_req().

Message type is A_IPC_MSG_ACCELEROMETER_SUBSCRIBE_REQ.

◆ a_ipc_msg_accelerometer_subscribe_rsp

struct a_ipc_msg_accelerometer_subscribe_rsp
Data Fields
a_ipc_enum_ipc_subscribe_result result The result of the subscription request.

◆ a_ipc_msg_accelerometer_unsubscribe_req_norsp

struct a_ipc_msg_accelerometer_unsubscribe_req_norsp

Unsubscribe from updates for accelerometer.

a_ipc_msg_accelerometer_publish_ind will no longer be received.

Create using a_ipc_init_accelerometer_unsubscribe_req_norsp().

Message type is A_IPC_MSG_ACCELEROMETER_UNSUBSCRIBE_REQ_NORSP.

Enumeration Type Documentation

◆ a_ipc_enum_accelerometer_result

Result codes.

Enumerator
A_IPC_ENUM_ACCELEROMETER_RESULT_OK 

OK.

A_IPC_ENUM_ACCELEROMETER_RESULT_ERROR 

Error.

Function Documentation

◆ a_ipc_init_accelerometer_configure_req()

A_IPC_RESULT a_ipc_init_accelerometer_configure_req ( a_ipc_msg msg)

Initialize the message buffer to contain a_ipc_msg_accelerometer_configure_req.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_CONFIGURE_REQ.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize

◆ a_ipc_init_accelerometer_configure_rsp()

A_IPC_RESULT a_ipc_init_accelerometer_configure_rsp ( a_ipc_msg msg)

Initialize the message buffer to contain a_ipc_msg_accelerometer_configure_rsp.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_CONFIGURE_RSP.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize

◆ a_ipc_init_accelerometer_publish_ind()

A_IPC_RESULT a_ipc_init_accelerometer_publish_ind ( a_ipc_msg msg,
uint32_t  sample_buffer_maxlength 
)

Initialize the message buffer to contain a_ipc_msg_accelerometer_publish_ind.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_PUBLISH_IND.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize
sample_buffer_maxlengthThe number of array elements to reserve for sample_buffer in the message.

◆ a_ipc_init_accelerometer_release_req_norsp()

A_IPC_RESULT a_ipc_init_accelerometer_release_req_norsp ( a_ipc_msg msg,
uint32_t  user_maxlength 
)

Initialize the message buffer to contain a_ipc_msg_accelerometer_release_req_norsp.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_RELEASE_REQ_NORSP.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize
user_maxlengthThe maximum string length for user in the message.

◆ a_ipc_init_accelerometer_request_req()

A_IPC_RESULT a_ipc_init_accelerometer_request_req ( a_ipc_msg msg,
uint32_t  user_maxlength 
)

Initialize the message buffer to contain a_ipc_msg_accelerometer_request_req.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_REQUEST_REQ.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize
user_maxlengthThe maximum string length for user in the message.

◆ a_ipc_init_accelerometer_request_rsp()

A_IPC_RESULT a_ipc_init_accelerometer_request_rsp ( a_ipc_msg msg)

Initialize the message buffer to contain a_ipc_msg_accelerometer_request_rsp.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_REQUEST_RSP.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize

◆ a_ipc_init_accelerometer_subscribe_req()

A_IPC_RESULT a_ipc_init_accelerometer_subscribe_req ( a_ipc_msg msg)

Initialize the message buffer to contain a_ipc_msg_accelerometer_subscribe_req.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_SUBSCRIBE_REQ.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize

◆ a_ipc_init_accelerometer_subscribe_rsp()

A_IPC_RESULT a_ipc_init_accelerometer_subscribe_rsp ( a_ipc_msg msg)

Initialize the message buffer to contain a_ipc_msg_accelerometer_subscribe_rsp.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_SUBSCRIBE_RSP.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize

◆ a_ipc_init_accelerometer_unsubscribe_req_norsp()

A_IPC_RESULT a_ipc_init_accelerometer_unsubscribe_req_norsp ( a_ipc_msg msg)

Initialize the message buffer to contain a_ipc_msg_accelerometer_unsubscribe_req_norsp.

msg->info.type will be A_IPC_MSG_ACCELEROMETER_UNSUBSCRIBE_REQ_NORSP.

This function can be called on an already initialized message to change its type.

Parameters
msgThe message buffer to initialize

Variable Documentation

◆ actual_samplerate_sps

uint32_t a_ipc_msg_accelerometer_configure_rsp::actual_samplerate_sps

Actual sample rate configured, in samples per second.

◆ no_of_samples

uint32_t a_ipc_msg_accelerometer_publish_ind::no_of_samples

Number of samples included in sample buffer.

◆ result [1/3]

a_ipc_enum_accelerometer_result a_ipc_msg_accelerometer_request_rsp::result

Result of the operation.

◆ result [2/3]

a_ipc_enum_accelerometer_result a_ipc_msg_accelerometer_configure_rsp::result

Result of the operation.

◆ result [3/3]

a_ipc_enum_ipc_subscribe_result a_ipc_msg_accelerometer_subscribe_rsp::result

The result of the subscription request.

◆ sample_buffer

a_ipc_dyn_array_uint8 a_ipc_msg_accelerometer_publish_ind::sample_buffer

The sample values.

◆ samplerate_sps

uint32_t a_ipc_msg_accelerometer_configure_req::samplerate_sps

Requested sample rate in samples per second.

◆ samples_per_buffer

uint32_t a_ipc_msg_accelerometer_configure_req::samples_per_buffer

Number of samples per buffer.

◆ user [1/2]

a_ipc_dyn_string a_ipc_msg_accelerometer_request_req::user

User identifier, max 15 characters long.

◆ user [2/2]

a_ipc_dyn_string a_ipc_msg_accelerometer_release_req_norsp::user

User identifier, max 15 characters long.