DevExperience

.Net Framework, Embedded Systems & Design Patterns Paolo Patierno's Blog

MVP Award

I'm Microsoft MVP for Windows Embedded

Recent Posts

Apps & Articles

Applicazioni

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

November 2010 - Post

Windows Phone 7 : una serie su channel9 per gli sviluppatori ed un nuovo libro per gli utilizzatori

channel9_wp7_series

Posto il link ad una serie pubblicata su channel9 sullo sviluppo per Windows Phone 7 che può essere un buon punto di partenza per iniziare a sviluppare applicazioni per la nuova piattaforma phone di Microsoft.

Windows Phone 7 : development for absolute beginners

wp7_book_plain&simple

Inoltre, è stato pubblicato il nuovo libro “Windows Phone 7 Plain & Simple” di Michael Stroh. E’ completamente a colori e con numerosi screenshot che con semplici passi ci guida alla scoperta delle potenzialità di Windows Phone 7 : fare o rispondere alle chiamate, leggere ed inviare emails e messaggi, lavorare con il calendario, utilizzare il browser, ascoltare musica e vedere video e sviluppare giochi con XNA.

Esso è disponibile in vendita online da ieri ed è pubblicato dalla O’Really al seguente link.

Posted: 16 Nov 2010 22:00 da Paolo | con no comments
Inserito sotto: , ,
Windows Embedded CE 6.0 R3 QFEs : Ottobre 2010

Sono stati rilasciati i QFEs di Ottobre 2010 per Windows Embedded CE 6.0 R3 e sono scaricabili al seguente indirizzo :

Windows Embedded CE 6.0 Monthly Update October 2010

Riporto di seguito i principali fix, come descritto nel file allegato al download :

Component:  COMM

  • 101028_KB2384080 - When using RNDIS client and DHCP allocator bound to the USB interface, an error may occur when USB cable is unplugged.

Component:  DirectX

  • 101004_KB2417732 - The current media time is not correctly calculated by the current rate.

Component:  Fonts

  • 101022_KB2437384 - Rotated text may not render correctly due to an issue with the font.

Component:  FSD

  • 101029_KB2383946 - Calls to ScanVolumeEX() may fail when the volume to be scanned is formatted as EXFAT and has a directory structure that is at least 5 levels deep.

Component:  IE

Component:  RDP

  • 101006_KB2431798 - This update addresses an issue with mouse cursor corruption when connecting from a Windows Embedded CE 6.0 R3 device to Windows 7 over RDP.

Posted: 16 Nov 2010 16:10 da Paolo | con no comments
Inserito sotto:
CEDriverWiz : plugin per VS2005 su CodePlex

Finalmente l’utilissimo CEDriverWiz, che permette di automatizzare le noiose operazioni di creazione dello scheletro di uno stream driver con tutta la sua relativa interfaccia, è diventato un plug in per Visual Studio 2005 e quindi per il Platform Builder di Windows CE 6.0.

Esso è disponibile e scaricabile gratuitamente sul sito CodePlex a questo link. E’ stato creato da David Jones ed è stato marcato dalla community Embedded101 nell’ambito della quale lo stesso David collabora.

Una volta installato, è possibile customizzare il menu Tools di Visual Studio 2005, aggiungendo il CEDriverWiz mediante la voce External Tools (e poi Add).

CEDriverWiz_addTools

Il wizard permette di generare un subproject destinato ad ospitare lo stream driver ed una serie di applicazioni di test per lo stesso. Il tutto viene creato in una sottocartella del nostro progetto per la creazione di un’immagine del sistema operativo in modo da poter essere aggiunto facilmente a quest’ultimo. All’avvio, il wizard richiede semplicemente l’immissione delle tre lettere che costituisco il prefix del nostro driver (XXX) e le sostituisce in tutte le funzioni dell’interfaccia che andrà a creare (XXX_Init, XXX_DeInit, XXX_Open, …).

CEDriverWiz_main

Il subproject generato ha tutti i registry settings necessari per includere il driver nell’immagine del sistema operativo e per caricarlo allo startup in User Mode. E’ possibile modificare questi settaggi di default per eseguire il driver in Kernel Mode, così come è possibile disattivare il caricamento del driver allo startup e gestirne il load/unload su richiesta, prendendo spunto dalle applicazioni di test generate dal wizard.

Per quanto riguarda le applicazioni di test, esse permettono di :

  • eseguire load/unload dello stream driver su richiesta;
  • aprire, scrivere, leggere e chiudere lo stream driver;
  • utilizzare i codici IOCTL di test, mediante l’invocazione della funzione XXX_IOControl;
  • check del caricamento dello stream driver;

In conclusione è assolutamente uno strumento utile per iniziare lo sviluppo di uno stream driver che permette di risparmiare del tempo nella fase di avvio dell’implementazione, in quanto prepara lo scheletro del driver sul quale poi lavorare.

Secondo me ha un punto debole, legato alla necessità della presenza del .Net Framework 3.5 sul PC in cui lo si vuole installare per poterlo utilizzare. Contrariamente a quanto si possa pensare, non è un punto a favore in quanto CEDriverWiz è uno strumento legato al Platform Builder per Windows CE 6.0 in ambiente Visual Studio 2005 che di default installa il .Net Framework 2.0.

Posted: 15 Nov 2010 15:30 da Paolo | con no comments
Inserito sotto:
Windows CE 6.0 : SerialPort in .Net CF e stream driver names

In Windows CE, i devices gestiti mediante stream drivers sono acceduti utilizzando le API del file system (CreateFile, WriteFile, ...) in quanto visti come dei veri e propri stream. Il Device Manager, che si occupa del caricamento dei drivers quando necessario (all'avvio del sistema o su richiesta), registra tre differenti namespaces per accedere agli stream drivers :

- Legacy
- Device based
- Bus based

Il namespace Legacy prevede che lo stream driver sia indirizzato nella forma XXX[0-9]:, dove XXX rappresenta il prefisso indicativo del driver o tipologia di device (es. COM) e [0-9] è un indice che differenzia la possibilità di utilizzare la medesima istanza del driver per gestire più devices della stessa tipologia (es. COM1, COM2, ...) ovviamente con contesti differenti. Tale indice è specificato nel registro di Windows. Questo tipo di namespace ha il limite di poter indirizzare fino a soli 10 devices della medesima tipologia, considerando il vincolo ad un cifra dell’indice. Tale limite viene superato utilizzando il namespace Device based che ha la seguente struttura \$device\XXX[index]. La seconda parte è la medesima della Legacy ma è preceduta dal namespace \$device. Con questo tipo di "indirizzamento" è possibile superare il limite dei 10 device, in quanto l’indice non è vincolato all’uso di una singola cifra. Infine, il namespace Bus based ha la seguente struttura \$bus\[bus_name]_[bus_number]_[device_number]_[function_number] dove però è necessario conoscere il bus a cui è connesso il device (nei casi di assenza di un bus specifico, esso ha tipicamente il valore di BuiltIn, che rappresenta la rootKey del registro di sistema da cui il Device Manager carica i drivers all'avvio).

Ultimamente, ho scoperto che queste tre tipologie di namespaces funzionano perfettamente quando utilizziamo la classe SerialPort su Windows CE 6.0, ovviamente nel caso in cui vogliamo accedere ad una porta seriale. Il namespace Legacy è quello che adottiamo normalmente (omettendo i : finali) ma può essere sostituito dal Device based, qualora dobbiamo accedere ad una porta seriale con indice maggiore di 9.

Legacy :

   1: SerialPort sPort = new SerialPort("COM1");
   2: sPort.Open();
   3: sPort.Write("Hello World !");

Device based :

   1: SerialPort sPort = new SerialPort("\$device\COM1");
   2: sPort.Open();
   3: sPort.Write("Hello World !");

Tutto ciò è garantito dal fatto che il metodo Open della classe SerialPort, al suo interno esegue una chiamata alla CommOpen della mscoree.dll che a sua volta invoca l'API CreateFile di Windows CE (presente nella coredll.dll). Quest'ultima prevede tra i parametri di ingresso il nome del device (o stream driver) a cui accedere, secondo i tre namespaces suddetti.

Posted: 10 Nov 2010 19:44 da Paolo | con no comments
Inserito sotto: ,
Windows Phone 7 : PDC2010

            

Da qualche giorno si è concluso il PDC2010 che ho seguito online, in diretta ed in streaming con molto interesse.

Di seguito riporto i link alle sessioni registrate e relative a Windows Phone 7, in particolare allo sviluppo delle applicazioni con Silverlight ed i giochi con XNA :

Building Windows Phone 7 applications with the Windows Azure Platform

Things I Wish I Knew Three Months Ago about Building Windows Phone 7 Applications

Optimizing Performance for Silverlight Windows Phone 7 Applications

Things You Need to Know Before Building XNA Games for Windows Phone 7

Real-World Analysis and Optimization of XNA Framework Games on Windows Phone 7

Buona visione a tutti !

Posted: 10 Nov 2010 8:23 da Paolo | con no comments
Inserito sotto: , ,
Il mio primo post !

Ciao a tutti !

Finalmente una community .Net per la Campania....ci voleva ! Grazie ad essa ho finalmente anche la possibilità di condividere le mie esperienze e le mie idee con persone che hanno la mia stessa passione. Soltanto oggi pomeriggio ho inviato la richiesta di creazione del mio blog personale ed eccomi qui...dopo una manciata di ore, pronto a bloggare !

Ringrazio il DotNet Campania per questa possibilità ed assicuro che nel tempo libero cercherò di dare il mio contributo con numerosi posts, articoli e recensioni (lavoro, famiglia e letture di approfodimento permettendo)

Per iniziare ho semplicemente condiviso attraverso la sidebar alcuni link ai siti ed ai blog che rappresentano per me un punto di riferimento...spero vi possano tornare utili !