{"id":38766802,"url":"https://github.com/blues/note-c","last_synced_at":"2026-01-30T21:03:47.684Z","repository":{"id":37393830,"uuid":"173175687","full_name":"blues/note-c","owner":"blues","description":"C API for Notecard","archived":false,"fork":false,"pushed_at":"2026-01-13T14:53:11.000Z","size":7235,"stargazers_count":11,"open_issues_count":7,"forks_count":14,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-01-13T17:15:42.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blues.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-02-28T19:36:44.000Z","updated_at":"2026-01-13T14:52:26.000Z","dependencies_parsed_at":"2023-12-21T19:44:31.459Z","dependency_job_id":"9ad4f01d-0a4c-47f0-9850-88358a46cd33","html_url":"https://github.com/blues/note-c","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/blues/note-c","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fnote-c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fnote-c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fnote-c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fnote-c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blues","download_url":"https://codeload.github.com/blues/note-c/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fnote-c/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T11:50:55.898Z","status":"ssl_error","status_checked_at":"2026-01-17T11:50:55.569Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2026-01-17T12:00:36.760Z","updated_at":"2026-01-17T12:01:06.854Z","avatar_url":"https://github.com/blues.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Coverage Status][coverage badge]][coverage details]\n\n# note-c\n\nThe note-c C library for communicating with the\n[Blues Wireless][blues] Notecard via serial or I²C.\n\nThis library allows you to control a Notecard by writing a C\nor C++ program. Your program may programmatically configure Notecard and send\nNotes to [Notehub.io][notehub].\n\nThis library is used by the [note-arduino library][note-arduino], which includes\nit as a git subtree.\n\n## API Documentation\n\nThe API documentation for this library can be found [here][note-c API docs].\n\n## Logging Control\n\n`note-c` provides a comprehensive and flexible logging functionality.\n\nTo activate logging, you must provide a callback for logging via\n`hookDebugOutput()`. The callback takes the following form:\n\n```c\ntypedef size_t (*debugOutputFn) (const char *text);\n```\n\nThe callback is responsible for taking a character array (C-style string) and\nreturning the number of bytes processed (written out) as confirmation. The\nexact implementation will be up to the user who provided the function pointer,\nbut its presence will active logging in the library.\n\n### Library Logging\n\n#### Log Levels\n\n`note-c` provides for four (4) levels of logging. Here they are listed from\nmost severe to most verbose:\n\n0. `NOTE_C_LOG_LEVEL_ERROR`\n1. `NOTE_C_LOG_LEVEL_WARN`\n2. `NOTE_C_LOG_LEVEL_INFO`\n3. `NOTE_C_LOG_LEVEL_DEBUG`\n\nBy default, `note-c` logs at `NOTE_C_LOG_LEVEL_INFO`.\n\n#### Default Logging Behavior\n\nTo modify the default behavior, you may specify the desired log level at compile\ntime, as follows:\n\n```sh\n-DNOTE_C_LOG_LEVEL=0\n```\n\n_**NOTE:** In the example above, you will notice we used zero (`0`), instead of\n`NOTE_C_LOG_LEVEL_ERROR`. This is because the warning constants are internal to\nthe library, and not available in the context of the command line._\n\nHere, we have decided to show only the most severe (i.e. `[ERROR]`) logs.\nAlternatively, you may set the level to any of the values listed above.\n\n#### Dynamic Logging Behavior\n\nIn the previous section, we discussed setting the base (or default) logging\nbehavior for the library. However, you may also set the log level dynamically,\nduring runtime, by using the `NoteSetLogLevel()` API.\n\n```c\nNoteSetLogLevel(NOTE_C_LOG_LEVEL_WARN);\n```\n\n### Notecard Sync Logging (`[SYNC]`)\n\nTangential to the standard logging behavior, `note-c` also provides a helper\nfunction to invoke/extract synchronization logs from the Notecard.\n\n- `NoteDebugSyncStatus()`\n\nInstead of toggling features inside the library, this helper functions sends a\nrequest to the Notecard to inquire about its synchronization status and logs\nthose details.\n\nThe function is designed to be called in a loop and throttled by a parameter.\nSee [the documentation page][NoteDebugSyncStatus] for more information.\n\n## Versioning\n\nThe `note-c` versioning scheme is a variant of [Semantic\nVersioning](https://semver.org/).\n\nBelow is a high-level overview of the major/minor/patch versions:\n\n- Major Version: Signals incompatible API changes.\n- Minor Version: Signals added functionality in a backward compatible manner.\n- Patch Version: Signals backward compatible bug fixes.\n\nBeyond the SemVer foundation, Blues has imposed additional requirements for a\nversion to be considered valid:\n\n- Major/minor/patch versions SHALL NOT be zero.\n- For anything other than major version, version numbers MUST NOT contain\nEITHER leading zeroes OR trailing zeroes (e.g. version `1.10.2` is invalid).\n\n\u003e Example version progression:\n\u003e\n\u003e `1.8.1`, `1.9.1`, `1.9.2`, `1.11.1`, `1.11.2`, `1.11.3`, `1.12.1`, `2.1.1`\n\nThese additional constraints have been observed to help disambiguate versions\nand reduce support burden.\n\n### Version Artifacts\n\nThe version can be referenced/tested programmatically via the following\npreprocessor defined integers found in `note.h`:\n\n- `NOTE_C_VERSION_MAJOR`\n- `NOTE_C_VERSION_MINOR`\n- `NOTE_C_VERSION_PATCH`\n\nThe version may also be logged via the preprocessor defined string literal,\n`NOTE_C_VERSION`.\n\n## Contributing\n\nWe love issues, fixes, and pull requests from everyone. By participating in this\nproject, you agree to abide by the Blues Inc [code of conduct].\n\nFor details on contributions we accept and the process for contributing, see our\n[contribution guide](CONTRIBUTING.md).\n\n## More Information\n\nFor additional Notecard SDKs and Libraries, see:\n\n- [note-arduino][note-arduino] for Arduino support\n- [note-python][note-python] for Python\n- [note-go][note-go] for Go\n\n## To learn more about Blues Wireless, the Notecard and Notehub, see:\n\n- [blues.com](https://blues.io)\n- [notehub.io][notehub]\n- [wireless.dev](https://wireless.dev)\n\n## License\n\nCopyright (c) 2019 Blues Inc. Released under the MIT license. See\n[LICENSE](LICENSE) for details.\n\n[blues]: https://blues.com\n[code of conduct]: https://blues.github.io/opensource/code-of-conduct\n[coverage badge]: https://coveralls.io/repos/github/blues/note-c/badge.svg?branch=master\n[coverage details]: https://coveralls.io/github/blues/note-c?branch=master\n[NoteDebugSyncStatus]: https://blues.github.io/note-c/api_reference.html#c.NoteDebugSyncStatus\n[notehub]: https://notehub.io\n[note-arduino]: https://github.com/blues/note-arduino\n[note-c API docs]: https://blues.github.io/note-c/index.html\n[note-go]: https://github.com/blues/note-go\n[note-python]: https://github.com/blues/note-python\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblues%2Fnote-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblues%2Fnote-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblues%2Fnote-c/lists"}