Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 22 maja 2025, o 01:22


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 25 lip 2013, o 22:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 maja 2012
    Posty: 471
    Lokalizacja: ZGY/ZS
    Pomógł: 30

    Obrazek

    Powitanko ;)

    Bardzo wiele osób w domu/firmie ma postawiony jakiś serwerek, który coś tam robi, to czemu by nie dołożyć do niego opcji: „Centrum dowodzenia”? Chciałem pokazać w jaki sposób można wykorzystać po części coraz bardziej lubiany tu na forum język C#. Ustrojstwem którego użyjemy będzie platforma ASP.NET ( nie mylić z akademią sztuk pięknych ;] ). Wykorzystano jako bazę na uC oczywiście zestaw ATB i projekt z lekcji o komendach AT z zielonej książki. Można już wywnioskować, że nie użyjemy modułu sieciowego ETH dla zestawu ATB, a jedynie wbudowanej przejścióweczki USB-UART, czyli do szczęścia potrzebny nam tylko kabelek USB.

    ASP.NET jest to technologia tworzenia stron www wchodząca w skład platformy .NET. Kod takiej aplikacji wykonywany jest po stronie serwera, a jej wynik przekazywany do przeglądarki jako strona HTML. Bez zbędnego pitu pitu, przechodzimy do rzeczy.

    Środowisko

    Całość została wykonana na świeżutkim Win8 na wirtualnej maszynie VMware Player. Jeżeli ktoś również będzie chciał pracować na VMware, to zawczasu zaznaczam, że należy skonfigurować połączenie sieciowe z hostem jako Bridge.
    Obrazek
    Po takim zabiegu wirtualna maszyna dostanie swoje własne IP na routerze. Musimy jeszcze zrobić przekierowanie naszego zewnętrznego IP właśnie na lokalny adres wirtualnej maszyny. Robimy to już w ustawieniach samego routera, wtedy będziemy mieli dostęp z dowolnego miejsca.

    W pierwszej kolejności musimy ściągnąć i zainstalować Microsoft Visual Studio Express 2012 for Web ze stronki MS. Jest to darmowy produkt, jedynie musimy się zarejestrować aby otrzymać klucz. Proces jest całkowicie bezbolesny.

    Tworzymy nowy projekt

    Odpalamy, wybieramy New project -> Visual C# ->Web -> ASP.NET Empty Web Application. Nadajemy nazwę jaką chcemy i OK.
    Obrazek
    Mamy pusty projekt, dodajemy naszą główną stronę. W zakładce Solution Explorer prawoklik na projekt Add ->New Item -> Web Form. Proponuję nadać nazwę pliku default.aspx ponieważ później ułatwi nam to kilka spraw.
    ObrazekObrazek

    ASP.NET udostępnia dwie metody zarządzania strukturą kodu stron. Pierwsza polega na korzystaniu z modelu code-inline. Cały kod jest umieszczony w jednym pliku .aspx. Drugi sposób korzysta z modelu code-behind, który pozwala na oddzielenie kodu odpowiedzialnego za logikę „roboczą” od kodu realizującego logikę „prezencji”. W tym modelu logika strony www przechowywana jest w pliku .aspx, podczas gdy kod roboczy mieści się w oddzielnym pliku klasowym aspx.cs. My będziemy pracować właśnie z metodą code-behind co poprawia znacznie czytelność i poruszanie się po projekcie.

    Po wykonaniu powyższych kroków, mamy przed sobą właśnie plik z kodem prezencji. Jak widać jest to głównie html, więc osoby robiące już stronki szybko się odnajdą.
    Obrazek
    Na dole okna mamy sposoby wyśiwtlania: Design – Split – Source
    W tym momencie dobrze jest dodać pliki z grafiką do naszego projektu. W zakładce Solution Explorer prawoklik na projekt Add ->New Item ->New folder.
    Prawoklik na nasz nowy folder Add -> Existing Item i wskazujemy pliki

    Style CSS

    Wygląd kontrolek i innych rzeczy można zmieniać w oknie properties, ale kod wtedy staje się mało czytelny i mamy ograniczone opcje. Na ratunek przychodzą kaskadowe arkusze stylów. Dodajemy do naszego projektu nowy styl:
    Obrazek
    Visual Studio ma wbudowany edytor kompozycji, więc nie trzeba się za bardzo znać na CSS :D
    Między nawiasami klamrowymi prawoklik -> Build style
    Obrazek
    Tutaj robimy wolną amerykankę, następnie we właściwościach jakiejś kontrolki wypełniamy pole CSSClass i już mamy przypisany styl.
    Poniżej kod pliku css użytego w projekcie:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język css
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Dobra bierzemy się za pisanie kodu:
    Wybieramy z panelu Tollbox kontrolki jakie nas interesują, robimy szatę graficzną naszej strony. Opiszę tutaj jedynie istotne komponenty:

    AJAX

    Aby nasza strona nie przeładowywała się co chwilę użyjemy komponentu AJAX. Na początek musimy dodać ScriptManager, który podpina do strony kod JavaSripta
    Składnia: [ Pobierz ] [ Ukryj ]
    język asp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Tworzymy teraz kontener który będzie przeładowywany : Update panel.
    Składnia: [ Pobierz ] [ Ukryj ]
    język asp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    W polu Content Template umieszczamy to co ma być odświeżane.
    Natomiast w polu Triggers jak nazwa wskazuje będą wyzwalacze, które zainicjują przeładowanie.
    Poniżej cały kod pliku Default.aspx
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język asp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    A tak prezentuje się powyższy kod:
    Obrazek

    Code-Behind

    Przechodzimy do pliku Default.aspx.cs czyli naszego kodu roboczego.
    Na początek tworzymy zmienne serwerowe:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Ważne jest aby były one typu static, wtedy nie będą "ulotne". Bez tego z każdym załadowaniem strony zmienne tworzone by były na nowo, a co za tym idzie stracimy wartości w nich siedzące.
    Nie będę opisywał szczegółowo każdego bloku, zaopatrzyłem kod w komentarze.

    Mechanizm komunikacji jest taki, że odpalamy timer na serwerze który cyklicznie odpytuje zestaw ATB, natomiast drugi timer "klienta", cyklicznie przepisuje wartości ze zmiennych statycznych do kontrolek wyświetlanych na stronie Web u klienta.

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Podczas testowania stronki jest ona uruchamiana na wirtualnym serwerze i nie ma do niego dostępu z innego miejsca. Klikamy:

    1. Build -> publish
    2. Select or import a publish profile -> new. Podajemy nazwe -> ok
    3. Publish metod -> file system -> c:\NazwaFolderu -> next -> next -> publish (jeśli lokalizacja będzie inna niż dysk C, to będą problemy)

    Publikacja strony na własnym serwerze

    Aby opublikować stronkę na własnym serwerze to najpierw musimy... zainstalować serwer :D Na szczęście windowsy są uzbrojone w takie cholerstwo jak IIS, ale domyślnie jest nieaktywne.
    Przechodzimy do Panel Sterowania -> Programy i funkcję -> Wł/wył funkcję systemu i zaznaczamy opcję Internetowe usługi informacyjne Należy pamiętać o dodatkowym rozwinięciu Usłgi WWW -> Funkcję tworzenia aplikacji -> ASP.NET 4.5
    Obrazek

    Odpalamy wyszukiwarę programów na windowsie Win+Q i szukamy IIS. Po odpaleniu wykonujemy:
    Obrazek

    1. IIS -> Polłączenia (lewa kolumna) -> Default Web Site -> Dodaj katalog wirtualny.
    2. Podajemy ścieżkę do naszej opublikowanego folderu na dysku C
    3. Prawoklik na nasz folder i konwertuj na aplikację
    4. Włączamy przeglądanie katalogów
    5. Wyłączamy windowsowego firewalla :D

    Od teraz wklepujć w przeglądarkę IP/ATB_ASP mamy dostęp z zewnątrz. To tyle części PC-towej.

    ATB-ASP kod uC

    Program na uC to praktycznie cała lekcja 21 z drobnymi modyfikacjami obsługi poleceń AT

    main.c
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    main.h
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Komendy_at.c
    ......

    komendy_at.h
    ......

    Wyniki




    Projekt C#


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    eDiyCraft.blogspot.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lip 2013, o 00:37 
    Offline
    Użytkownik

    Dołączył(a): 16 mar 2013
    Posty: 157
    Pomógł: 6

    Bardzo fajny projekt. Niestety moim zdaniem jest jeden minus. Jak na razie to chyba nie ma żadnych darmowych hostingów które są postawione na Windowsie (a jest to konieczne, żeby ASP.NET działało). Większość hostingów działa na linuxsie, więc pozostaje postawienie własnego serwera na Windowsie bądź wykupienie jakiegoś hostingu, który obsługuje ASP.NET. Generalnie całość wykonana bardzo fajnie i bardzo mi się podoba. Szczególnie ten motyw z tabletem mnie rozwalił. Gratuluję pomysłu i wykonania.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lip 2013, o 06:37 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27402
    Lokalizacja: Szczecin
    Pomógł: 1043

    Bardzo pouczający projekt. Tak na prawdę nie trzeba zaraz mieć gdzieś hostingu żeby wymyślić sposoby na zastosowanie czegoś takiego. Przecież Windowsa prawie każdy ma, w wielu firmach gdzie jest intranet, gdzie i tak często jakiś windows pełni rolę takiego ala serwerka do różnych ceków - to jak w sam raz aby zdalnie czymś zarządzać, sterować itp

    A tym bardziej fajny projekt, że znowu jak wiele innych poradników przedstawia w taki sposób krok po kroku jak osiągnąć cel i uczy czegoś. Dobra inspiracja i na takie rzeczy trzeba patrzeć.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 gru 2013, o 10:54 
    Offline
    Nowy

    Dołączył(a): 21 kwi 2013
    Posty: 11
    Pomógł: 0

    Urwało mi xxxx


    Proszę się powstrzymać od takich komentarzy na przyszłość - Różowy J.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO