in

UgiMobile.org

Il primo User Group Italiano dedicato a Windows Mobile

Mirco Vanini

  • KB950630 - Site effect (Unable to attach to the process)

    Dopo alcune ore di sofferenza condivise con Andrea abbiamo scoperto un site effect non proprio simpatico della patch KB950630 di VS 2008. Questa patch è installata con "Silverlight 2.0 Tools for Visual Studio 2008".

    In sostanza dopo l'installazione di questa patch non è più possibile effettuare "Attach to  Process..." su un device WinCE 5.0 che utilizza "TCP Connect Transport" con IP specificato per la comunicazione con VS 2008.

    L'errore è abbastanza sibillino, "Unable to attach to the process". Da notare che sia il "Debug->Start new instance" che il "Connect to Device" funzionano perfettamente.

    Disintallando la patch tutto è tornato a funzionare correttamente :)

  • Embedded Master Development System

    Finalmente è arrivata!

    Alla fine mi sono deciso a comprarla (GHI Electronics - Embedded Master Development System), l'ho aperta da qualche giorno e devo dire che il rapporto qualità prezzo mi ha soddisfatto. La confezione si presenta scarna ma il "contenuto" è sicuramente all'altezza delle aspettative.

    Dopo l'installazione del .NET Micro Framework ho ovviamente installato EmbeddedMasterSDK della scheda, non presente nella confezione ma scaricato dal sito. Il setup è andato al primo colpo senza intoppi e/o sorprese. La documentazione e gli esempi forniti nel SDK sono sufficientemente completi, anche se come al solito la documentazione non è mai abbastanza :)

    Dopo un pò di prove con il .NET Micro Framework Deployment Tool sono riuscito a stabilire la connessione tra il PC e la scheda. L'unico intoppo l'ho trovato nell'installazione del Virtual Com Port Drive per la parte di debug, dopo vari tentati di collegamento andati a vuoto ho scoperto che dovevo cambiare il tempo di latenza (da 16 msec a 1 msec) nell'impostazioni della USB Serial Port.

    Ho scaricato poi le varie patch sia del TinyBooter e del TinyCLR dal sito del costruttore della scheda e le ho installate senza grossi problemi. Gli steps per l'upgrade sono spiegati in dettaglio nella documentazione del SDK.

    Ho poi caricati gli esempi forniti con SDK, compilati, distribuiti e debbugati direttamente sulla scheda. Anche l'emulatore fornito con SDK non è malaccio, tanta scena ma manca tutta la gestione degli I/O della scheda. Sarebbe stato comodo avere un sistema di emulazione degli I/O senza andare per forza su HW

    Bene, adesso sono finalmente pronto a scrivere il mio primo programma su .NET Micro FW.

  • Andata!

    La mia prima sessione per XeDotNet su .NET C.F. è andata!

    Volevo ringraziare tutti i partecipanti, organizzatiori, ecc. per l'opportunità che mi è stata data.

    Spero di non aver deluso nessuno, a breve saranno disponibili sul sito di XeDotNet sia le slide che lo zip delle demo.

    Grazie ancora ad Andrea Boschin per il supporto "fisico" e "morale".

  • Heros, gli eroi sono {qui}

    Technorati Tag: ,

    Nella tappa di Padova dell'evento 2008 Launch Roadshow sarò presente nella community afterhouse organizzata da XeDotNet.

    Per maggiori dettagli:

    Speaker - community expert di XeDotNet

    Inscrizioni all'evento

  • Emulatore Windows CE 5.0: Deploy & Debug

    Ebbene si, alla fine chi la dura la vince...   :-)

    Dopo VS 2003, chissà per quale motivo, l'emulatore di Windows CE non è più disponibile come ambiente di emulazione di Visual Studio. Di conseguenze per sviluppare su Windows CE era necessario disporre di un dispositivo fisico collegato con il pc. Non sempre si ha la possibilità di aver un dispositivo collegato e, sopratutto per le persone come me sempre in movimento tra un cliente e l'altro, a volte impossibile. Così, mosso da esigenza diciamo "logistica", ho iniziato a fare alcune prove. Il punto di arrivo delle mie prove è la possibilità di "riottenere" un ambiente di emulazione Windows CE in cui posso fare il deploy e sopratutto andare in debug. L'altra strada, oltre a quella esposta, e di aver installato Microsoft Platform Builder, avere  i file BSP del device o utilizzare i seguenti file BSP (non supportati da Microsoft)  e con questi creare una SDK per l'ambiente di emulazione di VS 2005/2008. Penso che la soluzione che di seguito espongo sia la più "lite".

    Come prima cosa ho installato l'emulatore Windows CE 5.0 e poi mi sono letto ovviamente la documentazione. Nel file di help dell'emulatore vi è una pagina che descrive in modo esauriente le varie opzioni disponibili nella command line di esecuzione dello stesso. Se si legge "attentamente" la documentazione si scopre che vi è la possibilità di emulare una scheda di rete all'interno dell'emulatore, in dettaglio:

    /ethernet <mode>

    Specifies the level of networking support in the Emulator.

    Specify one of the following values:

    • none

      The Emulator does not support networking.

    • shared

      Outgoing NAT is enabled. The Emulator supports outgoing network connections only. Over an Ethernet connection, the Emulator cannot receive information that it did not request. In this mode, servers such as the FTP server and the Web server (HTTPD) do not work correctly. There may also be problems with connecting over a virtual private network (VPN) or connecting with Point-to-Point Tunneling Protocol (PPTP).

    • virtualswitch

      The Emulator uses the first Ethernet adapter that it finds on the development workstation. The Emulator supports incoming network connections.

    • <MAC address of Ethernet adapter>

      The Emulator uses the Ethernet adapter on the development workstation that has the specified MAC address. Specify the MAC address in XXXXXXXXXXXX format or in XX-XX-XX-XX-XX-XX format.

    Come si evince dalla documentazione sopra riportata, specificando il mac-address della scheda di rete del pc, l'emulatore stesso è in grado di utilizzarla. Il gioco è fatto!!! In altre parole utilizzando una riga di comando del tipo:

    "C:\Programmi\Windows CE 5.0 Emulator\Emulator_500.exe" /CEImage Nk.cem /Video 640x480x16 /Ethernet 00-0E-35-E5-FF-21 /sharedfolder C:\Shared\DeviceEmulator

    si attiva un emulatore 640x40 16 colori che utilizza la scheda con il mac-address specificato e si imposta uno share folder che verrà visto come una "Storage Card". Ho utilizzato il mac-address come opzione avento più schede di rete installate sul pc su cui lavoro. Ricordo, per chi lavora spesso come me con il portatile in giro per l'italia, l'esistenza del componente Microsoft Loopback che permette di avere una rete "finta" con un IP valido, comoda nelle situazioni in cui non si ha una connessione "fisica" di rete.

    Ho lanciato quindi l'emulatore, ho definito un IP fisico nella scheda di rete dell'emulatore (192.168.0.50), ho aperto una shell dos e ho provato a fare un ping verso tale indirizzo, ping riuscito :-)

    Ovviamente IP specificato è un indirizzo valido nella range dell'indirizzo della scheda di rete di cui si è specificato il mac-address nella riga di comando.

    Ho quindi copiato i componenti per il debug remoto nel foder specificato come shared area nella riga di comando. Tali componenti sono disponibili nel percorso C:\Programmi\File comuni\Microsoft Shared\CoreCon\1.0\Target\wce400\x86

    Dopo la copia sono ritornato nell'emulatore e ho copiato i files nel folder \Windows  dell'emulatore. Una volta copiato i files ho eseguito il programma \Windows\CMAccept.exe . Ho eseguito VS 2005 e/o 2008, sono andato in Tools/Options/Device Tools/Devices ho selezionato Windows CE in Show Device for platform, selezionato Windows CE Device  come Devices e ho premuto il pulsante Save as... e ho specificato il nome Windows CE Device Emulator.

    image

    Confermando il nome specificato sono ritornato alla dialog precedente e quindi ho premuto il tasto Properties... A questo punto compare la dialog delle proprietà del device selezionato, in Transport  selezionare TCP Connected Transport e poi ho premuto il pulsante Configure... compare la dialog delle proprietà TCP/IP del trasporto, selezionare il radio button Use specific IP address e specificare l'indirizzo assegnato alla scheda dell'emulatore (192.168.0.50).

    image   image

    Ho confermato l'indirizzo e ho chiuso tutte le dialog delle options precedentemente aperte. Ho attivato la toolbar Devices e ho attivato la procedura di Connect to device 

    image

    Dalla dialog ho selezionato il dispositivo Windows CE Device Emulator precedentemente creato

    image

    Poi ho premuto il pulsante Connect ed il gioco è fatto !!!

    image

    Ho quandi creato un'applicazione di prova, ho specificato Windows CE Device Emulator come Target Device e sono riuscito ad eseguire il deploy e il debug della stessa.  :-))

    Per abilitare Attach to process  sull'emulatore appena configurato si può fare riferimento ad un mio precedente articolo

    Buon debug a tutti :-))

     

    Technorati Tag: ,
  • VS2008: Errore connessione a un dispositivo Windows CE senza ActiveSync

    Chi sviluppa su device Windows CE avrà sicuramente letto ed utilizzato la procedura per stabilire una connessione verso un dispositivo Windows CE senza ActiveSync riportata nel seguente articolo (Procedura stabilire una connessione a un dispositivo Windows CE senza ActiveSync). Niente da dire, anzi se non che dopo l'installazione di VS 2008 sullo stesso PC in cui è installato VS 2005 ogni tentativo di stabile una connessione verso il device riporta i seguenti errori:

    VS 2005 Connection failed:0x8973151A

    VS 2008 Connection failed: The version of Comman client running on the device is incompatible with the desktop. Boostrap the device with desktop compatible device binaries and try connectiong again.

    Dopo alcuni tentativi e ricerche infruttuose su internet ho trovato il bandolo della matassa. La parte inerente il device emulator di VS 2008 non è installabile side by side, in altre parole la versione di VS 2005 viene sovrascritta da quella di VS 2008.

    Per ovviare il problema basta copiare nel dispositivo i files aggiornati da VS 2008 contenuti nel percorso.

    C: \Programmi\File comuni\Microsoft Shared\CoreCon\1.0\Target\wce400\<CPU>

  • User datastore error

    Qualche giorni fà mi è capitato un errore aprendo le properties dei device che ho configurato in Visual Studio, l'errore è il seguente: Error retrieving information from user datastore (Devices). Dopo qualche ricerca ho trovato l'articolo che spiegava come risolvere il problema:

    http://msdn2.microsoft.com/it-it/library/ms184403(VS.80).aspx

    Posted Oct 14 2007, 12:03 PM by Mirco Vanini with no comments
    Filed under:
  • Attach to process - Remote device debugging

    Una delle caratteristiche più "accattivati" del debug offerto da Visula Studio è la possibilità di eseguire debug remoto su dispositivi mobili. Non sempre le cose funzionano al primo colpo... per esempio il device su cui sto lavorando non voleva saperne e quando provavo a far l'attach di un processo per eseguirne il debug, Visual Studio mi ritornava il seguente errore: "Unable to attach to the process. Attach is not enabled for this process with this debug type". Dopo una piccola ricerca ho trovato la seguente soluziona che volevo riportare:

    http://blogs.msdn.com/davidklinems/archive/2005/05/24/421566.aspx

    Funziona Smile

     

  • Tip: Disabilitare la notifica "Cell broadcast"

    Sui terminali Symbol che montano WCE 5.0 con telefono incorporato (modelli MC70, MC9090x, ecc.) putroppo per defualt è abilitata la notifica "Cell broadcast". Per diabilitare la notifica putroppo non vi è un'opzione da UI ma si deve andare direttamente sul registry, di seguito riporto le chiavi da modificare:

     [HKEY_LOCAL_MACHINE\Software\Microsoft\RIL]
    "EnableCBM"=dword:0
    "EnableCBMChannels"=""
    "EnableCBMDCS"=""

     per ulteriori informazioni inerente al broadcast vi segnalo il seguente link History and Importance of Cell Broadcast

     

     

  • Tip: Stato connessione internet

    In diverse situazioni è utile sapere lo stato di connessione verso internet, magari prima di invocare un chiamata verso un web service, ecc. Di seguito riporto un frammento di codice che copre questa esigenza.

    [DllImport("wininet.dll")]
    private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);

    public static bool IsConnected2Internet( )
    {
        bool ret = true;

        try
        {
            int desc ;
            ret = InternetGetConnectedState( out desc, 0 ) ;
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }

         return ret;
    }

     

Powered by Community Server (Commercial Edition), by Telligent Systems