Ca y est, j'ai enfin pu lire des valeurs (sans passer la DLL .NET)
J'utilise la fonction OpenSerialPort et comme elle n'est pas très décrite dans le forum, je place mon code (très crade, désolé

) sur ce topic
A noter : j'utilise PureBasic 4.40 beta pour le timer windows (AddWindowTimer) car sinon, il faut bouger la souris pour que la lecture du port soit faite
Code:
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
Enumeration
#CanalCOM
#Timer1
EndEnumeration
Global *Buffer = AllocateMemory(30000)
IncludeFile "Common.pb"
;ConnexionID = OpenNetworkConnection("127.0.0.1", 3788)
;Debug ConnexionID
Procedure.s Hexa2(string$,longueur)
Debug "Longueur Trame (proc Hexa2): "+ Str(longueur) + " ["+PeekS(*Buffer)+"]"
r$ = ""
For t = 0 To longueur
a$ = Trim(Hex(PeekB(*Buffer+t) & 255))+" "
If Len(a$) = 2
a$ = "0"+ a$
EndIf
r$ = r$ + a$
Next t
r$ = r$ + Chr(13)+Chr(10)
ProcedureReturn r$
EndProcedure
Procedure LecturePort()
Resultat = AvailableSerialPortInput(#CanalCOM)
If Resultat
Debug "Il a des octets à lire : "+Str(Resultat)
longueur = ReadSerialPortData(#CanalCOM, *Buffer, Resultat)
Debug "["+PeekS(*Buffer)+"] --> " + Str(longueur)
Commande$ = Hexa2(PeekS(*Buffer), longueur)
SetGadgetText(#Editor_0, GetGadgetText(#Editor_0)+Commande$)
Debug Commande$
EndIf
EndProcedure
If OpenSerialPort(#CanalCOM, "COM9", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
Open_Window_0()
If IsWindow(#WIndow_0) = 0
CloseSerialPort(#CanalCOM)
End
EndIf
AddWindowTimer(#Window_0, #Timer1, 50)
Repeat
EventID = WaitWindowEvent()
;Resultat = ReceiveNetworkData(ConnexionID, *buffer, 20)
;Debug "data"
;SetGadgetText(#Editor_0, Hexa2(PeekS(*Buffer)))
If EventID = #PB_Event_Timer
If EventTimer() = #Timer1
LecturePort()
EndIf
EndIf
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 0
Debug "Hello"
; Resultat = CallFunction(#Bibliotheque, NomFonction$ [,Parametre1 [, Parametre2...]])
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
CloseSerialPort(#CanalCOM)
Else
MessageRequester("Erreur","Le port série n'a pas été initialisé",0)
EndIf
;CloseNetworkConnection(ConnexionID)