Department of InformatiX
Microsoft .NET Micro Framework Tools & Resources

Advanced Emulator

Jan Kučera, poslední změna: 10.2.2009.

Tato utilitka mě stojí volný čas, který bych mohl být na brigádě. Pokud šetří ten váš, podpořte, prosím, její vývoj. (stáhnutí: 100, přispěno: 0)
2 455 stažení

Pro .NET Micro Framework 3.0 je k dispozici upravená verze zde. Jedná se o minimální změny nutné k tomu, aby emulátor běžel s novou verzí frameworku a na 96dpi. MemoryManager již není k dispozici (B), ukládání stavu (C) je automatické, displej (1) je na šířku a dotykový. Pro aktualizaci stávajícího emulátoru stačí pouze přepsat původní soubory. Případné dotazy a požadavky uvítám. Díky Georgiosovi za podnět k updatu.

K .NET Micro Frameworku patří i rozšiřitelný systém emulátorů. V praxi to funguje tak, že každý výrobce zařízení si může k němu velmi snadno vytvořit vlastní emulátor. Snadno znamená, že buď nakonfiguruje dodávaný emulátor od Microsoftu pomocí XML, nebo si udělá vlastní Windows Forms aplikaci, která zhruba představuje rozhraní zařízení (tlačítka pomocí XML totiž nepřidáte), a pak ji pouze spojí s komponentami emulátoru.

Co se týče dodávaného emulátoru Microsoftem, obsahuje displej 320×240 a čtyři pevně přiřazená tlačítka. To je postačující konfigurace na zkoušení aplikací typu spořič obrazovky, ale zřejmě máte i vyšší cíle. Za nejhorší nedostatek tohoto emulátoru považuji, že nezobrazuje stav výstupů a pokud aplikace využívá některého ze sériových rozhraní, tak skončí s chybou.

Zkusil jsem tyto nedostatky vyřešit tímto, tak trochu univerzálním, emulátorem:

Screenshot Advanced Emulatoru

Bylo mi vytčeno, že dělat emulátor pro více hardware je nesmysl a ztráta času, tak posuďte sami, pomůže-li vám při emulování aplikací o něco více než standardní emuátor nebo dokonce emulátor od samotného výrobce, a dejte vědět, co si o tom myslíte.

Nejdříve trochu reklamy k funkčnosti:

(1) Vestavěný displej je o rozlišení 240×320. Nedá se (zatím) konfigurací otočit, ani změnit jeho fyzická velikost, ale rozlišení, které si v XML uvedete, bude roztáhnuto na celou plochu displeje, tak abyste vždy mohli vidět celý obraz.

(2) Zobrazuje seznam právě používaných výstupů a jejich stav. Názvy pinů lze nastavením v XML dynamicky načíst z libovolné assembly.

(3) Výstupy, které vás zajímají po celou dobu, můžete zobrazit trvale. V tomto případě je GPIO13 zaškrtnutý v seznamu Pinned items, ale nebyl aplikací ještě inicializován.

(4) Obdobně zobrazuje seznam všech pinů, které jsou právě nakonfigurovány jako vstupní porty.

(5) I zde máte možnost, jako v případě dosud nepouživané GPIO12, přichytit některá tlačítka napevno.

(6) Velká část zařízení bude mít podobné rozložení tlačítek, jako na obrázku a je nešikovné ovládat šipky tlačítky v řadě, proto jsem jich několik připevnil pevně pod displej. To, které piny představují, lze definovat v XML.

(7) Indikace ochrany proti zákmitu na daném vstupu (ty s vykřičníkem nejsou chráněny)

(8) Indikace pull-up a pull-down resistorů.

(9) Stejně tak jako u GPIO, je k dispozici seznam sériových rozhraní. Ta jsou implicitně zobrazována všechna dostupná (definovatelná v XML) a u portů COM lze v XML zapnout i automatické vytváření dalších dle požadavků aplikace. V tomto případě je emulována aplikace pro procesor Meridian, který používá některé virtuální porty.

(A) Pokud vyvíjíte aplikaci, která komunikuje s okolním světem, ale nemáte momentálně okolní svět poruce, nebo pokud potřebujete nasimulovat situaci, kterou není snadné z komunikujících stran dostat, můžete nejen monitorovat (a přesměrovávat), co se na portech děje, ale do komunikace i vstupovat, a to oběma směry. Zatím je implementováno jen textové zobrazení přenášených dat.

(B) V neposlední řadě je zde ukazatel využití paměti FLASH, s barevným odlišení sektorů dle funkce. Bohužel však současná architektura emulátorů neumožňuje sledovat konkrétní data uložená v paměti.

(C) Kdykoliv máte možnost stav paměti vymazat, uložit, nebo načíst z disku. Navíc lze v XML nastavit automatické ukládání paměti, aby vaše uložené ExtendedWeakReference byly k dispozici i po příštím spuštění.

V konfiguračním XML (AdvancedEmulator.exe.emulatorconfig) lze upravit cesty k souborům jednak s FLASH pamětí a jednak k assembly z které se načítají názvy pinů. Výchozí nastavení je ukládat FLASH do složky emulátoru, negenerovat žádné piny, ale povolit nedefinované. Příklady cest k pinům Meridianu a Microsoftu jsou zakomentované. Zkompilovaný - ještě ne zcela hotový - emulátor (debug konfigurace) je k dispozici zde (ZIP, 332 kB). Abyste mohli emulátor používat, je třeba jej nejdříve registrovat ve Visual Studiu. Stažený archiv někam rozbalte a spusťte RegisterInStudio.exe (registruje emulátor do frameworku verze v2.0.3036; případně jej registrujte sami zápisem do registrů naznačeným v RegisterInStudio.cs). Pak již stačí ve vlastnostech vašeho projektu vybrat jako emulátor Advanced Emulator.

Upozornění:

Opravy (děkuji Michaeli Schwarzovi):

Comments
Sign in using Live ID to be able to post comments.