@@ -276,16 +276,19 @@ void hid_write_packet_n(uint8_t *data, uint8_t rssi)
276276 uint8_t * cur_p = & cur_p_trackers [data [1 ]];
277277 float mag = q_diff_mag (q , last_q ); // difference between last valid
278278 float mag_cur = q_diff_mag (q , cur_q ); // difference between last received
279- bool mag_invalid = mag > 0.5f && mag < 6.28f - 0.5f ; // possibly invalid rotation
280- bool mag_cur_invalid = mag_cur > 0.5f && mag_cur < 6.28f - 0.5f ; // possibly inconsistent rotation
279+ bool mag_invalid = mag > 0.26f && mag < 6.28f - 0.26f ; // possibly invalid rotation
280+ bool mag_cur_invalid = mag_cur > 0.26f && mag_cur < 6.28f - 0.26f ; // possibly inconsistent rotation
281281 if (mag_invalid && !last_invalid )
282282 {
283- // HWID, ID, packet type, rotation difference (rad), last valid packet
284- LOG_ERR ("Abnormal rot. %012llX i%d p%d m%.2f/%.2f v%d" , stored_tracker_addr [data [1 ]], data [1 ], data [0 ], (double )mag , (double )mag_cur , last_valid_trackers [data [1 ]]);
285- // decoded quat, packet type, q_buf
286- printk ("a: %5.2f %5.2f %5.2f %5.2f p%d:%08X\n" , (double )q [0 ], (double )q [1 ], (double )q [2 ], (double )q [3 ], data [0 ], * q_buf );
287- printk ("b: %5.2f %5.2f %5.2f %5.2f p%d:%08X\n" , (double )cur_q [0 ], (double )cur_q [1 ], (double )cur_q [2 ], (double )cur_q [3 ], * cur_p , * cur_v );
288- printk ("c: %5.2f %5.2f %5.2f %5.2f p%d:%08X\n" , (double )last_q [0 ], (double )last_q [1 ], (double )last_q [2 ], (double )last_q [3 ], * last_p , * last_v );
283+ if (!mag_cur_invalid && last_valid_trackers [data [1 ]] >= RESET_THRESHOLD - 1 )
284+ {
285+ // HWID, ID, packet type, rotation difference (rad), last valid packet
286+ LOG_ERR ("Abnormal rot. %012llX i%d p%d m%.2f/%.2f v%d" , stored_tracker_addr [data [1 ]], data [1 ], data [0 ], (double )mag , (double )mag_cur , last_valid_trackers [data [1 ]]);
287+ // decoded quat, packet type, q_buf
288+ printk ("a: %5.2f %5.2f %5.2f %5.2f p%d:%08X\n" , (double )q [0 ], (double )q [1 ], (double )q [2 ], (double )q [3 ], data [0 ], * q_buf );
289+ printk ("b: %5.2f %5.2f %5.2f %5.2f p%d:%08X\n" , (double )cur_q [0 ], (double )cur_q [1 ], (double )cur_q [2 ], (double )cur_q [3 ], * cur_p , * cur_v );
290+ printk ("c: %5.2f %5.2f %5.2f %5.2f p%d:%08X\n" , (double )last_q [0 ], (double )last_q [1 ], (double )last_q [2 ], (double )last_q [3 ], * last_p , * last_v );
291+ }
289292 last_valid_trackers [data [1 ]]++ ;
290293 memcpy (cur_q , q , sizeof (q ));
291294 * cur_v = * q_buf ;
0 commit comments