Page 1 sur 1
[R] Mise à jour permanente de variables dans une
Posté : lun. 23 févr. 2009 13:59
par pierrotm777
Bonjour,
J'ai crée une GUI avec quatre variables pour l'instant qui sont transmises
par un programme (RideRunner anciennement RoadRunner) .
La commande RR.GetInfo permettant de les lires en temps réel .
Mon problème est que les variables ne se mettent pas à jour mais restent figées.
De plus le programme sort tout seul .
Que dois je faire svp .
Voici mon code:
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
;Test existance RideRunner
$rr = "NIL"
$F = winexists ("RideRunner")
If $F = 0 Then msgbox (0, "Error", "Ride Runner doit fonctionner pour que Speedlimit démarre", 5)
If $F = 1 then
$RR = ObjCreate("RideRunner.SDK")
EndIf
;Informations issues de RideRunner
$MySpd = $RR.GetInfo("GPSSPD")
$CurrentLat = $RR.getinfo("GPSLAT")
$CurrentLon = $RR.getinfo("GPSLON")
$CurrentHDG = $RR.getinfo("GPSHDG")
;MsgBox(0, '', $CurrentLat )
#Region ### START Koda GUI section ###
$Form1 = GUICreate("RRGetInfo V1.0", 568, 353, -1, -1)
$label1 = GUICtrlCreateLabel("La vitesse est de :"&$RR.GetInfo("GPSSPD"), 16, 40, 400, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$label2 = GUICtrlCreateLabel("La Latitude de : "&$RR.getinfo("GPSLAT"), 16, 80, 400, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$label3 = GUICtrlCreateLabel("La Longitude est de : "&$RR.getinfo("GPSLON"), 16, 120, 400, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$label4 = GUICtrlCreateLabel("Le nombre de radars est de : "&$RR.getinfo("GPSLON"), 16, 160, 400, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$Annuler = GUICtrlCreateButton("Annuler", 480, 296, 75, 25)
$OK = GUICtrlCreateButton("OK", 392, 296, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
sleep(10000)
While 1 ; Boucle de message (voir la section création d'une GUI pour comprendre le fonctionnement)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $Annuler ; Si la fenêtre est fermée ou si le bouton annulé est cliqué.
Exit
; on attribue ca valeur au champ de l'input.
Case $OK ; Si le bouton OK à été cliqué.
GUICtrlRead($label1) ; On lit la variable GPSSPD issue de RideRunner
GUIDelete($Form1) ; Efface la GUI
EndSwitch
WEnd
Merci par avance,
Pierre
Re: [..] Mise à jour permanente de variables dans une
Posté : lun. 23 févr. 2009 15:32
par primax
Salut
Pour te donner un exemple
je viens ajouter un bouton pour mettre a jour.
et sinon la mise à jour se fera toutes les minutes , tu peux changer cela en changeant la valeur $tempo . je n ai pas regarder pour qoi cela crache mais fait une recherche sur error handler tu devrai embarquer une fonction pour avoir une description sur l erreur qui se produit _ieerrorhandler de memoire
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
$tempo = 1000 * 60 ; Mets ici la frequence de rafraichissement en Ms
;Test existance RideRunner
$rr = "NIL"
$F = WinExists("RideRunner")
If $F = 0 Then MsgBox(0, "Error", "Ride Runner doit fonctionner pour que Speedlimit démarre", 5)
If $F = 1 Then
$rr = ObjCreate("RideRunner.SDK")
EndIf
;Informations issues de RideRunner
$MySpd = $rr.GetInfo("GPSSPD")
$CurrentLat = $rr.getinfo("GPSLAT")
$CurrentLon = $rr.getinfo("GPSLON")
$CurrentHDG = $rr.getinfo("GPSHDG")
;MsgBox(0, '', $CurrentLat )
#Region ### START Koda GUI section ###
$Form1 = GUICreate("RRGetInfo V1.0", 568, 353, -1, -1)
$label1 = GUICtrlCreateLabel("La vitesse est de :" & $rr.GetInfo("GPSSPD"), 16, 40, 400, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$label2 = GUICtrlCreateLabel("La Latitude de : " & $rr.getinfo("GPSLAT"), 16, 80, 400, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$label3 = GUICtrlCreateLabel("La Longitude est de : " & $rr.getinfo("GPSLON"), 16, 120, 400, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$label4 = GUICtrlCreateLabel("Le nombre de radars est de : " & $rr.getinfo("GPSLON"), 16, 160, 400, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$Annuler = GUICtrlCreateButton("Annuler", 480, 296, 75, 25)
$MAJ = GUICtrlCreateButton("Get", 480, 296, 75, 25)
$OK = GUICtrlCreateButton("OK", 392, 296, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Sleep(10000)
AdlibEnable("GetRide", $tempo)
While 1 ; Boucle de message (voir la section création d'une GUI pour comprendre le fonctionnement)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $Annuler ; Si la fenêtre est fermée ou si le bouton annulé est cliqué.
Exit
; on attribue ca valeur au champ de l'input.
Case $OK ; Si le bouton OK à été cliqué.
GUICtrlRead($label1) ; On lit la variable GPSSPD issue de RideRunner
GUIDelete($Form1) ; Efface la GUI
Case $MAJ
GetRide()
EndSwitch
WEnd
AdlibDisable()
Func GetRide()
If IsObj($rr) Then
$MySpd = $rr.GetInfo("GPSSPD")
$CurrentLat = $rr.getinfo("GPSLAT")
$CurrentLon = $rr.getinfo("GPSLON")
$CurrentHDG = $rr.getinfo("GPSHDG")
EndIf
EndFunc ;==>GetRide
Re: [..] Mise à jour permanente de variables dans une
Posté : lun. 23 févr. 2009 18:21
par pierrotm777
Merci primax et bonjour,
J'ai testé ta proposition mais les valeurs ne se mettent pas à jour !
Re: [..] Mise à jour permanente de variables dans une
Posté : lun. 23 févr. 2009 19:25
par primax
Désolé , repondu un peu vite car devait partir du travail .
remplace le fonction par celle ci
Code : Tout sélectionner
Func GetRide()
If IsObj($rr) Then
GuiCtrlSetData($label1, $rr.GetInfo("GPSSPD"))
GuiCtrlSetData($label2, $rr.getinfo("GPSLAT"))
GuiCtrlSetData($label3, $rr.getinfo("GPSLON"))
GuiCtrlSetData($label4, $rr.getinfo("GPSLON"))
EndIf
EndFunc ;==>GetRide
Devrait aller mieux
@+
Re: [..] Mise à jour permanente de variables dans une
Posté : lun. 23 févr. 2009 19:58
par pierrotm777
Merci primax , tu es un prince .
Ca fonctionne trés bien, seulement je perd ,dés la premieère mise à jour les textes précédents les variables ?
Une idée ?
Merci
Re: [..] Mise à jour permanente de variables dans une
Posté : mar. 24 févr. 2009 13:22
par primax
ca s ameliore...
La fonction GuiCtrlSetData te sert a mettre a jour ton controle, donc tu modifie en faisant :
Code : Tout sélectionner
Func GetRide()
If IsObj($rr) Then
GuiCtrlSetData($label1, "La vitesse est de : " & $rr.GetInfo("GPSSPD"))
GuiCtrlSetData($label2, "La Latitude est de : " & $rr.getinfo("GPSLAT"))
GuiCtrlSetData($label3, "La Longitude est de : " & $rr.getinfo("GPSLON"))
GuiCtrlSetData($label4, "Le nombre de radars est de : " & $rr.getinfo("GPSHDG"))
EndIf
EndFunc ;==>GetRide
Bon courage
Re: [..] Mise à jour permanente de variables dans une
Posté : mar. 24 févr. 2009 14:25
par pierrotm777
Merci primax ça marche .