[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: where is usb.h?



On Tue, Apr 4, 2017 at 2:36 PM, songbird <songbird@anthive.com> wrote:
> Mark Copper wrote:
>>>
>>>   is it missing a build dependency or something?
>>>
>>>   what does apt-get build-dep libinline-c-perl do?
>>>
>>
>>
>> The following NEW packages will be installed:
>>   libfile-sharedir-install-perl libio-all-perl libspiffy-perl
>>   libsub-uplevel-perl libtest-warn-perl
>>
>> I wasn't expecting that.
>>
>> The package libdevice-usb-perl seemed to install without difficulty.
>> It works in the sense that the main constructor functions, but other
>> things don't work.  I know it's old code but I just need to read a
>> number from an interrupt endpoint so I was just trying chase down
>> whether it was an easy-to-fix problem.
>
>   remember that installing a package for use
> is different than installing a package for
> building.
>
>   did you try the same command for libdevice-usb-perl?
>
>   aka:
>
> apt-get build-dep libdevice-usb-perl
>
>   ?

Nothing at all there.  I'm thinking it must be something simple.  This
test produces the output below which made me think not all the C code
was getting read in properly.

#!/usr/bin/perl

use warnings;
use strict;
use Device::USB;
use Carp;
use Data::Dumper;
$Data::Dumper::Indent = 1;

my $data;
my $VENDOR=0x0b67;
my $PRODUCT=0x555e;
my $usb = Device::USB->new();
my $dev = $usb->find_device( $VENDOR, $PRODUCT );
croak "Device not found.\n" unless defined $dev;
print "Device found: ", $dev->filename(), ": ";
printf "Device: %04X:%04X\n", $dev->idVendor(), $dev->idProduct();
if($dev->open())
    {
        print "\t", $dev->manufacturer(), ": ", $dev->product(), "\n";
        print Dumper( $dev );
    }
print "Bytes read: " . $dev->interrupt_read(129, $data, 64, 1000) . "\n";
print "Data read: " . $data . "\n";
my $cfg = $dev->config()->[0];
print "Config:", $cfg->iConfiguration(), ": interface count: ",
$cfg->nNumInterfaces(), "\n";
__END__


Output:
Use of uninitialized value in concatenation (.) or string at
/usr/lib/x86_64-linux-gnu/perl5/5.20/Device/USB.pm line 10.
Use of uninitialized value in concatenation (.) or string at
/usr/lib/x86_64-linux-gnu/perl5/5.20/Device/USB.pm line 10.
Use of uninitialized value in concatenation (.) or string at
/usr/lib/x86_64-linux-gnu/perl5/5.20/Device/USB.pm line 10.
Device found: 003: Device: 0B67:555E
    :
$VAR1 = bless( {
  'descriptor' => {
    'idVendor' => 2919,
    'iProduct' => 2,
    'bcdDevice' => '0.04',
    'bcdUSB' => '1.10',
    'idProduct' => 21854,
    'bDeviceSubClass' => 0,
    'iSerialNumber' => 3,
    'bNumConfigurations' => 1,
    'bDeviceProtocol' => 0,
    'bMaxPacketSize0' => 64,
    'iManufacturer' => 1,
    'bDescriptorType' => 1,
    'bDeviceClass' => 0
  },
  'config' => [
    bless( {
      'bConfigurationValue' => 1,
      'bNumInterfaces' => 1,
      'MaxPower' => 100,
      'bmAttributes' => 128,
      'wTotalLength' => 41,
      'interfaces' => [
        [
          bless( {
            'bAlternateSetting' => 0,
            'endpoints' => [
              bless( {
                'bDescriptorType' => 5,
                'bSynchAddress' => 0,
                'bRefresh' => 0,
                'wMaxPacketSize' => 6,
                'bEndpointAddress' => 129,
                'bInterval' => 50,
                'bmAttributes' => 3
              }, 'Device::USB::DevEndpoint' ),
              bless( {
                'bmAttributes' => 3,
                'bInterval' => 100,
                'bEndpointAddress' => 2,
                'bSynchAddress' => 0,
                'wMaxPacketSize' => 14,
                'bRefresh' => 0,
                'bDescriptorType' => 5
              }, 'Device::USB::DevEndpoint' )
            ],
            'bInterfaceNumber' => 0,
            'bInterfaceSubClass' => 141,
            'bNumEndpoints' => 2,
            'bInterfaceClass' => 3,
            'bDescriptorType' => 4,
            'bInterfaceProtocol' => 141,
            'iInterface' => 0
          }, 'Device::USB::DevInterface' )
        ]
      ],
      'bDescriptorType' => 2,
      'iConfiguration' => 4
    }, 'Device::USB::DevConfig' )
  ],
  'handle' => 16283552,
  'device' => 21499456,
  'filename' => '003'
}, 'Device::USB::Device' );
Bytes read: -2
Data read:
Can't locate object method "nNumInterfaces" via package
"Device::USB::DevConfig" at ./read_usb.pl line 26, <DATA> line 1.


Reply to: