File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -106,9 +106,14 @@ static void ws_neighbor_calculate_ufsi_drift(ws_neighbor_class_entry_t *ws_neigh
106
106
if (ws_neighbor -> fhss_data .uc_timing_info .unicast_channel_function == WS_TR51CF ) {
107
107
seq_length = ws_neighbor -> fhss_data .uc_timing_info .unicast_number_of_channels ;
108
108
}
109
+ uint32_t ufsi_prev_tmp = ws_neighbor -> fhss_data .uc_timing_info .ufsi ;
110
+ uint32_t ufsi_cur_tmp = ws_utt -> ufsi ;
111
+ if (ufsi_cur_tmp < ufsi_prev_tmp ) {
112
+ ufsi_cur_tmp += 0xffffff ;
113
+ }
109
114
// Convert 24-bit UFSI to real time before drift calculation
110
- uint32_t time_since_seq_start_prev_ms = own_ceil ((float )((uint64_t )ws_neighbor -> fhss_data . uc_timing_info . ufsi * seq_length * ws_neighbor -> fhss_data .uc_timing_info .unicast_dwell_interval ) / 0x1000000 );
111
- uint32_t time_since_seq_start_cur_ms = own_ceil ((float )((uint64_t )ws_utt -> ufsi * seq_length * ws_neighbor -> fhss_data .uc_timing_info .unicast_dwell_interval ) / 0x1000000 );
115
+ uint32_t time_since_seq_start_prev_ms = own_ceil ((float )((uint64_t )ufsi_prev_tmp * seq_length * ws_neighbor -> fhss_data .uc_timing_info .unicast_dwell_interval ) / 0x1000000 );
116
+ uint32_t time_since_seq_start_cur_ms = own_ceil ((float )((uint64_t )ufsi_cur_tmp * seq_length * ws_neighbor -> fhss_data .uc_timing_info .unicast_dwell_interval ) / 0x1000000 );
112
117
uint32_t time_since_last_ufsi_us = timestamp - ws_neighbor -> fhss_data .uc_timing_info .utt_rx_timestamp ;
113
118
uint32_t ufsi_diff_ms = time_since_seq_start_cur_ms - time_since_seq_start_prev_ms ;
114
119
int32_t ufsi_drift_ms = (int32_t )(time_since_last_ufsi_us / 1000 - ufsi_diff_ms );
You can’t perform that action at this time.
0 commit comments