Ho quasi finito di lavorare sul Micro Framework 3.0, la più piccola implementazione del Framework.Net per microcontrollori a 32 bit.
Per chi non conoscesse Micro Framework, può leggere alcuni articolo che ho scritto. Il primo (in Italiano) è un'introduzione, il secondo (in Italiano) mostra come creare una applicazione, il terzo è la versione Inglese.
In questa versione Micro Framework implementa i DPWS (Devices Profile for Web Services) che ho prontamente implementato su una schedina di dimensioni 4x4cm. Nella foto la schedina è saldata su un adattatore che permette di interfacciarla con il mondo esterno.
Per un consumo massimo di 160mA (equivalente di 8 led accesi al massimo) abbiamo il pieno supporto di TCP/IP, 3 USB, 4 Seriali, storage su Secure Digital, supporto ai monitor TFT (Micro Framework implementa una versione iper ridotta di WPF come da mio articolo), dozzine di I/O e molto altro.
Per il mio scopo ho creato una piccola interfaccia verso delle linee RS485 di cui Micro Framework è il master. Devo dire davvero fantastico.
Ovviamente per un device così piccolo il supporto dei tool è ridotto e quindi mi ci è voluto un po' di tempo prima di far parlare una applicazione client WCF con il device, ma ora è tutto risolto.
Alcune note al contorno.
DPWS supporta la discovery sulla rete dei device che arriverà con WCF 4.0.
In teoria bisognerebbe scrivere il WSDL a mano, ma sono riuscito ad ovviare a questa pena creando un finto servizio WCF su
PC che mi genera il WSDL. Ci sono un certo numero di accorgimenti per questa procedura dovuti al fatto che Micro Framework esplicita i message contract, ma ho potuto risolvere anche grazie al prezioso Fiddler.
Grazie al WatchDog, se il device non esegue una certa istruzione entro un tempo prestabilito, si autoresetta e questo garantisce una robustezza veramente notevole.
Se a questi gioielli aggiungiamo un pannello solare e una schedina GSM o un'adattatore WiFi ... cool!