{"action":"created","issue":{"url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/issues/515","repository_url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware","labels_url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/issues/515/labels{/name}","comments_url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/issues/515/comments","events_url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/issues/515/events","html_url":"https://github.com/autosportlabs/RaceCapture-Pro_firmware/issues/515","id":147795239,"number":515,"title":"Add support for controlling streaming via our API calls","user":{"login":"stieg","id":141519,"avatar_url":"https://avatars.githubusercontent.com/u/141519?v=3","gravatar_id":"","url":"https://api.github.com/users/stieg","html_url":"https://github.com/stieg","followers_url":"https://api.github.com/users/stieg/followers","following_url":"https://api.github.com/users/stieg/following{/other_user}","gists_url":"https://api.github.com/users/stieg/gists{/gist_id}","starred_url":"https://api.github.com/users/stieg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stieg/subscriptions","organizations_url":"https://api.github.com/users/stieg/orgs","repos_url":"https://api.github.com/users/stieg/repos","events_url":"https://api.github.com/users/stieg/events{/privacy}","received_events_url":"https://api.github.com/users/stieg/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/labels/Enhancement","name":"Enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/labels/Kickstarter%20Deliverable","name":"Kickstarter Deliverable","color":"bfe5bf"},{"url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/labels/WiFi","name":"WiFi","color":"e99695"}],"state":"open","locked":false,"assignee":{"login":"stieg","id":141519,"avatar_url":"https://avatars.githubusercontent.com/u/141519?v=3","gravatar_id":"","url":"https://api.github.com/users/stieg","html_url":"https://github.com/stieg","followers_url":"https://api.github.com/users/stieg/followers","following_url":"https://api.github.com/users/stieg/following{/other_user}","gists_url":"https://api.github.com/users/stieg/gists{/gist_id}","starred_url":"https://api.github.com/users/stieg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stieg/subscriptions","organizations_url":"https://api.github.com/users/stieg/orgs","repos_url":"https://api.github.com/users/stieg/repos","events_url":"https://api.github.com/users/stieg/events{/privacy}","received_events_url":"https://api.github.com/users/stieg/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/milestones/10","html_url":"https://github.com/autosportlabs/RaceCapture-Pro_firmware/milestones/2.10.0","labels_url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/milestones/10/labels","id":1578425,"number":10,"title":"2.10.0","description":"Next new feature release.","creator":{"login":"stieg","id":141519,"avatar_url":"https://avatars.githubusercontent.com/u/141519?v=3","gravatar_id":"","url":"https://api.github.com/users/stieg","html_url":"https://github.com/stieg","followers_url":"https://api.github.com/users/stieg/followers","following_url":"https://api.github.com/users/stieg/following{/other_user}","gists_url":"https://api.github.com/users/stieg/gists{/gist_id}","starred_url":"https://api.github.com/users/stieg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stieg/subscriptions","organizations_url":"https://api.github.com/users/stieg/orgs","repos_url":"https://api.github.com/users/stieg/repos","events_url":"https://api.github.com/users/stieg/events{/privacy}","received_events_url":"https://api.github.com/users/stieg/received_events","type":"User","site_admin":false},"open_issues":51,"closed_issues":65,"state":"open","created_at":"2016-02-11T20:22:49Z","updated_at":"2016-06-09T15:58:02Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2016-04-12T15:52:28Z","updated_at":"2016-06-09T17:04:24Z","closed_at":null,"body":"Currently if you want to use our API to get samples, the caller must poll.  This is crap because it adds unnecessary CPU load to our system and has to fake a lot of information (such as sample tick) since that is not relevant.  This ticket tracks implementing an API endpoint that will allow us to enable sample streaming.  Ideally the caller can specify the maximum sample rate they wish to receive, and the provider will provide up to that rate if configured so.  We would then deprecate the polling API and remove it in the next major API version."},"comment":{"url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/issues/comments/224960640","html_url":"https://github.com/autosportlabs/RaceCapture-Pro_firmware/issues/515#issuecomment-224960640","issue_url":"https://api.github.com/repos/autosportlabs/RaceCapture-Pro_firmware/issues/515","id":224960640,"user":{"login":"stieg","id":141519,"avatar_url":"https://avatars.githubusercontent.com/u/141519?v=3","gravatar_id":"","url":"https://api.github.com/users/stieg","html_url":"https://github.com/stieg","followers_url":"https://api.github.com/users/stieg/followers","following_url":"https://api.github.com/users/stieg/following{/other_user}","gists_url":"https://api.github.com/users/stieg/gists{/gist_id}","starred_url":"https://api.github.com/users/stieg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stieg/subscriptions","organizations_url":"https://api.github.com/users/stieg/orgs","repos_url":"https://api.github.com/users/stieg/repos","events_url":"https://api.github.com/users/stieg/events{/privacy}","received_events_url":"https://api.github.com/users/stieg/received_events","type":"User","site_admin":false},"created_at":"2016-06-09T17:04:24Z","updated_at":"2016-06-09T17:04:24Z","body":"Ok.  Come up with a plan on how this will work:\r\n\r\n* Implement a form of ioctl handler on Serial devices.  This will allow us to send arbitrary commands to the subsystem that manages the particular Serial device\r\n* Implement the actual JSON commands to enable/disable streaming.  These will call the ioctl command in Serial with the defined actions and arguments\r\n* Add a command to the logger task where other tasks may register for callbacks when logging samples are ready.  They will provide a sample rate and an endpoint to call.\r\n* Re-tool the WiFi Task to be 100% event driven (it mostly is now, just some slight hackiness will change)\r\n* Add an event handler for the WiFi Serial devices that handles all serial ioctl invocations\r\n* Tie the sample logic into the ioctl commands.\r\n\r\nThat should do it and still enable us to later migrate over towards using sockets to replace Serial devices (since sockets implement ioctl)."}}
{"actor":{"display_login":"stieg"}}