/** * Register objects for the default logging profile */ static void register_default_profile() { // For the default profile, we limit things to 100Hz (for now) uint16_t min_period = MAX(get_minimum_logging_period(), 10); // Objects for which we log all changes (use 100Hz to limit max data rate) UAVObjConnectCallbackThrottled(FlightStatusHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10); UAVObjConnectCallbackThrottled(SystemAlarmsHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10); if (WaypointActiveHandle()) { UAVObjConnectCallbackThrottled(WaypointActiveHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10); } if (SystemIdentHandle()){ UAVObjConnectCallbackThrottled(SystemIdentHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10); } // Log fast UAVObjConnectCallbackThrottled(AccelsHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, min_period); UAVObjConnectCallbackThrottled(GyrosHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, min_period); // Log a bit slower UAVObjConnectCallbackThrottled(AttitudeActualHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 5 * min_period); UAVObjConnectCallbackThrottled(MagnetometerHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 5 * min_period); UAVObjConnectCallbackThrottled(ManualControlCommandHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 5 * min_period); UAVObjConnectCallbackThrottled(ActuatorDesiredHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 5 * min_period); UAVObjConnectCallbackThrottled(StabilizationDesiredHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 5 * min_period); // Log slow if (FlightBatteryStateHandle()) { UAVObjConnectCallbackThrottled(FlightBatteryStateHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10 * min_period); } if (BaroAltitudeHandle()) { UAVObjConnectCallbackThrottled(BaroAltitudeHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10 * min_period); } if (AirspeedActualHandle()) { UAVObjConnectCallbackThrottled(AirspeedActualHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10 * min_period); } if (GPSPositionHandle()) { UAVObjConnectCallbackThrottled(GPSPositionHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10 * min_period); } if (PositionActualHandle()) { UAVObjConnectCallbackThrottled(PositionActualHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10 * min_period); } if (VelocityActualHandle()) { UAVObjConnectCallbackThrottled(VelocityActualHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 10 * min_period); } // Log very slow if (GPSTimeHandle()) { UAVObjConnectCallbackThrottled(GPSTimeHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 50 * min_period); } // Log very very slow if (GPSSatellitesHandle()) { UAVObjConnectCallbackThrottled(GPSSatellitesHandle(), obj_updated_callback, NULL, EV_UPDATED | EV_UNPACKED, 500 * min_period); } }
void GPSSatellitesSNRGet( int8_t *NewSNR ) { UAVObjGetDataField(GPSSatellitesHandle(), (void*)NewSNR, offsetof( GPSSatellitesData, SNR), 30*sizeof(int8_t)); }
void GPSSatellitesElevationGet( int8_t *NewElevation ) { UAVObjGetDataField(GPSSatellitesHandle(), (void*)NewElevation, offsetof( GPSSatellitesData, Elevation), 30*sizeof(int8_t)); }
void GPSSatellitesPRNGet( uint8_t *NewPRN ) { UAVObjGetDataField(GPSSatellitesHandle(), (void*)NewPRN, offsetof( GPSSatellitesData, PRN), 30*sizeof(uint8_t)); }
void GPSSatellitesSatsInViewGet( uint8_t *NewSatsInView ) { UAVObjGetDataField(GPSSatellitesHandle(), (void*)NewSatsInView, offsetof( GPSSatellitesData, SatsInView), sizeof(uint8_t)); }
void GPSSatellitesAzimuthGet( int16_t *NewAzimuth ) { UAVObjGetDataField(GPSSatellitesHandle(), (void*)NewAzimuth, offsetof( GPSSatellitesData, Azimuth), 30*sizeof(int16_t)); }