{"action":"created","issue":{"url":"https://api.github.com/repos/SignalK/specification/issues/275","repository_url":"https://api.github.com/repos/SignalK/specification","labels_url":"https://api.github.com/repos/SignalK/specification/issues/275/labels{/name}","comments_url":"https://api.github.com/repos/SignalK/specification/issues/275/comments","events_url":"https://api.github.com/repos/SignalK/specification/issues/275/events","html_url":"https://github.com/SignalK/specification/issues/275","id":183903316,"number":275,"title":"positionFixTimestamp (with miliseconds) is extremely important for racing apps","user":{"login":"sailracerdotnet","id":22931576,"avatar_url":"https://avatars.githubusercontent.com/u/22931576?v=3","gravatar_id":"","url":"https://api.github.com/users/sailracerdotnet","html_url":"https://github.com/sailracerdotnet","followers_url":"https://api.github.com/users/sailracerdotnet/followers","following_url":"https://api.github.com/users/sailracerdotnet/following{/other_user}","gists_url":"https://api.github.com/users/sailracerdotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/sailracerdotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sailracerdotnet/subscriptions","organizations_url":"https://api.github.com/users/sailracerdotnet/orgs","repos_url":"https://api.github.com/users/sailracerdotnet/repos","events_url":"https://api.github.com/users/sailracerdotnet/events{/privacy}","received_events_url":"https://api.github.com/users/sailracerdotnet/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-10-19T08:56:27Z","updated_at":"2016-10-25T15:30:00Z","closed_at":null,"body":"Problem: to calculate COG and SOC (other than provided by GPS) using different averaging methods in for flat or for choppy conditions it is a MUST to have proper time stamp of a coordinate fix. It is also a MUST calculating the time of crossing start/finish line or taking a mark or gates on backend. The updates/timestamp is not an option because it is local time of SignalK server and might contain errors in system tyme setup.\r\n\r\nPossible solution - to add UTC time stamp with **miliseconds**  (provided by gps receiver) to:\r\noption 1) `updates/values/*[path=\"navigation.position\"]/value` `{latitude, longitude, timestamp}`\r\noption 2) in `updates/values` add another node  `*[path=\"navigation.positionFixTimestamp\"]/value=\"2016-01-01T00:00:00.000Z\"`"},"comment":{"url":"https://api.github.com/repos/SignalK/specification/issues/comments/256069720","html_url":"https://github.com/SignalK/specification/issues/275#issuecomment-256069720","issue_url":"https://api.github.com/repos/SignalK/specification/issues/275","id":256069720,"user":{"login":"tkurki","id":1049678,"avatar_url":"https://avatars.githubusercontent.com/u/1049678?v=3","gravatar_id":"","url":"https://api.github.com/users/tkurki","html_url":"https://github.com/tkurki","followers_url":"https://api.github.com/users/tkurki/followers","following_url":"https://api.github.com/users/tkurki/following{/other_user}","gists_url":"https://api.github.com/users/tkurki/gists{/gist_id}","starred_url":"https://api.github.com/users/tkurki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkurki/subscriptions","organizations_url":"https://api.github.com/users/tkurki/orgs","repos_url":"https://api.github.com/users/tkurki/repos","events_url":"https://api.github.com/users/tkurki/events{/privacy}","received_events_url":"https://api.github.com/users/tkurki/received_events","type":"User","site_admin":false},"created_at":"2016-10-25T15:30:00Z","updated_at":"2016-10-25T15:30:00Z","body":">The updates/timestamp is not an option because it is local time of SignalK server \r\nThe delta schema doesn't specify this to be the local time of Signal K server. Furthermore it is specified as UTC, so it is definitely not _local_. Is this mentioned someplace else in the documentation?\r\n\r\nWhen you brought the issue up in Slack I mentioned that the current timestamp is probably not well enough defined for your purpose. That we can fix I think, by stating that\r\n\r\n```The timestamp is the best available information about the time of origin of the related value.````\r\n\r\nFor example in your case of position the data may be coming from NMEA 0183 GGA message that carries the UTC time of the fix. This should be used as the timestamp when converting to Signal K. For example [nmea0183-signalk](https://github.com/SignalK/signalk-parser-nmea0183/blob/master/codecs/GGA.js) already does this, using system time to fill in date part and using GGA data for time.\r\n\r\nI am not sure about N2K data - is there a source for accurate time of a position fix?\r\n\r\nAnything downstream in the SK processing chain should not meddle with the timestamp if there is one in the input SK it is processing.\r\n\r\nThat still leaves the millisecond part of your requirement. I suggest we explicitly allow it, by specifying a regular expression for timestamp with millisecond precision at https://github.com/SignalK/specification/blob/90f7d9b08c7add281dab9b74055780e4a3ef3bb2/schemas/definitions.json#L8-L13 and add that to the spec documentation.\r\n\r\nWhat do you think?\r\n\r\n "}}
{"actor":{"display_login":"tkurki"}}