Module: GPS_PVT::RTCM3::Packet::GLONASS_Ephemeris

Defined in:
lib/gps_pvt/rtcm3.rb

Instance Method Summary collapse

Instance Method Details

#paramsObject



333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
# File 'lib/gps_pvt/rtcm3.rb', line 333

def params
  # TODO insufficient: :n => ?(String4); extra: :P3
  # TODO generate time with t_b, N_T, NA, N_4
  # TODO GPS.i is required to modify to generate EPhemeris_with_GPS_Time
  k_i =  {:svid => 1, :freq_ch => 2, :P1_index => 5, :t_k => 6, :B_n => 7, :P2 => 8, :t_b => 9,
      :xn_dot => 10, :xn => 11, :xn_ddot => 12,
      :yn_dot => 13, :yn => 14, :yn_ddot => 15,
      :zn_dot => 16, :zn => 17, :zn_ddot => 18,
      :P3 => 19, :gamma_n => 20, :p => 21, :tau_n => 23, :delta_tau_n => 24, :E_n => 25,
      :P4 => 26, :F_T_index => 27, :N_T => 28, :M => 29}
  k_i.merge!({:NA => 31, :tau_c => 32, :N_4 => 33, :tau_GPS => 34}) if self[30][0] == 1 # check DF131
  res = Hash[*(k_i.collect{|k, i| [k, self[i][0]]}.flatten(1))]
  res.reject!{|k, v|
    case k
    when :N_T; v == 0
    when :p, :delta_tau_n, :P4, :F_T_index, :N_4, :tau_GPS; true # TODO sometimes delta_tau_n is valid?
    else; false
    end
  } if (res[:M] != 1) # check DF130
  res
end