Discussion:
dataudtræk fra en crosstræner
(for gammel til at besvare)
Carsten Riis
2009-01-04 11:07:49 UTC
Permalink
Hej Alle

Jeg bokser med, at hive nogen data ud af en crosstræner.
Det skal lige siges, at jeg ikke har forstand på programmering, hvorfor
jeg spørger her.

Crosstræneren er forbundet med PC'en via seriel-stik.

Jf. en besked i elektronik-gruppen, så skal computeren sende en
forespørgsel til crosstræneren, hvorefter crosstræneren svarer på den
forespørgsel med en bestemt data.

De data jeg vil have ud af maskinen i sidste ende skal være
puls
afstand
hastighed
rotationer pr. minut
modstand
energiforbrug.

mens aktiviteten er igang.
Dataene skal gerne komme i et kommasepareret-format som er nem for excel
at importere.


Disse data bliver oplyst på et display på crosstræneren, men er jo ikke
så meget bevendt mens jeg motionerer, når jeg vil analysere (kigge
nærmere) på tallene efterfølgende eller holde de forskellige
trænings-sessioner op mod hinanden.


Hvordan får jeg computeren til at sende en forespørgsel til
crosstræneren ca. 1 gang pr. sekund og crosstræneren så svarer tilbage
med de ønskede data?
En træningsrunde varer alt fra 1 minut til 1 time (når jeg kommer i
bedre form også længere tid) eller sagt på en anden måde: Der skal måles
i den tid der er aktivitet på crosstræneren.

Jeg har et demoudgave fra crosstræner-producentens software som næsten
kan sende de data som jeg søger efter.
Demoprogrammet kan vise mig serienummer og model på crosstræneren. Vha.
et serielport-logprogram fik jeg følgende data ud:

-------------------
Request: 04-01-2009 11:12:04.04964

56 45 0D 0A VE..

Answer: 04-01-2009 11:12:04.09664 (+0.0469 seconds)

31 30 34 0D 0A 104..

Request: 04-01-2009 11:12:04.14364 (+0.0469 seconds)

49 44 0D 0A ID..

Answer: 04-01-2009 11:12:04.20664 (+0.0625 seconds)

53 44 34 58 30 34 36 34 0D 0A SD4X0464..

Request: 04-01-2009 11:12:05.25264 (+0.0469 seconds)

56 45 0D 0A VE..

Answer: 04-01-2009 11:12:05.29964 (+0.0469 seconds)

31 30 34 0D 0A 104..

Request: 04-01-2009 11:12:05.34664 (+0.0469 seconds)

4B 49 0D 0A KI..

Answer: 04-01-2009 11:12:05.40964 (+0.0625 seconds)

53 44 45 58 09 43 54 52 33 0D 0A SDEX.CTR3..

Request: 04-01-2009 11:12:05.45664 (+0.0469 seconds)

43 41 0D 0A CA..

Answer: 04-01-2009 11:12:05.50264 (+0.0469 seconds)

33 36 34 0D 0A 364..

------------------------------------------


Det jeg kan få ud af ovenstående er, at crosstræneren svarer ret hurtig.
Og at alle forespørgsler indeholder to bogstaver.

Forespørgslen VE giver svaret 104
Forespørgslen ID giver svaret SD3X0464
Forespørgslen KI giver svaret SDEX.CTR3
Forespørgslen CA giver svaret 364


Jeg går ud fra at 43 41 0D 0A er hexadecimal for CA..



Jeg kan sagtens danne en liste over alle kombinationer med to bogstaver,
men hvordan får jeg computeren til at sende en kombination adgangen.
Vha. programmet Comm operator kan jeg manuelt indskrive hver kombination
og så finde ud af hvilke kombination der giver respons. Det syntes jeg
dog er lidt besværlig med 676 kombinationer, hvoraf jeg pt. kun kender 4
positive svar.

Programmeringsopgaven består altså af to dele:

A: Finde de kombinationer som crosstræneren svarer på.
der skal muligvis sættes flere bogstaver på, hvis
tobogstavskombinationer ikke er hvad der svares på under aktivitet.
B: At sende kombinationerne fra opgave A til crosstræneren, mens der er
aktivitet på crosstræneren hhv. bare bede computeren om at sende
forespørgsler....og så vil crosstræneren jo svare med de tal som nu
måtte være. Svarene på forspørgslerne skal gerne leveres i en
kommasepareret fil, så det er nemt at importere i excel fx

Forspørgsel 1 på linje med svaret: puls,afstand,hastighed,rotationer pr.
minut,modstand,energiforbrug.
Ny linje
Forspørgsel 2 på linje med svaret: puls,afstand,hastighed,rotationer pr.
minut,modstand,energiforbrug.
Ny linje
.
.og så fremdeles.
.
.
.




Er det svært at lave? (ok, naturligvis ikke svært for dem som kan, så
lad mig spørge på en anden måde: Er der nogen som har mulighed for at
lave de to opgaver)
Jeg kan nørkle lidt med visualbasic i Excel, men det er vist ikke
decideret programmering.
--
Med venlig hilsen
Carsten Riis
www.de3faktorer.dk
Hjerne, Hjerte, Indkøbskurv - ting, der skal til for at opnå vægttab.
Carsten Riis
2009-01-04 12:32:43 UTC
Permalink
Post by Carsten Riis
Er det svært at lave? (ok, naturligvis ikke svært for dem som kan, så
lad mig spørge på en anden måde: Er der nogen som har mulighed for at
lave de to opgaver)
Jeg kan nørkle lidt med visualbasic i Excel, men det er vist ikke
decideret programmering.
Jeg har prøvet lidt manuelle forespørgsler og kan se, at crosstræneren
kan acceptere fem bogstavskombinationer a 2 bogstaver pr. forespørgsel.

Længere forespørgsler vil kun svare på de første 5 bogstavskombinationer


Nu er det bare med at finde disse 5 kombinationer.

Endvidere kan jeg se, at programmet comm operator kan klare en
tilbagevendende forespørgsel (autosend)....så det med at lave
forespørgsler hele tiden er klaret. Og den log som dannes faktisk med
lidt word-klippeklistre nemt kan laves excelvenlig.

det er bare kombinationerne som er interessante nu.
Jeg tror, at løsningen må være, at jeg sætter alle kombinationer op i en
autosend-loop og træner i 10 minutter....og så gennemkigger den log
der bliver dannet for at se, hvilke kombinationer som der kommer svar på.

derefter kun sætter kombinationer i loop som reelt giver svar......
og så er den løst.

Det besværlige er bare at danne den første loop....der er altså pænt
mange kombinationer som så skal lægges i portioner a 5.


Hvis I har en smartere måde at finde kombinationerne på, så sig endelig til.
--
Med venlig hilsen
Carsten Riis
www.de3faktorer.dk
Hjerne, Hjerte, Indkøbskurv - ting, der skal til for at opnå vægttab.
Stig Johansen
2009-01-04 15:36:40 UTC
Permalink
Post by Carsten Riis
Hvis I har en smartere måde at finde kombinationerne på, så sig endelig til.
I første omgang skal du lægge mærke til, at hex 0D0A er CRLF aka Carriage
Return+LineFeed, der svarer til tryk på enter tasten.
Det er ikke en del af data, men 'afslutningen' af data.

Med hensyn til protokollen, eller de kommandoer, din crosstræner kender, så
er den eneste nemme vej at få fat i en manual, der beskriver disse
kommandoer.

Hvis du ikke har mulighed for at få fat i sådan en, er der nok ikke andre
muligheder end at prøve sig frem.

Men typisk når man designer sådanne kommandoer er der indbygget en slags
forkortelser.

Jeg har ingen ide om hvad de skulle stå for, men ID kunne være
IDentification, og VE kunne være VElocity eller ?
--
Med venlig hilsen
Stig Johansen
Carsten Riis
2009-01-04 17:23:27 UTC
Permalink
Post by Stig Johansen
I første omgang skal du lægge mærke til, at hex 0D0A er CRLF aka Carriage
Return+LineFeed, der svarer til tryk på enter tasten.
Det er ikke en del af data, men 'afslutningen' af data.
Ser du: Det er god information....takker.
Post by Stig Johansen
Med hensyn til protokollen, eller de kommandoer, din crosstræner kender, så
er den eneste nemme vej at få fat i en manual, der beskriver disse
kommandoer.
Hvis du ikke har mulighed for at få fat i sådan en, er der nok ikke andre
muligheder end at prøve sig frem.
Det blev TheHardWay.

Manualen er nemlig ikke særlig informativ vedrørende, hvordan data
bliver sendt til computeren. Kun at man kan.
Først når man undersøger Kettlers hjemmeside fremgår det, at man med små
1800 kroner kan få et program som kan lave de famøse grafer og data.
Post by Stig Johansen
Men typisk når man designer sådanne kommandoer er der indbygget en slags
forkortelser.
Jeg har ingen ide om hvad de skulle stå for, men ID kunne være
IDentification, og VE kunne være VElocity eller ?
Hej Sten

Jeg har nu lavet lidt kombinationsarbejde i Excel og sammen med
CommOperator tygget alle kombinationer igennem med de to bogstaver.

Og jeg fundet ud af følgende kombinationer som giver respons fra
crosstræneren:

De fire kendte:
CA
ID
KI
VE

OG her en masse kombinationer som jeg endnu ikke har kunnet gennemskue
hvad de kan.

CD
CM
CP
PD
PE
PT
PW
RC
RD
RE
RF
RP
RQ
RR
RS
ST
VS

Alle andre kombinationen giver svaret ERROR, hvilket jeg går ud fra at
maskinen modtager forespørgslen, men ikke kan bruge den til noget.

Programmet CommOperator kan sættes til at sende forespørgsler til
Crosstræneren i et loop, hvilket jo faktisk betyder, at jeg bare sætter
de fundne kombinationer i loop, mens jeg træner. Og når jeg så har
været aktiv i ca. 10 minutter, så har jeg rigelig af datamateriale, hvor
jeg så skal kigge nærmere på hvad der er hvad.


Jeg kan ikke rigtig se, at VE skulle stå for velocity, da maskinen står
helt stille mens demoprogrammet laver sin forespørgsel.
ID kan jeg godt acceptere står for IDentification.
KI står også for identifikation, da svaret indeholder CTR3 som er
modelnavnet for crosstræneren.
CA er jeg tilgengæld temmelig undrende over.


så jeg tror faktisk, at jeg - som det ser ud lige nu - har de ting jeg
skal bruge. Skulle så bare lige have luftet et par tanker.
--
Med venlig hilsen
Carsten Riis
www.de3faktorer.dk
Hjerne, Hjerte, Indkøbskurv - ting, der skal til for at opnå vægttab.
Loading...