38 #ifndef APP_SENSOR_H__ 39 #define APP_SENSOR_H__ 45 #include "sensor_messages.h" 46 #include "sensor_setup_server.h" 47 #include "app_timer.h" 78 typedef uint8_t pir_data_size_t;
84 typedef uint8_t descriptor_status_t;
109 #define APP_SENSOR_SERVER_DEF(_name, _force_segmented, _mic_size, _get_cb, \ 110 _settings_get_cb, _setting_set_cb, \ 111 _setting_get_cb, _column_get_cb, _series_get_cb, \ 113 _cadence_timer_ids, \ 114 _min_interval_timer_ids, \ 115 _descriptor_struct_array, _num_descs, \ 116 _p_message_buffer, _message_buffer_bytes); \ 117 static uint8_t m_descriptor_buf[_num_descs * SENSOR_DESCRIPTOR_MSG_SIZE]; \ 118 static app_sensor_server_t _name = \ 120 .server.settings.force_segmented = _force_segmented, \ 121 .server.settings.transmic_size = _mic_size, \ 122 .sensor_get_cb = _get_cb, \ 123 .sensor_settings_get_cb = _settings_get_cb, \ 124 .sensor_setting_set_cb = _setting_set_cb, \ 125 .sensor_setting_get_cb = _setting_get_cb, \ 126 .sensor_column_get_cb = _column_get_cb, \ 127 .sensor_series_get_cb = _series_get_cb, \ 128 .p_sensor_property_array = _property_array, \ 129 .p_cadence_timer_ids = _cadence_timer_ids, \ 130 .p_min_interval_timer_ids = _min_interval_timer_ids, \ 131 .p_sensor_descriptor = _descriptor_struct_array, \ 132 .p_descriptor_message = m_descriptor_buf, \ 133 .sensor_num_desc = _num_descs, \ 134 .p_message_buffer = _p_message_buffer, \ 135 .message_buffer_bytes = _message_buffer_bytes \ 144 list_node_t * p_cadence_list;
145 uint16_t marshalled_list_bytes;
159 uint16_t property_id,
161 uint16_t * p_out_bytes);
175 uint16_t property_id,
177 uint16_t * p_out_bytes);
193 uint16_t property_id,
194 uint16_t setting_property_id,
198 uint16_t * p_out_bytes);
211 uint16_t property_id,
212 uint16_t setting_property_id,
214 uint16_t * p_out_bytes);
238 uint16_t * p_out_bytes);
261 uint16_t * p_out_bytes);
268 sensor_setup_server_t server;
346 uint32_t
app_sensor_init(app_sensor_server_t * p_server, uint16_t element_index);
Internal structure to hold state.
Message format for the Sensor Column Status message 4.2.16 Sensor Column Status Sensor Column Status ...
uint16_t message_buffer_bytes
The number of bytes of buffer space at p_message_buffer.
uint16_t sensor_num_desc
Main's descriptor definition - passed in by main (main's static const) - mid app uses this to create ...
void(* app_sensor_get_cb_t)(const app_sensor_server_t *p_server, uint16_t property_id, uint8_t *p_out, uint16_t *p_out_bytes)
Application state read callback prototype.
descriptor_status_t * p_descriptor_message
mid-app's packed version of the descriptor
app_sensor_series_get_cb_t sensor_series_get_cb
Callback to be called for requesting a series of formatted sensor data from the user application...
Message format for the Sensor Series Status message 4.2.18 Sensor Series Status Sensor Series Status ...
void(* app_sensor_setting_set_cb_t)(const app_sensor_server_t *p_server, uint16_t property_id, uint16_t setting_property_id, const sensor_setting_set_msg_pkt_t *p_in, uint16_t in_bytes, sensor_setting_status_msg_pkt_t *p_out, uint16_t *p_out_bytes)
Application state set setting callback prototype.
Application level structure holding the Sensor server model context and sensor state representation...
uint32_t app_sensor_init(app_sensor_server_t *p_server, uint16_t element_index)
Initializes the behavioral module for the Sensor model.
app_timer_id_t const * p_cadence_timer_ids
array of timer IDs for supporting fast cadence.
void(* app_sensor_setting_get_cb_t)(const app_sensor_server_t *p_server, uint16_t property_id, uint16_t setting_property_id, sensor_setting_status_msg_pkt_t *p_out, uint16_t *p_out_bytes)
Application state read single setting callback prototype.
uint8_t * p_message_buffer
Points to the message buffer.
void(* app_sensor_series_get_cb_t)(const app_sensor_server_t *p_server, const sensor_series_get_msg_pkt_t *p_in, uint16_t in_bytes, sensor_series_status_msg_pkt_t *p_out, uint16_t *p_out_bytes)
Application state read series callback prototype.
void(* app_sensor_settings_get_cb_t)(const app_sensor_server_t *p_server, uint16_t property_id, sensor_settings_status_msg_pkt_t *p_out, uint16_t *p_out_bytes)
Application state read settings callback prototype.
void(* app_sensor_column_get_cb_t)(const app_sensor_server_t *p_server, const sensor_column_get_msg_pkt_t *p_in, uint16_t in_bytes, sensor_column_status_msg_pkt_t *p_out, uint16_t *p_out_bytes)
Application state read column callback prototype.
app_sensor_column_get_cb_t sensor_column_get_cb
Callback to be called for requesting a column of formatted sensor data from the user application...
app_sensor_get_cb_t sensor_get_cb
Callback to be called for requesting current sensor data from the user application.
app_timer_id_t const * p_min_interval_timer_ids
array of timer IDs for enforcing status min interval.
app_sensor_settings_get_cb_t sensor_settings_get_cb
Callback to be called for requesting settings from the user application.
app_sensor_setting_get_cb_t sensor_setting_get_cb
Callback to be called for requesting a setting from the user application.
Message format for the Sensor Setting Set/Set Unacknowledged message (partial) 4.2.10 Sensor Setting Set Sensor Setting Set is an acknowledged message used to set the Sensor Setting state of an element (see Section 4.1.2).
uint16_t * p_sensor_property_array
Array of the supported property IDs.
Message format for the Sensor Column Get message (partial) 4.2.15 Sensor Column Get Sensor Column Get...
app_sensor_state_t state
Internal variable.
app_sensor_setting_set_cb_t sensor_setting_set_cb
Callback to be called for informing the user application to update the settings.
Message format for the Sensor Settings Status message.
Message format for the Sensor Series Get message (partial) 4.2.17 Sensor Series Get Sensor Series Get...
Parameters for the Sensor Descriptor.
Message format for the Sensor Setting Status message.