@@ -109,15 +109,15 @@ static int32_t fhss_ws_calc_bc_channel(fhss_structure_t *fhss_structure)
109
109
{
110
110
int32_t next_channel = fhss_structure -> rx_channel ;
111
111
112
- if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_TR51CF ) {
112
+ if (fhss_structure -> ws -> fhss_configuration .ws_bc_channel_function == WS_TR51CF ) {
113
113
next_channel = tr51_get_bc_channel_index (fhss_structure -> ws -> bc_slot , fhss_structure -> ws -> fhss_configuration .bsi , fhss_structure -> number_of_channels , NULL );
114
114
if (++ fhss_structure -> ws -> bc_slot == fhss_structure -> number_of_channels ) {
115
115
fhss_structure -> ws -> bc_slot = 0 ;
116
116
}
117
- } else if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_DH1CF ) {
117
+ } else if (fhss_structure -> ws -> fhss_configuration .ws_bc_channel_function == WS_DH1CF ) {
118
118
next_channel = dh1cf_get_bc_channel_index (fhss_structure -> ws -> bc_slot , fhss_structure -> ws -> fhss_configuration .bsi , fhss_structure -> number_of_channels );
119
119
fhss_structure -> ws -> bc_slot ++ ;
120
- } else if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_VENDOR_DEF_CF ) {
120
+ } else if (fhss_structure -> ws -> fhss_configuration .ws_bc_channel_function == WS_VENDOR_DEF_CF ) {
121
121
if (fhss_structure -> ws -> fhss_configuration .vendor_defined_cf ) {
122
122
next_channel = fhss_structure -> ws -> fhss_configuration .vendor_defined_cf (fhss_structure -> fhss_api , fhss_structure -> ws -> bc_slot , NULL , fhss_structure -> ws -> fhss_configuration .bsi , fhss_structure -> number_of_channels );
123
123
}
@@ -240,7 +240,7 @@ static uint32_t fhss_ws_calculate_ufsi(fhss_structure_t *fhss_structure, uint32_
240
240
}
241
241
uint64_t ms_since_seq_start = (cur_slot * dwell_time ) + (dwell_time - remaining_time ) + time_to_tx ;
242
242
uint32_t seq_length = 0x10000 ;
243
- if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_TR51CF ) {
243
+ if (fhss_structure -> ws -> fhss_configuration .ws_uc_channel_function == WS_TR51CF ) {
244
244
ms_since_seq_start %= (dwell_time * fhss_structure -> number_of_channels );
245
245
seq_length = fhss_structure -> number_of_channels ;
246
246
}
@@ -289,7 +289,7 @@ static void fhss_ws_synch_state_set_callback(const fhss_api_t *api, fhss_states
289
289
if (!fhss_structure ) {
290
290
return ;
291
291
}
292
- if (( fhss_state == FHSS_SYNCHRONIZED ) && ( fhss_structure -> ws -> fhss_configuration . ws_channel_function != WS_FIXED_CHANNEL ) ) {
292
+ if (fhss_state == FHSS_SYNCHRONIZED ) {
293
293
uint32_t fhss_broadcast_interval = fhss_structure -> ws -> fhss_configuration .fhss_broadcast_interval ;
294
294
uint8_t fhss_bc_dwell_interval = fhss_structure -> ws -> fhss_configuration .fhss_bc_dwell_interval ;
295
295
@@ -298,8 +298,10 @@ static void fhss_ws_synch_state_set_callback(const fhss_api_t *api, fhss_states
298
298
fhss_broadcast_handler (fhss_structure -> fhss_api , 0 );
299
299
}
300
300
// Start unicast schedule
301
- fhss_ws_update_uc_channel_callback (fhss_structure );
302
- fhss_start_timer (fhss_structure , fhss_structure -> ws -> fhss_configuration .fhss_uc_dwell_interval * 1000 , fhss_unicast_handler );
301
+ if ((fhss_structure -> ws -> fhss_configuration .ws_uc_channel_function != WS_FIXED_CHANNEL )) {
302
+ fhss_ws_update_uc_channel_callback (fhss_structure );
303
+ fhss_start_timer (fhss_structure , fhss_structure -> ws -> fhss_configuration .fhss_uc_dwell_interval * 1000 , fhss_unicast_handler );
304
+ }
303
305
}
304
306
305
307
fhss_structure -> fhss_state = fhss_state ;
@@ -311,17 +313,17 @@ static void fhss_ws_update_uc_channel_callback(fhss_structure_t *fhss_structure)
311
313
uint8_t mac_address [8 ];
312
314
int32_t next_channel = fhss_structure -> rx_channel ;
313
315
fhss_structure -> callbacks .read_mac_address (fhss_structure -> fhss_api , mac_address );
314
- if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_FIXED_CHANNEL ) {
316
+ if (fhss_structure -> ws -> fhss_configuration .ws_uc_channel_function == WS_FIXED_CHANNEL ) {
315
317
return ;
316
- } else if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_TR51CF ) {
318
+ } else if (fhss_structure -> ws -> fhss_configuration .ws_uc_channel_function == WS_TR51CF ) {
317
319
next_channel = fhss_structure -> rx_channel = tr51_get_uc_channel_index (fhss_structure -> ws -> uc_slot , mac_address , fhss_structure -> number_of_channels , NULL );
318
320
if (++ fhss_structure -> ws -> uc_slot == fhss_structure -> number_of_channels ) {
319
321
fhss_structure -> ws -> uc_slot = 0 ;
320
322
}
321
- } else if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_DH1CF ) {
323
+ } else if (fhss_structure -> ws -> fhss_configuration .ws_uc_channel_function == WS_DH1CF ) {
322
324
next_channel = fhss_structure -> rx_channel = dh1cf_get_uc_channel_index (fhss_structure -> ws -> uc_slot , mac_address , fhss_structure -> number_of_channels );
323
325
fhss_structure -> ws -> uc_slot ++ ;
324
- } else if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_VENDOR_DEF_CF ) {
326
+ } else if (fhss_structure -> ws -> fhss_configuration .ws_uc_channel_function == WS_VENDOR_DEF_CF ) {
325
327
if (fhss_structure -> ws -> fhss_configuration .vendor_defined_cf ) {
326
328
next_channel = fhss_structure -> rx_channel = fhss_structure -> ws -> fhss_configuration .vendor_defined_cf (fhss_structure -> fhss_api , fhss_structure -> ws -> bc_slot , mac_address , fhss_structure -> ws -> fhss_configuration .bsi , fhss_structure -> number_of_channels );
327
329
}
@@ -453,9 +455,6 @@ static bool fhss_ws_check_tx_conditions_callback(const fhss_api_t *api, bool is_
453
455
if (!fhss_structure ) {
454
456
return true;
455
457
}
456
- if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_FIXED_CHANNEL ) {
457
- return true;
458
- }
459
458
// Do not allow broadcast destination on unicast channel
460
459
if (is_broadcast_addr && (fhss_structure -> ws -> is_on_bc_channel == false)) {
461
460
return false;
@@ -535,7 +534,7 @@ static void fhss_ws_data_tx_done_callback(const fhss_api_t *api, bool waiting_ac
535
534
if (!fhss_structure ) {
536
535
return ;
537
536
}
538
- if (( fhss_structure -> fhss_state == FHSS_SYNCHRONIZED ) && ( fhss_structure -> ws -> fhss_configuration . ws_channel_function != WS_FIXED_CHANNEL ) ) {
537
+ if (fhss_structure -> fhss_state == FHSS_SYNCHRONIZED ) {
539
538
if (waiting_ack == false) {
540
539
if (fhss_structure -> ws -> is_on_bc_channel == false) {
541
540
fhss_structure -> callbacks .change_channel (fhss_structure -> fhss_api , fhss_structure -> rx_channel );
@@ -612,7 +611,7 @@ static bool fhss_ws_use_broadcast_queue_cb(const fhss_api_t *api, bool is_broadc
612
611
return false;
613
612
}
614
613
// Do not use broadcast queue when fixed channel
615
- if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_FIXED_CHANNEL ) {
614
+ if (fhss_structure -> ws -> fhss_configuration .ws_bc_channel_function == WS_FIXED_CHANNEL ) {
616
615
return false;
617
616
}
618
617
// Broadcast packets are stored in broadcast queue
@@ -661,9 +660,6 @@ int fhss_ws_set_parent(fhss_structure_t *fhss_structure, const uint8_t eui64[8],
661
660
if (!fhss_structure -> ws ) {
662
661
return -1 ;
663
662
}
664
- if (fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_FIXED_CHANNEL ) {
665
- return 0 ;
666
- }
667
663
if (!bc_timing_info -> broadcast_interval || !bc_timing_info -> broadcast_dwell_interval ) {
668
664
return -1 ;
669
665
}
@@ -701,14 +697,15 @@ int fhss_ws_configuration_set(fhss_structure_t *fhss_structure, const fhss_ws_co
701
697
if (channel_count <= 0 ) {
702
698
return -1 ;
703
699
}
704
- if ((fhss_structure -> ws -> fhss_configuration .ws_channel_function == WS_FIXED_CHANNEL ) && (fhss_configuration -> ws_channel_function != WS_FIXED_CHANNEL )) {
700
+ if ((fhss_structure -> ws -> fhss_configuration .ws_uc_channel_function == WS_FIXED_CHANNEL ) && (fhss_configuration -> ws_uc_channel_function != WS_FIXED_CHANNEL )) {
705
701
// Start unicast schedule if channel function changed from fixed channel
706
702
fhss_start_timer (fhss_structure , fhss_configuration -> fhss_uc_dwell_interval * 1000 , fhss_unicast_handler );
707
703
}
708
704
fhss_structure -> ws -> fhss_configuration = * fhss_configuration ;
709
705
fhss_structure -> number_of_channels = channel_count ;
710
- tr_info ("fhss Configuration set function:%d channels: %d, uc dwell: %d, bc dwell: %d, bc interval: %d, bsi:%d" ,
711
- fhss_structure -> ws -> fhss_configuration .ws_channel_function ,
706
+ tr_info ("fhss Configuration set UC CF: %d, BC CF: %d, channels: %d, uc dwell: %d, bc dwell: %d, bc interval: %d, bsi:%d" ,
707
+ fhss_structure -> ws -> fhss_configuration .ws_uc_channel_function ,
708
+ fhss_structure -> ws -> fhss_configuration .ws_bc_channel_function ,
712
709
fhss_structure -> number_of_channels ,
713
710
fhss_structure -> ws -> fhss_configuration .fhss_uc_dwell_interval ,
714
711
fhss_structure -> ws -> fhss_configuration .fhss_bc_dwell_interval ,
0 commit comments