Page 1 sur 1

ReadSerialPortData

Publié : ven. 28/août/2009 17:47
par cirederff
Bonjour.

Je souhaite communiquer avec un microcontroleur, lire les données dans un premier temps, mais je suis complètement largué avec cette bibliothèque, où est ce que je peu lire les données reçues. Je me doute qu'il faille utilise la zone de mémoire, mais on fait comment? :oops:

Code : Tout sélectionner

Enumeration
#fenetre
#fenetre_largeur
#fenetre_hauteur
EndEnumeration




OpenWindow(#fenetre ,0,0,600 ,500 ,"rs232",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)

  If OpenSerialPort(0, "COM8", 115200, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
    Debug "Succes"
  Else
    Debug "Echec"
  EndIf


		Repeat
		Event1 = WaitWindowEvent() ;on met à jour les évenements pour la gestion des gadgets
		lecture_serie = ReadSerialPortData(0, ZoneMemoire, Length)
		Resultat = AvailableSerialPortInput(0)
		

		Debug  lecture_serie
		Debug "blabla"
		Debug  ZoneMemoire
		
		Until Event1=#PB_Event_CloseWindow
		CloseSerialPort(COM8)
		
End

Publié : lun. 31/août/2009 13:46
par cirederff
Salut, je viens de trouver un example qui me conviens sur le forum allemand

Code : Tout sélectionner

baud=115200
OpenSerialPort(1,"COM1",baud,#PB_SerialPort_EvenParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
OpenWindow(1,0,0,500,500,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  CreateGadgetList(WindowID(1))
  StringGadget(1,5,5,50,25,"")
  ButtonGadget(0,60,5,40,25,"send")
  ButtonGadget(3,110,5,40,25,"clear")
  TextGadget(99,200,5,100,15,"")
  EditorGadget(2,5,40,490,400,#PB_Editor_ReadOnly)

  Repeat
    event=WaitWindowEvent(20)
    Select event
      Case #PB_Event_CloseWindow
        CloseSerialPort(1)
      Case #PB_Event_Gadget
        SetGadgetText(99,Str(AvailableSerialPortOutput(1)))
        Select EventGadget()
          Case 0
            a$=GetGadgetText(1)
            If Len(a$)=1
              WriteSerialPortData(1,@a$,1)
              text$=GetGadgetText(2)+a$
            Else
              a$=Chr(Val(a$))
              WriteSerialPortData(1,@a$,1)
              text$=GetGadgetText(2)+"ASCII: "+Str(Asc(a$))
            EndIf
            SetGadgetText(2,text$+Chr(10))
            SetGadgetText(1,"")
            SetActiveGadget(1)
          Case 3
            SetGadgetText(2,"")
        EndSelect
    EndSelect
    If IsSerialPort(1)
      input=AvailableSerialPortInput(1)
      If input
        a$=Space(input)
        ReadSerialPortData(1,@a$,input)
        text$=GetGadgetText(2)+a$
        SetGadgetText(2,text$)

      EndIf
    EndIf
  Until event=#PB_Event_CloseWindow
trop cool :)