Run embedded web server in Windows 10 IoT application

Codice sorgente del progeto: GitHub: https://github.com/emanbuc/Win10_IoT_WebServer

I dispositivi Windows IoT Core supportano due tipi di applicazioni:

  • Foreground application:  con interfaccia utente per dispositivi dotati di monitor
  • Background application: senza interfaccia utente per dispositivi senza monitor (headless). Per maggiori info sullo sviluppo di background application vedi “Developing Background Application” on Window Dev Center.

In questo articolo viene presentata una applicazione di tipo “background”, tipica di sistemi embedded che non prevedono al possibilità di collegare monitor, tastiera e mouse direttamente sul dispositivo. Le interazioni con il dispositivo possono avvenire solo attraverso la connessione quindi l’interfaccia utente in questo caso sarà costituita da una pagina web.

csharp_back_app
Visual Studio 2015 – Windows IoT Core background application project template

Nota: Questo tipo di progetto è disponibile nella libreria dei template solo dopo aver installato  deve essere installato il pacchetto Windows IoT Core Project Templates

A seconda della versione di Windows 10 installata e della versione dell’SDK potrebbe comparire una finestra di dialogo in cui viene chiesto di scegliere le versioni di Windows 10 con cui l’applicazione deve essere compatibile.

azure07
Windows 10 SDK version selection dialog

A meno che non si abbiano particolari esigenze di compatibilità con le versioni precedenti, suggerisco di utilizzare sempre la versione più recente tra quelle disponibili sui dispositivi di sviluppo. Per maggiori informazioni sull’argomento vedi l’articolo dedicato sul Windows Dev Center.

Nota: la minimum version deve essere uguale o precedente a quella installata sul vostro dispositivo di sviluppo, altrimenti l’applicazione non potrà essere eseguita.

Per testare il corretto funzionamento inseriamo subito un webserver “minimale” in ascolto sulla porta 8081 e poi facciamo il deploy del nostro server sul Rasbberry.

Per iniziare ho utilizzato il web server di esempio descritto nel post di  Sander van de Velde

Per seguire un server all’interno di una applicazione UWP è necessario aggiungere package manifest i relativi permessi alla lista delle autorizzazioni richieste dalla applicazione al sistema operativo. In particolare in questo servono:

  • Internet (Client)
  • Internet (Client & Server)

Nelle proprietà del progetto l’edito del Package Manifest

IoTserver01
UWP Application – Edit Package Manifest

Nell’elenco delle “capabilities” dell’applicazione selezionare i due elementi “internet” dalla lista.

IoTserver02
UWP Application – Add Capabilities to the manifest

Se non sono selezionate le funzionalità corrette nel manifest, l’esecuzione del server sarà bloccata dal sistema operativo del dispositivo.

A questo punto non resta che eseguire il deploy dell’applicazione sul dispositivo e poi testare il funzionamento del nostro web server.

Il metodo più veloce per conoscere l’indirizzo ip del Rasbberry è utilizzare la IoT Dashboard

Win10IOT_setup_08c
Windows 10 Iot Core devices connected to the LAN listed in IoT Dashboard

Nel mio caso l’indirizzo ip è 192.168.1.105 quindi il web server si trova dovrebbe rispondere all’indirizzo http://192.168.1.105:8081

IoTserver03
Windows10 IoT backgroud web server test
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...