Jak dostat data ze zařízení s web serverem?

Software potřebné k práci s elektronikou

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

Jak dostat data ze zařízení s web serverem?

#1 Příspěvek od Celeron »

Teoretický dotaz. Regulátor má v sobě jednoduchý web server. Přes prohlížeč se z něho vyčítá několik hodnot. Požadavek je, jestli by nešlo dostat z regulátoru 2 hodnoty a zobrazit je rezidentně dole na liště bez nutnosti spouštění prohlížeče. Já o týhle problematice vím lautr ku...ý... Tak se ptám, zda je možný něco takovýho naprogramovat? Co je k tomu potřeba a jak by to asi bylo náročný? Dozvěděl jsem se pouze od dodavatele regulátoru, že to komunikuje přes příkazy HTTP/XML. GET/příkaz.XML na vyčtení hodnot a POST/příkaz.XML zápis zeditovaných hodnot z GET ale nic bližšího kolem příkazů není k dispozici. Existuje nějaká možnost "vycucat" z regulátoru co všechno dokáže poslat a v čem to zpracovat?
Díky
Jirka
Uživatelský avatar
serviceman
Příspěvky: 4093
Registrován: 09 črc 2013, 00:00

#2 Příspěvek od serviceman »

Potřebuješ napsat program, který spustí skrytou instanci prohlížeče (to se dělá u IE běžně) a získaná data zobrazí v trayi (asi tak, jak se třeba zobrazuje teplota disku).
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#3 Příspěvek od Celeron »

Přesně to bych potřeboval. Dokážeš prosím odhadnout, jak by to bylo časově náročný abych měl alespoň orientační představu, kolik by to stálo a jak by vyšla ekonomika celýho problému?
Díky
Jirka
Uživatelský avatar
serviceman
Příspěvky: 4093
Registrován: 09 črc 2013, 00:00

#4 Příspěvek od serviceman »

Nedokáži, poptávej nějakého programátora.
Uživatelský avatar
rnbw
Příspěvky: 37418
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#5 Příspěvek od rnbw »

Podla mna to je za den hotove. Bez IE, staci kniznica na HTTP. Ak z toho lezie XML, tak na parsovanie sa pouzije tiez kniznica. Tym padom je ziskanie dat vyriesene a uz treba vyriesit len to zobrazovanie.
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#6 Příspěvek od Celeron »

Tak jsem mezi tím kouknul na komunikaci mezi reglem a PC Wiresharkem. No a už vím, že pan dodavatel kecá. HTTP/XML regulátor nepoužívá, pouze HTTP 1.1. Když koukám na komunikaci s Hlídačem čtvrthodinovýho maxima o kterým vím na beton z manuálu a popisu příkazů XML, tak to vypadá úplně jinak. Takže asi komplikace...
Jirka
Uživatelský avatar
jape
Příspěvky: 74
Registrován: 20 úno 2013, 00:00
Bydliště: Uh. Hradiště

#7 Příspěvek od jape »

Určitě by se dala vyrobit docela jednoduchá aplikace ve skriptovacím jazyce AutoIt3, následně zkompilovaná do .EXE....Stáhlo by to obsah nastavené www strany, našlo odpovídající údaje, zobrazilo v trayi v deefinovaných intervalech...
Příklady: http://www.autoitscript.com/forum/forum/12-autoit-v3/
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#8 Příspěvek od FHonza »

Taková aplikace (bez použití IE) je velmi jednoduchá a na programovacím jazyku nezáleží. V API Windows je celá řada funkcí (říká se jim WinNet funkce) ketré jsou přímo k tomu určené. Stačí hledat HttpOpenRequest a nalezneš dost příkladů. Např. tady je jednoduchý příklad pro C++
Uživatelský avatar
Zmije
Příspěvky: 1691
Registrován: 30 čer 2005, 00:00
Bydliště: Pardubický kraj

#9 Příspěvek od Zmije »

V Linuxu je to jednoduchý, je na to program wget, jde nastavit i přihlašovací údaje. Takhle jsem vyčítal sílu signálu z AP:

Kód: Vybrat vše

#! /bin/bash
cd /etc/network/arpdat
rm -f ./dat*
wget http://192.168.2.250/WStaList.htm?RADIO=2.4GHz -O "dat2.4" --http-user=jmeno --http-passwd=heslo | cat > /dev/null
wget http://192.168.2.250/WStaList.htm?RADIO=5GHz -O "dat5" --http-user=jmeno --http-passwd=heslo | cat > /dev/null

cat dat2.4 dat5 | grep " <td" |
while read row
do
row=${row#*>}
id=${row%<*}
read row
row=${row#*>}
mac=${row%<*}
read row
row=${row#*>}
status=${row%<*}
read row
row=${row#*>}
RSSI=${row%<*}
read row
echo $id $mac $status $RSSI | grep -v '-' |cat |
while read neco
do
echo $id $mac $status $RSSI
mysql -N -D webconf -u mysqlu -e "update IPadresy set RSSI='$RSSI' where mac='$mac'"
done
done

Uživatelský avatar
serviceman
Příspěvky: 4093
Registrován: 09 črc 2013, 00:00

#10 Příspěvek od serviceman »

Wget existuje i pro Windows, ale také je možné použít nativní PowerShell.
Uživatelský avatar
PixelOrgy
Příspěvky: 2051
Registrován: 04 zář 2007, 00:00

#11 Příspěvek od PixelOrgy »

rozhodne bych volil bash + wget + awk - jednoduche, efektivni, transparentni :-)

Pokud je nutnost zobrazovat vysledek v trayi, potom C++ a knihovnu libcurl.

libcurl je k dispozici pro jine jazyky, C/C++ je jen moje osobni preference (jiny jazyk moc neumim :) )
Odpovědět

Zpět na „Software“