{"id":27936268,"url":"https://github.com/opencyphal-garage/ocvsmd","last_synced_at":"2025-10-18T21:52:38.210Z","repository":{"id":267138937,"uuid":"898966846","full_name":"OpenCyphal-Garage/ocvsmd","owner":"OpenCyphal-Garage","description":"A daemon for management of Cyphal networks in embedded production environments","archived":false,"fork":false,"pushed_at":"2025-04-23T15:38:35.000Z","size":289,"stargazers_count":0,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-07T06:57:02.105Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://opencyphal.org","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/OpenCyphal-Garage.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-05T11:25:06.000Z","updated_at":"2025-04-23T15:38:38.000Z","dependencies_parsed_at":"2024-12-08T16:29:51.242Z","dependency_job_id":"44b8ba82-547a-44bf-b9d3-48c123cf899f","html_url":"https://github.com/OpenCyphal-Garage/ocvsmd","commit_stats":null,"previous_names":["opencyphal-garage/opencyphal-vehicle-system-management-daemon","opencyphal-garage/ocvsmd"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCyphal-Garage%2Focvsmd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCyphal-Garage%2Focvsmd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCyphal-Garage%2Focvsmd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCyphal-Garage%2Focvsmd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenCyphal-Garage","download_url":"https://codeload.github.com/OpenCyphal-Garage/ocvsmd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252831296,"owners_count":21810783,"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","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":"2025-05-07T06:57:05.380Z","updated_at":"2025-10-18T21:52:38.129Z","avatar_url":"https://github.com/OpenCyphal-Garage.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OCVSMD - Open Cyphal Vehicle System Management Daemon\n\n### Build\n- Change directory to the project root; init submodules:\n  ```\n  cd ocvsmd\n  git submodule update --init --recursive\n  ```\nThen one of the two presets depending on your system:\n- `Demo-Linux` – Linux distros like Ubuntu.\n- `Demo-BSD` – BSD based like MacOS.\n  ###### Debug\n  ```bash\n  cmake --preset OCVSMD-Linux \u0026\u0026 \\\n  cmake --build --preset OCVSMD-Linux-Debug\n  ```\n  ###### Release\n  ```bash\n  cmake --preset OCVSMD-Linux \u0026\u0026 \\\n  cmake --build --preset OCVSMD-Linux-Release\n  ```\n\n### Installing\n\n- Installing the Daemon Binary:\n  ###### Debug\n  ```bash\n  sudo cp build/bin/Debug/ocvsmd /usr/local/bin/ocvsmd \u0026\u0026 \\\n  sudo cp build/bin/Debug/ocvsmd-cli /usr/local/bin/ocvsmd-cli\n  ```\n  ###### Release\n  ```bash\n  sudo cp build/bin/Release/ocvsmd /usr/local/bin/ocvsmd \u0026\u0026 \\\n  sudo cp build/bin/Release/ocvsmd-cli /usr/local/bin/ocvsmd-cli\n  ```\n- Installing the Init Script and Config file:\n  ```bash\n  sudo cp init.d/ocvsmd /etc/init.d/ocvsmd \u0026\u0026 \\\n  sudo chmod +x /etc/init.d/ocvsmd \u0026\u0026 \\\n  sudo mkdir -p /etc/ocvsmd \u0026\u0026 \\\n  sudo cp init.d/ocvsmd.toml /etc/ocvsmd/ocvsmd.toml\n  ```\n\n- Enabling at Startup if needed (on SysV-based systems):\n  ```\n  sudo update-rc.d ocvsmd defaults\n  ```\n\n### Usage\n- Control the daemon using the following commands:\n  ###### Start\n  ```bash\n  sudo /etc/init.d/ocvsmd start\n  ```\n  ###### Status\n  ```bash\n  sudo /etc/init.d/ocvsmd status\n  ```\n  ###### Restart\n  ```bash\n  sudo /etc/init.d/ocvsmd restart\n  ```\n  ###### Stop\n  ```bash\n  sudo /etc/init.d/ocvsmd stop\n  ```\n### Logging\n\n#### View logs:\n  - Syslog: \n    ```bash\n    sudo grep -r \"ocvsmd\\[\" /var/log/syslog\n    ```\n  - Log files:\n    ```bash\n    cat /var/log/ocvsmd.log\n    ```\n#### Manipulate log levels:\n\n  Append `SPDLOG_LEVEL` and/or `SPDLOG_FLUSH_LEVEL` to the daemon command in the init script\n  to enable more verbose logging level (`trace` or `debug`).\n  Default level is `info`. More severe levels are: `warn`, `error` and `critical`.\n  `off` level disables the logging.\n  \nBy default, the log files are not immediately flushed to disk (at `off` level).\nTo enable flushing, set `SPDLOG_FLUSH_LEVEL` to a required default (or per component) level.\n\n  - Example to set default level:\n      ```bash\n      sudo /etc/init.d/ocvsmd start SPDLOG_LEVEL=trace SPDLOG_FLUSH_LEVEL=trace\n      ```\n  - Example to set default and per component level (comma separated pairs):\n      ```bash\n      sudo /etc/init.d/ocvsmd restart SPDLOG_LEVEL=debug,ipc=off SPDLOG_FLUSH_LEVEL=warn,engine=debug\n      ```\n\n### vscode\n\nUsing vscode, relaunch this workspace using the appropriate devcontainer provided. Once running in the toolshed container build, using cmake, and then do \"Tasks: Run Task -\u003e Create OCVSMD Terminals\". This will launch four terminals all running in the container:\n\n- **Daemon** – Creates symbolic links to the build artifacts under the appropriate places in /etc, then starts the daemon, then tails the daemon logs.\n- **Yakut** – Starts a Yakut UDP monitoring session.\n- **Client** – Tails \"ocvsmd-cli.log\" in the workspace root (touches first if this doesn't exist). This allows you to use the **shell** to run the cli in the workspace root and see the logs in this terminal.\n- **Bash shell** – login shell starting in the workspace root.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencyphal-garage%2Focvsmd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopencyphal-garage%2Focvsmd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencyphal-garage%2Focvsmd/lists"}