When the connection channel is open, the treadmill does broadcast a bunch of information like the current incline, distance traveled, etc. So if you capture and process that information you could do what you're talking about. Here's a few snippets from the connection log as it runs:
Server Client { "values":{ "Actual Incline":"2.5" } }
Server Client { "values":{ "Total Time":"188:02:55", "Total Miles":"1441" } }
Server Client { "values":{ "Total Time":"188:02:56", "Total Miles":"1441" } }
Server Client { "values":{ "Actual Incline":"3.0" } }
Server Client { "values":{ "Total Time":"188:02:57", "Total Miles":"1441" } }
Server Client { "values":{ "Current MPH":"8.6", "Current KPH":"13.8", "Miles":"0.044", "Kilometers":"0.070" } }
Server Client { "values":{ "Total Time":"188:02:58", "Total Miles":"1441" } }
Server Client { "values":{ "Current MPH":"9.0", "Current KPH":"14.4", "Miles":"0.047", "Kilometers":"0.075" } }
Server Client { "values":{ "Total Time":"188:02:59", "Total Miles":"1441" } }
Server Client { "values":{ "Current MPH":"9.1", "Current KPH":"14.6", "Miles":"0.049", "Kilometers":"0.078" } }
Server Client { "values":{ "Total Time":"188:03:00", "Total Miles":"1441" } }
Server Client { "values":{ "Total Time":"188:03:01", "Total Miles":"1441" } }
Server Client { "values":{ "Miles":"0.054", "Kilometers":"0.086" } }
Server Client { "values":{ "Total Time":"188:03:02", "Total Miles":"1441" } }
Server Client { "values":{ "Miles":"0.057", "Kilometers":"0.091" } }
---------------------------------
T. Guertin / Spocket