PDA

View Full Version : Is possible send GPS data from your iPhone/iPad to ThinBasic? Yes it is possible...



maxer73
05-06-2013, 06:38
Hi all, :D

Sorry but for exact explanation i need to use my language because my English is
not good...

so i write Italian...

Vi state chiedendo se Ŕ possibile inviare i dati GPS del vostro iPhone/iPad a
ThinBasic? Si Ŕ possibile farlo...

Oggi voglio scrivere un Tutorial su questo e spiegare esattamente i passi necessari
per fare questo sperando di fare cosa gradita ai possessori di devices prodotti da
Cupertino.

Cosa occorre:

1) occorre innanzitutto avere un iPhone o iPad con almeno la versione di iOS 4.x
(io ho usato un vecchio iphone 3G con iOS 4.1, quindi penso che funzioni anche con
tutti gli altri modelli superiori... 3GS,4,5)
2) occorre scaricare dall'AppStore un'applicazione gratuita che si chiama Sensor Logger
3) occorre avere il device Apple e anche il PC dove viene eseguito TB, collegati alla stessa
rete WiFi, quindi allo stesso router
4) occorre scrivere un programma in TB in grado di ricevere i dati inviati da iPhone/iPad
usando il protocollo UDP (Datagram Protocol)
5) una volta che i dati vengono ricevuti da TB, si possono fare varie cose, io ho deciso
di fare aprire una pagina del Browser con GoogleMaps che mostra la mia posizione.

Come procedere:

1- connettetevi al WiFi con il vostro dispositivo Apple
2- scaricate da AppStore l'applicazione gratuita Sensor Logger e istallatela
https://itunes.apple.com/us/app/sensorlogger/id383595336?mt=8
(se non vi funziona potete anche usare l'applicazione Sensor Monitor anche questa gratis, ma forse dovete
adattare leggermente il codice)
https://itunes.apple.com/us/app/sensor-monitor/id381075251?mt=8
3- aprite Sensor Logger e andate nel men¨ Settings
4- togliete la spunta a tutti i sensori e lasciate acceso solo l'invio dei dati GPS, quindi
mettete su on il GPS e su off Accelerometer, Compass e Gyroscope (si possono inviare
anche questi sensori, ma questo sarÓ fatto in altri tutorials.... oggi usiamo solo il GPS)
5- sempre nel men¨ Settings impostate Acceleration frequency a 30Hz
6- sempre nel men¨ Settings impostate Rotation frequency a 30Hz
7- sempre nel men¨ Settings impostate la porta di trasmissione numero 5000
8- sempre nel men¨ Settings impostate l'inirizzo IP del vostro PC ricevente dove lanciate TB
9- andate nel men¨ Record e siete giÓ pronti per inviare i dati GPS a TB
8359
10- adesso bisogna scrivere lo Script in TB per ricevere i dati via WiFi con protocollo UDP,
ma per questo non preoccupatevi, ci ho pensato io al posto vostro (ZIP allegato)
scompattate lo ZIP in una cartella a vostra scelta
11- lanciate lo script ReceiveGPS, nel TextBox in alto comparirÓ la scritta:
"Wait to receive data from iPhone/iPad (SensorLogger) - UDP port 5000"

Adesso siete pronti... per inviare i dati GPS da iPhone/iPad a TB... Sull'applicazione
Sensor Logger premete il pulsane Start e se tutto va bene la posizione GPS verrÓ
inviata a TB che li riceverÓ e aprirÓ il Browser facendoci vedere l'immagine
del satellite con la nostra posizione esatta...

How it work?

Sensor Logger invia periodicamente una stringa che contiene i dati dei sensori impostati
da noi nel men¨ Settings, preceduto da un numero, quindi ad esempio per GPS
viene inviato il numero 1 e poi tutti i dati(Latiude,Longitude,Altitude etc...), per accelerometro
viene inviato il numero 2 e poi i dati degli assi (x,y,x) e cosý per tutti i sensori...
In TB si fa un Parse della stringa che arriva via WiFi e si prelevano i singoli dati.

And if I do not have iPhone or iPad?

Per chi non ha iPhone o iPad, nessun problema, ho scritto uno Script anche per
questo e serve per simulare iPhone che invia i dati GPS...
Lanciate lo script GPS_Emulator dopo aver lanciato ReceiveGPS e premete il
pulsante "SEND Virtual GPS Data - fix position" (quello pi¨ in alto) a questo punto
su ReceiveGPS dovreste vedere comparire la vostra posizione nell'immagine ripresa
dal satellite. Questo Ŕ possibile perchŔ impostando l'IP di trasmissione a 127.0.0.1
anzi che inviare via WiFi, i dati vengono inviati all'interno del PC alle altre applicazioni.

Se volete potete modificare i campi di testo con dati a vostro piacimento prima
di inviare.... Cosý Ŕ possibile cambiare Latitude, Longitude, Altitude, horizontal accuracy
and vertical accuracy

Se invece volete simulare uno spostamento premete il pulsante
"SEND Virtual GPS Data - move position" e verrÓ simulato uno spostamento di
posizione ogni 5-10-20 secondi (dipende dai settaggi del timer nello script),
di conseguenza appena la posizione viene aggiornata a quella nuova, viene inviato
il dato a ReceiveGPS script, il quale vede che la posizione Ŕ cambiata rispetto quella
precedente e di conseguenza ricarica la pagina browser con la visualizzazione
della nuova posizione.

Se siete interessati, studiatevi il codice che allego, fate esperimenti e cercate di
migliorarlo, io l'ho fatto abbastanza in fretta.... fate esperimenti con Accelerometer,
Compass o Gyroscope e fatemi sapere se questo Tutorial Ŕ servito a qualche cosa...

Ciao from Italy
Max

8360

ErosOlmi
05-06-2013, 07:16
This page translated from Italian into English:

http://www.google.com/translate?hl=en&ie=UTF8&sl=it&tl=en&u=http%3A%2F%2Fwww.thinbasic.com%2Fcommunity%2Fshowthread.php%3Ft%3D12136%26p%3D88979%26viewfull%3D1%23post88979

ErosOlmi
05-06-2013, 07:29
Seems working perfectly.
The only different thing from you tutorial is that there is no IP address to to send data to but it broadcast on the indicated port so all computers over the local network "listening" on that port will receive the UDP datagrams.

PS: now that you have my location, do not send me a ... killer :whacky34:

maxer73
05-06-2013, 14:10
Hi Eros, yes

now i can send my Atomic Bomb..... aaah :D

No... don't worry... i'm not a terrorist... (my name is not Osama bin Laden, is Massimo)

Sorry for inconvenient of IP adress, but at moment i wrote the tutorial, i don't have
my iPhone, so i can't see Setting page.... But if it send at all IPs, it is good

If you have time to change four lines, you can receive data from other sensors such
accelerometer and visualize them in a textbox or a Canvas using Canvas_Setpixel as in
this application I wrote for Android:
8362

or use data to control games in realtime with WiFi, so no cable... with your iPhone...
You can also use Compass and/or Gyroscope to control the views and cameras in TBGL
like a analog joystick of PlayStation, but using device movement like Nintento Wii

In these days I'll make a tutorial of how to do this even on Android devices.

Thahks for watching Eros
If you have some time, please experiment it, i've difficult to use Canvas and TBGL
because i'm a Beginner in TB.

Good experimentation at all....

maxer73
07-06-2013, 14:27
Yes John thanks, i still prepare tutorials using Android devices too...

I use basic4android for this, it is a fantastic language for Android develop,
is much easier than using Java and SL4.

Try looking this:
http://www.basic4ppc.com/?gclid=CNHejuj10bcCFQRc3godxAEAGg

Regards
:D