{"id":46366985,"url":"https://github.com/epri-dev/c12test","last_synced_at":"2026-03-05T02:33:04.275Z","repository":{"id":103564333,"uuid":"332537179","full_name":"epri-dev/c12test","owner":"epri-dev","description":"Tool to test the standards compliance of electric utility meters with ANSI standards C12.18, C12.19, C12.21 and C12.22.","archived":false,"fork":false,"pushed_at":"2021-08-25T15:52:37.000Z","size":211,"stargazers_count":7,"open_issues_count":3,"forks_count":0,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-01-25T14:04:51.062Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epri-dev.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2021-01-24T19:29:48.000Z","updated_at":"2024-01-19T22:32:52.000Z","dependencies_parsed_at":"2023-10-11T22:51:38.594Z","dependency_job_id":null,"html_url":"https://github.com/epri-dev/c12test","commit_stats":{"total_commits":71,"total_committers":1,"mean_commits":71.0,"dds":0.0,"last_synced_commit":"9bc5fcda0b0e7fdc2398b37edb8f68a07b1c708b"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/epri-dev/c12test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epri-dev%2Fc12test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epri-dev%2Fc12test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epri-dev%2Fc12test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epri-dev%2Fc12test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epri-dev","download_url":"https://codeload.github.com/epri-dev/c12test/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epri-dev%2Fc12test/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30107216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T01:39:18.192Z","status":"online","status_checked_at":"2026-03-05T02:00:06.710Z","response_time":93,"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":[],"created_at":"2026-03-05T02:33:03.807Z","updated_at":"2026-03-05T02:33:04.251Z","avatar_url":"https://github.com/epri-dev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# c12test\n\nThe ANSI C12.18 standard describes an infrared communications protocol for electricity meters.  It is very commonly used for electricity meters in North America and some other parts of the world.  This software is used to test compliance with the ANSI C12.18 standard.  It is intended to be used on a Linux-based computer such as a Raspberry Pi, using either a commercially available optical probe or a low cost [open source hardware probe](https://github.com/beroset/Optopod).  \n\nThe code is largely based on the open source [C12Adapter](https://github.com/ElsterSolutionsOpensource/C12Adapter) project which is a set of libraries developed at Elster Solutions (now part of Honeywell).  See the [LICENSE](LICENSE) for licensing details.\n\n## Using the software\nTo use the software, it's most convenient to create a configuration file for the particular meter that is to be read.  A sample configuration file, arbitrarily named `meter.ini` is shown below.\n\nTo use the software with that configuration file to read some [ANSI C12.19 tables](https://webstore.ansi.org/preview-pages/NEMA/preview_ANSI+C12.19-2012.pdf) one could use this command:\n\n    c12test --config=meter.ini ST0 ST1 ST2 ST5\n\n### meter.ini\n\n```\n[channel]\nTYPE=CHANNEL_OPTICAL_PROBE\nPORT_NAME=/dev/ttyUSB0\n\n[protocol]\nTYPE=PROTOCOL_ANSI_C12_18\nPASSWORD=\"55555555555555555555\"\nMAXIMUM_NUMBER_OF_PACKETS=255\nSESSION_BAUD=19200\nPACKET_SIZE=128\nISSUE_SECURITY_ON_START_SESSION=FALSE\nISSUE_NEGOTIATE_ON_START_SESSION=TRUE\n```\n\n## Building\n\nThe software uses [CMake](https://cmake.org/) to simplify building the software.  After downloading the source code, the simplest way to create the software is to navigate to the `c12test` directory use these two commands:\n\n    cmake -S . -B build\n    cmake --build build\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepri-dev%2Fc12test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepri-dev%2Fc12test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepri-dev%2Fc12test/lists"}