{"id":19163446,"url":"https://github.com/kdahlhaus/easy-erg","last_synced_at":"2025-05-07T11:22:23.774Z","repository":{"id":13674746,"uuid":"16368446","full_name":"kdahlhaus/easy-erg","owner":"kdahlhaus","description":"An easy to use C++ wrapper for the Concept 2 Software Development Kit for interfacing with their rowing ergometer.","archived":false,"fork":false,"pushed_at":"2017-09-21T01:56:24.000Z","size":626,"stargazers_count":16,"open_issues_count":2,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-19T21:25:50.011Z","etag":null,"topics":["concept-2","cpp","ergometer","rowing","wrapper-library"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kdahlhaus.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-30T04:40:30.000Z","updated_at":"2024-04-28T07:59:46.000Z","dependencies_parsed_at":"2022-08-28T10:51:41.496Z","dependency_job_id":null,"html_url":"https://github.com/kdahlhaus/easy-erg","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdahlhaus%2Feasy-erg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdahlhaus%2Feasy-erg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdahlhaus%2Feasy-erg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdahlhaus%2Feasy-erg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdahlhaus","download_url":"https://codeload.github.com/kdahlhaus/easy-erg/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252866128,"owners_count":21816397,"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":["concept-2","cpp","ergometer","rowing","wrapper-library"],"created_at":"2024-11-09T09:15:16.578Z","updated_at":"2025-05-07T11:22:23.751Z","avatar_url":"https://github.com/kdahlhaus.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"easy-erg - a C++ Wrapper for the Concept II Rowing Machine Interface\r\n====================================================================\r\nCopyright 2014 by Kevin Dahlhausen (kpd@powertwenty.com)\r\n\r\nOverview\r\n--------\r\nThis package contains a C++ library and demonstration files that make working with the Concept 2 Software Development Kit (http://www.concept2.com/service/software/software-development-kit) easy.  This library runs against the (latest as of writing) version of the API - the one with documents labeled version 0.14::\r\n\r\n    ErgNet net = ErgNet();\r\n    int numErgs = net.discoverErgs();\r\n    Erg erg = Erg(0); // could actually be a PM3, PM4, or PM5\r\n    ErgState state;\r\n    while (1)\r\n    {\r\n        erg.updateState(\u0026state);\r\n        cout \u003c\u003c \"power: \" \u003c\u003c state.watts \u003c\u003c \" (watts)  \"\r\n             \u003c\u003c \"numStrokes: \" \u003c\u003c state.numStrokesIn\r\n             \u003c\u003c \"  meters/stroke: \" \u003c\u003c state.metersPerStroke\r\n             \u003c\u003c \"\\n\";\r\n    }\r\n\r\nLicense\r\n-------\r\nThis software is licensed under the Mozilla Public License V 2.0.   See the file 'LICENSE.txt' for full details, but my intent is that:\r\n\r\n* You can use and modify this library freely in private, open-source, and closed-source commercial software.\r\n* You disclose any changes you make to this library (pull-requests are ideal).\r\n* You do not need release the source to your own software that uses this library.\r\n\r\nShould you not wish to use the software under the Mozilla Public License, please contact Kevin Dahlhausen (kpd@powertwenty.com) to discuss alternative licensing.\r\n\r\n\r\nBuilding and running the demo programs\r\n--------------------------------------\r\n\r\nPREREQS:\r\n.......\r\n1. version 1.24 of the Concept 2 Software Development Kit\r\n2. cygwin with g++\r\n3. dlltool installed\r\n4. pexports installed\r\n\r\nSteps\r\n.....\r\n1. Extract the concept 2 SDK and set the environment variable 'CONCEPT2SDK' to point to the directory that contains the DLL's and .h files.\r\n2. run \"make\"\r\n3. connect a Concept 2 ergometer via USB\r\n4. cd to demo\r\n5. run demo.exe or any of the other demonstration files there.\r\n\r\n\r\nRunnng the Tests\r\n----------------\r\n1. Install GoogleMock (https://code.google.com/p/googlemock/) somewhere.\r\n2. Point GMOCK_DIR (test/Makefile.test around line 24) and GTEST_DIR (test/Makefile.test around line 20) to the installation.\r\n3. make all tests\r\n\r\n\r\n\r\nUsing in your own code\r\n----------------------\r\nThe command line would be something like this:\r\n\r\n    g++ -mno-cygwin -I../easy_erg/build -I../easy_erg/lib/sdk/PC -L../easy_erg/build  my_app.cpp -lEasyErg -lRPPM3USB -lRPPM3DDI\r\n\r\nYou also have to copy the DLL's from the demo directory to some directory on the path or where the new program resides.\r\n\r\n\r\nToDo / Notes\r\n------------\r\n* Average watts is calculated by sampling power at a fixed rate independent of the position or timing in the stroke.  We might want to tie it to a position in the stroke.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdahlhaus%2Feasy-erg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdahlhaus%2Feasy-erg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdahlhaus%2Feasy-erg/lists"}