IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

PureBasic 6.30 beta 1 est disponible sur votre compte

Le , par comtois

0PARTAGES

4  0 
Hello everyone,

I hope the holidays season was good ! The brand new beta of PureBasic is available on your online account. It mostly has features which were hanging on my TODO list since a while, and fix a few long time bugs in the process . Here we go:
  • Added: Brand new HID library !
  • Added: Add #PB_ListIcon_NoHeaders flag ListIconGadget()
  • Added: Add #PB_Explorer_NoHeaders flag ExplorerListGadget()
  • Added: Add Unicode() to create a dynamic unicode string like Ascii() and UTF8()
  • Added: HeaderSection/EndHeaderSection to put C or ASM code outside the main() function
  • Added: #PB_InputRequester_HandleCancel to have a special return for InputRequester() if the user cancelled it
  • Added: Gzip encoding support for HttpRequest(), HttpRequestMemory(), RecieveHTTPFile() and RecieveHTTPMemory()
  • Added: #PB_Menu_NativeImageSize tot CreateImageMenu() and CreatePopupImageMenu() to allow larger icons in menus (Windows)
  • Added: #PB_2DDrawing_FastText for DrawingMode() to use have a faster text rendering (Windows).
  • Added: #PB_Mail_NoSSLCheck and #PB_Mail_WeakSSL flags for SendMail() to ease tests.
  • Added: Automatic BOM handling to CreateFile() and ReadFile()/OpenFile() with #PB_File_BOM flag
  • Added: Changed x,y type for DisplaySprite/DisplayTransparentSprite() from integer to float (Not supported on DX9 or DX11 subsystem)
  • Added: Placeholder support for StringGadget() with #PB_String_PlaceHolder flag
  • Added: PackerCallback() to monitor and abort compression.
  • Updated: Splitted the 2DDrawing lib with function which doesn't needed dependencies (https://www.purebasic.fr/english/vie...ic.php?t=87034)
  • Changed: CreateImage() background color now takes full RGBA() color for 32-bit picture. #PB_Image_Transparent and #PB_Image_TransparentBlack can be used to set a transparent background with white or black antialising.


Have fun !

The Fantaisie Software Team
Here is an HID small example, but I don't have an HID device to test, so may be someone can test it. It's based on hidapi: https://github.com/libusb/hidapi . On Linux, it needs udev and libusb1.0 package to work:
sudo apt install libusb-1.0-0-dev libudev-dev
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#PB_HID_Path             = 1
#PB_HID_VendorId         = 2
#PB_HID_ProductId        = 3
#PB_HID_SerialNumber     = 4
#PB_HID_ReleaseNumber    = 5
#PB_HID_Manufacturer     = 6
#PB_HID_Product          = 7
#PB_HID_UsagePage        = 8
#PB_HID_Usage            = 9
#PB_HID_InterfaceNumber  = 10
#PB_HID_BusType          = 11
OpenConsole()

ExamineHIDs()
While NextHID()
  
  Debug HIDInfo(#PB_HID_Product)
  Debug HIDInfo(#PB_HID_Manufacturer)
  Debug HIDInfo(#PB_HID_VendorId)
  Debug HIDInfo(#PB_HID_ProductId)
  Debug HIDInfo(#PB_HID_Path)
  Debug HIDInfo(#PB_HID_SerialNumber)
Wend
Source de l'information
Vous avez lu gratuitement 12 269 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de comtois
Responsable Purebasic https://www.developpez.com
Le 02/09/2025 à 11:25
Un utilisateur a fait un test de la lib HID

I briefly tested the new HID library with Windows 7 x64 and PB x86. Communication with a Brymen BC-86X adapter for a digital multimeter works.
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
EnableExplicit
 
Define iHidNumber.i
Define fResult.i
Define iResult.i
Define c.i
 
Dim aaData.a(4 - 1)
Dim aaBuffer.a(3 * 9 - 1)
 
aaData(0) =$00	; ReportNumber.
aaData(1) =$00	; Command 1
aaData(2) =$86	; Command 2
aaData(3) =$66	; Command 3
 
iHidNumber = OpenHID(#PB_Any, $0820, $0001)
 
fResult = Bool(iHidNumber)
If Not fResult
	Debug("Error OpenHID: " + HIDError())
EndIf
 
If fResult
	iResult = WriteHIDData(iHidNumber, @aaData(0), 4)
	fResult = Bool(iResult)
	If Not fResult
		Debug("Error WriteHIDData: " + HIDError())
	Else
		Debug("iResult WriteHIDData: " + iResult)
	EndIf
EndIf
 
If fResult
	For c = 0 To 2
		iResult = ReadHIDData(iHidNumber, @aaBuffer(c * 9 + 1), 8, 1000)
		If Not iResult
			Debug("Error ReadHIDData: " + HIDError())
			Break
		Else
			Debug("iResult ReadHIDData: " + iResult)
		EndIf
	Next
	ShowMemoryViewer(@aaBuffer(0), 27)
EndIf
 
If iHidNumber
	CloseHID(iHidNumber)
EndIf
0  0 
Avatar de comtois
Responsable Purebasic https://www.developpez.com
Le 06/10/2025 à 18:52
This lib is a mimic of the regular gadget lib so it should be easy for PB coders to get a grip of it. Doc will be ready a bit later
Liste des fonctions de la nouvelle biblio ScreenGadget en attendant la doc :
  • AddScreenGadgetItem(#ScreenGadget, Position, Text$) ; Adds an item to a gadget (ListView, ComboBox etc.)
  • ButtonImageScreenGadget(#ScreenGadget, x, y, Width, Height, ImageID [, Flags]) ; Creates a button image gadget in the current screen or screen window.
  • ButtonScreenGadget(#ScreenGadget, x, y, Width, Height, Text$ [, Flags]) ; Creates a button gadget in the current screen or screen window.
  • CheckBoxScreenGadget(#ScreenGadget, x, y, Width, Height, Text$ [, Flags]) ; Creates a checkbox gadget in the current screen or screen window.
  • CloseScreenGadgetList(#ScreenGadget [, GadgetItem]) ; Closes the current screen gadget list and go back to the previous one.
  • CloseScreenWindow(#ScreenWindow) ; Closes the specified screen window.
  • ComboBoxScreenGadget(#ScreenGadget, x, y, Width, Height [, Flags]) ; Creates a combobox gadget in the current screen or screen window.
  • ContainerScreenGadget(#ScreenGadget, x, y, Width, Height, [, Flags]) ; Creates a container gadget in the current screen or screen window.
  • DisableScreenGadget(#ScreenGadget) ; Disables or enables the #ScreenGadget.
  • DisableScreenWindow(#ScreenWindow, State) ; Disable or enable all user input in the window.
  • EditorScreenGadget(#ScreenGadget, x, y, Width, Height [, Flags]) ; Creates an editor gadget in the current screen or screen window.
  • EventScreenGadget() ; Returns the screen gadget number (#ScreenGagdet) which triggered the event.
  • FreeScreenGadget(#ScreenGadget) ; Frees the specified screen gadget
  • GetScreenGadgetState(#ScreenGadget) ; Gets the state of the #ScreenGadget.
  • GetScreenGadgetText(#ScreenGadget) ; Gets the text of the #ScreenGadget.
  • HideScreenGadget(#ScreenGadget) ; Hides or shows the specified screen gadget.
  • HideScreenWindow(#ScreenWindow, State) ; Hide or show the specified #ScreenWindow.
  • ImageScreenGadget(#ScreenGadget, x, y, Width, Height, ImageID [, Flags]) ; Creates a image gadget in the current screen or screen window.
  • InitScreenGadgets() ; Intialize the screen gadget library for the current screen.
  • IsScreenGadget(#ScreenGadget) ; Tests if the given screen gadget is a valid screen gadget object.
  • ListViewScreenGadget(#ScreenGadget, x, y, Width, Height [, Flags]) ; Creates a listview gadget in the current screen or screen window.
  • OpenScreenGadgetList(#ScreenGadget [, GadgetItem]) ; Makes the #ScreenGadget the current screen gadget list.
  • OpenScreenWindow(#ScreenWindow, x, y, Width, Height [Title$ [, Flags]]) ; Open a new window on the current screen.
  • OptionScreenGadget(#ScreenGadget, x, y, Width, Height, Text$) ; Creates an option gadget in the current screen or screen window.
  • PanelScreenGadget(#ScreenGadget, x, y, Width, Height) ; Create a panel gadget in the current screen or screen window.
  • ProgressBarScreenGadget(#ScreenGadget, x, y, Width, Height, Min, Max [, Flags]) ; Creates a progressbar gadget in the current screen or screen window.
  • RemoveScreenGadgetItem(#ScreenGadget, Position, Text$) ; Removes the item at the specified position from the #ScreenGadget.
  • RenderScreenGadgets() ; Renders the screen window and gadgets on the current screen.
  • ResizeScreenGadget(#ScreenGadget, x, y, Width, Height) ; Moves and resizes the specified #ScreenGadget to the given position and dimensions.
  • ResizeScreenWindow(#ScreenWindow, x, y, Width, Height) ; Moves and resizes the specified #ScreenWindow to the given position and dimensions.
  • ScreenEventType() ; After ScreenWindowEvent(), use this function to determine of which type the event is.
  • ScreenGadgetHeight(#ScreenGadget) ; Returns the height of the #ScreenGadget, in pixels.
  • ScreenGadgetSkin(SkinPart, #Image [, FreePrevious]) ; Set an image for a specific skin part.
  • ScreenGadgetType(#ScreenGadget) ; Returns the type of the specified #ScreenGadget.
  • ScreenGadgetWidth(#ScreenGadget) ; Returns the width of the #ScreenGadget, in pixels.
  • ScreenGadgetX(#ScreenGadget) ; Returns the X position of the #ScreenGadget, in pixels.
  • ScreenGadgetY(#ScreenGadget) ; Returns the Y position of the #ScreenGadget, in pixels.
  • ScreenWindowAnimation(#ScreenWindow, Way, Duration, [, Fading [, Zoom, [x, [y, [, Angle]]]]) ; Setup an animation to open the window.
  • ScreenWindowEvent() ; Check if an event has occurred on any of the opened screen windows.
  • ScrollAreaScreenGadget(#ScreenGadget, x, y, Width, Height, ScrollAreaWidth, ScrollAreaHeight, ScrollStep [, Flags]) ; Creates a scrollarea gadget in the current screen or screen window.
  • ScrollBarScreenGadget(#ScreenGadget, x, y, Width, Height, Min, Max, PageLength [, Flags]) ; Creates a scrollbar gadget in the current screen or screen window.
  • SetScreenGadgetFont(#ScreenGadget, FontID) ; Changes the font which will be used by newly created gadgets.
  • SetScreenGadgetState(#ScreenGadget, State) ; Changes the state of the #ScreenGadget.
  • SetScreenGadgetText(#ScreenGadget, Text$) ; Changes the text of the #ScreenGadget.
  • SplitterScreenGadget(#ScreenGadget, x, y, Width, Height, #ScreenGadget1, #ScreenGadget2 [, Flags]) ; Creates a splitter gadget in the current screen or screen window.
  • StringScreenGadget(#ScreenGadget, x, y, Width, Height, Text$ [, Flags]) ; Creates a string gadget in the current screen or screen window.
  • TextScreenGadget(#ScreenGadget, x, y, Width, Height, Text$ [, Flags]) ; Creates a text gadget in the current screen or screen window.
  • TrackBarScreenGadget(#ScreenGadget, x, y, Width, Height, Min, Max [, Flags]) ; Creates a trackbar gadget in the current screen or screen window.
0  0