{"id":21314480,"url":"https://github.com/polyconseil/libcanardbc","last_synced_at":"2025-10-22T10:50:18.007Z","repository":{"id":89419135,"uuid":"37455278","full_name":"Polyconseil/libcanardbc","owner":"Polyconseil","description":"Library to read DBC files of CAN bus networks","archived":false,"fork":false,"pushed_at":"2019-10-15T11:03:49.000Z","size":77,"stargazers_count":76,"open_issues_count":2,"forks_count":20,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-07-10T19:26:46.014Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Yacc","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/Polyconseil.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-15T09:16:39.000Z","updated_at":"2025-06-17T22:27:37.000Z","dependencies_parsed_at":"2023-03-13T18:09:54.127Z","dependency_job_id":null,"html_url":"https://github.com/Polyconseil/libcanardbc","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Polyconseil/libcanardbc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polyconseil%2Flibcanardbc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polyconseil%2Flibcanardbc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polyconseil%2Flibcanardbc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polyconseil%2Flibcanardbc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Polyconseil","download_url":"https://codeload.github.com/Polyconseil/libcanardbc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polyconseil%2Flibcanardbc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280424212,"owners_count":26328462,"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-22T02:00:06.515Z","response_time":63,"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":"2024-11-21T18:13:12.302Z","updated_at":"2025-10-22T10:50:17.970Z","avatar_url":"https://github.com/Polyconseil.png","language":"Yacc","funding_links":[],"categories":[],"sub_categories":[],"readme":"libcanardbc\n===========\n\nOverview\n--------\n\nlibcanardbc is a partial fork of cantools.sourceforge.net from rev47 (SVN).\nThis fork has been made to remove dependencies on hdf5 and matio, and to\nfix compilation issues on Mac OS X in libdbc.\n\nOnly the DBC parser/lexer and associated library has been kept from the\noriginal project.\n\nThe original cantools project is licensed under GPLv3, this means you can't link\nthe libraries of this project with a proprietary tool. This choice has been made\non purpose by Andreas Heitmann and so this fork inherits of the license.\n\n\nInstallation\n------------\n\nYou will only need to install:\n- automake\n- autoconf\n- libtool\n- flex\n- bison\n- json-glib-1.0 (on Debian/Ubuntu: libjson-glib-dev; on other OSes probably a\nsimilar name)\n\nand a C compiler (gcc or clang) to compile the library.\n\nTo install, just run the usual dance, `./configure \u0026\u0026 make install`. Run\n`./autogen.sh` first to generate the `configure` script if required.\n\n\nTools\n-----\n\nThe directory `tools` contains several tools related to libcanardbc:\n\n- **dbc2json** converts a DBC file to a JSON file. It's up to you to adapt it to\n  your needs. This program is linked to libcanardbc so it is licensed under\n  GPLv3.\n\n- **json2dbc.py** converts a JSON file to a DBC file. It is usually easier to\n  write a JSON file by hand than a DBC one.\n\n- **json2html** renders a JSON file (DBC) to an HTML page. This program is\n  distributed under BSD 3-Clause license.\n\nAnother project named [caneton](https://github.com/Polyconseil/caneton) uses\nthe generated JSON file of DBC to decode CAN messages.\n\nDBC format\n----------\n\nThe syntax of signals in DBC file is:\n\n```\n\u003cobject\u003e \u003cname\u003e : \u003cstart bit\u003e|\u003clength\u003e@\u003cendiannes ex. 0 for Motorola, 1 for Intel\u003e\u003csignedness ex. + (unsigned) or - (signed)\u003e (\u003cfactor\u003e,\u003coffset\u003e) \u003crange, ex. 0|360\u003e \"\u003cunit\u003e\" \u003cnodes\u003e\n```\n\nJSON format\n-----------\n\nYou can see an example of a valid JSON file [here](https://github.com/Polyconseil/caneton/blob/master/tests/dbc.json). Below is the description of the schema it uses:\n\n```\n{\n    \"filename\": \"\u003cfilename\u003e.dbc (optional)\",\n    \"version\": \"\u003cdbc_version\u003e (optional)\",\n    \"attribute_definitions\": {\n        \"\u003cattribute_name\u003e\": {\n            \"0\": \"\u003cenum_value_0\u003e\",\n            \"\u003cn\u003e\": \"\u003cenum_value_\u003cn\u003e\u003e\"\n        }\n    }\n    \"messages\": {\n        \"\u003ccan_id\u003e\": {\n            \"name\": \"\u003cmessage_name\u003e\",\n            \"sender\": \"\u003csending_node\u003e\",\n            \"length\": \u003cmessage_length_in_bytes\u003e,\n            \"has_multiplexor (optional) \": \u003ctrue|false\u003e,\n            \"attributes\": {\n                \"\u003cattribute_name_1\u003e\": \"\u003cattribute_value_1\u003e\",\n                \"\u003cattribute_name_\u003cn\u003e\u003e\": \"\u003cattribute_value_\u003cn\u003e\u003e\"\n            }\n            \"signals\": {\n                \"signal_1\": {\n                    \"bit_start\": \u003csignal_data_offset_in_message\u003e,\n                    \"length\": \u003csignal_data_length_in_bits\u003e,\n                    \"little_endian\": \u003c0|1\u003e,\n                    \"signed\": \u003c0|1\u003e,\n                    \"value_type\": \"\u003cinteger|float|double\u003e\",\n                    \"factor\": \u003cfactor_applied_to_signal_numerical_value\u003e,\n                    \"offset\": \u003coffset_applied_to_signal_numerical_value\u003e,\n                    \"min\": \u003cmin_applied_to_signal_numerical_value\u003e,\n                    \"max\": \u003cmax_applied_to_signal_numerical_value\u003e,\n                    \"unit\": \"\u003csignal_data_unit (optional)\u003e\",\n                    \"multiplexor (optional)\": \u003cdoes_the_signal_define_multiplex_ids\u003e,\n                    \"multiplexing (optional)\": \u003cmultiplex_id_in_which_the_signal_exists\u003e,\n                    \"enums (optional)\" : {\n                        \"\u003cenum_0_value\u003e\": \"\u003cenum_0_name\u003e\",\n                        \"\u003cenum_\u003cn\u003e_value\u003e\": \"\u003cenum_\u003cn\u003e_name\u003e\"\n                    }\n                },\n                \"\n            }\n        }\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolyconseil%2Flibcanardbc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolyconseil%2Flibcanardbc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolyconseil%2Flibcanardbc/lists"}