{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":62636420,"defaultBranch":"main","name":"pyulog","ownerLogin":"PX4","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-07-05T12:50:14.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2096014?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711090327.0","currentOid":""},"activityList":{"items":[{"before":"a84bf52893830de49ed510a915cce36d61d785ea","after":"d23cb8fc239c5872fc3663ddebe69ffa66dd685f","ref":"refs/heads/main","pushedAt":"2024-07-04T07:05:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"core.py: Enable correct exporting of char data\n\nAs the data type for saving the char in pyulog was np.int8, the topics\r\nthat had fields with characters weren't able to get encoded (with error:\r\npyulog struct.error: char format requires a bytes object of length 1).\r\n\r\nTherefore, this enables manual conversion of np.int8 object into bytes()\r\nwith single character, so that struct.pack command works as expected.\r\n\r\nNotable example of where this is needed is the \"transponder_report\"\r\ntopic (included in PX4 v1.14)'s callsign[] character array. Before this\r\nfix, the \"write_ulog()\" function would fail as the struct.pack couldn't\r\ncorrectly encode the characters stored in int8 type\r\n\r\nCo-authored-by: Junwoo Hwang ","shortMessageHtmlLink":"core.py: Enable correct exporting of char data"}},{"before":"8bcee7b16af96bd826515679b32d708a5182b278","after":"a84bf52893830de49ed510a915cce36d61d785ea","ref":"refs/heads/main","pushedAt":"2024-07-04T07:04:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"fix: allow closed file handles in calc_sha256sum\n\nSince we tend to allow filenames and file handles interchangably in this\ncode base, we might run into the edge case of a closed file handle being\ninput to calc_sha256sum. We should then open the file before getting the\nhash.","shortMessageHtmlLink":"fix: allow closed file handles in calc_sha256sum"}},{"before":"0607f86638e4e449ca58de2acf45c08c38fc9823","after":"8bcee7b16af96bd826515679b32d708a5182b278","ref":"refs/heads/main","pushedAt":"2024-07-04T07:00:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"core: support writing ulog to bytes handle\n\nPreviously only writing to files was possible. It's useful to be able to\nwrite to BytesIO for e.g. returning generated ULog files without having\nto write an intermediary file.","shortMessageHtmlLink":"core: support writing ulog to bytes handle"}},{"before":"85c4f3e917667dc7e901843d1d1bfac874a2b67a","after":"0607f86638e4e449ca58de2acf45c08c38fc9823","ref":"refs/heads/main","pushedAt":"2024-07-04T07:00:09.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"db: add back indices\n\nThere were lost in pyulog.2.sql, so the DB is very slow for large\ndatabases.\n\nNB: Applying this migration will take a while for large databases.","shortMessageHtmlLink":"db: add back indices"}},{"before":"2ac86102c0c3a0c54890b85c7fa2388bab9fe9d3","after":null,"ref":"refs/heads/events_support","pushedAt":"2024-03-22T06:49:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"}},{"before":"7819181f2c9cb0ecfbcd73d46571b0afa44f0d97","after":"85c4f3e917667dc7e901843d1d1bfac874a2b67a","ref":"refs/heads/main","pushedAt":"2024-03-22T06:49:47.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"README: update link to docs","shortMessageHtmlLink":"README: update link to docs"}},{"before":"8e316a3abf0d3840cf8b33b253040b9b489696e2","after":"2ac86102c0c3a0c54890b85c7fa2388bab9fe9d3","ref":"refs/heads/events_support","pushedAt":"2024-03-20T10:47:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"README: update link to docs","shortMessageHtmlLink":"README: update link to docs"}},{"before":"e682d25dbb83e7abe3e8ed7bbeda83b03b88a798","after":"8e316a3abf0d3840cf8b33b253040b9b489696e2","ref":"refs/heads/events_support","pushedAt":"2024-03-20T10:36:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"README: update link to docs","shortMessageHtmlLink":"README: update link to docs"}},{"before":"49a56564e875e7d3ffe9b54d3237cff93922377f","after":null,"ref":"refs/heads/plot_script","pushedAt":"2024-03-19T08:56:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"}},{"before":null,"after":"e682d25dbb83e7abe3e8ed7bbeda83b03b88a798","ref":"refs/heads/events_support","pushedAt":"2024-03-18T15:26:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"px4: add events parsing & show events with ulog_messages\n\nThe implementation mainly comes from:\n- https://github.com/PX4/flight_review/pull/221\n- https://github.com/PX4/flight_review/pull/246","shortMessageHtmlLink":"px4: add events parsing & show events with ulog_messages"}},{"before":"164a23860f2074068506049b47ecaa0e6a48f30f","after":"7819181f2c9cb0ecfbcd73d46571b0afa44f0d97","ref":"refs/heads/main","pushedAt":"2024-01-22T13:35:40.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"ci: add test for add_roll_pitch_yaw","shortMessageHtmlLink":"ci: add test for add_roll_pitch_yaw"}},{"before":"a2186fc588169cf5e89b1f07b47e02cd7b0f66d2","after":"164a23860f2074068506049b47ecaa0e6a48f30f","ref":"refs/heads/main","pushedAt":"2023-12-06T18:43:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"core: fix has_corruption logic\n\nPreviously a file was incorrectly marked as corrupt if a message filter\nwas used and the log contained a filtered message.","shortMessageHtmlLink":"core: fix has_corruption logic"}},{"before":"2ace73ac28a44ebb0a955438eb58c9e02bb654eb","after":null,"ref":"refs/heads/data_length_checks","pushedAt":"2023-11-29T11:49:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"}},{"before":"9975391cf387c6d75c3cf1cb1782ae4f2678af70","after":"a2186fc588169cf5e89b1f07b47e02cd7b0f66d2","ref":"refs/heads/main","pushedAt":"2023-11-29T11:49:45.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"info: report corrupted file","shortMessageHtmlLink":"info: report corrupted file"}},{"before":"5f6ecc5756b69fb41c7844110c388fcfac7795c0","after":"2ace73ac28a44ebb0a955438eb58c9e02bb654eb","ref":"refs/heads/data_length_checks","pushedAt":"2023-11-29T10:44:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"info: report corrupted file","shortMessageHtmlLink":"info: report corrupted file"}},{"before":null,"after":"5f6ecc5756b69fb41c7844110c388fcfac7795c0","ref":"refs/heads/data_length_checks","pushedAt":"2023-11-29T10:21:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"info: report corrupted file","shortMessageHtmlLink":"info: report corrupted file"}},{"before":"dce296dcfd1db13ffe024b3ef00dc78103d2ae1d","after":"9975391cf387c6d75c3cf1cb1782ae4f2678af70","ref":"refs/heads/main","pushedAt":"2023-11-22T15:18:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"core: add header-only log file load capability","shortMessageHtmlLink":"core: add header-only log file load capability"}},{"before":"d1cfa6de9d85b22a0c344e5580bb2eb7c84c868d","after":null,"ref":"refs/heads/python3.11","pushedAt":"2023-09-19T07:12:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"}},{"before":"3f76374b362c6518da47ab3fa4cc225b08168735","after":"dce296dcfd1db13ffe024b3ef00dc78103d2ae1d","ref":"refs/heads/main","pushedAt":"2023-09-19T07:12:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"ci: add python 3.11","shortMessageHtmlLink":"ci: add python 3.11"}},{"before":null,"after":"d1cfa6de9d85b22a0c344e5580bb2eb7c84c868d","ref":"refs/heads/python3.11","pushedAt":"2023-09-19T06:07:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"ci: add python 3.11","shortMessageHtmlLink":"ci: add python 3.11"}},{"before":"4efd6edafda916d722fca884c976893362a52964","after":"3f76374b362c6518da47ab3fa4cc225b08168735","ref":"refs/heads/main","pushedAt":"2023-09-15T05:52:32.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"ci: allow newer numpy on newer python","shortMessageHtmlLink":"ci: allow newer numpy on newer python"}},{"before":"ced5466f8a7a6c6201e054514d009fce6514c2d4","after":"4efd6edafda916d722fca884c976893362a52964","ref":"refs/heads/main","pushedAt":"2023-04-14T11:46:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"ulog2csv: handle '/' in data name","shortMessageHtmlLink":"ulog2csv: handle '/' in data name"}},{"before":"a4fdf6c3fb6bbe6a4203aeef80aff86e51c484dc","after":"ced5466f8a7a6c6201e054514d009fce6514c2d4","ref":"refs/heads/main","pushedAt":"2023-03-28T06:02:38.089Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"fix a problem with saving ulogs [issue #81]","shortMessageHtmlLink":"fix a problem with saving ulogs [issue #81]"}},{"before":"3757355027b132cf19bc96115239b81d50bef06a","after":"a4fdf6c3fb6bbe6a4203aeef80aff86e51c484dc","ref":"refs/heads/main","pushedAt":"2023-03-27T07:03:37.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"db: store optional JSON column with data series\n\nThe current DatabaseULog.save() and DatabaseULog.load() methods both use\nthe BLOB column ValueArray to store the packed data from the data series\nof a data set. This is space and time efficient, but has the issue that\nwe cannot access the data series directly in sqlite without processing\nit in an external program (e.g. python).\n\nAccessing the data series as rows allows for interesting use cases like\nintegration with plotting software (e.g. Grafana) and for fast\ncalculation of aggregate fields such as averages, sums and moving\naverages.\n\nThis commit solves this problem by adding an optional flag \"append_json\"\nto the DatabaseULog.save() function. When set to true, another column\nValueJson of sqlite type JSON will be populated in addition to the\naforementioned ValueArray BLOB. Using the sqlite function json_each,\nthe data in the ValueJson column can be expanded into rows for further\nprocessing.\n\nThis process is not as efficient in time as the BLOB process, so load()\nwill always use the BLOB. Furthermore, storing all the ULog data in JSON\nstrings is obviously not as efficient as packed byte arrays, so the size\nof the database will grow by some factor when enabled (the author\nguesses it not to exceed 10x).","shortMessageHtmlLink":"db: store optional JSON column with data series"}},{"before":"d43306b862ad1f14ca8aeb6c48514f2b7ae439bb","after":"3757355027b132cf19bc96115239b81d50bef06a","ref":"refs/heads/main","pushedAt":"2023-03-27T06:13:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"px4: add roll/pitch/yaw to arbitrary messages (#75)\n\nPreviously, the add_roll_pitch_yaw function only added roll, pitch and\r\nyaw to four predefined messages types. This commit allows the developer\r\nto specify additional messages, which depends on the topics logged by\r\nthe specific PX4 version and configuration.","shortMessageHtmlLink":"px4: add roll/pitch/yaw to arbitrary messages (#75)"}},{"before":"2df01748169eaa84bfdee24016e69e4ab08e14b4","after":"d43306b862ad1f14ca8aeb6c48514f2b7ae439bb","ref":"refs/heads/main","pushedAt":"2023-03-27T06:10:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkueng","name":"Beat Küng","path":"/bkueng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/281593?s=80&v=4"},"commit":{"message":"ci: fix pylint complaints\n\nSuddenly pylint started complaining about old code, seems likely it was\ndue to a pylint ugrade. I fixed the complaints.\n\nI search for \"except \" and \"except:\" in the code, but couldn't find any\nplace where changing from Exception to TypeError/KeyError/ValueError\nwould pose a problem.","shortMessageHtmlLink":"ci: fix pylint complaints"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0wNFQwNzowNToxNy4wMDAwMDBazwAAAAR2mXkp","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0wNFQwNzowNToxNy4wMDAwMDBazwAAAAR2mXkp","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wMy0yN1QwNjoxMDo1Mi4wMDAwMDBazwAAAAMLyla9"}},"title":"Activity · PX4/pyulog"}