Objectif
Quand on appuie sur le bouton :
- l’application envoie la position du téléphone au serveur
- le serveur reçoit :
{"x":48.1762,"y":-2.7520}
Adresse utilisée :
https://sti2d.latelier22.fr/fiber/api/call-robot
1) Dans Designer, ajouter les composants
A. Ajouter le bouton
Dans User Interface :
- ajoute un Button
- nom :
BtnAppel
Mettre :
Text=APPEL ROBOT
B. Ajouter un Notifier
Dans User Interface :
- ajoute un Notifier
- nom :
Notifier1
C. Ajouter un Web
Dans Connectivity :
- ajoute un Web
- nom :
Web1
2) Vérifier les variables globales
Dans Blocks, il faut avoir au minimum :
initialize global lat to 0
initialize global lon to 0
initialize global hasFix to false
Si elles n’existent pas, crée-les.
3) Modifier le bloc GPS
Dans ton bloc :
when LocationSensor1.PositionChanged
ajoute ces 3 lignes si elles n’y sont pas déjà :
set global lat to get Latitude
set global lon to get Longitude
set global hasFix to true
Résultat attendu du bloc GPS
Ton bloc doit contenir au moins :
when LocationSensor1.PositionChanged
Latitude Longitude Altitude speed
do
set global lat to get Latitude
set global lon to get Longitude
set global hasFix to true
set Marker1.Latitude to get Latitude
set Marker1.Longitude to get Longitude
4) Créer le bloc du clic sur le bouton
Ajoute ce bloc :
when BtnAppel.Click
do
5) Dans BtnAppel.Click, tester si le GPS est prêt
Dans ce bloc, mets :
if not get global hasFix
then
call Notifier1.ShowAlert
notice "GPS pas prêt"
else
call Notifier1.ShowChooseDialog
message join
"Appeler le robot ?"
"\nlat = "
get global lat
"\nlon = "
get global lon
title "CONFIRMATION"
button1Text "OUI"
button2Text "NON"
cancelable true
6) Créer le bloc après la boîte de dialogue
Ajoute ce bloc :
when Notifier1.AfterChoosing
choice
do
7) Dans Notifier1.AfterChoosing, tester si on a cliqué sur OUI
Mets :
if get choice = "OUI"
then
8) Dans le then, mettre l’adresse du serveur
Ajoute :
set Web1.Url to "https://sti2d.latelier22.fr/fiber/api/call-robot"
9) Ajouter les headers
Ajoute ensuite :
set Web1.RequestHeaders to make a list
make a list "Content-Type" "application/json"
make a list "Connection" "Keep-Alive"
10) Envoyer les coordonnées
Méthode simple à faire comme sur ton image
Ajoute :
call Web1.PostText
text make a dictionary
key "x" value get global lat
key "y" value get global lon
11) Bloc complet Notifier1.AfterChoosing
Au final, ton bloc doit être :
when Notifier1.AfterChoosing
choice
do
if get choice = "OUI"
then
set Web1.Url to "https://sti2d.latelier22.fr/fiber/api/call-robot"
set Web1.RequestHeaders to make a list
make a list "Content-Type" "application/json"
make a list "Connection" "Keep-Alive"
call Web1.PostText
text make a dictionary
key "x" value get global lat
key "y" value get global lon
12) Créer le bloc de réponse du serveur
Ajoute ce bloc :
when Web1.GotText
url responseCode responseType responseContent
do
13) Dans Web1.GotText, afficher la réponse
Mets :
set LabelPos.Text to join
"Réponse serveur : "
responseCode
"\n"
responseContent
14) Résultat attendu
Quand on clique sur APPEL ROBOT :
- l’application vérifie si le GPS est prêt
- une boîte de confirmation s’ouvre
- si on clique sur OUI
- l’application envoie :
{"x": latitude, "y": longitude}
- la réponse du serveur s’affiche dans
LabelPos
15) Ordre exact des blocs à ajouter
Fais-les dans cet ordre :
- ajouter
BtnAppel - ajouter
Notifier1 - ajouter
Web1 - vérifier les variables globales
lat,lon,hasFix - modifier
LocationSensor1.PositionChanged - créer
when BtnAppel.Click - créer
when Notifier1.AfterChoosing - créer
when Web1.GotText
16) Si rien ne se passe
Vérifier
- que
BtnAppelexiste bien - que
Notifier1existe bien - que
Web1existe bien - que
global hasFixpasse àtrue - que
global latetglobal lonsont bien mis à jour
17) Si tu veux le texte exact à mettre dans ton document
Bloc 7 : ajouter un bouton d’appel du robot
On souhaite maintenant ajouter un bouton permettant d’envoyer la position du téléphone au serveur.
Composants à ajouter
Dans le Designer, ajouter :
- un bouton
BtnAppel - un composant
Notifier1 - un composant
Web1
Fonctionnement
Quand on clique sur le bouton :
- l’application vérifie que le GPS est prêt,
- elle demande une confirmation,
- si l’utilisateur clique sur OUI,
- elle envoie la position du téléphone à l’adresse :
https://sti2d.latelier22.fr/fiber/api/call-robot
Les coordonnées envoyées sont :
xpour la latitudeypour la longitude
Réponse attendue
La réponse du serveur est affichée dans le label de position.
