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? 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 9 cze 2025, o 01:37


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 19 mar 2016, o 16:25 
    Offline
    Użytkownik

    Dołączył(a): 01 sie 2015
    Posty: 40
    Pomógł: 0

    Wzorując się ma mechaniźmie działania programu P. Mirka z poradnika "WIFI - CLIENT - WWW/PHP" spróbowałem zrobić podobne narzędzie współpracujące bazą danych i skryptem php na mojej stronie sucyn.c0.pl oraz (w późniejszym czasie) aplikacją na androida, której temat poruszałem niedawno na tym forum :)

    Problemem stało się napisanie programu na at32, która ma za zadanie:
    1)wysłać zapytanie na moją stronę internetową przesyłając w adresie url odpowiednią zmienną do poprawnej reakcji skryptu php
    2)ze strumienia danych zwrotnych ze strony ma wyszukać pierwszy znacznik "#", następnie kolejne znaki wpisać do tablicy znaków aż do momentu trafienia na drugi znacznik "#"
    3) utworzoną w ten sposób tablicę znaków ma porównać z inna ustaloną w programie tablicą
    4)jeśli porównanie nie zwróci wartości "NULL" to program wysyła na stronę kolejną zmienną która zastępuje wyszukiwaną dotychczas w bazie danych

    Oto kod dla at32:
    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.


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


    W bibliotece MK_USART zmieniłem wielkość bufora nadawczego i odbiorczego na 100 oraz ze względu na zastosowany kwarc 16MHz szybkość UART'a na 38400. Moduł WIFI skonfigurowany chyba dobrze bo prawidłowo wysyła zapytania do serwera-sprawdzone.
    Problemem jest pierwsza pętla wyszukująca pierwszy znacznik "#" ponieważ nigdy się nie kończy tak jak by nie znajdowała tego znacznika.
    Proszę o pomoc w znalezieniu przyczyny tego problemu bo wydaje mi się że nie rozumiem do końca zasady działania funkcji "uart_getc()" i pewnie tu coś pomieszałem....



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 mar 2016, o 22:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 20 sie 2013
    Posty: 795
    Lokalizacja: Poznań
    Pomógł: 59

    Wycinek kody dla innej stronki, ale możesz się wzorować. Zmień tpstr.delim1 i tpstr.delim2 na swoje. Proponuję też na początek odkomentować test

    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 mar 2016, o 00:07 
    Offline
    Użytkownik

    Dołączył(a): 01 sie 2015
    Posty: 40
    Pomógł: 0

    Dzięki icer_cmg!
    Twój kod nie działał od razu, ale wystarczyło podmienić inicjalizację usarta z przekazaną szybkością "USART_Init(38400);" na "USART_Init(__UBRR);" i teraz wszystko śmiga!!!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 mar 2016, o 18:08 
    Offline
    Użytkownik

    Dołączył(a): 01 sie 2015
    Posty: 40
    Pomógł: 0

    Jeszcze mam takie pytanie, dla czego kolejne zapytania do strony internetowej muszą być wysyłane z ok 1500ms przerwą? Czy to wina modułu, mojej sieci, serwera hostingowego czy może programu, obsługi uart? Np: wysyłając dwa zapytania jedno po drugim serwer przetwarza tylko to pierwsze, drugie jest pomijane.



    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