Giter Site home page Giter Site logo

loophole's Introduction

Hi there ๐Ÿ‘‹

loophole's People

Contributors

edeckers avatar gitter-badger avatar jakuje avatar jedie avatar k3ho avatar ortylp avatar rsc-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

loophole's Issues

Display example udev rule...

...and how can it looks like?!?

Maybe display a example udev rule, if the current user can't access, as here #8

Maybe something like this:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0da4", ATTRS{idProduct}=="0008", OWNER="<username>"

Fill ids and username automaticlly.
(I don't test this rule and don't know if it`s a good idea and a common rule...)

What types of data can be downloaded?

I am really interested in accessing detailed sleep and heart rate data. What types of data can be downloaded with this library? Is there any sample data available for a demo?

convert polar byte array into txt files

We want to use a polar A360 in our hospital. And as you can imaging we are not happy (and allowed to) to send de data of our patients into the Polar cloud. So I was very happy to find your software.
I installed the software onto a windows system en was able to connect en read/dump the files from the connected device. I nerver used python before so as far I can understand you use the protocol buffers to decode the files when they are read from the device but how can I convert the files into a readable format ( e.g text ) so we can use then in excel ?
Regards
Bart Nienhuis

Route.gzb

Hi! How should i process the data from Route.gzb to make sense? Using protoc raw to decode but the GPS cordinates doesnt make sense for me! Thanks!

Polar v650

Hi!

I'm trying to use your software with Polar v650. The list command does see the device, but when I try to connect it I get an error

loophole(no device)>list
0 - Polar V650 (BUEY4HDMAIMVW8OJ)

loophole(no device)>connect 0
Traceback (most recent call last):
File "~/anaconda2/lib/python2.7/site-packages/loophole/main.py", line 300, in
main()
File "~/anaconda2/lib/python2.7/site-packages/loophole/main.py", line 293, in main
cli.cmdloop(__INTRO.format(version))
File "~/anaconda2/lib/python2.7/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "~/anaconda2/lib/python2.7/cmd.py", line 221, in onecmd
return func(arg)
File "~/anaconda2/lib/python2.7/site-packages/loophole/main.py", line 116, in do_connect
self.device.open()
File "~/anaconda2/lib/python2.7/site-packages/loophole/polar/init.py", line 667, in open
self.usb.open(self.usb_device)
File "~/anaconda2/lib/python2.7/site-packages/loophole/polar/init.py", line 587, in open
self.usb.open(usb_device)
File "~/anaconda2/lib/python2.7/site-packages/loophole/polar/init.py", line 502, in open
assert self.ep_out_0 is not None
AssertionError

Is it possible to solve?

Thanks!

Issue connecting Polar Vantage V

Dear @rsc-dev,
I get the following error message when I try to connect loophole to my Polar Vantage V:

.../__init__.py", line 502, in open
assert self.ep_out_0 is not None

I realize the Vantage series was not out when you wrote the code, but would you be so kind as to look into this matter, or perhaps give me some pointers so that I can try myself?

Many thanks in advance.

Polar Ignite

Hi Roscoe, I'm wondering if you're still doing any work on this. I bought a polar ignite model, and unfortunately loophole doesn't seem to want to connect. If you have any thoughts on what I might try, I'd appreciate it very, very much.

dump will not end

The "dump" will save many files, but it will not end and "hang"...

Strg-C will raise this:

  File "src/loophole/loophole/__main__.py", line 185, in do_dump
    data = self.device.read_file('{}{}'.format(directory, file.name))
  File "/home/jens/workspace/polar_venv/src/loophole/loophole/polar/__init__.py", line 728, in read_file
    resp = self.usb.send(request=req)
  File "/home/jens/workspace/polar_venv/src/loophole/loophole/polar/__init__.py", line 606, in send
    resp = self.usb.send(request, timeout)
  File "/home/jens/workspace/polar_venv/src/loophole/loophole/polar/__init__.py", line 542, in send
    data = self.__send_wait(ack, timeout)
  File "/home/jens/workspace/polar_venv/src/loophole/loophole/polar/__init__.py", line 436, in __send_wait
    response = self.ep_in_0.read(64, timeout)
  File "/home/jens/workspace/polar_venv/src/pyusb/usb/core.py", line 402, in read
    return self.device.read(self, size_or_buffer, timeout)
  File "/home/jens/workspace/polar_venv/src/pyusb/usb/core.py", line 988, in read
    self.__get_timeout(timeout))
  File "/home/jens/workspace/polar_venv/src/pyusb/usb/backend/libusb1.py", line 851, in intr_read
    timeout)
  File "/home/jens/workspace/polar_venv/src/pyusb/usb/backend/libusb1.py", line 933, in __read
    timeout)
KeyboardInterrupt

Maybe the default timeout=2000 is a little bit to long?!?

EDIT: I not see that the last file is: /SYS/FONT/JA.SIF (3135521 bytes) maybe it needs more time, because it`s a big file?!?
Is it possible to display some status information?!?

loophole exits exceptionaly with: "The device has no langid"

I have m400 connected to usb and when trying to list devices using loophole I get this:

loophole(no device)>list
Traceback (most recent call last):
  File "__main__.py", line 241, in <module>
    main()
  File "__main__.py", line 234, in main
    cli.cmdloop(__INTRO.format(__version__))
  File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
    stop = self.onecmd(line)
  File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
    return func(arg)
  File "__main__.py", line 74, in do_list
    info = Device.get_info(dev)
  File "/home/lklich/Projects/loophole/loophole/polar/__init__.py", line 549, in get_info
    return usb.get_info(usb_device)
  File "/home/lklich/Projects/loophole/loophole/polar/__init__.py", line 472, in get_info
    return self.usb.get_info(usb_device)
  File "/home/lklich/Projects/loophole/loophole/polar/__init__.py", line 370, in get_info
    info['manufacturer'] = self.usb.util.get_string(usb_device, usb_device.iManufacturer)
  File "/usr/local/lib/python2.7/dist-packages/usb/util.py", line 314, in get_string
    raise ValueError("The device has no langid")
ValueError: The device has no langid

My lsusb (if needed):

โžœ  loophole git:(master) lsusb                                                                                                                                                                git:(master|) 
Bus 001 Device 004: ID 0a5c:5800 Broadcom Corp. BCM5880 Secure Applications Processor
Bus 001 Device 003: ID 8087:07dc Intel Corp. 
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 1bcf:2985 Sunplus Innovation Technology Inc. Laptop Integrated Webcam HD
Bus 002 Device 003: ID 0da4:0008 Polar Electro Oy Loop
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I'm using ubuntu 16.04 with kernel 4.4

Windows 10 - permission problem finding and configuring USB device

I am trying to diagnose a Windows permission problem using pyusb.

It shows up with the typical errors "The device has no langid (permission issue, no string descriptors supported or device error)" and "The device has no langid (permission issue, no string descriptors supported or device error)"

Test code is simple, just find and print the dev to see if strings have been fetched and try to do a set configuration.

This works correctly on Linux and several of my Windows test systems (both Windows 10 and 11.)

But it is failing consistently on one Windows 10 system.

The device in question is a Garmin Ant+ (aka Dynastream) dongle. It can be accessed by other software correctly on that system. I have tried several different ones, as well as a Cycplus Ant+ dongle. None can be accessed.

I have also tried running the test program from a command prompt started as system administrator. No differences.

I am testing this with a pyinstaller created exe that bundles in the libusb-1.0.dll, and verified that works correctly on my other Windows systems.

Also tried libusb0.dll. Again works correctly elsewhere, but fails on the one Windows 10 system in an identical fashion

Suggestions would be welcome!

Thanks!

`is_ant_device: dev: 0x1009
testpyusb: dev: DEVICE ID 0fcf:1009 on Bus 003 Address 017 =================
bLength : 0x12 (18 bytes)
bDescriptorType : 0x1 Device
bcdUSB : 0x200 USB 2.0
bDeviceClass : 0x0 Specified at interface
bDeviceSubClass : 0x0
bDeviceProtocol : 0x0
bMaxPacketSize0 : 0x20 (32 bytes)
idVendor : 0x0fcf
idProduct : 0x1009
bcdDevice : 0x100 Device 1.0
iManufacturer : 0x1 Error Accessing String
iProduct : 0x2 Error Accessing String
iSerialNumber : 0x3 Error Accessing String
bNumConfigurations : 0x1

testpyusb: fetching string descriptors
testpyusb: dev.manufacturer e: The device has no langid (permission issue, no string descriptors supported or device error)
testpyusb: dev.product e: The device has no langid (permission issue, no string descriptors supported or device error)
testpyusb: dev.idVendor 0x0fcf
testpyusb: dev.idProduct 0x1009
testpyusb: set_configuration
testpyusb: set configuration failed e: [Errno 13] Access denied (insufficient permissions)

'

GARM.txt
testpyusb.py.txt

ValueError: The device has no langid

I have a Polar A360, Firmware v1.2.60, HW-Model 00756861.01

Traceback (most recent call last):
  File "__main__.py", line 285, in <module>
    main()
  File "__main__.py", line 278, in main
    cli.cmdloop(__INTRO.format(__version__))
  File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
    stop = self.onecmd(line)
  File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
    return func(arg)
  File "__main__.py", line 75, in do_list
    info = Device.get_info(dev)
  File "/media/servershare/repos/polar_venv/src/loophole/loophole/polar/__init__.py", line 660, in get_info
    return usb.get_info(usb_device)
  File "/media/servershare/repos/polar_venv/src/loophole/loophole/polar/__init__.py", line 578, in get_info
    return self.usb.get_info(usb_device)
  File "/media/servershare/repos/polar_venv/src/loophole/loophole/polar/__init__.py", line 476, in get_info
    info['manufacturer'] = self.usb.util.get_string(usb_device, usb_device.iManufacturer)
  File "/media/servershare/repos/polar_venv/src/pyusb/usb/util.py", line 314, in get_string
    raise ValueError("The device has no langid")
ValueError: The device has no langid
$ lsusb 
...
Bus 001 Device 004: ID 0da4:0008 Polar Electro Oy Loop
...

the print output of Device.list() entry is:

0 DEVICE ID 0da4:0008 on Bus 001 Address 004 =================
 bLength                :   0x12 (18 bytes)
 bDescriptorType        :    0x1 Device
 bcdUSB                 :  0x200 USB 2.0
 bDeviceClass           :    0x0 Specified at interface
 bDeviceSubClass        :    0x0
 bDeviceProtocol        :    0x0
 bMaxPacketSize0        :   0x40 (64 bytes)
 idVendor               : 0x0da4
 idProduct              : 0x0008
 bcdDevice              :  0x100 Device 1.0
 iManufacturer          :    0x1 Error Accessing String
 iProduct               :    0x2 Error Accessing String
 iSerialNumber          :    0x3 Error Accessing String
 bNumConfigurations     :    0x1
  CONFIGURATION 1: 350 mA ==================================
   bLength              :    0x9 (9 bytes)
   bDescriptorType      :    0x2 Configuration
   wTotalLength         :   0x29 (41 bytes)
   bNumInterfaces       :    0x1
   bConfigurationValue  :    0x1
   iConfiguration       :    0x4 Error Accessing String
   bmAttributes         :   0x80 Bus Powered
   bMaxPower            :   0xaf (350 mA)
    INTERFACE 0: Human Interface Device ====================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x0
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x2
     bInterfaceClass    :    0x3 Human Interface Device
     bInterfaceSubClass :    0x0
     bInterfaceProtocol :    0x0
     iInterface         :    0x5 Error Accessing String
      ENDPOINT 0x81: Interrupt IN ==========================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x81 IN
       bmAttributes     :    0x3 Interrupt
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x1
      ENDPOINT 0x1: Interrupt OUT ==========================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :    0x1 OUT
       bmAttributes     :    0x3 Interrupt
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x1

virtualenv info:

$ pip freeze
appdirs==1.4.3
packaging==16.8
pkg-resources==0.0.0
protobuf==3.2.0
pyparsing==2.2.0
-e git+https://github.com/walac/pyusb.git@1f66ccd5d252e969b1de9bf91bf24e5c64294b8d#egg=pyusb
six==1.10.0

Device 'reset'

What files do I have to delete from the device to get it working again?
I deleted every file with date on it but it still says "please sync".

I would like to use only this software to get it working because I only have linux and I don't want it to connect to Internet. My computer should be enough.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.