{"id":19963318,"url":"https://github.com/advrhumanoids/zmq-protobuf_ethercat","last_synced_at":"2026-06-15T09:31:15.813Z","repository":{"id":73441496,"uuid":"257594496","full_name":"ADVRHumanoids/ZMQ-Protobuf_EtherCAT","owner":"ADVRHumanoids","description":"Test library for the EtherCAT master non-RT/RT API","archived":false,"fork":false,"pushed_at":"2020-09-28T16:52:48.000Z","size":2944,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-09T00:26:23.086Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ADVRHumanoids.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2020-04-21T12:51:52.000Z","updated_at":"2025-04-07T07:05:25.000Z","dependencies_parsed_at":"2024-07-19T00:49:16.207Z","dependency_job_id":null,"html_url":"https://github.com/ADVRHumanoids/ZMQ-Protobuf_EtherCAT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ADVRHumanoids/ZMQ-Protobuf_EtherCAT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2FZMQ-Protobuf_EtherCAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2FZMQ-Protobuf_EtherCAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2FZMQ-Protobuf_EtherCAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2FZMQ-Protobuf_EtherCAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ADVRHumanoids","download_url":"https://codeload.github.com/ADVRHumanoids/ZMQ-Protobuf_EtherCAT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2FZMQ-Protobuf_EtherCAT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34357281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","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-13T02:15:36.234Z","updated_at":"2026-06-15T09:31:15.294Z","avatar_url":"https://github.com/ADVRHumanoids.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZMQ-Protobuf_EtherCAT\n\n# ZMQ\nZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is a high-performance asynchronous messaging library, aimed at use in distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ZeroMQ system can run without a dedicated message broker.\n\nMore information here: [ZMQ Information](https://zeromq.org/)\n\n## Installation  \nBuild steps:\n\nBuild [libzmq](https://github.com/zeromq/libzmq) via cmake. This does an out of source build and installs the build files download and unzip the lib, cd to directory:\n```\nmkdir build\ncd build\ncmake ..\nsudo make -j4 install\n```\n        \nBuild [cppzmq](https://github.com/zeromq/cppzmq) via cmake. This does an out of source build and installs the build files\ndownload and unzip the lib, cd to directory:\n```\nmkdir build\ncd build\ncmake ..\nsudo make -j4 install\n```\n\n\nHere more details: [ZMQ Installation](https://github.com/zeromq/cppzmq)\n\n# Protobuf (Protocol Buffer)\nProtocol buffers are a flexible, efficient, automated mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages. You can even update your data structure without breaking deployed programs that are compiled against the \"old\" format. \n\nMore information here: [Protobuf Information](https://developers.google.com/protocol-buffers)\n\n## Installation  \nBuild steps:\n\n```\nsudo apt install protobuf-compiler\n\n```\n\n# Additional Installation\n\n```\nsudo apt install libboost-all-dev libzmq5 libyaml-cpp-dev libjsoncpp-dev libprotobuf-dev\n\n```\n\n# EtherCAT Integration\n\n## ZMQ-Protobuf Server\nUsing the superbuild is possible to download and build ec_master_test, ec_master_advr and soem_advr repositories:\n\n![firstImage](https://github.com/ADVRHumanoids/ZMQ-Protobuf_EtherCAT/blob/master/img/ec_master_advr%26test.png)\n\n![secondImage](https://github.com/ADVRHumanoids/ZMQ-Protobuf_EtherCAT/blob/master/img/soem_advr.png)\n\nHere the repositories:\n\n[https://gitlab.advr.iit.it/xeno-ecat/ec_master_test](https://gitlab.advr.iit.it/xeno-ecat/ec_master_test)\n\nNote: Use this branch MultiDOF-superBuildInt.\n\n[https://gitlab.advr.iit.it/xeno-ecat/ecat_master_advr](https://gitlab.advr.iit.it/xeno-ecat/ecat_master_advr)\n\n[https://gitlab.advr.iit.it/xeno-ecat/soem_advr](https://gitlab.advr.iit.it/xeno-ecat/soem_advr)\n\n## ZMQ-Protobuf Client\n\nDownload the client here:\n\n[https://gitlab.advr.iit.it/python-stuff/Ecat-Repl](https://gitlab.advr.iit.it/python-stuff/Ecat-Repl)\n\nInstall python:\n\n```\nsudo apt-get install python3.7\nNote: Useful to select the python version\nsudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 (\"if you have it or insert others\")\nsudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2\nSelection version:\nsudo update-alternatives --config python3\npython3 -V\n```\n\nInstall Python Virtual Environment:\n\n```\nsudo apt install python3-venv\n\n```\nMove into Ecat-Repl directory\n\n```\npython3 -m venv Ecat-Repl-env\nsource Ecat-Repl-env/bin/activate\npip3 install -r requirements.txt\nmake install-dev\n```\nInstall jupyter \n```\npip3 install jupyterlab\npip3 install notebook\n```\nAdd the enviroment to Jupyter \n```\npip3 install --user ipykernel\npython3 -m ipykernel install --user --name=Ecat-Repl-env\n```\nNote: Verify the associtation is corret doing:\n\n```\ngedit ~/.local/share/jupyter/kernels/ecat-repl-env/kernel.json \n{\n \"argv\": [\n  \"PATH_OF_/Ecat-Repl/Ecat-Repl-env/bin/python3\",\n  \"-m\",\n  \"ipykernel_launcher\",\n  \"-f\",\n  \"{connection_file}\"\n ],\n \"display_name\": \"Ecat-Repl-env\",\n \"language\": \"python\"\n}\n```\n# RUN\n\nRun the master:\n```\ncd ~/MultiDoF-superbuild/build/external/ec_master_test/examples/repl/\n./repl /home/user/MultiDoF-superbuild/external/ec_master_test/configs/config.yaml\n```\nRun the jupyter:\n```\njupyter notebook\n```\nmove into: http://localhost:8888/tree/Ethercat/Ecat-Repl/notebooks\n\nThen start for istance: ft6_msp32.ipynb .\n\n# RESULT\n![firstImage](https://github.com/ADVRHumanoids/ZMQ-Protobuf_EtherCAT/blob/master/img/Master-Slave.png)\n\nSTOP MASTER:\n\n![secondImage](https://github.com/ADVRHumanoids/ZMQ-Protobuf_EtherCAT/blob/master/img/stop.png)\n\nSTART MASTER:\n\n![thirdImage](https://github.com/ADVRHumanoids/ZMQ-Protobuf_EtherCAT/blob/master/img/start.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvrhumanoids%2Fzmq-protobuf_ethercat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadvrhumanoids%2Fzmq-protobuf_ethercat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvrhumanoids%2Fzmq-protobuf_ethercat/lists"}