Le novità di Windows 7 per gli sviluppatori

6 pagine in totale: <<Indietro 1 2 3 [4] 5 6 Avanti >>

Sensor API

Negli ultimi anni hanno avuto un forte sviluppo sul mercato i netbook: piccoli e leggeri computer dalle modeste capacità che abbracciano però le esigenze di molte persone. Anche la connettività è sempre più disponibile ovunque l'utente si trovi e i notebook dispongono sempre più di dispositivi accessori che forniscono caratteristiche solitamente sfruttate solo dal produttore dell'hardware stesso. In Windows 7 per venire in contro a questi dispositivi sono state quindi inserite delle specifiche, un modello driver da rispettare e un nuovo set di API per accedere ai sensori che un PC ha installato.

Questo permette da una parte di avere una gestione centralizzata dei sensori, come accelerometri, sensori di luminosità e GPS attraverso un pannello di amministrazione che li riassume e permette di abilitarli. Normalmente questi infatti, per motivi di privacy, sono disabilitati e occorre un'autorizzazione esplicita per ogni utente che intende utilizzarli sulla macchina, così come visibile dall'immagine seguente.

Pannello di controllo dei sensori

A livello software sono disponibili poi delle API per gestire con un metodo unico i sensori, cercarli per tipologia o per categoria. Quest'ultimi sono in grado poi di fornire informazioni specifiche in base alla loro tipologia, con poco sforzo da parte dello sviluppatore che non deve conoscere il dispositivo in modo specifico.

Con il Windows API code pack si hanno a disposizione infatti comodi wrapper per ricercare i dispositivi ed utilizzarli. Ad esempio per sfruttare un accelerometro basta utilizzare il metodo GetSensorsByTypeId; una volta ottenuto un riferimento è possibile ottenere automaticamente i dati attraverso l'evento DataReportChanged.

SensorList<Accelerometer3D> sl = SensorManager.GetSensorsByTypeId<Accelerometer3D>(); 
if (sl.Count > 0) 
{ 
  Accelerometer3D accel = sl[0]; 
  // I dati dell'accelerometro vengono inoltrati automaticamente tramite evento 
  accel.AutoUpdateDataReport = true; 
  // Intercetto l'evento 
  accel.DataReportChanged += new DataReportChangedEventHandler(DataReport_Changed); 
}

In alternativa è possibile chiedere in modo esplicito le rilevazioni mediante il metodo UpdateData. Viene poi in aiuto la classe Accelerometer3D la quale effettua automaticamente la conversione dei valori dando le accelerazioni sugli assi X, Y e Z.

void DataReport_Changed(Sensor sender, EventArgs e) 
{ 
  Accelerometer3D accel = sender as Accelerometer3D; 
 
  accelX.Acceleration = accel.CurrentAcceleration[AccelerationAxis.X]; 
  accelY.Acceleration = accel.CurrentAcceleration[AccelerationAxis.Y]; 
  accelZ.Acceleration = accel.CurrentAcceleration[AccelerationAxis.Z]; 
}

Un possibile utilizzo di queste informazioni può essere applicato all'interfaccia che può rotare a seconda dell'orientamento del dispositivo combinandosi anche con altre informazioni. Nel codice mostrato in precedenza non si fa altro che valorizzare una barra per visualizzare l'accelerazione.

Visualizzazione dello stato dell'accelerometro

La filosofia vista si può applicare anche su altri sensori, per conoscere la luminosità, ad esempio per cambiare intensità dello schermo e colori dell'applicazione, oppure il GPS per conoscere la posizione e fornire servizi specifici.

Il Sensor Development Kit è un kit di sviluppo preparato da Microsoft che utilizza una scheda di Freescale per poter lavorare con sensore luce e accelerometro. Sulla pagina ufficiale è possibile visionare del materiale che spiega la tecnologia, ottenere i driver con esempi della scheda e richiederla direttamente dal sito di Freescale.

6 pagine in totale: <<Indietro 1 2 3 [4] 5 6 Avanti >>

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Segnala su:  Facebook  Messenger  Twitter        |

TUTORIALS

Silverlight

.NET Framework

Accesso ai dati

Architettura e design software

Windows Azure

TOP TEN ARTICOLI
ARTICOLI VIA E-EMAIL

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

Iscrivi subito! »»»

MEDIA
IN EVIDENZA
MISC