{"action":"created","issue":{"url":"https://api.github.com/repos/swift-nav/libswiftnav/issues/255","labels_url":"https://api.github.com/repos/swift-nav/libswiftnav/issues/255/labels{/name}","comments_url":"https://api.github.com/repos/swift-nav/libswiftnav/issues/255/comments","events_url":"https://api.github.com/repos/swift-nav/libswiftnav/issues/255/events","html_url":"https://github.com/swift-nav/libswiftnav/pull/255","id":122414808,"number":255,"title":"More careful handling of GPS NAV data","user":{"login":"ljbade","id":1215089,"avatar_url":"https://avatars.githubusercontent.com/u/1215089?v=3","gravatar_id":"","url":"https://api.github.com/users/ljbade","html_url":"https://github.com/ljbade","followers_url":"https://api.github.com/users/ljbade/followers","following_url":"https://api.github.com/users/ljbade/following{/other_user}","gists_url":"https://api.github.com/users/ljbade/gists{/gist_id}","starred_url":"https://api.github.com/users/ljbade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljbade/subscriptions","organizations_url":"https://api.github.com/users/ljbade/orgs","repos_url":"https://api.github.com/users/ljbade/repos","events_url":"https://api.github.com/users/ljbade/events{/privacy}","received_events_url":"https://api.github.com/users/ljbade/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/swift-nav/libswiftnav/labels/4%20-%20Code%20Review","name":"4 - Code Review","color":"cccccc"},{"url":"https://api.github.com/repos/swift-nav/libswiftnav/labels/bug","name":"bug","color":"eb6420"},{"url":"https://api.github.com/repos/swift-nav/libswiftnav/labels/Link%20%3C=%3E%20swift-nav/piksi_firmware","name":"Link <=> swift-nav/piksi_firmware","color":"d4c5f9"}],"state":"open","locked":false,"assignee":{"login":"ljbade","id":1215089,"avatar_url":"https://avatars.githubusercontent.com/u/1215089?v=3","gravatar_id":"","url":"https://api.github.com/users/ljbade","html_url":"https://github.com/ljbade","followers_url":"https://api.github.com/users/ljbade/followers","following_url":"https://api.github.com/users/ljbade/following{/other_user}","gists_url":"https://api.github.com/users/ljbade/gists{/gist_id}","starred_url":"https://api.github.com/users/ljbade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljbade/subscriptions","organizations_url":"https://api.github.com/users/ljbade/orgs","repos_url":"https://api.github.com/users/ljbade/repos","events_url":"https://api.github.com/users/ljbade/events{/privacy}","received_events_url":"https://api.github.com/users/ljbade/received_events","type":"User","site_admin":false},"milestone":null,"comments":19,"created_at":"2015-12-16T02:44:25Z","updated_at":"2015-12-17T03:13:53Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/swift-nav/libswiftnav/pulls/255","html_url":"https://github.com/swift-nav/libswiftnav/pull/255","diff_url":"https://github.com/swift-nav/libswiftnav/pull/255.diff","patch_url":"https://github.com/swift-nav/libswiftnav/pull/255.patch"},"body":"Fixes #254 and #159.\r\n\r\nSo far I have implemented:\r\n- IODE and IODC cross checks. Needs testing for when they don't match (e.g. cut over)\r\n- URA extraction and checking for 15 unhealthy value, also works out the value in meters and stores in ephemeris struct. Could be used for weighting in the position solution. Needs testing, so far I have only seen satellites with 2.0 or 2.8m URA.\r\n- all 6 bits of health flags are correctly checked. Currently any unhealthy signal will mark entire satellite as unhealthy in the stored ephemeris. Could be made smarter to only check for unhealthy L1 C/A.\r\n- curve fit interval is correctly calculated and used. Needs testing via simulator for cases when GPS sats go into extended operation mode (e.g. major catastrophe takes out both GPS control centres)\r\n\r\nQuestions I have:\r\n- we should use IODE instead of IODC for comparing ephemeris (since IODC is unique within a week, IODE only 6 hours) - what code needs to be changed here?\r\n- I have added some new members to the ephemeris structs, does the binary interface need updating?\r\n- how can I modify `nav_msg.c` to extract and store per sat the alert flag, separate from ephemeris struct (since this could change between ephemeris updates)?\r\n- how can I modify the position calculation to ignore sats with an alert or unhealthy bits\r\n\r\n@cbeighley Who is best to help me with these?"},"comment":{"url":"https://api.github.com/repos/swift-nav/libswiftnav/issues/comments/165325204","html_url":"https://github.com/swift-nav/libswiftnav/pull/255#issuecomment-165325204","issue_url":"https://api.github.com/repos/swift-nav/libswiftnav/issues/255","id":165325204,"user":{"login":"ljbade","id":1215089,"avatar_url":"https://avatars.githubusercontent.com/u/1215089?v=3","gravatar_id":"","url":"https://api.github.com/users/ljbade","html_url":"https://github.com/ljbade","followers_url":"https://api.github.com/users/ljbade/followers","following_url":"https://api.github.com/users/ljbade/following{/other_user}","gists_url":"https://api.github.com/users/ljbade/gists{/gist_id}","starred_url":"https://api.github.com/users/ljbade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljbade/subscriptions","organizations_url":"https://api.github.com/users/ljbade/orgs","repos_url":"https://api.github.com/users/ljbade/repos","events_url":"https://api.github.com/users/ljbade/events{/privacy}","received_events_url":"https://api.github.com/users/ljbade/received_events","type":"User","site_admin":false},"created_at":"2015-12-17T03:13:53Z","updated_at":"2015-12-17T03:13:53Z","body":"@jacobmcnamee or @gsmcmullin Can you review this please?"}}