w /etc/init.d/mpd masz konfig który woła nazwę karty 'PCM' a Twoja nazywa się 'Speaker'
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Posty przez wabikboy
w /etc/init.d/mpd masz konfig który woła nazwę karty 'PCM' a Twoja nazywa się 'Speaker'
Temat rozwiązany.
Dziwne trzeszczenie które występuje w dystrybucji Xbian, na Raspbmc tego problemu niema, widocznie coś jest sknocone w sterownikach dźwięku.
A masz wykupioną licencję bo nie wszystko działa z akceleracją
Tu jest trochę o Omxplayer, ja osobiście tego nie używam ale testowałem HD i chodzi płynnie.
Jeszcze zobacz Xbiana też daje rade ale skoro Ci tnie na innych to wszystko co z XBMC jest to sobie odpuść bo on sam zjada zasoby procesora.
Zainstaluj sobie Raspbiana do tego co potrzebujesz w zupelnosci wystarczy.
Ok masz racje z czasami tylko jeśli chodzi o nie robienie bałaganu to skrypt zrobić w /usr/lib/gargoyle/ i jako oddzielny plik czy w samym /usr/lib/gargoyle/usbrelay.sh
w oddzielnym pliku na pewno będzie to mniej zasobożerne, dlatego wolę znać Twoje zdanie
wabikboy napisał/a:@Cezary jak oceniasz bieżącą wersję. Coś byś zmienił ??
Zasadę działania
A więcej szczegółów ??
Działać działa ale jak możesz podpowiedzieć jak może działać efektywniej lub co zmienić w kodzie to słucham ![]()
@Cezary jak oceniasz bieżącą wersję. Coś byś zmienił ??
@krynio Może chodzi o to że sesja logowania wygasa, ale to tylko przypuszczenie. Zapamiętuje po wylogowaniu bo pliki cookie ustawione są na 7 dni ale tylko w ostatnio używanej przeglądarce, jak otworzysz w innej będzie domyślnie.
@roblad ja nie znam podstaw
, tylko czytam i biorę na logikę, a jeśli mnie zawodzi to dalej czytam, ew. truję d...pe Cezaremu który potrafi nakierować
co właśnie pozwala nauczyć się czegoś, jeśli się nie wyrabiasz, nie zaczynaj kilku rzeczy na raz, bawisz się jednym, poznaj, opanuj, bierz się za następne.
Też nie mam czasu na takie rzeczy bo robię to w wolnej chwili w pracy, lub wieczorami igrając z żoną
i pomiędzy zabawą z dzieckiem.
P.S.
Jak będzie więcej chętnych to zmienię na plik w routerze, ewentualnie może ktoś będzie się chciał sam pobawić
Ok wersja poprawiona, działanie niezależne przycisków.
/*
* This program is copyright © 2014 Cezary Jackiewicz and is distributed under the terms of the GNU GPL
* version 2.0 with a special clarification/exception that permits adapting the program to
* configure proprietary "back end" software provided that all modifications to the web interface
* itself remain covered by the GPL.
* See http://gargoyle-router.com/faq.html#qfoss for more information
*/
usbrelayS = new Object();
var flaga = new Array();
var flagaset = "1"
function createEnabledCheckbox()
{
enabledCheckbox = createInput('checkbox');
return enabledCheckbox;
}
function createEnabledTextbox()
{
enabledTextbox = createInput('textbox');
enabledTextbox.size = "1";
return enabledTextbox;
}
function getCookie(name){
var str = '; '+ document.cookie +';';
var index = str.indexOf('; '+ escape(name) +'=');
if (index != -1) {
index += name.length+3;
var value = str.slice(index, str.indexOf(';', index));
return unescape(value);
}
}
function setCookie(nazwa, wartosc, dni) {
if (dni) {
var data = new Date();
data.setTime(data.getTime()+(dni*24*60*60*1000));
var expires = "; expires="+data.toGMTString();
} else {
var expires = "";
}
document.cookie = nazwa+"=" + wartosc + expires + "; path=/";
}
function chboxcookie(node)
{
var row = node.parentNode.parentNode.firstChild.firstChild.data
var pulscheck = document.getElementById("push" + row);
setCookie("checkps" + row, pulscheck.checked, "7")
resetData();
}
function tboxcookie(node)
{
var row = node.parentNode.parentNode.firstChild.firstChild.data
var timeset = document.getElementById("times" + row);
setCookie("textps" + row, timeset.value, "7")
}
function resetData()
{
var columnNames = usbrelayS.Columns;
var usbrelayTableData = new Array();
var serviceIds = new Array();
if (ports.length == 0)
{
document.getElementById("no_usbrelay").style.display = "block";
return;
}
for (idx=0; idx<ports.length; idx++)
{
if (flagaset == "1")
{
flaga[ports[idx][0]] = "1"
}
var img = document.createElement("img");
img.style.cssText= "margin-top:5px;";
var enabledCheckbox = createEnabledCheckbox();
enabledCheckbox.id = "push" + ports[idx][0]
var enabledTextbox = createEnabledTextbox();
enabledTextbox.id = "times" + ports[idx][0]
if (getCookie("checkps" + ports[idx][0]) == "true")
{
enabledCheckbox.checked = true
} else {
enabledTextbox.disabled = true
}
if (getCookie("textps" + ports[idx][0]) != null)
{
enabledTextbox.value = getCookie("textps" + ports[idx][0]);
}
if (ports[idx][1] == "on")
{
img.src = "img/green-power-button.png";
img.onclick = function(){offRelay(this);}
} else {
img.src = "img/red-power-button.png";
img.onclick = function(){onRelay(this);}
}
enabledCheckbox.onchange = function(){chboxcookie(this);}
enabledTextbox.onchange = function(){tboxcookie(this);}
var tmp = uciOriginal.get("usbrelay", "desc", ''+ports[idx][0])
if (tmp == "") { tmp = "..."; }
var anchor = document.createElement("a");
anchor.href="usbrelay_schedule.sh?port=" + ports[idx][0];
anchor.innerHTML = tmp;
anchor.style.css = "a{text-decoration:none}";
usbrelayTableData.push([ports[idx][0], anchor, img, enabledCheckbox, enabledTextbox]);
}
flagaset = "0"
var usbrelayTable = createTable(columnNames, usbrelayTableData, "usbrelay_table", false, false);
var tableContainer = document.getElementById('usbrelay_table_container');
if (tableContainer.firstChild != null)
{
tableContainer.removeChild(tableContainer.firstChild);
}
tableContainer.appendChild(usbrelayTable);
}
function onRelay(node)
{
onoffRelay(node.parentNode.parentNode, "on");
}
function offRelay(node)
{
onoffRelay(node.parentNode.parentNode, "off");
}
function onoffRelay(row, action)
{
var port = row.firstChild.firstChild.data;
var czass = document.getElementById("times" + port).value;
var pulscheck = document.getElementById("push" + port);
var cmds = [ "/usr/lib/gargoyle/usbrelay.sh " + action + " " + port, "/usr/lib/gargoyle/usbrelay.sh status" ];
var param = getParameterDefinition("commands", cmds.join("\n")) + "&" + getParameterDefinition("hash", document.cookie.replace(/^.*hash=/,"").replace(/[\t ;]+.*$/, ""));
var stateChangeFunction = function(req)
{
if(req.readyState == 4)
{
var lines = req.responseText.split(/[\r\n]+/);
ports.length = 0;
for (idx=0; idx < lines.length; idx++)
{
if (lines[idx].match(/:o/))
{
stat=lines[idx].split(":");
ports.push([ stat[0], stat[1] ]);
}
}
if (pulscheck.checked)
{
if (flaga[port] == "1")
{
if (action == "on")
{
action = "off"
} else {
action = "on"
}
resetData();
flaga[port] = "0"
window.setTimeout( function() { onoffRelay(row, action); }, czass + "000");
} else {
flaga[port] = "1"
}
}
resetData();
setControlsEnabled(true);
}
}
runAjax("POST", "utility/run_commands.sh", param, stateChangeFunction);
}P.S.
@roblad moje pojęcie o javascript jest takie ile przeczytam w internecie a przy tym się czegoś nauczę, a więc jak by Ci się chciało to sam byś to zrobił.
Pogrzeb sobie w skrypcie pomyśl jak to działa, a działa naprawdę intuicyjnie, a zobaczysz że dasz radę.
Tobie po prostu się nie chce, a nie nie potrafisz. ![]()
@bhb właśnie testowałem jak zasugerowałeś i u mnie jest to samo czyli jak uruchomi się kilka przekaźników to reaguje jak opisał krynio.
trzeba będzie to poprawić
To jeszcze zobacz czy Masz włączone ciasteczka
w przeglądarce.
@bhb zobacz u siebie, chyba że sprawdzałeś działanie przedostatniego i ostatniego przekaźnika, jak się zachowują.
bo coś mi się zdaje że może znowu być problem z numeracją
Ale zaraz zaraz piszesz że:
Witam,
Przetestowane i chyba bez poprawek się nie obędzie wink
1. przekaźnik ustawiony na 5 sek. i od razu włączony
2. przekaźnik ustawiony na 10 sek. i od razu włączony
3. przekaźnik ustawiony na 20 sek. i od razu włączony
Efekt
1. wyłączy się po 5 sek.
2. w ogóle się nie wyłączy (czyli cały czas ikonka zielona)
3. wyłączy się po 20 sek. (nie mierzyłem stoperem) i po około 20 sek. się samoczynnie włączy
jedyną nieprawidłową reakcją jest efekt 2 że przy ustawieniu 10 sek. nie wyłączył się przekaźnik a reszta reaguje prawidłowo.
Ja też używam WinScp to nie to, na maila Ci wysłałem mój spakowany plik.
Może jest wrażliwy na szybkie przełączanie,
Nie trzeba robic restartu, jedynie odswiezyc przegladarke. Ale dziwne troche ze rozne czasy i roznie dziala
testowalem na tablecie i na windowsowym google chrome i u mnie dziala n roznych czasach
Kolejna poprawka, zapamiętywanie ostatniego wyboru checkbox i czasu wyłączenia.
Pamięć stanu zapisana w "cookie" więc konieczność włączenia obsługi w przeglądarce.
@Cezary czy to dobre rozwiązanie z cookie ?? jak coś to zmienię na plik.
/*
* This program is copyright © 2014 Cezary Jackiewicz and is distributed under the terms of the GNU GPL
* version 2.0 with a special clarification/exception that permits adapting the program to
* configure proprietary "back end" software provided that all modifications to the web interface
* itself remain covered by the GPL.
* See [url]http://gargoyle-router.com/faq.html#qfoss[/url] for more information
*/
usbrelayS = new Object();
var flaga = "1"
function createEnabledCheckbox()
{
enabledCheckbox = createInput('checkbox');
return enabledCheckbox;
}
function createEnabledTextbox()
{
enabledTextbox = createInput('textbox');
enabledTextbox.size = "1";
return enabledTextbox;
}
function getCookie(name){
var str = '; '+ document.cookie +';';
var index = str.indexOf('; '+ escape(name) +'=');
if (index != -1) {
index += name.length+3;
var value = str.slice(index, str.indexOf(';', index));
return unescape(value);
}
}
function setCookie(nazwa, wartosc, dni) {
if (dni) {
var data = new Date();
data.setTime(data.getTime()+(dni*24*60*60*1000));
var expires = "; expires="+data.toGMTString();
} else {
var expires = "";
}
document.cookie = nazwa+"=" + wartosc + expires + "; path=/";
}
function chboxcookie(node)
{
var row = node.parentNode.parentNode.firstChild.firstChild.data
var pulscheck = document.getElementById("push" + row);
setCookie("checkps" + row, pulscheck.checked, "7")
}
function tboxcookie(node)
{
var row = node.parentNode.parentNode.firstChild.firstChild.data
var timeset = document.getElementById("times" + row);
setCookie("textps" + row, timeset.value, "7")
}
function resetData()
{
var columnNames = usbrelayS.Columns;
var usbrelayTableData = new Array();
var serviceIds = new Array();
if (ports.length == 0)
{
document.getElementById("no_usbrelay").style.display = "block";
return;
}
for (idx=0; idx<ports.length; idx++)
{
var img = document.createElement("img");
img.style.cssText= "margin-top:5px;";
var enabledCheckbox = createEnabledCheckbox();
enabledCheckbox.id = "push" + ports[idx][0]
if (getCookie("checkps" + ports[idx][0]) == "true") { enabledCheckbox.checked = true }
var enabledTextbox = createEnabledTextbox();
enabledTextbox.id = "times" + ports[idx][0]
if (getCookie("textps" + ports[idx][0]) != null)
{
enabledTextbox.value = getCookie("textps" + ports[idx][0]);
}
if (ports[idx][1] == "on")
{
img.src = "img/green-power-button.png";
img.onclick = function(){offRelay(this);}
} else {
img.src = "img/red-power-button.png";
img.onclick = function(){onRelay(this);}
}
enabledCheckbox.onchange = function(){chboxcookie(this);}
enabledTextbox.onchange = function(){tboxcookie(this);}
var tmp = uciOriginal.get("usbrelay", "desc", ''+ports[idx][0])
if (tmp == "") { tmp = "..."; }
var anchor = document.createElement("a");
anchor.href="usbrelay_schedule.sh?port=" + ports[idx][0];
anchor.innerHTML = tmp;
anchor.style.css = "a{text-decoration:none}";
usbrelayTableData.push([ports[idx][0], anchor, img, enabledCheckbox, enabledTextbox]);
}
var usbrelayTable = createTable(columnNames, usbrelayTableData, "usbrelay_table", false, false);
var tableContainer = document.getElementById('usbrelay_table_container');
if (tableContainer.firstChild != null)
{
tableContainer.removeChild(tableContainer.firstChild);
}
tableContainer.appendChild(usbrelayTable);
}
function onRelay(node)
{
onoffRelay(node.parentNode.parentNode, "on");
}
function offRelay(node)
{
onoffRelay(node.parentNode.parentNode, "off");
}
function onoffRelay(row, action)
{
var port = row.firstChild.firstChild.data;
var czass = document.getElementById("times" + port).value;
var pulscheck = document.getElementById("push" + port);
var cmds = [ "/usr/lib/gargoyle/usbrelay.sh " + action + " " + port, "/usr/lib/gargoyle/usbrelay.sh status" ];
var param = getParameterDefinition("commands", cmds.join("\n")) + "&" + getParameterDefinition("hash", document.cookie.replace(/^.*hash=/,"").replace(/[\t ;]+.*$/, ""));
var stateChangeFunction = function(req)
{
if(req.readyState == 4)
{
var lines = req.responseText.split(/[\r\n]+/);
ports.length = 0;
for (idx=0; idx < lines.length; idx++)
{
if (lines[idx].match(/:o/))
{
stat=lines[idx].split(":");
ports.push([ stat[0], stat[1] ]);
}
}
if (pulscheck.checked)
{
if (flaga == "1")
{
if (action == "on")
{
action = "off"
} else {
action = "on"
}
resetData();
flaga = "0"
window.setTimeout( function() { onoffRelay(row, action); }, czass + "000");
} else {
flaga = "1"
}
}
resetData();
setControlsEnabled(true);
}
}
runAjax("POST", "utility/run_commands.sh", param, stateChangeFunction);
}kopiować i testować ![]()
@Cezary pytałeś o js do robienia okienka z lista plików
<script>
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET", "/cgi-bin/budzik/lista.sh?pliki="+str,true);
xmlhttp.send();
}
</script>
<select name="lista" id="txtHint" onchange="playthis(this.value)" size=10 style="width:580px;"></select>Może być ??
Zainstalowałem plugin DLNA i mam pytanie odnośnie tego dlaczego plugin DLNA pokazuje mi tylko pamieć wewnętrzną a brak zewnętrznej, mimo iż dysk jest zamontowany
Konkurent dla Raspberry Pi
Nie,
teraz w przerwie w pracy
+ chwila na testy, w zasadzie tylko usunąłem kilka linijek kodu funkcji sleep, a dodałem jedną która działa lepiej
Nie wiem dlaczego wcześniej tego nie zrobiłem, bo parę razy patrzyłem na to rozwiązanie.
Chwilówki to skrypt wykonywany w przeglądarce, nie w routerze dlatego nie wykona się jeśli zmienimy zakładkę w panelu GUI
poprawiona wersja jest w poscie 218
działa nawet odświeżanie ikonki na czas przełączenia
największy problem jest właśnie z wstrzymaniem bo albo przeglądarka zwiesza się na czas ustawiony w okienku i dlatego wywala błąd że nie odpowiada albo przeskakuje od razu to co wstawiłem widzę że działa optymalnie, ale coś poszukam jeszcze bo nie może tak być aby dostosować przeglądarkę tylko skrypt ma poprawnie działać.
Heh,
Wszystko masz w pierwszym poście,
Ja nic nie robiłem oprócz modyfikacji "js" który masz w całości w 218 poście wystarczy skopiować kod i podmienić w /www/js/usbrelay.js, pojawią Ci się chwilówki w gargoyle.
Nic więcej niema.
eko.one.pl → Posty przez wabikboy
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc