Re: uživatelský web
Aktuálně - Firefox 8.0.1 nezobrazí user.html ale rovnou zdrojový kód, IE a Google Chrome fungují normálně.
dtto
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz
Network Monitoring System - SDS - Síťový Dohledový Systém
Nejste přihlášen. Přihlaste se, nebo se zaregistrujte.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » SDS-MACRO (LM) » uživatelský web
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
Aktuálně - Firefox 8.0.1 nezobrazí user.html ale rovnou zdrojový kód, IE a Google Chrome fungují normálně.
dtto
stejné je to i v tom demu
Je tam chyba v JavaScriptu, kdy se při prvním stisku vytváří komunikační prvek, ale už se nepoužije. Až teprve při dalších. Podívejte se do toho zdrojáku je tam ještě další stejný kód, který to už dělá správně.
Snad se někdo dostane k tomu tu stránku aktualizovat.
Aktuálně - Firefox 8.0.1 nezobrazí user.html ale rovnou zdrojový kód, IE a Google Chrome fungují normálně.
Taky jsem si všimnul. Zřejmě je tam stránka nahraná ještě se starým SDSC.EXE programem. Takže tam chybí HTTP hlavička.
Zkuste ji nahrát nejnovější verzí SDSC.EXE a dejte vědět.
Podívejte se do toho zdrojáku je tam ještě další stejný kód, který to už dělá správně.
Koukal jsem ale další stejný kód jsem nenašel.
Bohužel jsem programátorsky zamrzl v době assembleru a TP5.5, takže javascript a html mi dávají dost zabrat.
Pro podporu Vašich produktů by určitě bylo vhodné, kdyby na foru existoval někdo, schopný za úplatu vytvořit část nebo i celý kód do SDS. Čímž by se zjednodušilo nasazení Vašich výrobků do produkčního prostředí i pro lidi kteří se sice živí elektronikou, regulací atd. ale nejsou vyloženě programátoři.
S názorem souhlasím. Zkuste se tady zeptat, možná se někdo takový najde.
Jak to upravit (bavíme se teď o zmíněné demo stránce) tak, aby to fungovalo hned na první kliknutí.
function sdsc_S(sysn,val){
if(!sub) { getSub(); );
if(sub){
sub.open("GET", "sdscep?sys"+sysn+"="+val, true);
sub.onreadystatechange=reqCompleteR;
sub.send(null);
}
}
Porovnejte si to s původním zdrojovým kódem.
Podobně je potřeba upravit i zbylé funkce...
Díky, už to šlape na první kliknutí.
Mám vytvořen user.htm, který má cca 50 kB a nejsem schopen ten soubor dostat do macra. Klasické malé soubory do 10 kB tam bez problémů naleju, ale velký soubor mi končí náhodně po odeslaných 30 - 100 paketech, maximálně jsem dosáhl 103 paketů. Používám SDSC231111, mám W7. Umře to bez výstrahy, někdy to i vyhodí hlášku, že nemůže vymazat paměť.
Žádné jiné zařízení v době loudování není na SDS připojeno, provoz v síti téměř nulový.
Díky za radu.
Vyzkouším a uvidíme. Hmm, 50kB by se vlézt mělo.
Určitě zkuste nejnovější firmware (beta viz zde)
V nové bataverzi se to již chová korektně. Otestováno
Díky, v nové betaverzi mi to funguje. Kdy bude finální verze pro macro?
Máte-li někdo nějaký vzorek user.htm prosím o ukázku.
Něco, co trochu funguje alespon s tlačítkem, check boxem a nějakým okýnkem co zobrazí aktuální stav/hodnotu.
Nějaký mustr, který by bylo možné si pak upravit dle svého.
Jednoduchá ukázka, co jsem našel sice zapíše do sys[147] údaj, ale pak mi to dá "stránka nenalezena"
Dík předem
Zkus třeba http://www.valachnet.cz/malyj/macro.htm nebo http://www.valachnet.cz/malyj/micro.htm
Je to původní demo pro tyto zařízení. Jen doporučuji, pokud už máš nový FW s get_sys používat get_sys[]. Je to funkční a rychlé. např.
function sdsps(){
req=false;
reqT=false;
reqR=false;
if(window.XMLHttpRequest){
req=new XMLHttpRequest();
reqT=new XMLHttpRequest();
reqR=new XMLHttpRequest();
}
else if (window.ActiveXObject){
req=new ActiveXObject("Microsoft.XMLHTTP");
reqT=new ActiveXObject("Microsoft.XMLHTTP");
reqR=new ActiveXObject("Microsoft.XMLHTTP");
}
if (req){
//opto
req.open("GET", "get_sys[151]?rn=2&rand="+Math.random(), true);
req.onreadystatechange = reqComplete;
req.send(null);
}
if (reqT){
//301 je D0, 310 jsou teploty
reqT.open("GET", "get_sys[301]?rn=10&rand="+Math.random(), true);
reqT.onreadystatechange = reqTComplete;
reqT.send(null);
}
if (reqR){
//rele
reqR.open("GET", "get_sys[231]?rn=2&rand="+Math.random(), true);
reqR.onreadystatechange = reqRComplete;
reqR.send(null);
}
t=setTimeout("sdsps()",2000);
}
Dík za ty odkazy a vzorek.
Tyhle stránky jsem už před časem zahlídnul, ale protože jsem měl jen SDS micro, tak jsem to více nestudoval a teď už se mi je nepodařilo znova najít.
Teď jsem si koupil ještě SDS MACRO k jinému účelu a tam bych potřeboval tu user stránku nějak upravit.
Akorát mám problém s orientací na wiki, je to značně roztříštěné kolikrát najdu věci jen náhodně.
Programování SDS C jsem jakž tak zvládnul. Díky předchozí zkušenosti s programováním PIC. Ale v html, php atd jsem naprostej začátečník.
Asi jsem to úplně nepochopil.
Zkusil jsem dostat tu stránku pro MACRO do zařízení. Teplotu mi to ukazuje, ale na tlačítka relé nereagují.
Pokud chci ovládat ty relé z user.html, tak to nebere ohled na nastavení, jestli jsou ovládaný z SDS, IPwatchdog ON/OFF atd. ?
V tom html jsou nějaký odkazy na javascript a css, jak to bude fungovat v tom zařízení ?
K čemu je v tom příkladu tohle ? ="+Math.random(), viz výše.
Na jakým principu tedy funguje to user.html v zařízení MACRO ? Co mám studovat javu, php, css ?? Vůbec nevím, čeho se chytit.
Aha, už jsem na stopě, ty relátka si musím naprogramovat ještě do SDS, aby se spínaly v závislosti na stavu proměnných sys[140] až 174
kdysi jsem to popisoval na http://forum.merenienergie.cz//viewtopic.php?id=37 - doporučuji nastudovat.
Tlačítka je potřeba ovládat sds-c programem, který v cyklu kontroluje stav na sys140-147. Podle hodnoty ve web proměnných se pak ovládá relé. ? ="+Math.random() je kvůli kešování prohlížečů. Pro user.htm je podstatná java html a css
Zkus třeba http://www.valachnet.cz/malyj/macro.htm nebo http://www.valachnet.cz/malyj/micro.htm
Je to původní demo pro tyto zařízení. Jen doporučuji, pokud už máš nový FW s get_sys používat get_sys[]. Je to funkční a rychlé. např.
function sdsps(){
req=false;
reqT=false;
reqR=false;
if(window.XMLHttpRequest){
req=new XMLHttpRequest();
reqT=new XMLHttpRequest();
reqR=new XMLHttpRequest();
}
else if (window.ActiveXObject){
req=new ActiveXObject("Microsoft.XMLHTTP");
reqT=new ActiveXObject("Microsoft.XMLHTTP");
reqR=new ActiveXObject("Microsoft.XMLHTTP");
}
if (req){
//opto
req.open("GET", "get_sys[151]?rn=2&rand="+Math.random(), true);
req.onreadystatechange = reqComplete;
req.send(null);
}
if (reqT){
//301 je D0, 310 jsou teploty
reqT.open("GET", "get_sys[301]?rn=10&rand="+Math.random(), true);
reqT.onreadystatechange = reqTComplete;
reqT.send(null);
}
if (reqR){
//rele
reqR.open("GET", "get_sys[231]?rn=2&rand="+Math.random(), true);
reqR.onreadystatechange = reqRComplete;
reqR.send(null);
}
t=setTimeout("sdsps()",2000);
}
Tak jsem se do toho ponořil a dělal pokusy na téhle stránce http://www.valachnet.cz/malyj/macro.htm , celkem jsem pochopil získávání dat a jejich umístění do web stránky na tom vzorovém webu.
--------------------------------------------------------------------------
ještě jsem narazil na toto a nevím k čemu to je. :
var xx; xx=((5*(59 - 30*((3/1024)*rE[9])))/2);xx=xx.toFixed(1);
je to výpočet SoC teploty ?
-------------------------------------------------------------------------------
Během testování jsem narazil na malý problém - při znovunačtení stránky mi nefunguje na první stisk Tl ON pro Relé1. Pokud zmáčknu jiné tl a pak znovu Tl ON pro Relé1 pak už funguje normálně.
Úpravu popsanou v příspěvku 29 od adamn http://forum.merenienergie.cz//viewtopi … d=849#p849 jsem nepochopil - hlásilo mi to chybu skriptu.
Ale pomohlo překopírováním souvisejícího kodu z druhé vzorové stránky pro MICRO.
---------------------------------------------------------------------------------
U dema user micro.html jak se identifikují teplotní čidla ?
var rACU=rE[9].split(" ");
document.getElementById("pocetcidel").innerHTML=(rE[9].length/2)+" z 16ti";
Mám 8 čidel a na stránce mi to píše "Počet čidel 51.5 z 16ti"
Proč je to v násobcích 2 ?
document.getElementById("temp1").innerHTML=rACU[0]+" °C";
document.getElementById("temp2").innerHTML=rACU[2]+" °C";
document.getElementById("temp3").innerHTML=rACU[4]+" °C";
document.getElementById("temp4").innerHTML=rACU[6]+" °C";
document.getElementById("temp5").innerHTML=rACU[8]+" °C";
document.getElementById("temp6").innerHTML=rACU[10]+" °C";
--------------------------------------------------------------------------------------
A zatím poslední dotaz :
Už jsem rozchodil obě stránky pro macro (v zařízení) i micro na lokálním PC. Ale u micra (vzorové demo) mi to nechce chodit, pokud to html spustím ze sdíleného disku v síti, nebo pokud si ho nahraju na své web. stránky (v tomto případě nahrazuji odkazy v kodu na moji IP adresu).
Po spuštění se stránka zobrazí, ale toto mám v chybě skriptu :
================
Přístup byl odepřen.
user_micro.html řádek : 177
Kod: 0
Identifikátor URI: http://xxx.cz/xxx/user_micro.html
================
řádek 177 je GET:
req.open("GET", "http://xxx.xxx.xxx.xxx/cgi_dys?rand="+Math.random(), true);
kde xxx.xxx.xxx.xxx mám svou venkovní IP adresu
Porty mám směrované přes NAT TCP 80 na SDS vnitřní IP taky 80
Příkaz z jiného PC na tuhle IP s cgi_dys... z IE prohlížeče zobrazí proměnné správně.
Stejnou chybu to udělá, pokud html soubor otevřu z jiného PC umístěném ve vnitřní síti.
Pokud ho otevřu z plochy na stejným PC, tak to funguje O.K.
Dík předem za tpělivost.
Tak jsem trochu pokročil.
Do dema jsem doplnil zpětnou informaci o stavu relé a dále naplnění formulářového okénka aktuální hodnotou z proměnné sys[140] (aktualizace při načtení str.)
Ale stále bojuju s problémem načítání dat z jiného umístění souboru user.html
A nemůže to být tímto http://forum.merenienergie.cz//viewtopi … d=411#p411
A nemůže to být tímto http://forum.merenienergie.cz//viewtopi … d=411#p411
Tam popisuje problém s ActiveX v IE. Na mne, podle nastavení zabezpečení, při prvním otevření vyskočí dotaz zda chci povolit a po potvrzení to funguje.
Tedy ze stránky uložené v zařízení to povolení nevyžaduje, jen při spuštění user.html z plochy (použité pro micro sds light).
Dotazy "ručně" na cgi, nebo xml přímo z IE mi chodí odevšad bez problému.
Stejný problém mám při otevření i GoogleChrome.
A jestli je to SOP, tak co s tím ?
Připomínám se s otázkou, jak řešit user.html a Same Origin Policy ?
Nebo jakou jinou cestou zprovoznit user.html mimo lokální síť u zařízení MICRO Light (nejde nahrát dovnitř)
Ano ten důvod je to SOP.
Jak vyřešit SOP (zatím) netuším. Snad někdo poradí dříve než na to sám přijdu.
Jaký je konkrétní problém se zprovozněním user.htm mimo lokální síť?
Jako že se nedaří nahrát z SDSC.EXE programu ?
To mne zajímá, jaké to hlásí chyby ?
Ano ten důvod je to SOP.
Jak vyřešit SOP (zatím) netuším. Snad někdo poradí dříve než na to sám přijdu.Jaký je konkrétní problém se zprovozněním user.htm mimo lokální síť?
Jako že se nedaří nahrát z SDSC.EXE programu ?
To mne zajímá, jaké to hlásí chyby ?
Problém není s nahráním z SDSC.EXE v MACRU, kam se nahraje ta stránka do zařízení. To funguje dobře z jakéhokoli přístupu.
Ale chtěl bych tu stránku použít i pro SDS micro light a tam ji není kam nahrát, musí být někde na serveru a přistupuje k tomu SDS. Problém je právě zde. Pokud je to user.html jinde, než web prohlížeč, tak to nefunguje.
Já si myslím, že tohle nejde ... anebo jde ale složitě. Je to stejné jako např. síťová tiskárna která má v sobě nastavení přes web. V tiskárně je "user.html" a zvenku se přistupuje. Volání proměnných zvenku musí asi podporovat firmware. Možná hrnous nebo Adamn budou vědět jak na to ...
Ještě mě napadlo ... od toho jsou možnosti vytahování dat do txt, csv, anebo htm.
Např. http://192.168.1.250/temp.txt
Prosím o radu.
Upravil jsem si user stránku, nahrál do Macra jako index.html. V prohlížeči mi to funguje bez problému, ale potřeboval bych poradit s mobilem.
Zkouším to v Androidu na Samsungu a zobrazená stránka je hodně miniaturní. Musím to ručně zoomovat a pak to již funguje normálně.
Jak to udělat, aby se to ořízlo na displej mobilu ?
tady je náhled - mělo by to být funkční, klidně to můžete testovat, není to zatím nikam zapojený
http://88.102.206.147
test
Prosím o radu.
Upravil jsem si user stránku, nahrál do Macra jako index.html. V prohlížeči mi to funguje bez problému, ale potřeboval bych poradit s mobilem.
Zkouším to v Androidu na Samsungu a zobrazená stránka je hodně miniaturní. Musím to ručně zoomovat a pak to již funguje normálně.
Jak to udělat, aby se to ořízlo na displej mobilu ?
tady je náhled - mělo by to být funkční, klidně to můžete testovat, není to zatím nikam zapojený
http://88.102.206.147
test
Ahoj. Myslím, že máš zbytečně velký obrázek na pozadí ... nejdříve udělej pozadí na ideální velikost a pak zbytek na šířku 100%.
To jenom tak v rychlosti ... User stránku děláš jenom jednu, tak buď bude velikostně na PC anebo na mobil.
Ještě mě napadá možnost udělat 2x css, jedno dle mobilu a druhé standard. Ale teď mě nenapadá jak zjistit čím přistupuješ
Každý klient má svou "značku". Více např na http://blog.igloonet.cz/detekce-mobilnich-zarizeni/
Nějak jsem to upravil. Vadilo tam něco v hlavičce, co bylo nastaveno na nějakou šířku. Obrázek pozadí na to vliv nemá.
Dík za odkaz. Už jsem našel něco podobné na identifikaci prohlížeče, ale tohle je přímo na smartfouny.
Zkusím ještě nějaké pokusy. Je to v podstatě moje první seznamování se s html a hlavně css.
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » SDS-MACRO (LM) » uživatelský web