Lazarus 3.0 (2023.12.21.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Válasz:Lazarus USB 2012 márc. 28 19:13 #913

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
A libusb-vel próbálkozom ez alapján:
mcuprogramming.blogspot.com/2010/12/example-in-lazarus-for-libusb.html

Telepített csomagok:
libusb1-1.0.9-0.3.rc1.fc16.x86_64
libusb-devel-0.1.3-9.fc16.x86_64
libusb-0.1.3-9.fc16.x86_64
libusb-static-0.1.3-9.fc16.x86_64
libusb1-static-1.0.9-0.3.rc1.fc16.x86_64
libusb1-devel.x86_64 0:1.0.9-0.3.rc1.fc16

lsusb eredménye:
Bus 002 Device 007: ID 04d8:ff91 Microchip Technology, Inc.

dmesg eredménye:
usb 2-1.3: new full-speed USB device number 7 using ehci_hcd
usb 2-1.3: New USB device found, idVendor=04d8, idProduct=ff91
usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1.3: Product: PC-DMX Interface
usb 2-1.3: Manufacturer: Microchip Technology Inc.
generic-usb 0003:04D8:FF91.0002: hiddev0,hidraw1: USB HID v1.11 Device [Microchip Technology Inc. PC-DMX Interface ] on usb-0000:00:1d.0-1.3/input0


A Linux látja, de Lazarusból a libusb unit használatakor SIGSEGV violation-nal elszáll:
if ( libusb_kernel_driver_active() ... 



Hiányzik valami még a kernelből?

Válasz:Lazarus USB 2012 márc. 13 08:00 #896

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Igen, ezt értem, ki is próbáltam.
De a h2pas nem teljes pascal unit-ot generál, abba még bele kell javítani.
Pl. a $link direktívát be kell tenni a unit-ba.

A hid-libusb.o megvan, a hidapi.h-t konveráltam:
h2pas hidapi.h -o hidapi.pas -d

De a hidapi.pas hibákat tartalmaz, ha le szeretném fordítani.

Hogyan kellene áttenni h2pas-al a hidapi-t?

Válasz:Lazarus USB 2012 márc. 13 07:10 #895

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Ahogy ott van a belinkelt .pdf-ben...

Ez a C fejléc fájl:
#ifndef CHELLO_H
#define CHELLO_H
#include <stdio.h>
void PrintHello();
void PrintHelloS(int);
#endif
Ez pedig a C fájl:
#include "chello.h"
void PrintHello(){
printf("Hello\n");
return;
};
void PrintHelloS(int nme){
printf("Hello\n");
printf("%i",nme);
return;
};
A Free Pascal unit pedig így néz ki:
unit helloU;
{$link chello.o}
{$linklib c}
interface
uses CTypes;
procedure PrintHello; cdecl; external;
procedure PrintHelloS(nme : ctypes.cint32); cdecl; external;
implementation
end.
... és a program:
uses helloU;
begin
PrintHello;
end.
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Válasz:Lazarus USB 2012 márc. 12 17:33 #894

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Köszönöm, már mindjárt jobb... :)
Egy dolog még kérdéses: a h2pas util szépen meg is csinálja a .pp-t, de a függvények implementációja a lefordított .o fájlban van bent.
Ezt nekem kell még beletenni a .pp fájl elejére?
Pl.:
unit helloU;
{$link chello.o}
{$linklib c}

Válasz:Lazarus USB 2012 márc. 12 10:11 #893

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Ezt nézd át: ftp://ftp.freepascal.org/fpc/docs-pdf/CinFreePascal.pdf
Talán van benne valami amit hasznosnak találsz majd...
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Válasz:Lazarus USB 2012 márc. 11 12:30 #892

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Üdv!

Arra jutottam, hogy az USB eszközöket a libusb-vel lehet kezelni, de a HID típusú USB eszközökhöz a hidapi ( www.signal11.us/oss/hidapi/ ) kell.

Ez C-ben van megírva, amit lefordítottam, a hid-libusb.o meg is van a C header fájl a h2pas utility-vel átkonvertálható volt hidapi.pp unit-ra. Ezt szeretném használni Lazarus-ban. A forrdítónak kellene megadnom, hogy ezeket használja.
Használja ezt valaki?


G.

Válasz:Lazarus USB 2012 márc. 11 10:25 #891

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Üdvözöllek!

Én használom az FT232R IC-t, ez USB-RS232 illesztő. Mind windows, mind Linux alatt kezelhető.

Lazarus USB 2012 márc. 05 18:31 #890

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Üdv!

Lazarus alatt az USB portot hogyan lehet vezérelni/kezelni?
OS független kellene (Linux, windows) - ha van ilyen.


G.

  • Oldal:
  • 1