{"action":"created","issue":{"url":"https://api.github.com/repos/sui77/rc-switch/issues/87","repository_url":"https://api.github.com/repos/sui77/rc-switch","labels_url":"https://api.github.com/repos/sui77/rc-switch/issues/87/labels{/name}","comments_url":"https://api.github.com/repos/sui77/rc-switch/issues/87/comments","events_url":"https://api.github.com/repos/sui77/rc-switch/issues/87/events","html_url":"https://github.com/sui77/rc-switch/pull/87","id":180488609,"number":87,"title":"Use ring buffer and semaphore","user":{"login":"Locke","id":53905,"avatar_url":"https://avatars.githubusercontent.com/u/53905?v=3","gravatar_id":"","url":"https://api.github.com/users/Locke","html_url":"https://github.com/Locke","followers_url":"https://api.github.com/users/Locke/followers","following_url":"https://api.github.com/users/Locke/following{/other_user}","gists_url":"https://api.github.com/users/Locke/gists{/gist_id}","starred_url":"https://api.github.com/users/Locke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Locke/subscriptions","organizations_url":"https://api.github.com/users/Locke/orgs","repos_url":"https://api.github.com/users/Locke/repos","events_url":"https://api.github.com/users/Locke/events{/privacy}","received_events_url":"https://api.github.com/users/Locke/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-10-02T00:56:12Z","updated_at":"2016-10-02T08:32:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/sui77/rc-switch/pulls/87","html_url":"https://github.com/sui77/rc-switch/pull/87","diff_url":"https://github.com/sui77/rc-switch/pull/87.diff","patch_url":"https://github.com/sui77/rc-switch/pull/87.patch"},"body":"This PR is based on https://github.com/UrbaneChimp/433Utils/commit/3f2517efffd870d571302231380410f3ad431ff1, I only did the porting.\r\n\r\nI basically have the issue mentioned in ninjablocks/433Utils#16. @rotv pointed out that there is a fork with a solution which could be applied here (as ninjablocks/433Utils#17 is merged by now). Actually there are a few more forks containing that solution and it appears none has brought it up here.\r\n\r\nI tested these changes with a small change to the 433Utils on a raspberry pi: https://github.com/Locke/433Utils/blob/popEvent/RPi_utils/RFSniffer.cpp\r\n\r\nMy biggest concern is that this pulls in another dependency which might not be available / suited for the Arduino. I can imagine using flags to enable these changes only for the RPI or via a new flag."},"comment":{"url":"https://api.github.com/repos/sui77/rc-switch/issues/comments/250960246","html_url":"https://github.com/sui77/rc-switch/pull/87#issuecomment-250960246","issue_url":"https://api.github.com/repos/sui77/rc-switch/issues/87","id":250960246,"user":{"login":"Locke","id":53905,"avatar_url":"https://avatars.githubusercontent.com/u/53905?v=3","gravatar_id":"","url":"https://api.github.com/users/Locke","html_url":"https://github.com/Locke","followers_url":"https://api.github.com/users/Locke/followers","following_url":"https://api.github.com/users/Locke/following{/other_user}","gists_url":"https://api.github.com/users/Locke/gists{/gist_id}","starred_url":"https://api.github.com/users/Locke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Locke/subscriptions","organizations_url":"https://api.github.com/users/Locke/orgs","repos_url":"https://api.github.com/users/Locke/repos","events_url":"https://api.github.com/users/Locke/events{/privacy}","received_events_url":"https://api.github.com/users/Locke/received_events","type":"User","site_admin":false},"created_at":"2016-10-02T08:32:54Z","updated_at":"2016-10-02T08:32:54Z","body":"> My biggest concern is that this pulls in another dependency which might not be available / suited for the Arduino. I can imagine using flags to enable these changes only for the RPI or via a new flag.\r\n\r\nMy feeling was right. I read a bit about Arduino and multitasking and understand now that this approach doesn't make sense for the Arduino. (Even if you use something like ivanseidel/ArduinoThread to schedule tasks you would check `.available()` and not \"block a thread\".)\r\n\r\nI'm not sure what the best approach to control this via flags is. Add a `RCSwitchEnableBlockingReceive` flag and enable it by default for the RPI? Any other suggestions?"}}
{"actor":{"display_login":"Locke"}}