Schermate di informazioni sul trasporto

1

Ho bisogno di creare un servizio di informazione sui treni per fornire informazioni in tempo reale. Sto cercando alcuni modi per farlo.

Ci sono già monitor LCD esistenti in molti vagoni ferroviari. Sono alimentati dalla batteria. Quando il treno si muove, vorrei che gli schermi mostrassero le seguenti informazioni: i) sul percorso, le prossime fermate, ecc. ii) notizie iii) annunci video da mostrare quando il treno si trova in un "corridoio" GPS.

Affinché funzioni, è necessario posizionare il GPS a bordo. Inoltre, dobbiamo essere connessi a Internet per poter ottenere dati in tempo reale (per le notizie) e per poter inviare nuovi contenuti video quando saranno disponibili. Non voglio visitare ogni vagone solo per caricare nuovi dati.

Originariamente pensavo che avrei bisogno di avere un'app costruita su Android che facesse tutto questo, ma penso che sarebbe più semplice se potessi farlo funzionare tramite HTML5 su un browser. Finora ho trovato le seguenti 2 possibilità hardware:

1) Compra compresse di seconda mano a buon mercato con schermi rotti (come dovrei essere ancora in grado di controllare usando un mouse). Dovrebbero avere la capacità GPS sia incorporata o tramite dongle e abilitata per Internet (probabilmente una scheda SIM). Emettere il display sullo schermo LCD. 2) Installa un laptop con le stesse funzionalità.

Con 1) è possibile acquistare tablet più vecchi o con schermi crepati ecc. in modo che il costo possa essere mantenuto inferiore, anche se sarebbe impossibile ottenere un tipo standard (che sarebbe molto più semplice da mantenere). Possono essere imbullonati sul retro del monitor. Lo svantaggio è che l'uscita dal tablet potrebbe non essere una risoluzione sufficientemente elevata quando si soffia su uno schermo LCD

Con 2), un laptop, il problema della risoluzione può essere superato più facilmente. Potrebbe anche essere più semplice procurarsi laptop funzionanti con schermi rotti / mancanti.

Immagino di dover inviare informazioni sulla posizione GPS a un server ogni 10 secondi circa, magari in un semplice GET in un URL, in modo che possa presentare le informazioni su una pagina web. Questo potrebbe funzionare per informazioni come la prossima fermata e i feed di notizie, ma i video saranno probabilmente più lunghi di 10 secondi. Quindi, come faccio a consegnare il contenuto?

Tra le cose che mi chiedo è se un browser connesso a Internet può fare tutto questo. La sede deve essere continuamente aggiornata. Invece di riprodurre semplicemente tutto su un loop, le cose accadono quando il treno si trova in determinate aree, ad es. avvicinarsi / lasciare una stazione. Un modo per farlo è inviare i dati GPS indietro ogni 15 secondi e quindi aggiornare la pagina Web del browser per visualizzare i contenuti in base a tale posizione e direzione GPS.

Inoltre, la cache del contenuto video sarebbe corretta? Quando un browser deve mostrare quel contenuto, sarebbe bello se non ci fosse un sacco di lag nel tentativo di scaricare un nuovo video (o visualizzarne uno esistente).

E, sebbene utilizzino macchine con schermi rotti, che sono più convenienti e meno un bersaglio per i furti, diventano meno user-friendly. Cosa succede in caso di interruzione di corrente? È possibile riavviare tutto correttamente per fare in modo che il browser mostri tutto e sia collegato al GPS e ad Internet?

Molto da risolvere:)

    
posta user1194034 26.12.2013 - 22:31
fonte

1 risposta

1

La gestione dei contenuti in questo tipo di ambiente può effettivamente essere un affare piuttosto complicato, a seconda di cosa vuoi ... Vorrei provare a mantenerlo semplice.

Avrai bisogno di un'applicazione sul lato client responsabile del caricamento dei dati. Questo potrebbe essere semplice come uno script che viene eseguito come un cron-job su una piccola finestra Linux (come raspberry-pi) che viene eseguita una volta al giorno (alle 2:00 se possibile) che kickoff un RSYNC a una cartella memorizzata sul server centrale . Questo script dovrebbe essere abbastanza intelligente da fermare l'interfaccia utente visibile dell'utente, eseguire l'RSYNC, controllare i dati per assicurarsi che non sia corrotto (calcolando magari un controllo di un codice hash) e quindi riavviare l'utente con l'interfaccia utente. Si noti che questo componente potrebbe anche essere qualcosa di molto sofisticato che viene eseguito continuamente e stabilisce una connessione TCP permanente con il server in cui un amministratore può inviare aggiornamenti al dispositivo su richiesta. Qualunque cosa sia, questo componente deve essere estremamente robusto ... e in grado di recuperare dagli errori. Usa Python;)

Se si utilizza RSYNC, è possibile conservare una cartella separata per ogni treno o percorso al fine di mantenere basso il volume dei dati trasferiti.

Il componente rivolto all'utente potrebbe essere scritto come app stand alone nella lingua preferita per la piattaforma (java per Android) o in HTML5 / Javascript o in un'applicazione mista (Forse interfaccia utente java o QT con un browser Web incorporato?) . Il codice / binari per questo componente potrebbe essere spedito al dispositivo tramite il meccanismo di distribuzione dei dati. L'app monitorerà le coordinate GPS e visualizzerà il contenuto secondo necessità (supponendo che tutti i contenuti siano precaricati). Il contenuto deve essere spedito con meta-dati per consentire all'interfaccia utente di sapere quando / dove visualizzare il contenuto.

La complessità del server centrale si ridimensionerà con la complessità dell'applicazione client e con le funzionalità desiderate ... Potresti voler scrivere un'app Web con una bella interfaccia REST che i client possano utilizzare, oppure no. Probabilmente vorrai implementare in qualche modo le applicazioni client per informarti dei problemi (un carico inarrestabile). Questo potrebbe essere fatto esponendo un'interfaccia REST per i client da usare ...

Rasberry Pi sarebbe una buona scelta per l'hardware lato client. Controlla quanto segue:

link

(Disclaimer: non l'ho mai usato così non ho idea di quanto funzioni bene.)

    
risposta data 27.12.2013 - 00:58
fonte

Leggi altre domande sui tag