{"action":"created","issue":{"url":"https://api.github.com/repos/paparazzi/paparazzi/issues/856","labels_url":"https://api.github.com/repos/paparazzi/paparazzi/issues/856/labels{/name}","comments_url":"https://api.github.com/repos/paparazzi/paparazzi/issues/856/comments","events_url":"https://api.github.com/repos/paparazzi/paparazzi/issues/856/events","html_url":"https://github.com/paparazzi/paparazzi/pull/856","id":45639245,"number":856,"title":"AHRS API/Interface refactor","user":{"login":"flixr","id":104257,"avatar_url":"https://avatars.githubusercontent.com/u/104257?v=3","gravatar_id":"","url":"https://api.github.com/users/flixr","html_url":"https://github.com/flixr","followers_url":"https://api.github.com/users/flixr/followers","following_url":"https://api.github.com/users/flixr/following{/other_user}","gists_url":"https://api.github.com/users/flixr/gists{/gist_id}","starred_url":"https://api.github.com/users/flixr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flixr/subscriptions","organizations_url":"https://api.github.com/users/flixr/orgs","repos_url":"https://api.github.com/users/flixr/repos","events_url":"https://api.github.com/users/flixr/events{/privacy}","received_events_url":"https://api.github.com/users/flixr/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/paparazzi/paparazzi/labels/Airborne","name":"Airborne","color":"37b6d6"},{"url":"https://api.github.com/repos/paparazzi/paparazzi/labels/Refactoring","name":"Refactoring","color":"bfe5bf"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2014-10-13T12:59:21Z","updated_at":"2015-02-25T14:45:41Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/paparazzi/paparazzi/pulls/856","html_url":"https://github.com/paparazzi/paparazzi/pull/856","diff_url":"https://github.com/paparazzi/paparazzi/pull/856.diff","patch_url":"https://github.com/paparazzi/paparazzi/pull/856.patch"},"body":"Goals:\r\n- to allow multiple different AHRS algos running at the same time\r\n- no more dependencies on the global imu or ahrs_aligner structs in the ahrs implementation\r\n\r\nThe idea is that every ahrs has it's own unique names for functions and implementation struct and that you then can e.g. register an ahrs algorithm by passing pointers to to the propagate/update functions.\r\n\r\nQuestion if we also want to support running multiple instances of the same AHRS algorithm in the same process (meaning compiled into same blob)? That would also require to pass the AHRS implementation struct to it's own update functions. But you start to get to a point where you implement C++ features in C, but in a less readable way...\r\n\r\nThis pull request is mainly to discuss options on concrete examples, ahrs_mlkf so far... not done for the other ahrs algos."},"comment":{"url":"https://api.github.com/repos/paparazzi/paparazzi/issues/comments/75971582","html_url":"https://github.com/paparazzi/paparazzi/pull/856#issuecomment-75971582","issue_url":"https://api.github.com/repos/paparazzi/paparazzi/issues/856","id":75971582,"user":{"login":"gautierhattenberger","id":452802,"avatar_url":"https://avatars.githubusercontent.com/u/452802?v=3","gravatar_id":"","url":"https://api.github.com/users/gautierhattenberger","html_url":"https://github.com/gautierhattenberger","followers_url":"https://api.github.com/users/gautierhattenberger/followers","following_url":"https://api.github.com/users/gautierhattenberger/following{/other_user}","gists_url":"https://api.github.com/users/gautierhattenberger/gists{/gist_id}","starred_url":"https://api.github.com/users/gautierhattenberger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gautierhattenberger/subscriptions","organizations_url":"https://api.github.com/users/gautierhattenberger/orgs","repos_url":"https://api.github.com/users/gautierhattenberger/repos","events_url":"https://api.github.com/users/gautierhattenberger/events{/privacy}","received_events_url":"https://api.github.com/users/gautierhattenberger/received_events","type":"User","site_admin":false},"created_at":"2015-02-25T14:45:41Z","updated_at":"2015-02-25T14:45:41Z","body":"Tested and working on lpc21, stm32 and ardrone2 with ins_invariant, float_dcm and int_cmpl_euler"}}