ReadSerialPortData

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
cirederff
Messages : 54
Inscription : ven. 15/mai/2009 19:57

ReadSerialPortData

Message 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
cirederff
Messages : 54
Inscription : ven. 15/mai/2009 19:57

Message 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 :)
Répondre