{"id":45629216,"url":"https://github.com/commschamp/cc.ublox.commsdsl","last_synced_at":"2026-04-01T20:50:22.396Z","repository":{"id":53896668,"uuid":"148272787","full_name":"commschamp/cc.ublox.commsdsl","owner":"commschamp","description":"CommsDSL schema-based definition of UBLOX protocol","archived":false,"fork":false,"pushed_at":"2026-03-21T02:51:11.000Z","size":458,"stargazers_count":42,"open_issues_count":0,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-21T18:23:31.640Z","etag":null,"topics":["comms","comms-champion","commsdsl","communication-protocol","protocol","ublox","ubx"],"latest_commit_sha":null,"homepage":"https://commschamp.github.io","language":"CMake","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/commschamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"arobenko","custom":"https://www.paypal.me/arobenko"}},"created_at":"2018-09-11T06:44:54.000Z","updated_at":"2026-03-21T02:50:48.000Z","dependencies_parsed_at":"2023-11-21T00:26:12.608Z","dependency_job_id":"3c2ebd6f-6ab8-4188-b845-9e0895277ba1","html_url":"https://github.com/commschamp/cc.ublox.commsdsl","commit_stats":null,"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"purl":"pkg:github/commschamp/cc.ublox.commsdsl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commschamp%2Fcc.ublox.commsdsl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commschamp%2Fcc.ublox.commsdsl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commschamp%2Fcc.ublox.commsdsl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commschamp%2Fcc.ublox.commsdsl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/commschamp","download_url":"https://codeload.github.com/commschamp/cc.ublox.commsdsl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commschamp%2Fcc.ublox.commsdsl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: 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":["comms","comms-champion","commsdsl","communication-protocol","protocol","ublox","ubx"],"created_at":"2026-02-23T23:23:39.564Z","updated_at":"2026-04-01T20:50:22.350Z","avatar_url":"https://github.com/commschamp.png","language":"CMake","funding_links":["https://github.com/sponsors/arobenko","https://www.paypal.me/arobenko"],"categories":[],"sub_categories":[],"readme":"# Overview\n[u-blox GPS receivers](https://www.u-blox.com/en/position-time)\nuse a UBX binary protocol to transmit GPS data to a host computer using\nasynchronous serial ports. This project provides a definition all \nthe messages as well as wrapping transport framing used by \n**u-blox 5/6/7/8/9** devices.\n\nThe protocol is defined in multiple [schema](dsl)\nfiles using [CommsDSL](https://github.com/commschamp/CommsDSL-Specification).\nThe **commsds2comms** code generator from [commsdsl](https://github.com/commschamp/commsdsl)\nproject is used to generate C++11 code of the protocol implementation.\n\nThe code generators from the [commsdsl](https://github.com/commschamp/commsdsl)\nrepository generate full CMake projects.\nSome of these **generated** projects are hosted as separate\nrepositories that can be viewed and used independently.\n\n- [cc.ublox.generated](https://github.com/commschamp/cc.ublox.generated) - Protocol \n    definition \n- [cc.ublox_protocol.cc_tools_plugin](https://github.com/commschamp/cc.ublox_protocol.cc_tools_plugin) -\n    Protocol plugin for the [CommsChampion Tools](https://github.com/commschamp/cc_tools_qt).\n\n# Examples\nThe [examples](examples) directory contains following example applications:\n- simple_pos - simple application that communicates to u-blox receiver over\nUSB serial link and polls for **NAV-POSLLH** messages. When latter is received,\nthe position is printed to standard output.\n\n# License\nPlease read [License](https://github.com/commschamp/commsdsl#license)\nsection from [commsdsl](https://github.com/commschamp/commsdsl) project.\n\n# How to Build\nThis project uses CMake as its build system. Please open main\n[CMakeLists.txt](CMakeLists.txt) file and review available options as well as\nmentioned available parameters, which can be used in addition to standard \nones provided by CMake itself, to modify the default build. \n\nNote that **UBX** protocol is huge and it may be impractical to \nsupport all the messages, especially if some extra applications for testing \nand/or bindings to other languages is needed. It is highly recommended\nto provide a list of required messages using **UBLOX_SCHEMA_FILES_LIST_FILE** \ncmake parameter.\n\nThis project also has external dependencies, it requires an access to\nthe [COMMS Library](https://github.com/commschamp/comms) and\ncode generators from [commsdsl](https://github.com/commschamp/commsdsl) projects.\nThese dependencies are expected to be built independenty and access to them provided\nvia standard **CMAKE_PREFIX_PATH** and/or **CMAKE_PROGRAM_PATH** (for the binaries of\nthe code generators). There are also scripts (\n[script/prepare_externals.sh](script/prepare_externals.sh) for Linux and\n[script/prepare_externals.bat](script/prepare_externals.bat) for Windows)\nwhich can help in preparation of these dependencies. They are also used\nin configuration of the [github actions](.github/workflows/actions_build.yml).\n\nThe project's cmake configuration [options](CMakeLists.txt) allow building\nbindings to other high level programming languages using [swig](https://www.swig.org/)\nand [emscripten](https://emscripten.org/), see relevant commsdsl's\n[documentation](https://github.com/commschamp/commsdsl/tree/master/doc) pages for details.\n\nThe [example](#examples) applications use [Boost](https://www.boost.org)\nto parse their command line parameters as well as manage their asynchronous I/O. \nIn case Boost libraries are not installed in expected default location\n(mostly happens on Windows systems), use variables described in \n[CMake documentation](https://cmake.org/cmake/help/v3.8/module/FindBoost.html) \nto help CMake find required libraries and headers. \nIt is recommended to use `-DBoost_USE_STATIC_LIBS=ON` parameter to force\nlinkage with static Boost libraries.\n\n### Linux Build\n```\n$\u003e cd /source/of/this/project\n$\u003e mkdir build \u0026\u0026 cd build\n$\u003e BUILD_DIR=$PWD CC=gcc CXX=g++ COMMON_INSTALL_DIR=$PWD/install COMMON_BUILD_TYPE=Release ../script/prepare_externals.sh\n$\u003e cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install -DCMAKE_PREFIX_PATH=$PWD/install\n$\u003e make install\n```\n\n### Windows Build\n```\n$\u003e cd C:\\source\\of\\this\\project\n$\u003e mkdir build \u0026\u0026 cd build\n$\u003e set BUILD_DIR=%cd%\n$\u003e set GENERATOR=\"NMake Makefiles\"\n$\u003e set QTDIR=C:\\Qt\\5.15.2\n$\u003e set COMMON_INSTALL_DIR=%cd%/install\n$\u003e ..\\script\\prepare_externals.bat\n$\u003e cmake .. -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Release ^\n    -DCMAKE_INSTALL_PREFIX=%cd%/install -DCMAKE_PREFIX_PATH=%cd%\\install ^\n    -DBOOST_ROOT=\"C:\\Libraries\\boost_1_65_1\" -DBoost_USE_STATIC_LIBS=ON\n$\u003e nmake install\n```\n\n# Supported Compilers\nPlease read [Supported Compilers](https://github.com/commschamp/commsdsl#supported-compilers)\ninfo from [commsdsl](https://github.com/commschamp/commsdsl) project.\n\n# How to Build and Use Generated Code\nPlease read the\n[Generated CMake Project Walkthrough](https://github.com/commschamp/commsdsl/blob/master/doc/GeneratedProjectWalkthrough.md)\ndocumentation page for details on the generated project internals.\n\nThe [release](https://github.com/commschamp/cc.ublox.commsdsl/releases)\nartifacts contain doxygen generated documentation of the protocol definition.\n\n# Contact Information\nFor bug reports, feature requests, or any other question you may open an issue\nhere in **github** or e-mail me directly to: **arobenko@gmail.com**. I usually\nrespond within 24 hours.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommschamp%2Fcc.ublox.commsdsl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommschamp%2Fcc.ublox.commsdsl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommschamp%2Fcc.ublox.commsdsl/lists"}