{"id":17597813,"url":"https://github.com/themkat/amienvmon","last_synced_at":"2026-02-02T21:52:43.620Z","repository":{"id":189164783,"uuid":"634898301","full_name":"themkat/AmiEnvMon","owner":"themkat","description":"Fun little toy project to have an excuse to play with MUI as a GUI library for Amiga OS based systems.","archived":false,"fork":false,"pushed_at":"2024-03-03T14:39:00.000Z","size":101,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-10T22:15:37.121Z","etag":null,"topics":["amiga","m68k","mui","ppc"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/themkat.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-01T13:51:03.000Z","updated_at":"2023-08-26T16:33:32.000Z","dependencies_parsed_at":"2023-08-18T15:41:51.033Z","dependency_job_id":"daca86ab-6750-4561-bb39-4d12f373219b","html_url":"https://github.com/themkat/AmiEnvMon","commit_stats":null,"previous_names":["themkat/amienvmon"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/themkat/AmiEnvMon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2FAmiEnvMon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2FAmiEnvMon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2FAmiEnvMon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2FAmiEnvMon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/themkat","download_url":"https://codeload.github.com/themkat/AmiEnvMon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2FAmiEnvMon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29021031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T18:51:31.335Z","status":"ssl_error","status_checked_at":"2026-02-02T18:49:20.777Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amiga","m68k","mui","ppc"],"created_at":"2024-10-22T09:43:46.280Z","updated_at":"2026-02-02T21:52:43.571Z","avatar_url":"https://github.com/themkat.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[[./amienvmon.png]]\n\n[[https://github.com/themkat/AmiEnvMon/actions/workflows/build.yaml][file:https://github.com/themkat/AmiEnvMon/actions/workflows/build.yaml/badge.svg]]\n\n\nCalls [[https://github.com/themkat/pico-environment-monitor][my homemade Pico environment monitor API]] to fetch information, and shows them in a nice MUI GUI :)\n\n\nThis is what is looks like in OS 3.2:\n\n[[./screenshot_os3.png]]\n\n\n** Goals\nI had a few goals with this project:\n- Have a way for my Amiga to view temperature and other environment data in a nice way.\n- Experiment with MUI for creating nice Amiga GUIs.\n- Take testing (mostly unit testing) as far as possible on a real Amiga.\n- Use modern CI/CD to test and release using Github Actions.\n\n\n** Requirements\n*** OS 3.x (m68k)\n- TCP/IP stack like [[http://roadshow.apc-tcp.de/index-en.php][Roadshow]] to provide BSDSocket.library\n- MUI, at least 3.8\n- PNG datatype. (included in OS 3.2). Might change to an ILBM or similar image to improve compatibility later.\n*** OS 4 (ppc)\n- Internet connection set up... duh... (at least access to your local network)\n- MUI version 5\n** Usage\nBefore you run the =AmiEnvMon= program, make sure the correct IP is set in the =Settings= program. Currently the fetching of the data from the server will never time out, so the IP should be correct. This might be fixed in a future release.\n\n*** ARexx commands\nAmiEnvMon provides the commands =temperature=, =eco2= and =humidity= to get the corresponding data as strings in your ARexx scripts. They all take zero arguments. Why even have this? I wanted to experiment with how one would add ARexx commands to a MUI program :)\n\nExample program:\n#+BEGIN_SRC rexx\n/* Simple environment monitor example */\noptions results\nADDRESS 'AMIENVMON.1'\n\n'temperature'\ntemperature = result\n\n'eco2'\neco2 = result\n\n'humidity'\nhumidity = result\n\nsay 'Temperature is ' temperature ' celsius'\nsay 'ECO2 levels ' eco2 ' ppm'\nsay 'Humidity is at ' humidity ' %'\n#+END_SRC\n\n** About the coding style\n*NB: The filenames and minor naming will probably change.*\n\n\nMy coding standard here and other places are based upon many factors:\n- My experience in spare time programs, work (professional work has mostly been higher level work than C) etc. over many years.\n- Me disliking a lot of other coding styles I have read in the C world.\n- Reading various books on C and seeing different coding styles\n\n\nIt may be a bit unconventional at times, but I like it this way. My rules are as following:\n- Private, local- or standalone functions are camelCase.\n- Variables and parameters are snake case like Rust. (example: =my_variable=)\n- Some interfaces fall naturally into being components. Example: a ChatMessage component system that work on Chat data. These functions will be a special case, example: =ChatMessage_InsertMessage=. This is in a way to \"emulate\" logical components.\n\n\nLove it or hate it, I think it makes programs more easy to reason about and read :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemkat%2Famienvmon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemkat%2Famienvmon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemkat%2Famienvmon/lists"}