{"id":23193547,"url":"https://github.com/mcraiha/csharp-codec8","last_synced_at":"2025-10-13T20:34:19.830Z","repository":{"id":150259160,"uuid":"616064182","full_name":"mcraiha/CSharp-Codec8","owner":"mcraiha","description":"Decoder for Codec 8 and Codec 8 Extended","archived":false,"fork":false,"pushed_at":"2024-12-01T16:42:17.000Z","size":138,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T20:34:17.555Z","etag":null,"topics":["codec8","csharp","net8"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcraiha.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2023-03-19T14:10:04.000Z","updated_at":"2025-09-02T20:26:49.000Z","dependencies_parsed_at":"2025-06-13T06:34:32.021Z","dependency_job_id":"3f90b986-0d09-4537-87fc-5279884cb555","html_url":"https://github.com/mcraiha/CSharp-Codec8","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mcraiha/CSharp-Codec8","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FCSharp-Codec8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FCSharp-Codec8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FCSharp-Codec8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FCSharp-Codec8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcraiha","download_url":"https://codeload.github.com/mcraiha/CSharp-Codec8/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FCSharp-Codec8/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016923,"owners_count":26085908,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["codec8","csharp","net8"],"created_at":"2024-12-18T13:11:47.253Z","updated_at":"2025-10-13T20:34:19.795Z","avatar_url":"https://github.com/mcraiha.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CSharp-Codec8\n\nDecoder for **Codec 8** and **Codec 8 Extended** (currently only TCP, no UDP support) formats that are used by certain **Teltonika** devices.\n\n## Build status\n[![.NET](https://github.com/mcraiha/CSharp-Codec8/actions/workflows/dotnet.yml/badge.svg)](https://github.com/mcraiha/CSharp-Codec8/actions/workflows/dotnet.yml)\n\n## Nuget\n[LibCodec8](https://www.nuget.org/packages/LibCodec8)\n\n## Specs\n\nSee [Codec 8](https://wiki.teltonika-gps.com/view/Codec#Codec_8) and [Codec 8 Extended](https://wiki.teltonika-gps.com/view/Codec#Codec_8_Extended) wiki\n\n## How to use\n\nTo decode Codec8 (test out in [.NET Fiddle](https://dotnetfiddle.net/8JW4w1))\n```csharp\nusing Codec8;\n\nstring input = \"000000000000003608010000016B40D8EA30010000000000000000000000000000000105021503010101425E0F01F10000601A014E0000000000000000010000C7CF\";\n(GenericDecodeResult result, object valueOrError) = Codec8Decoder.ParseHexadecimalString(input);\nif (result == GenericDecodeResult.SuccessCodec8)\n{\n    Codec8Frame frame = (Codec8Frame)valueOrError;\n}\n```\n\nTo decode Codec8 Extended (test out in [.NET Fiddle](https://dotnetfiddle.net/fMzrDA))\n```csharp\nusing Codec8;\n\nstring input = \"000000000000004A8E010000016B412CEE000100000000000000000000000000000000010005000100010100010011001D00010010015E2C880002000B000000003544C87A000E000000001DD7E06A00000100002994\";\n(GenericDecodeResult result, object valueOrError) = Codec8ExtendedDecoder.ParseHexadecimalString(input);\nif (result == GenericDecodeResult.SuccessCodec8Extended)\n{\n    Codec8ExtendedFrame frame = (Codec8ExtendedFrame)valueOrError;\n}\n```\n\nIf you don't know what kind of data you have, you can use generic decoder\n```csharp\nusing Codec8;\n\nstring input = \"000000000000004A8E010000016B412CEE000100000000000000000000000000000000010005000100010100010011001D00010010015E2C880002000B000000003544C87A000E000000001DD7E06A00000100002994\";\n(GenericDecodeResult result, object valueOrError) = GenericDecoder.ParseHexadecimalString(input);\nif (result == GenericDecodeResult.SuccessCodec8)\n{\n    Codec8Frame frame = (Codec8Frame)valueOrError;\n}\nelse if (result == GenericDecodeResult.SuccessCodec8Extended)\n{\n    Codec8ExtendedFrame frame = (Codec8ExtendedFrame)valueOrError;\n}\nelse\n{\n    Console.Writeline($\"Expected success, but got: {valueOrError}\");\n}\n```\n\n## License\n\nThis document and source code files are released into the public domain. See [LICENSE](LICENSE) file","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcraiha%2Fcsharp-codec8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcraiha%2Fcsharp-codec8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcraiha%2Fcsharp-codec8/lists"}