Archívum

Archive for 2013. február

Microframework – Netduino

2013. február 20. szerda 6 hozzászólás

Az első bejegyzésem ebben a témában nem várt eredménnyel végződött. Ugyanis többen nézték, olvasták el mint az eddigi írásaimat. Ami 3 dolgot vethet fel bennem:

  • 1 xarul írok (jó ez esélyes – De legalább is helytelenül)
  • 2 A WP7-8 és a Windows 8 kevésbé érdekes mint a Microframework
  • 3 Ööööö Nem emlékszem, de amikor elkezdtem írni még 3 volt.

Szóval elkezdtem ezzel a témával alapszinten foglalkozni. Főleg fejlesztési oldalról közelítem meg ezt a témakört.

De térjek a témára. Elkezdtem nézegetni az Add References ablakot. Rögtön szembetűnik, hogy elég szegényes. Az alap dolgok persze itt vannak, System, System.IO stb. Persze ott vannak a HW használó assemblyk is. Ezek a Microsoft.SPOT kezdetűek. Ezenkívül persze ott vannak még azok az assemblyk amiket a gyártótól kapunk.

image

Ebben az írásban nem a GHI-s termékről lesz szó, hanem egy jóval olcsóbb kis eszközről, ez pedig nem más mint a netduino plus. Ez csak 40$ környékén van. Ez egyfajta építsd magad szintű eszköz. Az alaplap kerül 40$-ba és ha az ember akar hozzá kamerát, hangszórót, azt külön meg kell vennie és  rákötheti erre az eszközre. Persze itt is a kijelző az egyik legdrágább darab. Itt is elverheti az ember pénzét.

image

Chopper irt egy STM32F4DISCOVERY készülékről ami relative olcsó 4000 Ft. Ezt meg is rendeltem, ha megérkezik majd írok róla.

Szóval itt ez a kis lego, és hát itt már nem hello world-van hiszen kijelzője sincs. A változatosság kedvéért, hanem hello blink- van. Visual Studio-t elindítva, és egy új Microframeworkös consol alkalmazást elkészítve el is kezdhetjük a munkát. Adjuk hozzá a Neduino-s referenciákat az Add References menüpont alatt. Nincs túl sok, úgyhogy nem lehet eltéveszteni:

image

publicstaticvoid Main()
{
    Debug.Print(“Elindult az alkalmazást a Netduino-n”);
    OutputPort led = newOutputPort(Pins.ONBOARD_LED, false);
    for (int i = 0; i < 15; i++)
    {
        led.Write(true); //LED bekapcsolása
        Thread.Sleep(1000);
        led.Write(false); // LED Kikapcsolása
        Thread.Sleep(1000);
    }
    Debug.Print(“Leállt!”);
}

Szóval kezdjük az elején:

A Debug.Print metódussal tudunk a Visual Studio output windowjára írni. Nincs Debug.Write* WriteLine * WriteLineIf vagy épp Assert. Kb csak ennyi van, ezzel gazdálkodjunk. Hibakeresés szempontjából jól fog nagyon jönni, ezért is hagytam benne ezt a kódot. Amúgy van Breakpoint (mágyárul Brékpont), de nem mindig úgy viselkedik ahogy elvárnám. De van és ez a lényeg.

Mivel most egy Led-et szeretnék megszólítani, ehhez szükségem lesz egy OutputPort objektumra. Itt meghatározhatom, hogy melyik pin “voltage level”-jét (Mi ennek a szép magyar neve? – Volt szintje? Feszültség szint?) szeretném megváltoztatni. Az első paraméter az a pin amit módosítani szeretnék ebben az esetben az alaplapi LED. A második paraméterrel a kezdeti állapotot határozhatjuk meg, ami jelen esetben false. Azaz nem fog világítani a LED.

A következőekben egy for ciklusban (ami 15x ismétlődik) ki be kapcsolgatom a LED-et. Azért, hogy ne tünjön el azonnal egy Sleep-et is belerakok. És igen jól látjátok van Thread.Sleep és ugyanúgy működik mint bármelyik más .NET es környezetben. Igaz itt meg is áll a tudomány mert statikusan kb csak a Sleep meg egy GetDomain metódusa van. Van még egy CurrentThread tulajdonsága. A led Write metódusával tudjuk ki-be kapcsolni a LED-et.

image

Na de haladjunk picit tovább, és nézzük meg az input kezelést is. A Netduino ilyen téren nem sokat add, hiszen az alaplapon csak egy gomb van, az is a megszakításra. De mi most ezt szeretnénk felhasználni. Ehhez egy InputPort osztályra lesz szükségünk. Ezt példányosítva, meghatározhatjuk, hogy melyik Pint-t szeretnénk figyelni, ami jelen esetben az ONBOARD_SW1. A Pins- enumerációt a SecretLabs.NETMF.Hardware.NetduinoPlus névtér alatt találjuk. A glitchfiltert false-ra a ResistorMode-ot pedig Disabled-re állitsuk.

A végtelen while ciklusban az inputport példány Read metódusát hívjuk meg. Ennek visszatérési értéke egy boolean érték. Na most ennek az értéke érdekes. A régi firmwaren ez false, ha le van nyomva, true ha nincs, az újon pedig fordítva. Szóval nézze meg mindenki, hogy melyiket használja.

publicstaticvoid Main()
{
    Debug.Print(“Elindult az alkalmazást a Netduino-n”);
    OutputPort led = newOutputPort(Pins.ONBOARD_LED, false);
    InputPort button = newInputPort(Pins.ONBOARD_SW1, false, Port.ResistorMode.Disabled);
    bool buttonState = false;
    while (true)
    {
        buttonState = !button.Read();
        led.Write(buttonState);
    }
}

A lényeg, hogy boolean értékel tér vissza és ezt adjuk át a led Write metódusának.

Kategóriák:.NET, Microframework Címkék: ,

.NET Microframework

2013. február 18. hétfő 12 hozzászólás

Nem rég véget ért az ItFactory WPF tanfolyamom. A padsorok között volt egy kedves hallgató (Gál Mihály) aki már foglalkozott a .NET Microframeworkkel. Elég sok kis “kütyüje” van, és egy GHI-s tanulószetet kaptam kölcsönbe tőle. (Ez úton is köszönöm) Elég profi kis készülék, minden földi jóval el van látva amire egy kezdőnek szüksége lehet. Igaz azért elég húzós első befektetés. Kb 300$ körül van. Ami olyan 60-70 ezer jó magyar forint + postaköltség.

Szól elkezdtem vele, játszani. Mert hát ugye így akár a hűtőre vagy a mikrohullámú sütőre is írhatok programot. Bár eddig erre még nem volt ingerenciám.

Első körben kellet az SDK. Ezt innen lehet letölteni: https://netmf.codeplex.com/releases/view/81000 

Fel is raktam gyorsan, a Visual Studio alatt meg is jelentek az új sablonok.

image

Van Windows alkalmazás, Console alkalmazás, class library. Szóval minden amire szükségünk lehet az elején. Meg is írtam egy hello worldot gyorsan. Kipróbáláshoz van egy “gyönyörű” emultáros is. Nem valami csajozós, de amire első körben szükség lehet arra elég.

image

Persze jó, hogy ha az embernek fizikai készüléke van, mert hát az mégis csak jobb. Rá is kötöttem USB-n a GHI-s készüléket. Néhány másodperc múlva már be is bootolt.

image

Próbáltam deployolni,de nem jött össze. Gondoltam is, hogy tuti kell még valami driver és akkor jó lesz. Meg is kerestem a GHI oldalán, letöltés után már ment is a deploy.

Itt volt az ideje valamit rajzolni is a kijelzőre!

public static void Main()
{
    Bitmap LCD = new Bitmap(SystemMetrics.ScreenWidth,
                    SystemMetrics.ScreenHeight);
    LCD.Clear();
    int i;
    for (i = 10; i < 250; i += 4)
    {
      //Memóriában rajzolunk
      LCD.DrawLine(Colors.Green, 1, 10, i, i, 250);
    }
    LCD.Flush();
}

Az eredmény:

image

No ez is megvolt. Eljött a következő lépcsőfok. Nézzük mi az Windows Application. Igazából egy “ablakozó” rendszer, ami bizonyos tekintetben a WPF-re hajaz. Vannak it UIElementek, RoutedEventsek szóval nem volt annyira távoli a számomra. Az ablak elkészítése érdekes volt. Íme egy Hello World szintű Microframeworkos ablak:

public class Program : Microsoft.SPOT.Application
{
    public static void Main()
    {
        Program app = new Program();
        Window mainWindow = CreateWindow();
        app.Run(mainWindow);
    }

 

    private static Window CreateWindow()
    {
        Window window = new Window()
        {
                Height = SystemMetrics.ScreenHeight,
                Width = SystemMetrics.ScreenWidth,
                Visibility = Visibility.Visible
        };

 

        Text title = new Text()
        {
            Font = Resources.GetFont(Resources.FontResources.NinaB),
            TextContent = "Hello .NET Micro FW",
            HorizontalAlignment = HorizontalAlignment.Center,
            VerticalAlignment = VerticalAlignment.Center
        };
        window.Child = title;
        return window;
    }
}

Igazából nem volt bonyolult. Egy dologora kell figyelni, hogy a Text-nél a Fontot meg kell határozni, különben nem jelenik meg semmi. Én ebben az esetben most a Resources-hoz adtam, hozzá egy NinaB nevezetű fontot és azt töltöttem be.

Eredmény:

image

Konklúzió:

Ha .NET fejlesztő vagy akkor akár ilyen kis készülékekre is fejleszthetsz. Akkor akar a mikrosütőre is írhat alkalmazást.
Igaz ez nem kis befektetés, de szórakozásnak kiváló dolog. Akinek pedig több villamosmérnöki hajlama van az pedig még inkább fogja élvezni ezt az eszközt. Ha lesz időm még jelentkezek Microsoframework cikkekkel. Bár nem hiszem, hogy sokakat érdekelne, de azért csak leírom.

Kategóriák:.NET, Microframework Címkék: ,

Windows Phone 8 – Telerik RadWindow Bug

2013. február 11. hétfő 4 hozzászólás

Egy hobbi projektemhez a Windows Phone 8-as telerik vezérlőket használok. Igazából megvagyok vele elégedve. Nagyon látványos vezérlőket kapunk a telerik-től. Az ára is elég kellemes 99$ / év. Elég sok időt spórolnak meg nekem. Bár igaz utána kell keresni sokszor, hogy hogyan is működik egy-egy vezérlő. A dokumentáltsága elég szegényes pláne a WPF-es vagy az ASP.NET-es vezérlőkhöz képest.

Na de térjek a tárgyra. Egy RadWindow-ban (Ami am egy felturbózott popup) megszerettem volna jeleníteni egy Custom Controlt. Sikerült is minden. Szépen ment előre a projekt majd egyszer csak nem indult többé. Néztem, keresgéltem, hogy mi a répa lehet a baja. Egy jó 2 órát tuti elvett az életemből, mígnem rájöttem. A hiba akkor keletkezett, amikor a Custom Controlban Dependency Propertyket kezdtem el létrehozni. Még itt se volt baj, de Element Binding-gal kötöttem a UI elemekhez. Még ezzel sincs baj, csakhogy a UserControlt x:Name tulajdonságát én mindig root-ra állítom. Na is itt jött a gebasz. Ezt a szót ő nem szereti. Minden mást elfogad, csak a root nevet ne adjuk annak a user controlnak amit megakarunk a RadWindow-ban jeleníteni. És a legszebb, hogy akkor jár hibával ha az IsOpen (Boolean) tulajdonságot True-ra állítjuk, ami végül is logikus, de ilyenkor ArgumentExceptiont dob, miszerint az IsOpen nem lehet True.

Szóval szép kis hiba. Bár nem hiszem, hogy sokan használjátok, de mégis leírom, hátha valakinek valamikor jól jön, meg talán én se felejtem el.

Kategóriák:Telerik, Windows Phone 8 Címkék: , , ,

Expression Web és Designe INGYEN

2013. február 8. péntek 1 hozzászólás

Nagy a felhajtás mostanság az Expression termékcsalád körül. Jönnek a hírek miszerint, csak a Blend lesz az új üdvöske és a többi termék fejlesztése hanyagolva lesz. Vagyis nem hanyagolva, de csak támogatás lesz ezekhez, vagy már az se. Az ember már nem is tudja követni, hogy akkor mit akarnak ezzel a temrékcsaláddal csinálni a Microsoftnál. Mindenestre van egy jó hírem (igaz már nem annyira újkeletű, de csak most tudtam leülni megírni). Az Expression Web és Designe terméket mostantól ingyenesek!

expression-web-4-superpreview

Az Expression Web-ben az egyik legjobb funkciója a SuperPreview. Fejlesztési szempontból annyira nem szeretem, de nem rossz eszköz. Alapvetően jobbnak tartom mint az Notepad++ -t, és Php fejlesztők is használhatják. Az Expression Designe egy fapados “illustrator” (jó nyílván nem az.) de egyszerűség kedvéért így a legkönyebb elképzelni, hogy mi is ez az eszköz. Most már ezt a terméket is ingyen kapjuk.

image

Szóval tessék letölteni és használni.

Letölés: http://www.microsoft.com/expression/

UI: ne tévesszen meg senkit, hogy a letöltendő fájl nevében ott a Trial szó. Ebben az esetben nem jelent semmit.

Kategóriák:Expression Címkék: , ,