DevExperience

.Net Framework, Internet of Things & M2M, Embedded Systems, Design Patterns Paolo Patierno's Blog

MVP Award

I'm Microsoft MVP for Windows Embedded

Recent Posts

Apps & Articles

Progetti

Pubblicazioni

Tags

My Profiles

 

My Embedded101 Blog

My YouTube Channel

Windows Embedded CE 6.0

Building Embedded Devices using Windows Embedded CE 6.0 R2

Archives

Sto leggendo...

Windows Embedded

.Net Micro Framework

.Net Framework & CLR

Email Notifications

Open Source Hardware

RSS Blog Post

settembre 2012 - Post

ioProgrammo : Il pattern MVVM su Windows Phone ? Si può !

4-179g

Anche questo mese su “ioProgrammo” (n. 179, Ottobre 2012) c’è un mio articolo dedicato all’applicazione del pattern MVVM (Model View ViewModel) in Windows Phone.

Si parte dal confronto tra i pattern MVC (Model View Controller) e MVP (Model View Presenter) fino ad arrivare al PM (Presentation Model) da cui deriva l’MVVM. Nell’ambito di quest’ultimo vengono affrontate le singole componenti dal Model, passando per il ViewModel (con notifications e command) fino alla View sviluppata in XAML.

Anche questa volta…mi raccomando…non perdetevelo !

Sorriso

Posted: 18 set 2012 19:13 da Paolo | con no comments
Inserito sotto: ,
Internet Of Things e μPLibrary : client per la piattaforma ThingSpeak

Con l’aumentare dei dispositivi embedded “intelligenti” nel mondo, comincia ad assumere un’importanza sempre maggiore il concetto di Internet Of Things (IoT), un neologismo attraverso il quale si vuole esprimere la capacità che hanno tali dispositivi (brutalmente “le cose”) nel potersi connettere alla rete mondiale Internet e scambiarsi informazioni. In quest’ottica entrano in gioco una serie di piattaforme online che fornisco il servizio di upload e storicizzazione delle informazioni in tempo reale per poi renderle disponibili ad altri dispositivi che ne facciano richiesta. L’architettura a cui si orientano tali piattaforma è ovviamente quella RESTful in cui i dati raggruppati in canali e feeds sono raggiungibili attraverso il concetto di URL.

Una delle principali piattaforme è sicuramente ThingSpeak, per la quale ho implementato un client per il .Net Micro Framework e che ho incluso nella mia libreria uPLibrary (giunta alla versione 1.8.0.0) presente su CodePlex, nel namespace uPLibrary.IoT.ThingSpeak.

uP_logo

ThingSpeak_Logo

La classe principale è ThingSpeakClient, che mette a disposizione l’unico metodo Update(string writeApiKey, DataEntry dataEntry) per l’upload di un data entry nel proprio canale dati che abbiamo creato sul sito di ThingSpeak. Il data entry è rappresentato attraverso l’omonima classe DataEntry che permette di specificare i valori dei campi del feed associato al canale, un messaggio di stato, la posizione (latitudine, longitudine ed altezza) nonché un account Twitter con relativo messaggio da “twittare” al caricamento del dato online.

Per quanto riguarda la lettura dei dati, sono disponibili più metodi di read ossia ReadFeeds(), ReadLastFeedEntry(), ReadField() e ReadLastFieldEntry() che forniscono un’ampia scelta e rispettivamente per un intero feed (tutti i campi), l’ultima entry di un feed (tutti i campi), tutti i valori di un campo nel canale ed infine l’ultima entry di uno specifico campo nel canale. Ciascuno di essi ritorna una collection di DataEntry con le informazioni lette dal server online. Inoltre, è disponibile il metodo ReadStatusUpdate() per leggere l’ultimo aggiornamento di stato del canale.

Un esempio di applicazione è banalissimo; immaginando di dover caricare online una qualsiasi grandezza fisica rilevata (es. temperatura, pressione, umidità, …) il codice di esempio potrebbe essere il seguente.

   1: public static void Main()
   2: {
   3:     ThingSpeakClient client = new ThingSpeakClient(false);
   4:     
   5:     var data;
   6:     DataEntry dataEntry = new DataEntry();
   7:     while (true)
   8:     {
   9:         // rilevamento del dato
  10:         // data = ....
  11:         dataEntry.Fields[0] = data.ToString();
  12:         client.Update("writeApiKey", dataEntry);
  13:  
  14:         Thread.Sleep(15000);
  15:     }
  16:      
  17: }

Altrettanto semplice può considerarsi l’esempio di lettura dei dati dal server.

   1: public static void Main()
   2: {
   3:     while (true)
   4:     {
   5:         ArrayList dataEntries = client.ReadLastFieldEntry(null, 
   6:                                             <channeId>, <fieldId>);
   7:         
   8:         // consumo di data entries...
   9:  
  10:         Thread.Sleep(15000);
  11:     }
  12: }
 
Insomma, grazie ad un’iscrizione gratuita su ThingSpeak ed utilizzando il mio client, avrete la possibilità di condividere online tutti i dati letti dai sensori dei vostri prototipi, magari realizzati con Netduino !

Ovviamente, il tutto è disponibile su Codeplex ed è stato anche aggiornato nella Nuget Gallery !

Visual Studio 2012 : Windows Embedded Compact e .Net Micro Framework

0827_vs2012_PNG-550x0

Finalmente in Visual Studio 2012 tutto ciò che riguarda lo sviluppo per il mondo embedded con gli strumenti Microsoft sembra essere rientrato al proprio posto. La nuova versione dell’IDE supporterà pienamente lo sviluppo su Windows Embedded Compact, che avevamo perso con Visual Studio 2010, includendo anche il nuovo .Net Compact Framework 3.9 che pare abbia numerose migliorie soprattutto in termini di performance; incluso anche il supporto per C++ 11. Un approfondimento lo trovate nel video ufficiale di Andrew Pardoe e David Campbell.

A questa notizia, si aggiunge anche quella di Colin Miller sul suo blog relativa al supporto in Visual Studio Express 2012 for Desktop per il .Net Micro Framework 4.3 ed il .Net Gadgeteer 4.3 che saranno rilasciati in un futuro non molto lontano.

Snoozy sul Windows Phone Marketplace !

primaryImage

Da oggi è stata pubblicata sul marketplace di Windows Phone la mia nuova app Snoozy, attraverso la quale i pendolari che vogliono “schiacciare un pisolino” durante il loro tragitto in pullman o in treno verso il proprio luogo di lavoro, non correranno più il rischio di perdere la fermata a cui scendere !

Per maggiori informazioni vi rimando al link sul market.

Posted: 7 set 2012 12:04 da Paolo | con no comments
Inserito sotto:
Su Channel9 : Windows 8 and the .NET Micro Framework

Ancora un nuovo video di Pete Brown su Channel9 che mostra come sviluppare un app Windows Store che usa il .Net Micro Framework ed il networking per comunicare con numerosi device quali ad esempio i robots.

 

Il mio blog referenziato da “Robot Domestici”

Da oggi, il mio blog, in particolare tutti gli articoli strettamente legati al .Net Micro Framework anche in ottica robotica/domotica, sarà raggiungibile anche dal portale Robot Domestici.

Capture

Posted: 4 set 2012 13:47 da Paolo | con no comments
Inserito sotto: , , ,
Visual Studio 2012 e Windows Embedded Compact

Dopo aver supportato Windows CE 6.0 in Visual Studio 2005 e Windows Embedded Compact 7 in Visual Studio 2008, la Microsoft ha creato un buco in Visual Studio 2010 non fornendo alcun supporto per la piattaforma embedded, costringendo gli sviluppatori ad avere una doppia installazione dell'IDE. Con Visual Studio 2012 è stato annunciato ufficialmente il supporto per la prossima versione di Windows Embedded Compact e possiamo ascoltare la dichiarazione in questo video.

Per saperne di più non ci resta che aspettare l'evento con il lancio ufficiale del 12 Settembre !

Posted: 1 set 2012 22:36 da Paolo | con no comments
Inserito sotto: , ,