{"id":20960540,"url":"https://github.com/natronics/rust-psas-telemetry","last_synced_at":"2025-03-13T06:42:49.263Z","repository":{"id":136468434,"uuid":"115889677","full_name":"natronics/rust-psas-telemetry","owner":"natronics","description":"Rust crate to read, write, and manuplate binary telemetry data messages in the PSAS rocket framework.","archived":false,"fork":false,"pushed_at":"2018-01-07T20:46:09.000Z","size":755,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-20T00:41:06.114Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/natronics.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-12-31T23:18:33.000Z","updated_at":"2024-07-12T08:44:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"5f4c0e48-1927-4674-b9c3-7974a0905bd1","html_url":"https://github.com/natronics/rust-psas-telemetry","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natronics%2Frust-psas-telemetry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natronics%2Frust-psas-telemetry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natronics%2Frust-psas-telemetry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natronics%2Frust-psas-telemetry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/natronics","download_url":"https://codeload.github.com/natronics/rust-psas-telemetry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243358212,"owners_count":20277991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-19T01:59:28.834Z","updated_at":"2025-03-13T06:42:49.257Z","avatar_url":"https://github.com/natronics.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# psas-telemetry\n\n[![Build Status](https://travis-ci.org/natronics/rust-psas-telemetry.svg?branch=master)](https://travis-ci.org/natronics/rust-psas-telemetry)\n\nRust crate to read, write, and manuplate binary telemetry data messages in the PSAS rocket framework.\n\n\n## PSAS Framework\n\n[Portland State Aerospace Society](http://psas.pdx.edu) uses a custom binary format for sending telemetry messages between nodes of the flight computer and from the rocket to the ground. In theory, once layout and contents are defined messages should not change.\n\nSince the messages are used in many places it's useful to have a single library that contains all the up-to-date message formats. This is a proof of concept to show how a central library would work in the Rust programming language.\n\n\n## Code Generation\n\nSince the format of the messages is tightly constrained, all of the code for working with individual messages can be generated from templates.\n\nThere is a template directory `templates` that have templates for writing both the main module code and a Rust source code file for each type of message that can define a `struct` for that message type.\n\n### TOML Files\n\nEach message is defined in a single [TOML](https://github.com/toml-lang/toml) file in the `definitions` directory. The order, type, and size of fixed-width binary data can be described here along with helpful documentation messages and information about how to convert a raw value into MKS units (if applicable).\n\n### Build System \n\nThe `build.rs` file reads in the definitions, parses the TOML, then sends that information to the template files in order to build to source code.\n\nThis will build all of the files under `src/messages`.\n\n\n## Utilities\n\nThere are also some helpful logfile utilities provided.\n\n### Logfile Stats\n\nRead a logfile and report its statistics (size, message counts, etc.)\n\n    $ cargo run --bin psas_logfile_stats FILE_TO_READ\n\nfor example:\n\n    $ cargo run --bin psas_logfile_stats testdata/launch-12_short.log\n    \u003e Number of sequence numbers in file: 191\n    \u003e First sequence number: 0\n    \u003e Last sequence number: 190\n    \u003e Number of bytes read: 249997\n    \u003e Number of messages (excluding SEQN): 8755\n    \u003e Message counts:\n    \u003e  - FCFH: 16\n    \u003e  - VERS: 1\n    \u003e  - SEQE: 3\n    \u003e  - RNHH: 9\n    \u003e  - RNHP: 8726\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatronics%2Frust-psas-telemetry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnatronics%2Frust-psas-telemetry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatronics%2Frust-psas-telemetry/lists"}