private void HandleHeartbeat(RawTelemetryConfig config) { _inputPackets .Where(_ => _.MessageId == HeartbeatPacket.PacketMessageId) .Cast <HeartbeatPacket>() .Subscribe(OnHeartBeat, _disposeCancel.Token); Observable .Timer(TimeSpan.FromMilliseconds(config.HeartbeatTimeoutMs), TimeSpan.FromMilliseconds(config.HeartbeatTimeoutMs)) .Subscribe(CheckConnection, _disposeCancel.Token); }
public RawTelemetry(IMavlinkV2Connection connection, RawTelemetryConfig config) { _config = config; _inputPackets = connection.Where(FilterVehicle); HandleStatistic(); HandleHeartbeat(config); HandleSystemStatus(); HandleGps(); HandleHighresImu(); HandleVfrHud(); HandleAttitude(); HandleBatteryStatus(); HandleAltitude(); HandleExtendedSysState(); HandleHome(); }