Wyświetlenie danych z innego urządzenia

Wyświetlenie danych z innego urządzenia
BY
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 miesiące
  • Postów:39
0

Witam,
mam stację pogody (HP-1001), która łączy się z siecią wifi i wysyła dane z niej do internetu, ale nie wszystkie.
Chce napisać program w java, który by te dane pobierał i wyświetlał na ekranie komputera.
Problem tkwi w tym, że nie wiem jak te dane pobrać z tej stacji. Istnieje program na PC (EasyWeather), ale sam chce to zrobić "lepiej".
W tym programie, do połączenia wpisuje się adres IP komputera. Po sprawdzeniu portów połączenia z siecią to stacja ma stały port. IP stacji jest zmienne ze względu na połączenie z routerem (w stacji nie ma możliwości ustawienia stałego IP).

gg
  • Rejestracja:około 9 lat
  • Ostatnio:około rok
  • Lokalizacja:Kraków
  • Postów:574
0

No a ja CI odpowiem, że skoro stacja ma MAC adres a router masz Ty, to możesz najprawdopodobniej przypisać MAC adres stacji pogodowej do jakiegoś stałego IP z puli adresów dostępnych w DHCP. To taka uwaga w zakresie tematu.

BY
Ale nie o to w tym chodzi. Chodzi o to żeby połączyć się z tą stacją znając nr portu na którym działa oraz wyłuskać z niej dane. Tylko nie wiem jak to w programie napisać.
HI
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 10 godzin
  • Postów:1855
0

Na początek spróbował bym Wireshark'iem podsłuchać w jaki sposób odbywa się komunikacja.

BY
Więc przez ten program wyszło, że komunikacja odbywa się protokołem TCP z czasem powtarzania tej samej ramki co ok. 27s
gg
  • Rejestracja:około 9 lat
  • Ostatnio:około rok
  • Lokalizacja:Kraków
  • Postów:574
0

Tak jak wspomniano już tutaj. Wireshark pozwoli Ci na zobaczenie co właściwie wysyła stacja i w jakim czasie. Niekoniecznie musi to być protokół jawny, łatwy do odczytania.

HI
Po co drugi raz powtarzać to samo?
BY
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 miesiące
  • Postów:39
0

Przejrzałem pakiety, ale z tego co zauważyłem to część (ta najbardziej interesująca) jest bodajże zakodowana. Te mniej interesujące dane typu nazwa stacji, dane logowania do serwera itp. są nie zakodowane.

HI
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 10 godzin
  • Postów:1855
0

Tylko Ty widziałeś te dane więc nie oczekuj od forumowiczów zbyt wiele ;)

BY
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 miesiące
  • Postów:39
0

Wireshark daje mi takie np. dane HEX i ASCII:
0000 74 2f 68 db 46 93 48 02 2a ec 07 5c 08 00 45 00 t/h.F.H.....E.
0010 01 40 1e 0d 40 00 80 06 57 fe c0 a8 01 2d c0 a8 .@..@...W....-..
0020 01 2f fd ea 19 64 a7 f2 ae 8b 90 64 cb f6 50 18 ./...d.....d..P.
0030 00 40 f7 58 00 00 48 50 32 30 30 30 00 00 57 52 .@.X..HP2000..WR
0040 49 54 45 00 00 00 4d 41 58 4d 49 4e 00 00 00 00 ITE...MAXMIN....
0050 00 00 00 00 00 00 18 01 00 00 5c 00 00 00 10 0a ...............
0060 04 06 0c 10 08 1e 12 27 10 08 1b 07 26 10 09 0e .......'....&...
0070 10 13 10 09 0c 12 07 10 0a 0f 0a 2a 10 08 1a 10 ...........
....
0080 18 10 0c 05 05 07 10 08 1b 13 0f 10 0c 05 0c 06 ................
0090 10 08 1a 10 06 10 08 1a 0e 38 10 08 1a 10 18 10 .........8......
00a0 0c 05 05 07 10 0c 07 09 27 10 0b 06 03 39 10 0c ........'....9..
00b0 07 09 27 10 0b 06 03 39 10 0c 01 13 25 10 0a 14 ..'....9....%...
00c0 16 27 10 0a 08 0a 17 10 0a 1d 0f 15 10 0c 07 0c .'..............
00d0 27 10 0c 02 04 10 10 0c 02 04 10 10 09 05 10 16 '...............
00e0 10 09 06 0e 24 4d 27 63 0a 00 9a 99 d5 41 cd cc ....$M'c.....A..
00f0 8c 41 9a 99 13 42 33 33 0b c1 33 33 a7 41 00 00 .A...B33..33.A..
0100 50 c1 9a 99 13 42 33 33 0b c1 9a 39 7b 44 cd ac P....B33...9{D..
0110 71 44 cd 6c 81 44 cd 4c 79 44 00 00 10 41 cd cc qD.l.D.LyD...A..
0120 a0 41 66 66 f2 41 33 33 88 42 33 33 0b 43 cd cc .Aff.A33.B33.C..
0130 12 42 cd cc 50 42 d3 4d b5 42 04 23 1a 00 00 00 .B..PB.M.B.#....
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............

No i co teraz z tym trzeba zrobić?
Albo co innego mam wrzucić?

R3
  • Rejestracja:ponad 11 lat
  • Ostatnio:3 dni
  • Postów:419
0
BY
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 miesiące
  • Postów:39
0

OK. Napisałem maila do supportu producenta jak się połączyć i uzyskać dane z tejże stacji. Dostałem odpowiedź na temat całego protokołu połączenia i uzyskania danych, ale jest to program napisany w C/C++. Da ktoś to "przetłumaczyć" na java?

Kopiuj
 UINT StartServerThread(LPVOID lp)
{
	LogicHandle * mHandle = (LogicHandle *)lp;
	//////////////////////////////////////////////////////////////////////////
	while (1)
	{
		if(mLogicHandle.mExitFlag)
			break;
		
		boolean flag = mHandle->mSockManage.OpenServer();
		if (false == flag)
		{
			TCHAR("Disconnect to server");
			
		}
		else
		{
			
			break;
		}
		
	}
	//////////////////////////////////////////////////////////////////////////
	
	mHandle->MacToDev();
	
	mHandle->mSockManage.OpenBroadcast();//////////////////////////////////////////////////////////////////////////
	AfxBeginThread(StartBroadcastThread, lp);	
	AfxBeginThread(StartLoopThread, lp);
	AfxBeginThread(recvBroadThread, lp);
	
	

	return 0;
}

Jest to tylko część kodu...

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)