I'm studying computer science and I'd like to make an app for Concept2 ergs as a project.
What language is Ergdata, Ergzone etc. written in? Is there a recommended approach?
I am looking to use Flutter to create an app, does anyone have any advice on this?
Programming Language for App
- Citroen
- SpamTeam
- Posts: 8021
- Joined: March 16th, 2006, 3:28 pm
- Location: A small cave in deepest darkest Basingstoke, UK
Re: Programming Language for App
Use python, there's a raft of code you can look at/borrow/steal for the C2 there.
Re: Programming Language for App
As they are Android and iPhone apps, I'd suggest looking at their native platforms, or something that is crossplatform, like .Net MAUI. With the new release of the PM5 V6, USB support has been killed, so you need to connect via Bluetooth. There are quite some apps on GitHb that interact with the PM5, for example ErgArcade (javascript), RowingMonitor (JavaScript), ErgometerSpace (Ruby/Javascript) and C2Bluetooth (Dart).
As lead developer of OpenRowingMonitor (the free Open Source alternative to the PM5) I can tell you the protocol itself isn't to clearly described. As a side note, we are looking for people like to know Javascript and canimprove our GUI (as it is the only thing we haven't redesigned and it is ugly as hell).
Re: Programming Language for App
Thank you for the information. When you say the protocol isn't clearly described, what do you mean? Please forgive me if that's a silly question, but I'm still learning and not very knowledgable. Does this mean that it is difficult to enable a connection to the erg?JaapvanE wrote: ↑November 16th, 2024, 3:09 pmAs they are Android and iPhone apps, I'd suggest looking at their native platforms, or something that is crossplatform, like .Net MAUI. With the new release of the PM5 V6, USB support has been killed, so you need to connect via Bluetooth. There are quite some apps on GitHb that interact with the PM5, for example ErgArcade (javascript), RowingMonitor (JavaScript), ErgometerSpace (Ruby/Javascript) and C2Bluetooth (Dart).
As lead developer of OpenRowingMonitor (the free Open Source alternative to the PM5) I can tell you the protocol itself isn't to clearly described. As a side note, we are looking for people like to know Javascript and canimprove our GUI (as it is the only thing we haven't redesigned and it is ugly as hell).
Re: Programming Language for App
If you have any skill, connecting to the BLE interface is doable. Plenty of BLE libraries for most development environments. Simply copy or reverse engineer the examples I've shown, and you can see how its done. The key issue is that Concept2 has defined the specific messages it can send, but they haven't told us when to expect what message and in what order. So interpreting the data you get is sometimes problematic. In OpenRowingMonitor we simulate a PM5, partially. But three years into development, for a large part we are still guessing what to send when. As we are good friends with most application developers, they tell us where we mess up according to them, but as C2 hasn't described it in detail, it essentially is a guessing game.enboy wrote: ↑November 25th, 2024, 7:15 amThank you for the information. When you say the protocol isn't clearly described, what do you mean? Please forgive me if that's a silly question, but I'm still learning and not very knowledgable. Does this mean that it is difficult to enable a connection to the erg?