00001 /* 00002 * Copyright (C) 2010 Swift Navigation Inc. 00003 * Contact: Henry Hallam <henry@swift-nav.com> 00004 * 00005 * This source is subject to the license found in the file 'LICENSE' which must 00006 * be be distributed together with this source. All other rights reserved. 00007 * 00008 * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 00009 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED 00010 * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. 00011 */ 00012 00013 #ifndef LIBSWIFTNAV_NAV_MSG_H 00014 #define LIBSWIFTNAV_NAV_MSG_H 00015 00016 #include "common.h" 00017 #include "ephemeris.h" 00018 00019 #define NAV_MSG_SUBFRAME_BITS_LEN 12 /* Buffer 384 nav bits. */ 00020 00021 typedef struct { 00022 u32 subframe_bits[NAV_MSG_SUBFRAME_BITS_LEN]; 00023 u16 subframe_bit_index; 00029 s16 subframe_start_index; 00030 u8 bit_phase; 00031 u8 bit_phase_ref; 00032 u8 bit_phase_count; 00033 s32 nav_bit_integrate; 00034 00035 u32 frame_words[3][8]; 00036 u8 next_subframe_id; 00037 } nav_msg_t; 00038 00039 void nav_msg_init(nav_msg_t *n); 00040 s32 nav_msg_update(nav_msg_t *n, s32 corr_prompt_real); 00041 bool subframe_ready(nav_msg_t *n); 00042 s8 process_subframe(nav_msg_t *n, ephemeris_t *e); 00043 00044 #endif /* LIBSWIFTNAV_NAV_MSG_H */ 00045