Logitech G15 u. G19 EasyAccess

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Logitech G15 u. G19 EasyAccess

Beitrag von Bisonte »

dann schau dir die "G15_G19_Devel.pbi" nochmal genau an, da stehts drin...
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Logitech G15 u. G19 EasyAccess

Beitrag von KeyKon »

Um dich nich zu lang auf die Folter zu spannen, so stehts drin:

Man soll eine Prozedur in diesem Stil erstellen:

Code: Alles auswählen

Procedure OnSoftButtonsCallBack(device.l, dwButtons.l, *pContext)
  
  Debug device
  Debug dwButtons
  Debug "----"
  
EndProcedure

Und dann die Verbindung zum Display wie folgt aufbauen:

Code: Alles auswählen

Logi\Connect(ProgramName, 0, 0, @OnSoftButtonsCallBack())
Und schon wirst du sehen, was bei den einzelnen Buttons für Debugs rauskommen, und wie du diese Daten verarbeiten kannst. Is eigentlich mit jedem anderen Callback zu vergleichen, du musst eben nur eine Prozedur mit entsprechenden Parametern erstellen...
(Steht übrigens alles so wunderbar erklärt im Code^^, ein bisschen probieren wirkt da wunder :)
(\/) (°,,,°) (\/)
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Logitech G15 u. G19 EasyAccess

Beitrag von Andreas21 »

Das hatte ich gestern auch raus bekommen ;)
Aber danke.
Ich hatte mir die G15_G19_Devel.pbi nicht angeschaut.
Kanns ja direct auf dem LCD anzeigen lassen.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Logitech G15 u. G19 EasyAccess

Beitrag von KeyKon »

Naja, das steht übrigens auch wunderbar als Kommentar in der G15_G19.pbi bei dem Connect()-Befehlt dabei, da hatte ich es damals entdeckt^^
(\/) (°,,,°) (\/)
Benutzeravatar
lassma-asma
Beiträge: 107
Registriert: 10.07.2007 09:14
Wohnort: Saarland

Re: Logitech G15 u. G19 EasyAccess

Beitrag von lassma-asma »

ganz doofe Frage :

Wenn ich den Code vom ersten Post ( dieses Include) ausführe bekomme ich

#LGLCD_NOTIFICATION_CLOSE_CONNECTION
Konstante bereits mit anderem Wert deklariert

obwohl sie im Code darüber ja gar nicht vorkommt ...

wie kann das sein und was kann ich machen um das Include laufen zu lassen ?

danke schonma
Gruß lassma-asma

MultiPONG
HANGMAN


PB 3.94 und PureBasic 4.51 !!!
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Logitech G15 u. G19 EasyAccess

Beitrag von HeX0R »

Ich schätze, du hast noch die alte User-Lib von mir.
Da war auch eine Resident-Datei dabei (ich schätze mal G15.res, weiss es aber nicht mehr), die musst du löschen und PB neustarten.
Am besten auch gleich die alte Lib aus PureLibraries\UserLibraries mitlöschen.
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Logitech G15 u. G19 EasyAccess

Beitrag von Bisonte »

Ich wollte das ganze mal für das neue SDK (1.x) anpassen, das seit Treiberversion 8.x nur noch existiert, und stosse da auf ein paar Probleme.

1. Ich kann die .Lib Datei nicht nutzen, git laufend POLINK Errors (undefined symbol), aber da nehm ich wohl die falsche Bezeichnung...

dann schwenke ich also zur DLL Nutzung.

Wenn ich die DLL per Openlibrary() aufrufe und die Funktionen per Prototype initialisiere, klappt alles, allerdings nur, wenn man die Funktionen
NICHT in einer Prozedur aufruft !
Also wenn ich z.B. das LogiLcdInit() in einer Prozedure benutze gibt es nen IMA.

Was mache ich da falsch ?

Kurz angerissen :

Code: Alles auswählen

#LOGI_LCD_TYPE_MONO   = $00000001
#LOGI_LCD_TYPE_COLOR  = $00000002

Lib = OpenLibrary(#PB_Any, "x86/LogitechLcd.dll")

Prototype.b _LogiLcdInit(friendlyName.p-Unicode, lcdType.l);
Prototype.b _LogiLcdIsConnected(lcdType)

; Prototype.b 

If lib
  Global LogiLcdInit._LogiLcdInit = GetFunction(Lib, "LogiLcdInit")
  Global LogiLcdIsConnected._LogiLcdIsConnected = GetFunction(Lib, "LogiLcdIsConnected")
EndIf

Procedure LCDInit2(AppName.s, lcdType)
  
  If LogiLcdInit
    ProcedureReturn LogiLcdInit(AppName, lcdType)
  EndIf
  
EndProcedure

If LCDInit2("Hello", #LOGI_LCD_TYPE_COLOR) ; IMA
; If LogiLcdInit("Hello", #LOGI_LCD_TYPE_COLOR) ; <-- Kein IMA,
  
  If LogiLcdIsConnected
    Debug LogiLcdIsConnected(#LOGI_LCD_TYPE_COLOR)
  EndIf
  
EndIf
Ist hierbei egal, ob G15 oder G19 angebaut ist (also der LCDType)

Weiss jemand Rat ?
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Re: Logitech G15 u. G19 EasyAccess

Beitrag von SoS »

Ich wollte schon fragen wo Du die dll her hast, aber nach einem Update per Hand
habe ich die nun auch.(da sieht man mal wieder wie gut automatische Udates laufen.. :twisted: )

Code: Alles auswählen

#LOGI_LCD_TYPE_MONO   = $00000001
#LOGI_LCD_TYPE_COLOR  = $00000002

Lib = OpenLibrary(#PB_Any, "x64/logitechLcd.dll")
Debug Lib
Prototype.b _LogiLcdInit(friendlyName.p-Unicode, lcdType.l);
Prototype.b _LogiLcdIsConnected(lcdType)

; Prototype.b

If lib
  Global LogiLcdInit._LogiLcdInit = GetFunction(Lib, "LogiLcdInit")
  Global LogiLcdIsConnected._LogiLcdIsConnected = GetFunction(Lib, "LogiLcdIsConnected")
EndIf

Procedure LCDInit2(AppName.s, lcdType)
 
  If LogiLcdInit
    ProcedureReturn LogiLcdInit(AppName, lcdType)
  EndIf
 
EndProcedure

If LCDInit2("Hello", #LOGI_LCD_TYPE_COLOR) ; IMA
; If LogiLcdInit("Hello", #LOGI_LCD_TYPE_COLOR) ; <-- Kein IMA,
 
  If LogiLcdIsConnected
    Debug LogiLcdIsConnected(#LOGI_LCD_TYPE_COLOR)
  EndIf
 
EndIf
Um sicher zu sein das die dll auch geladen ist habe ich ein "Debug Lib" eingefügt.
Der Debugoutput
2497360
1
Hier gibts keinen IMA,liegts an der 64bit Version ?

Edit
Mit der 32bit dll unter Windows7 64 bit bekomme ich auch den IMA
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Logitech G15 u. G19 EasyAccess

Beitrag von Bisonte »

Nunja ich hab mit PBx86 angenommen, auch die x86 DLL nutzen zu müssen, egal ob es auf x64 Win läuft oder nicht.

Aber jetzt wo du das erwähnst klingt es wohl logisch, weil ja nur ein Treiber installiert wird.... hmmm...

Edit:

1. PBx86 und x86.dll auf Win7 x64 = IMA
2. PBx86 und x64.dll = IMA
3. PBx64 und x86.dll = Sinnfrei...
4. PBx64 und x64.dll = ok

Wobei ich das 1. nicht ganz so verstehe, da es nun mit anderen DLL's auch so funktioniert.
Unter anderem gibt es ja 32Bit-G19 Apps die auch auf Win7 x64 problemlos laufen...

Also müsste ich mir dann ein 32 Bit Windows installieren und darauf die Apps basteln ? Klingt merkwürdig.
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Logitech G15 u. G19 EasyAccess

Beitrag von Chimorin »

Ähm, ich weiß nicht, ob das dazu passt, aber was ich festgestellt habe ist, dass eine mit PB kompilierte DLL (x86) NUR unter x86 funktioniert. Genauso verhält es sich mit den x64-DLLs. Weiß ja nicht, ich habe das auch schon bei einigen anderen DLLs bemerkt, ich glaube das ist einfach so.
Von dem her wäre:

2. PBx86 und x64.dll = IMA ;Doppelt Sinnfrei, warum sollte x86 mit x64 Sachen umgehen können? + Nr.3
3. PBx64 und x86.dll = Sinnfrei... ;An sich logisch, da x64 mit x86 umgehen kann, ABER eben nicht die richtige DLL ist.

Zusatz:
Mit unserer Engine3D.dll ist es genauso. x64 Programm braucht x64 DLL und x86 braucht x86 DLL. Anders kann die Umgebung nicht initialisiert werden.
Bild

- formerly known as Bananenfreak -
Antworten