{"action":"created","issue":{"url":"https://api.github.com/repos/monome/aleph/issues/270","repository_url":"https://api.github.com/repos/monome/aleph","labels_url":"https://api.github.com/repos/monome/aleph/issues/270/labels{/name}","comments_url":"https://api.github.com/repos/monome/aleph/issues/270/comments","events_url":"https://api.github.com/repos/monome/aleph/issues/270/events","html_url":"https://github.com/monome/aleph/issues/270","id":186882695,"number":270,"title":"Build aleph-serial -> OSC bridge in pure C","user":{"login":"rick-monster","id":6881548,"avatar_url":"https://avatars.githubusercontent.com/u/6881548?v=3","gravatar_id":"","url":"https://api.github.com/users/rick-monster","html_url":"https://github.com/rick-monster","followers_url":"https://api.github.com/users/rick-monster/followers","following_url":"https://api.github.com/users/rick-monster/following{/other_user}","gists_url":"https://api.github.com/users/rick-monster/gists{/gist_id}","starred_url":"https://api.github.com/users/rick-monster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rick-monster/subscriptions","organizations_url":"https://api.github.com/users/rick-monster/orgs","repos_url":"https://api.github.com/users/rick-monster/repos","events_url":"https://api.github.com/users/rick-monster/events{/privacy}","received_events_url":"https://api.github.com/users/rick-monster/received_events","type":"User","site_admin":false},"labels":[{"id":51138295,"url":"https://api.github.com/repos/monome/aleph/labels/%23bees","name":"#bees","color":"ff99aa","default":false},{"id":74409431,"url":"https://api.github.com/repos/monome/aleph/labels/FEATURES","name":"FEATURES","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":{"login":"catfact","id":94855,"avatar_url":"https://avatars.githubusercontent.com/u/94855?v=3","gravatar_id":"","url":"https://api.github.com/users/catfact","html_url":"https://github.com/catfact","followers_url":"https://api.github.com/users/catfact/followers","following_url":"https://api.github.com/users/catfact/following{/other_user}","gists_url":"https://api.github.com/users/catfact/gists{/gist_id}","starred_url":"https://api.github.com/users/catfact/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/catfact/subscriptions","organizations_url":"https://api.github.com/users/catfact/orgs","repos_url":"https://api.github.com/users/catfact/repos","events_url":"https://api.github.com/users/catfact/events{/privacy}","received_events_url":"https://api.github.com/users/catfact/received_events","type":"User","site_admin":false},"assignees":[{"login":"catfact","id":94855,"avatar_url":"https://avatars.githubusercontent.com/u/94855?v=3","gravatar_id":"","url":"https://api.github.com/users/catfact","html_url":"https://github.com/catfact","followers_url":"https://api.github.com/users/catfact/followers","following_url":"https://api.github.com/users/catfact/following{/other_user}","gists_url":"https://api.github.com/users/catfact/gists{/gist_id}","starred_url":"https://api.github.com/users/catfact/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/catfact/subscriptions","organizations_url":"https://api.github.com/users/catfact/orgs","repos_url":"https://api.github.com/users/catfact/repos","events_url":"https://api.github.com/users/catfact/events{/privacy}","received_events_url":"https://api.github.com/users/catfact/received_events","type":"User","site_admin":false}],"milestone":null,"comments":7,"created_at":"2016-11-02T18:25:40Z","updated_at":"2016-11-08T22:50:26Z","closed_at":null,"body":"Building an aleph -> OSC bridge should be straightforward!\r\n\r\nCan start with the C blackfin serial loader (and of course the code in ser.c, since the framing is symmetrical between host & aleph):\r\nhttps://github.com/rick-monster/aleph/blob/net-use-malloc/utils/serial-com-proto/module-hotswap.c\r\n\r\nReference these sections of the lisp code to see the up-to-date serial protocol:\r\n\r\nSending messages:\r\nhttps://github.com/rick-monster/aleph/blob/net-use-malloc/utils/serial-com-proto/test-harness.lisp#L108-L198\r\n\r\nReceiving messages:\r\nhttps://github.com/rick-monster/aleph/blob/net-use-malloc/utils/serial-com-proto/test-harness.lisp#L300-L340"},"comment":{"url":"https://api.github.com/repos/monome/aleph/issues/comments/259284540","html_url":"https://github.com/monome/aleph/issues/270#issuecomment-259284540","issue_url":"https://api.github.com/repos/monome/aleph/issues/270","id":259284540,"user":{"login":"rick-monster","id":6881548,"avatar_url":"https://avatars.githubusercontent.com/u/6881548?v=3","gravatar_id":"","url":"https://api.github.com/users/rick-monster","html_url":"https://github.com/rick-monster","followers_url":"https://api.github.com/users/rick-monster/followers","following_url":"https://api.github.com/users/rick-monster/following{/other_user}","gists_url":"https://api.github.com/users/rick-monster/gists{/gist_id}","starred_url":"https://api.github.com/users/rick-monster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rick-monster/subscriptions","organizations_url":"https://api.github.com/users/rick-monster/orgs","repos_url":"https://api.github.com/users/rick-monster/repos","events_url":"https://api.github.com/users/rick-monster/events{/privacy}","received_events_url":"https://api.github.com/users/rick-monster/received_events","type":"User","site_admin":false},"created_at":"2016-11-08T22:50:26Z","updated_at":"2016-11-08T22:50:26Z","body":"> and i think for anything useful to happen it has to be multithreaded. \r\n\r\nThis is how I handle things on lisp.  I make extensive use of a concurrency device called CSP channel (somewhat like a thread-safe pipe for in-process data).\r\n\r\nBut think more idiomatic C to use polling file descriptors instead!  So writes shouldnever block - no problem there.  But for receiving back from aleph on commands that trigger a reply (i.e making the code transactional) you have to introduce some maximum time window the aleph is given in order to reply.  If it doesn't respond within that time, the function returns an error.  Polling the FD to check for aleph reply is done in a tight loop up to a certain max timeout after sending a command.\r\n\r\n> it hangs on read()\r\n\r\nI'll try sending a packet with serial op directly from the aleph, both on the supposedly working lisp driver & your new code..."}}
{"actor":{"display_login":"rick-monster"}}