Skip to content

Commit 3e326d1

Browse files
author
Jarkko Paso
committed
FHSS: separated synch info write for FHSS and WS
1 parent 15d4465 commit 3e326d1

File tree

4 files changed

+37
-21
lines changed

4 files changed

+37
-21
lines changed

source/Service_Libs/fhss/fhss.c

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,24 @@ static void fhss_update_channel_callback(fhss_structure_t *fhss_structure)
913913
}
914914
}
915915

916+
static int16_t fhss_write_synch_info_callback(const fhss_api_t *api, uint8_t *info_ptr, int info_type, int frame_type_id, uint32_t tx_time)
917+
{
918+
fhss_structure_t *fhss_structure = fhss_get_object_with_api(api);
919+
(void) frame_type_id;
920+
(void) tx_time;
921+
if (!fhss_structure) {
922+
return -1;
923+
}
924+
if (info_type == FHSS_PLAIN_SYNCH_INFO) {
925+
if (!info_ptr) {
926+
return -1;
927+
}
928+
fhss_beacon_build(fhss_structure, info_ptr);
929+
return FHSS_SYNCH_INFO_LENGTH;
930+
}
931+
return -1;
932+
}
933+
916934
int fhss_set_callbacks(fhss_structure_t *fhss_structure)
917935
{
918936
// Set external API
@@ -926,7 +944,7 @@ int fhss_set_callbacks(fhss_structure_t *fhss_structure)
926944
fhss_structure->fhss_api->synch_state_set = &fhss_synch_state_set_cb;
927945
fhss_structure->fhss_api->read_timestamp = &fhss_read_timestamp_cb;
928946
fhss_structure->fhss_api->get_retry_period = &fhss_get_retry_period_cb;
929-
fhss_structure->fhss_api->write_synch_info = &fhss_write_synch_info_cb;
947+
fhss_structure->fhss_api->write_synch_info = &fhss_write_synch_info_callback;
930948
fhss_structure->fhss_api->init_callbacks = &fhss_init_callbacks_cb;
931949
// Set internal API
932950
fhss_structure->update_channel = fhss_update_channel_callback;

source/Service_Libs/fhss/fhss_mac_interface.c

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -205,24 +205,6 @@ uint16_t fhss_get_retry_period_cb(const fhss_api_t *api, uint8_t *destination_ad
205205
return retry_period;
206206
}
207207

208-
int16_t fhss_write_synch_info_cb(const fhss_api_t *api, uint8_t *info_ptr, int info_type, int frame_type_id, uint32_t tx_time)
209-
{
210-
fhss_structure_t *fhss_structure = fhss_get_object_with_api(api);
211-
(void) frame_type_id;
212-
(void) tx_time;
213-
if (!fhss_structure) {
214-
return -1;
215-
}
216-
if (info_type == FHSS_PLAIN_SYNCH_INFO) {
217-
if (!info_ptr) {
218-
return -1;
219-
}
220-
fhss_beacon_build(fhss_structure, info_ptr);
221-
return FHSS_SYNCH_INFO_LENGTH;
222-
}
223-
return -1;
224-
}
225-
226208

227209
int fhss_init_callbacks_cb(const fhss_api_t *api, fhss_callback_t *callbacks)
228210
{

source/Service_Libs/fhss/fhss_mac_interface.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ bool fhss_data_tx_fail_cb(const fhss_api_t *api, uint8_t handle, int frame_type)
2626
void fhss_synch_state_set_cb(const fhss_api_t *api, fhss_states fhss_state, uint16_t pan_id);
2727
uint32_t fhss_read_timestamp_cb(const fhss_api_t *api);
2828
uint16_t fhss_get_retry_period_cb(const fhss_api_t *api, uint8_t *destination_address, uint16_t phy_mtu);
29-
int16_t fhss_write_synch_info_cb(const fhss_api_t *api, uint8_t *info_ptr, int info_type, int frame_type_id, uint32_t tx_time);
3029
int fhss_init_callbacks_cb(const fhss_api_t *api, fhss_callback_t *callbacks);
3130

3231
#endif /* FHSS_MAC_INTERFACE_H_ */

source/Service_Libs/fhss/fhss_ws.c

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ static int fhss_ws_tx_handle_callback(const fhss_api_t *api, bool is_broadcast_a
170170
if (!fhss_structure) {
171171
return -1;
172172
}
173+
if (is_broadcast_addr) {
174+
return 0;
175+
}
173176
if (fhss_structure->fhss_state == FHSS_SYNCHRONIZED) {
174177
int32_t tx_channel;
175178
//TODO: Compute destination slot using neighbour table
@@ -201,6 +204,20 @@ static bool fhss_ws_check_tx_conditions_callback(const fhss_api_t *api, bool is_
201204
return true;
202205
}
203206

207+
static int16_t fhss_ws_write_synch_info_callback(const fhss_api_t *api, uint8_t *info_ptr, int info_type, int frame_type_id, uint32_t tx_time)
208+
{
209+
fhss_structure_t *fhss_structure = fhss_get_object_with_api(api);
210+
(void) frame_type_id;
211+
(void) tx_time;
212+
(void) info_ptr;
213+
(void) info_type;
214+
if (!fhss_structure) {
215+
return -1;
216+
}
217+
218+
return -1;
219+
}
220+
204221
int fhss_ws_set_callbacks(fhss_structure_t *fhss_structure)
205222
{
206223
// Set external API
@@ -214,7 +231,7 @@ int fhss_ws_set_callbacks(fhss_structure_t *fhss_structure)
214231
fhss_structure->fhss_api->synch_state_set = &fhss_synch_state_set_cb;
215232
fhss_structure->fhss_api->read_timestamp = &fhss_read_timestamp_cb;
216233
fhss_structure->fhss_api->get_retry_period = &fhss_get_retry_period_cb;
217-
fhss_structure->fhss_api->write_synch_info = &fhss_write_synch_info_cb;
234+
fhss_structure->fhss_api->write_synch_info = &fhss_ws_write_synch_info_callback;
218235
fhss_structure->fhss_api->init_callbacks = &fhss_init_callbacks_cb;
219236
// Set internal API
220237
fhss_structure->update_channel = fhss_ws_update_uc_channel_callback;

0 commit comments

Comments
 (0)