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



Teraz jest 19 kwi 2024, o 20:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 23 wrz 2016, o 01:05 
Offline
Użytkownik

Dołączył(a): 17 mar 2015
Posty: 38
Lokalizacja: Australia
Pomógł: 0

Witam szanownych kolegów – fachowców.
Mam pytanie odnośnie komunikacji pomiędzy uC z kartą ENC28J60 a urządzeniem mobilnym z Androidem. Do pośredniczenia w komunikacji chciałbym użyć zewnętrzengo hostingu oraz własnej domeny www.
Przeglądałem forum na wszystkie sposoby i znalazłem sporo informacji jednak nadal mam pewne luki w wiedzy, której nie udało mi się uzupełnić. Nie wykluczam, że źle szukałem ;)

Przechodząc do konkretów:

Założenia:
1. Urządzenie z uC i kartą ENC28J60 pracujące jako KLIENT wysyłające do „mojadomena.pl” zmieną „zmienna1”.
2. Skrypt php na hostingu np „zapis_from_uc.php” odbierający „zmienna1” z uC i jak nazwa wszkazuje zapisujący ją gdzieś na hostingu.
3. Urządzenie z Androidem pracujące jako KLIENT odpytujące za pomocą skryptu „odczyt_from_uc.php” zmienną „zmianna1” przechowywaną na hostingu a wcześniej przekazaną tam przez uC.
4. Komunikacja w stronę przeciwną tzn. Przekazanie „zmienna2”z Androida do „mojadomena.pl/zapis_from_android.php”
5. Odczyt przez uC z „mojadomena.pl/odczyt_from_android.php”zmiennej „zmienna2” przechowywanej na hostingu.

Tyle założeń a teraz pytania.

Ad. 1 Tutaj wszystko jest raczej jasne. Bardzo pomocny był post kolegi PawelGaj http://forum.atnel.pl/topic3243.html
Ad.2 Gdzie mogę zapisać tą zmienną na serwerze? Czy z opcji mam dostępne tylko baza SQL i plik np tekstowy? Jeśli chodzi o bazę SQL to wolałbym uniknąć tego tematu gdyż jest to koleja nowa rzecz a w moim przypadku zaprzeęgnięcie bazy SQL nie jest konieczne. Chcę tylko przechować zmienną. Którą będę mógł odczytać za pomocą innego urządzenia z Androidem.
Może ktoś by mógł mnie nakierować na jakiś przykład skryptu PHP?
Na pewno można zapisać zmienną w pliku tekstowym na hostingu ale czy to nie przerost formy nad treścią? Czy taki plik w celu przeczytania trzeba za każdym razem otwierać a po odczytaniu zamykać?
Testowałem przypadek z plikiem tekstowym i da się to zrobić tylko czy nie można prościej?
Może jest jakiś inny sposób zapamiętania zmiennej dostępnej na „mojadomena.pl”?
Ad. 3 Jak zrobić najprostrzą komunikację z „mojadomena.pl” po stronie Androida. Zapytanie o zmienną orazy odebranie odesłanej przez serwer odpowiedzi.
Ad. 4 Odpowiedź na pytanie 3 pomoże i w tym punkcie
Ad. 5 Tutak chyba poradnik mirka o KLIENT WWW powinien załatwić sprawę.

Wiem, że podobne tematy były wałkowane wiele razy i wszyscy mówią, że najlepiej jest wykorzystać zewnętrzny hosting. Zgadzam się gdyż jest to rozwiązanie najbardziej uniwersalne. Nie jest potrzebne przekierowywanie portów i jakieś specjalne ustawienia w sieciach lokalnych. Wystarczy dostęp do internetu po obu stronach – Android i uC. Wszyscy mówią o zewnętrznych hostach jednak nie mogę się doszukać konkretnych przykładów które by pokazywały co zrobić na hostingu jak już go posiadam aby wykorzystać go do przekazywania zmiennej „zmienna1” z uC do Androida i zmiennej „zmienna2” w stronę przeciwną.
Byłbym kolegom bardzo wdzięczny za nakierowanie na konkretne informacje w tym t
emacie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2016, o 23:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2014
Posty: 438
Lokalizacja: Zambrów
Pomógł: 22

Zapis do plików nie jest taki trudny w twoim przypadku. Wiem, że nie jest to może eleganckie rozwiązanie programistyczne i wypasiony algorytm, ale aby było łatwo to np. proponuję Ci takie rozwiązanie:
Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Rozwiązanie jest fajne bo masz tylko jeden plik skryptu do odczytu i zapisu zmiennej

Aby zapisać plik wysyłasz URL w postaci:
Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


gdzie zmienna to dowolna nazwa zmiennej bez spacji i najlepiej polskich liter
val to treść tej zmiennej. Tu mogą być polskie litery i spacje

Aby odczytać plik wysyłasz URL w postaci:
Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


gdzie zmienna to nazwa zmiennej wcześniej zapisanej
wartość zmiennej dostaniesz jako tekst na stronie

Jeżeli coś pójdzie nie tak, np, zła wartość zmiennej lub nie podany parametr to otrzymasz jako treść pliku NaN, czyli będziesz wiedział, że gdzieś masz błąd.

Można to oczywiście rozbudować o obsługę błędów. Trzymać to w jednym pliku itp. Ale tak to przynajmniej prosto i szybko :)

Oczywiście dla pliku skrypt.php na hostingu jeżeli jest na systemach z rodziny linux trzeba nadać uprawnienia do zapisu plików.


Autor postu otrzymał pochwałę

_________________
.



Ostatnio edytowano 24 wrz 2016, o 09:21 przez misiulu, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2016, o 01:26 
Offline
Użytkownik

Dołączył(a): 17 mar 2015
Posty: 38
Lokalizacja: Australia
Pomógł: 0

No i to jest konkretna odpowiedź i na temat. Dziękuję misiulu.

Ma może ktoś jeszcze pomysł jak odbiór i zapis takiej zmiennej zrobić po stronie aplikacji na Androidzie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2016, o 02:52 
Offline
Moderator
Avatar użytkownika

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

Może to się przyda

https://www.youtube.com/watch?v=MR8Z0GF_Ha4
https://www.youtube.com/watch?v=KePL05iH_8I
https://www.youtube.com/watch?v=ihnJQmFwKkk
https://www.youtube.com/watch?v=JixSaI9_egE
https://www.youtube.com/watch?v=BH4PO7802So

_________________
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: 24 wrz 2016, o 09:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2014
Posty: 438
Lokalizacja: Zambrów
Pomógł: 22

zieleniewiak napisał(a):
No i to jest konkretna odpowiedź i na temat. Dziękuję misiulu.

Jak chcesz docenić kogoś, że Ci pomógł, to przy poście z prawej strony masz przycisk pomógł :) Oczywiście zwykłe podziękowania również wystarczą, ale to na forum dobry zwyczaj :)

W moim kodzie był mały babol, brakowało kropek przed txt, więc tworzył się plik z niepoprawnym rozszerzeniem - poprawiłem w poprzednim kodzie.

Oczywiście jak rano na to spojrzeć to można napisać to prościej :) np. tak:
Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 51 minutach ]

zieleniewiak napisał(a):
Ma może ktoś jeszcze pomysł jak odbiór i zapis takiej zmiennej zrobić po stronie aplikacji na Androidzie?

Jak już obejrzysz poradniki Mirka i będziesz wiedział jak apkę zrobić. Np. dodać przycisk i jego obsługę to wtedy możesz wykorzystać ten kod poniżej. Sam go używam do pobierania danych z serwera. Oczywiście w zależności jaki URL podasz to możesz zapisywać dane lub tylko odczytywać według tego co Ci podałem w innych postach.

Wszystkiego o b4a nauczyłem się właśnie z poradników Mirka więc dziękuję mu przy okazji za to :) A resztę już sam poszukałem to co Ci tutaj wypisuję :)

Aby działało to trzeba załączyć biblioteki:
Obrazek

Następnie w sub globals dodajesz zmienną globalną
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Następnie do Sub Activity_Create(FirstTime As Boolean) dodajesz inicjalizację http
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Następnie np. w obsłudze zdarzenia po naciśnięciu jakiegoś przycisku, u mnie B_PobierzDane_Click dodajesz wywołanie funkcji z adresem URL tak jak podawałem Ci w poprzednich przykładach. Możesz zapisywać lub tylko odczytywać nie podając w adresie zmiennej val
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozostało sprawdzić co zostało odebrane :) Jeżeli zapisywałeś zmienną to powinien być pusty string lub NaN jeżeli wystąpił błąd. Jeżeli odczytywałeś zmienną to wartość tej zmiennej lub NaN jeżeli wystąpił błąd
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


To by było na tyle. Możesz według tego szablonu powoływać wiele zmiennych globalnych z inną nazwą. Czyli coś do zapisu, do odczytu itp. Później to zainicjalizować. Następnie wywoływać w kodzie za pomocą httpDownload.Download i obsłużyć wynik w funkcji jobDone dodając kolejnego ifa: If httpDownloadJob.JobName = "httpDownload" Then zmieniając tylko nazwę httpDownload na tę nową co wcześniej zainicjalizowałeś.

U mnie to fajnie działa jednak jestem początkującym w tej dziedzinie więc może Master Mirek lub ktoś inny obeznany coś podpowie lub poprawi. Może jeszcze jakieś prostsze rozwiązanie? :)


Autor postu otrzymał pochwałę

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2016, o 12:26 
Offline
Użytkownik

Dołączył(a): 17 mar 2015
Posty: 38
Lokalizacja: Australia
Pomógł: 0

Robiłem wstępne testy i wszystko pięknie działa.
Dziękuję



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2016, o 14:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Cześć,
mam takie małe pytanko jak wyłuskać wartość samej tej zmiennej z poziomu B4A.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2016, o 15:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2014
Posty: 438
Lokalizacja: Zambrów
Pomógł: 22

kurnachatka napisał(a):
mam takie małe pytanko jak wyłuskać wartość samej tej zmiennej z poziomu B4A.

Za bardzo nie wiem o jaką zmienna Ci chodzi, jeżeli chcesz wiedzieć gdzie ona się znajduje po odebraniu b4a to w httpDownloadJob.GetString

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2016, o 15:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Cytuj:
httpDownloadJob.GetString


W tym stringu siedź cała zawartość strony, a ja bym chciał zmienna z pliku nazwa_zmiennej. txt

------------------------ [ Dodano po: 6 minutach ]

Może źle się wyraziłem nie zmienna tylko wartość.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2016, o 16:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2014
Posty: 438
Lokalizacja: Zambrów
Pomógł: 22

kurnachatka napisał(a):
W tym stringu siedź cała zawartość strony, a ja bym chciał zmienna z pliku nazwa_zmiennej. txt

Ale jaka zawartość strony? Jak wszystko dobrze zrobiłeś do powinieneś odebrać jako stronę właśnie samą wartość zmiennej! Skrypt php wypisuje tylko to albo tekst NaN, nic innego tam nie masz :)

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2016, o 16:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

No to musiałem coś zknocić bo dostaję całą zawartość w postaci html.
Będę szukał błędu. Dzięki za info.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2016, o 16:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2014
Posty: 438
Lokalizacja: Zambrów
Pomógł: 22

kurnachatka napisał(a):
No to musiałem coś zknocić bo dostaję całą zawartość w postaci html.

To pokaż co dostajesz to może znajdziemy przyczynę :)

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2016, o 17:09 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Stawiam że kolega dostaje kod php zamiast strony, czyli na serwerze niema php(coś dziwnego w dzisiejszych czasach).
Czy przez normalne połączenie przez przeglądarkę jest ok?

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2016, o 17:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

OK Panowie już chyba wiem skąd ten błąd.
Stronkę postawiłem na darmowym hostingu który dokleja mi swoją zawartość z banerem i stopką do PHPa.

------------------------ [ Dodano po: dzisiaj, o 17:44 ]

Po testach na lokalnym serwerze wszystko śmiga. Czyli problem leżał po stronie darmowego hostingu.

_________________
https://www.instagram.com/myfirstquadcopter/



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: 14 ] 

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO