Je laisse ce message à tout hasard.
Je cherche à récupérer les données d'une montre Geonaute avec son dongle ANT+
Ce n'est pas une montre Garmin... Il est donc probable que GFrun ne soit pas fait pour...
Mais comme c'est le même principe, il y a peut-être une solution voisine...
La clé est
du modèle 1 (avec pour seul différence apparente l'inscription "Geonaute" au lieu de "Garmin")
Le fabriquant de la clé est le même "Dynastream Innovations"
Résultat de lsusb concernant la clé :
Bus 002 Device 003: ID 0fcf:1008 Dynastream Innovations, Inc. Mini stick Suunto
Résulat de usb-devices concernant la clé :
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=32 #Cfgs= 1
P: Vendor=0fcf ProdID=1008 Rev=01.00
S: Manufacturer=Dynastream Innovations
S: Product=ANT USBStick2
S: SerialNumber=093
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=usb_serial_simple
$ ls /etc/udev/rules.d/
51-garmin.rules 70-persistent-cd.rules 70-persistent-net.rules ant-usbstick2.rules README
$ cat $HOME/GFrun/logs/DIAG
GFrun - - 0.5.1
Linux sorbus-eMachines-E627 3.5.0-45-generic #68-Ubuntu SMP Mon Dec 2 21:58:52 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Distributor ID: Ubuntu
Description: Ubuntu 12.10
Release: 12.10
Codename: quantal
1 ======================================= date
2013-12-22_1521
2 ======================================= usb-devices
P: Vendor=0fcf ProdID=1009 Rev=01.00
3 ======================================= cat $H_GFrun/logs/IDs
3872799033
3872799033
4 ======================================= cat /etc/udev/rules.d/ant-usbstick2.rules
# This files changes the mode of the Dynastream ANT UsbStick2 so all users
# can read and write to it.
#
# This file should go into '/etc/udev/rules.d'. Note that this should go in
# at a late stage, probably after everyting else, but at least after 70 to
# allow the usb attributes to be populated, so don't change the file so it
# gets sorted before that stage.
#
# If you do not want all users to be able to read and write to your usb stick
# you might want to adjust the mode to 0660 and restrict it to a group of
# users with GROUP="ant" or the mode to 0600 and restrict it to a single user
# with OWNER="user".
#
SUBSYSTEM=="usb", ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1008", MODE="0666", SYMLINK+="ttyANT2", ACTION=="add"
SUBSYSTEM=="usb", ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1009", MODE="0666", SYMLINK+="ttyANT3", ACTION=="add"
5 ======================================= ls /etc/udev/rules.d/
51-garmin.rules
70-persistent-cd.rules
70-persistent-net.rules
ant-usbstick2.rules
README
6 ======================================= ls -l /dev/ttyUSB
7 ======================================= lsmod
Module Size Used by
rfcomm 46620 0
bnep 18141 2
parport_pc 32689 0
bluetooth 209438 10 rfcomm,bnep
ppdev 17074 0
joydev 17458 0
snd_hda_codec_realtek 78147 1
snd_hda_intel 33492 3
snd_hda_codec 134213 2 snd_hda_codec_realtek,snd_hda_intel
snd_hwdep 17699 1 snd_hda_codec
snd_pcm 96668 2 snd_hda_intel,snd_hda_codec
snd_seq_midi 13325 0
snd_rawmidi 30513 1 snd_seq_midi
kvm_amd 55605 0
snd_seq_midi_event 14900 1 snd_seq_midi
kvm 414111 1 kvm_amd
snd_seq 61555 2 snd_seq_midi,snd_seq_midi_event
uvcvideo 76750 0
videobuf2_core 32852 1 uvcvideo
snd_timer 29426 2 snd_pcm,snd_seq
videodev 120310 2 uvcvideo,videobuf2_core
videobuf2_vmalloc 12861 1 uvcvideo
snd_seq_device 14498 3 snd_seq_midi,snd_rawmidi,snd_seq
videobuf2_memops 13405 1 videobuf2_vmalloc
lib80211_crypt_tkip 17380 0
psmouse 100424 0
snd 78921 15 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
wl 3074773 0
edac_core 52452 0
radeon 900791 3
edac_mce_amd 23304 0
serio_raw 13216 0
sp5100_tco 13698 0
soundcore 15048 1 snd
k8temp 12979 0
ttm 83596 1 radeon
i2c_piix4 13168 0
drm_kms_helper 49113 1 radeon
snd_page_alloc 18485 2 snd_hda_intel,snd_pcm
drm 288972 5 radeon,ttm,drm_kms_helper
i2c_algo_bit 13414 1 radeon
cfg80211 206797 1 wl
sparse_keymap 13891 0
shpchp 37109 0
lib80211 14382 2 lib80211_crypt_tkip,wl
video 19391 0
wmi 19071 0
mac_hid 13206 0
lp 17760 0
parport 46346 3 parport_pc,ppdev,lp
ahci 25721 5
libahci 31273 1 ahci
atl1c 41102 0
8 ======================================= dpkg -l | grep libusb
ii libgusb2 0.1.3-5 amd64 GLib wrapper around libusb1
ii libusb-0.1-4:amd64 2:0.1.12-23 amd64 userspace USB programming library
ii libusb-1.0-0:amd64 2:1.0.12-2 amd64 userspace USB programming library
rc libusbmuxd1 1.0.7-2ubuntu0.1 amd64 USB multiplexor daemon for iPhone and iPod Touch devices - library
ii libusbmuxd2 1.0.8-1ubuntu0.1 amd64 USB multiplexor daemon for iPhone and iPod Touch devices - library
9 ======================================= python --version
2.7.3
10 ======================================= ls -al /usr/lib/mozilla/plugins/
total 696
drwxr-xr-x 2 root root 4096 déc. 21 11:50 .
drwxr-xr-x 3 root root 4096 août 23 2012 ..
lrwxrwxrwx 1 root root 37 déc. 18 00:24 flashplugin-alternative.so -> /etc/alternatives/mozilla-flashplugin
lrwxrwxrwx 1 root root 39 déc. 21 11:50 libjavaplugin.so -> /etc/alternatives/mozilla-javaplugin.so
-rw-r--r-- 1 root root 6080 nov. 29 2012 librhythmbox-itms-detection-plugin.so
-rw-r--r-- 1 root root 100736 nov. 5 2012 libtotem-cone-plugin.so
-rw-r--r-- 1 root root 105440 nov. 5 2012 libtotem-gmp-plugin.so
-rw-r--r-- 1 root root 72048 nov. 5 2012 libtotem-mully-plugin.so
-rw-r--r-- 1 root root 80576 nov. 5 2012 libtotem-narrowspace-plugin.so
-rw-r--r-- 1 root root 329824 nov. 3 09:21 npGarminPlugin.so
11 ======================================= ls -al $HOME/.mozilla/plugins/
Si je tente "pairing" avec GFrun, ça commence plutôt bien :
>>> F_extractor_getkey
<<< Dongle ANT+ is plugged : OK
Driver available: [<class ant.base.driver.SerialDriver at 0x7f7a978b19a8>, <class ant.base.driver.USB2Driver at 0x7f7a9766b0b8>, <class ant.base.driver.USB3Driver at 0x7f7a9766b120>]
- Using: ant.base.driver.SerialDriver
Serial information:
name: /dev/ttyUSB0
port: /dev/ttyUSB0
baudrate: 115200
bytesize: 8
parity: N
stopbits: 1
timeout: None
writeTimeout: None
xonxoff: False
rtscts: False
dsrdtr: False
interCharTimeout: None
Request basic information...
Capabilities: array('B', [8, 3, 0, 186, 54, 0])
Starting system...
Key done...
Searching...
... mais ça se termine moins bien :
Starting system...
Key done...
Searching...
Traceback (most recent call last):
File "/home/bruno/GFrun/tools/extractor/extractor_getkey.py", line 313, in main
g.start()
File "/home/bruno/GFrun/tools/extractor/ant/fs/manager.py", line 202, in start
self._main()
File "/home/bruno/GFrun/tools/extractor/ant/fs/manager.py", line 131, in _main
if self.on_authentication(beacon):
File "/home/bruno/GFrun/tools/extractor/extractor_getkey.py", line 172, in on_authentication
serial, name = self.authentication_serial()
File "/home/bruno/GFrun/tools/extractor/ant/fs/manager.py", line 337, in authentication_serial
self._serial_number))
File "/home/bruno/GFrun/tools/extractor/ant/fs/manager.py", line 178, in _send_command
self._channel.send_acknowledged_data(data)
File "/home/bruno/GFrun/tools/extractor/ant/easy/channel.py", line 100, in send_acknowledged_data
self.wait_for_event([Message.Code.EVENT_TRANSFER_TX_COMPLETED])
File "/home/bruno/GFrun/tools/extractor/ant/easy/channel.py", line 51, in wait_for_event
return wait_for_event(ok_codes, self._node._events, self._node._event_cond)
File "/home/bruno/GFrun/tools/extractor/ant/easy/filter.py", line 65, in wait_for_event
return wait_for_message(match, process, queue, condition)
File "/home/bruno/GFrun/tools/extractor/ant/easy/filter.py", line 58, in wait_for_message
raise AntException("Timed out while waiting for message")
AntException: Timed out while waiting for message
Interrupted: Timed out while waiting for message
Press [Enter] key to continue...
Bien sûr, le code de GFrun est fait pour des montres Garmin... raison pour laquelle sans doute, l'authentification qui suit
Starting system...
Key done...
Searching...
ne peut pas fonctionner, et on ne passe pas à la suite qui devrait être quelque chose comme :
Authenticating with GARMIN SWIM (numéro)
- Passkey: OK
Mon intention n'est évidemment pas d'utiliser cette montre avec Garmin connect... mais si je pouvais faire un "Extract.Fit >> Local" ça serait bien... Est-ce possible avec quelques aménagements du code de GFrun ?
... au cas où...