101

Odp: Power Switch - najtańszy sterownik ON/OFF

Witam,

kolega kamillo zrobil to co ja chce dodac w nastepnym kroku (sos na zasadzie zapoalania i gasniecia diody) przy nacisnieciu przycisku chwilowego aby dac operatorowi fitback ze zadzialalo jego nacisniecie przycisku. Tez jestem zainteresowany rozwiazaniem twojego problemu.

pozdr,

102

Odp: Power Switch - najtańszy sterownik ON/OFF

kamillo napisał/a:

komenda power /dev/ttyUSB0 getIn 1 zwraca mi z urządzenia wartość "open" lub "closed" i tak mam nazwane pliki png. Co może być nie tak że znikają te ikony? jak odświeże całą strone to pojawiają sie wszystkie i po pierszwszym automatycznym odświeżeniu samych ikon już część z nich się nie pojawia. Później znowu za jakiś czas się pojawiają...

Prawdopodobnie urządzenie na czas odczytu jednej ikonki jest zajete wiec jak w tym samym czasie odczytujesz inna to nie zwraca Ci nic albo błąd, jesli odczyt nie jest szybki to tak moze sie dziac, spróbuj odczytywać wszytskie na raz i np grep'em odniesc sie do danego portu, lub jesli sie da odczytac wszystkie naraz ale jest to za wolne to zapisuj ich stan do pliku i z niego odczytuj stany wtedy skrypt nie bedzie czekał na odczyt.

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

103

Odp: Power Switch - najtańszy sterownik ON/OFF

Chwilowe załączenie mam tak:
strona :



<script>
$(document).ready(function(){
    $('#button0').click(function(){
       $.get('cgi-bin/bcd/bcd0.sh',function() {
       });
    });
});
</script>







<div style="position: absolute; top: 0px; left: 0px"> 
<table border="1" bordercolor="aqua" bgcolor=#333333 width="100" height="150px" >
<tr align="center">
<td height="30" >
<font size="3" color=#FFFFFF>0</font>
</td>
</tr>
<tr  align="center">
<td height="55" >
<img id="button0" src="iconsw/cz.png" width="50" height="50" >
</td>
<tr align="center">
<td bgcolor=#eeeeee >
<div><? /www/cgi-bin/bcd/read0.sh ?></div>
</td></tr></table>
</div>







plik s katalogu   cgi-bin/bcd/

o nazwie    bcd0.sh :



#!/usr/bin/haserl
<?
echo "Content-type: text/html"
echo ""
/dodatki/powersw/power on 0
sleep 1;
/dodatki/powersw/power off 0
?>

,

104

Odp: Power Switch - najtańszy sterownik ON/OFF

Witaj Dominik-S,

i co przy odswierzeniu strony to nie zadziala ?

mozesz to potwierdzic ?

POZDR,
rl

105 (edytowany przez Dominik-S 2013-04-13 15:01:51)

Odp: Power Switch - najtańszy sterownik ON/OFF

ta wersja jest na jedną ikonę ( sterowanie w kodzie bcd  32kanałami)

przy 32 ikonach i czasie odświeżania mniej niż 1 sekunda miał bym problemy z wyświetlaniem strony

,

106

Odp: Power Switch - najtańszy sterownik ON/OFF

Nie zadziała bo jest za to odpowiedzialna funkcja click która działa wlasnie dopiero po kliknieciu

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

107 (edytowany przez roblad 2013-04-13 17:34:43)

Odp: Power Switch - najtańszy sterownik ON/OFF

Witam,

to co lepiej zastosowac ? rozwiazanie wabikboy czy dominika-s ?


napewno to nied zadziala podczas oswierzania ?

div><? /www/cgi-bin/bcd/read0.sh ?></div>

Pozdr

108

Odp: Power Switch - najtańszy sterownik ON/OFF

div><? /www/cgi-bin/bcd/read0.sh ?></div>

jest tylko do pokazania wpisu z crona ( wyświetla godzinne i minutę załączenia ) i niema wpływu na działanie manualne

,

109 (edytowany przez roblad 2013-04-14 09:03:53)

Odp: Power Switch - najtańszy sterownik ON/OFF

Witam,

wczoraj troche czasu nie bylo ale dokonczylem i chyba dziala wszystko

tak wyglada moj pomysl na sterowanie
http://img266.imageshack.us/img266/2217/mojswitch.jpg


zalaczam kod stronki jak by ktos chcial skorzystac, pliki sterujace .sh opisane we wczesniejszych postach. Stronka jest uzalezniona od gargoyle i zabezpieczona haslem odpowiada za to wpis w sekcji HEAD

eval $( gargoyle_session_validator -c "$COOKIE_hash" -e "$COOKIE_exp" -a "$HTTP_USER_AGENT" -i "$REMOTE_ADDR" -r "login.sh" -t $(uci get gargoyle.global.session_timeout) -b "$COOKIE_browser_time"  )

aby w/w zadzialalo i bylo dostepne w menu gargoyle trzeba dodac odpowiednie wpisy w /etc/config/gargoyle


# w sekcji 

config display 'display'

                       option system_switch 'Power switch'

# oraz do sekcji

config scripts 'scripts'

                      option system_switch 'switch.sh'

# i pozycja w menu

config 400 'system'

                       option switch '1200'

dodatklowo dodalem komunikat o braku podlaczenia

status=$( cgi-bin/powersw/urzadzenie.sh )

kod jest tozsamy prawie z plikiem stan

#!/usr/bin/haserl
<?
status=$(/dodatki/powersw/power status 2>/dev/null | wc -l)
if [ "$status" == "0" ] ; then
echo "Brak podlaczonego PowerSwitcha - sprawdz polaczenie lub zasilanie"
else
echo "PowerSwitch podlaczony"
fi 
?>

przyciski chwilowe sa sterowane plikami takimi jak powerX.sh y dodaniem czasu przez jaki ma zadzialac - u mnie 2s:

#!/usr/bin/haserl
<?
echo "Content-type: text/html"
echo ""

status=$(/dodatki/powersw/power status | grep 0 | sed 's/port.0..//')
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`

if [ "$stan" -gt "0" ] ; then

if [ "$status" == "on" ] ; then

/dodatki/powersw/power off 0 2

else

/dodatki/powersw/power on 0 2

fi 

status0=$(/dodatki/powersw/power status | grep 0 | sed 's/port.0..//')
echo "$status0"
else
echo "NA" 
fi
?>


A tu moja stronka integrujaca harmonogram i switcha oczywiscie pliki sterujace do harmonogramu przerobilem i tam gdzie byl wpis powerswitch zmienilem na power oraz odwolania switchharm na switch, zachowalem katalog zrodlowy switchharm
nalezy takze pamietac o usunieciu komentarzy zw. z cronem w plikach sh, gdyz skierowane one sa w wersji autora na testswitchharm.txt (wyrzucic 2 sredniki na koncu).


nie zalaczam wszystkich plikow sterujacych i stanu xxxxx.sh bo za duzo by bylo, trzeba dokladnie przesledzic 2 tematy- switch i switchharm aby moje rozwiazanie zadzialalo.


Jak by ktos mial jakies sugestie co do tego kodu to bardzo prosze o uwagi  - plik switch.sh:

#!/usr/bin/haserl

<?

eval $( gargoyle_session_validator -c "$COOKIE_hash" -e "$COOKIE_exp" -a "$HTTP_USER_AGENT" -i "$REMOTE_ADDR" -r "login.sh" -t $(uci get gargoyle.global.session_timeout) -b "$COOKIE_browser_time"  )

status=$( cgi-bin/powersw/urzadzenie.sh )


echo "Content-type: text/html"
echo "$status"
?>

<html>
<head>
 <title>Power Switch w garazu</title>
<div align="center" align="justify"><font size="6" color="black" title >Power switch 
    przekaznikowy -
    <span class="auto-style6">Atiny 2313</span>, sterowanie przez
    TP-WR1043ND </font> </div>
<script src="js/jquery.min.js"></script> <!-- Trzeba pobrać: http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js -->


 
 
 
 <script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan1.sh',function(data) {
          $('#buttona').attr('src',"iconsw/"+data+".png");
          $('#buttona').attr('power',data);
   });
},4000);
    $('#buttona').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power1.sh',{action:power},function(data) {
          $('#buttona').attr('src',"iconsw/"+data+".png");
          $('#buttona').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan2.sh',function(data) {
          $('#buttonb').attr('src',"iconsw/"+data+".png");
          $('#buttonb').attr('power',data);
   });
},4000);
    $('#buttonb').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power2.sh',{action:power},function(data) {
          $('#buttonb').attr('src',"iconsw/"+data+".png");
          $('#buttonb').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan3.sh',function(data) {
          $('#buttonc').attr('src',"iconsw/"+data+".png");
          $('#buttonc').attr('power',data);
   });
},4000);
    $('#buttonc').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power3.sh',{action:power},function(data) {
          $('#buttonc').attr('src',"iconsw/"+data+".png");
          $('#buttonc').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan4.sh',function(data) {
          $('#buttond').attr('src',"iconsw/"+data+".png");
          $('#buttond').attr('power',data);
   });
},4000);
    $('#buttond').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power4.sh',{action:power},function(data) {
          $('#buttond').attr('src',"iconsw/"+data+".png");
          $('#buttond').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan5.sh',function(data) {
          $('#buttone').attr('src',"iconsw/"+data+".png");
          $('#buttone').attr('power',data);
   });
},4000);
    $('#buttone').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power5.sh',{action:power},function(data) {
          $('#buttone').attr('src',"iconsw/"+data+".png");
          $('#buttone').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan6.sh',function(data) {
          $('#buttonf').attr('src',"iconsw/"+data+".png");
          $('#buttonf').attr('power',data);
   });
},4000);
    $('#buttonf').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power6.sh',{action:power},function(data) {
          $('#buttonf').attr('src',"iconsw/"+data+".png");
          $('#buttonf').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan7.sh',function(data) {
          $('#buttong').attr('src',"iconsw/"+data+".png");
          $('#buttong').attr('power',data);
   });
},4000);
    $('#buttong').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power7.sh',{action:power},function(data) {
          $('#buttong').attr('src',"iconsw/"+data+".png");
          $('#buttong').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan8.sh',function(data) {
          $('#buttonh').attr('src',"iconsw/"+data+".png");
          $('#buttonh').attr('power',data);
   });
},4000);
    $('#buttonh').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power8.sh',{action:power},function(data) {
          $('#buttonh').attr('src',"iconsw/"+data+".png");
          $('#buttonh').attr('power',data);
       });
    });
});
</script>


<!-- chwilowe przyciski -->
<script>
$(document).ready(function(){
        $('#buttona1s').click(function(){    
       $.get('cgi-bin/powersw/power11s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttonb1s').click(function(){    
       $.get('cgi-bin/powersw/power21s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttonc1s').click(function(){    
       $.get('cgi-bin/powersw/power31s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttond1s').click(function(){    
       $.get('cgi-bin/powersw/power41s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttone1s').click(function(){    
       $.get('cgi-bin/powersw/power51s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttonf1s').click(function(){    
       $.get('cgi-bin/powersw/power61s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttong1s').click(function(){    
       $.get('cgi-bin/powersw/power71s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttonh1s').click(function(){    
       $.get('cgi-bin/powersw/power81s.sh')
    });
});
</script>

<style type="text/css">
.auto-style1 {
    border: 2px solid #000000;
}
.auto-style2 {
    border-width: 2px;
}
.auto-style4 {
    border-left-style: solid;
    border-left-width: 2px;
    border-right-style: solid;
    border-right-width: 2px;
    border-top-style: solid;
    border-top-width: 2px;
    border-bottom-width: 2px;
}
.auto-style6 {
    margin-left: 0px;
}
.auto-style7 {
    margin-left: 11px;
}
.auto-style8 {
    margin-left: 6px;
}
.auto-style9 {
    margin-left: 40px;
}
.auto-style10 {
    margin-left: 2px;
}
.auto-style11 {
    margin-left: 1px;
}
</style>


</head>
<body style="height: 80px; width: 935px; margin-top: 10; margin-bottom: 10; background-color: #C0C0C0">

<div align="center" style="height: 20px"><br><font size="4" color="red"> <? status=$(cgi-bin/powersw/urzadzenie.sh 2>/dev/null) echo "$status" ?></font></div>

<div auto;="" margin:="" style="position: absolute; left: 10px; top: 152px; height: 982px; width: 934px;">

<table class="auto-style1" >
<colgroup span="1"></colgroup>
<colgroup span="7"></colgroup>
<tr align="center" class="auto-style2">
<td style="border-bottom-color: #000000; border-color: #000000; height: 36; border-bottom-style: double; border-bottom-width: inherit;" class="auto-style4" colspan="8">
<strong>Przekazniki (kliknij na ikone aby przelaczyc) <br> info: <a href="http://eko.one.pl/forum/viewtopic.php?id=3894"><br/>http://eko.one.pl/forum/viewtopic.php?id=3894</strong></td>
</tr>
<tr align="center">
<td style="width: 103px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-1<br><font size="2" color="black"/font>tu opis przeznaczenia<br>
<br>

<img id="buttona" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 0 | sed 's/port.0..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 107px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-2<br><font size="2" color="black"/font>tu opis przeznaczenia<br>
<br>

<img id="buttonb" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 1 | sed 's/port.1..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >
<br>
    <td style="width: 113; height: 146;" class="auto-style1">
    <font size="4" color="blue">SW-3<font size="2" color="black"/font><br>tu opis przeznaczenia<br>
    <br>

<img id="buttonc" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 2 | sed 's/port.2..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 107px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-4<br><font size="2" color="black"/font>tu opis przeznaczenia<br>
<br>

<img id="buttond" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 3 | sed 's/port.3..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 133px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-5<br><font size="2" color="black"/font>tu opis
<br>przeznaczenia<br>
<br>

<img id="buttone" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 4 | sed 's/port.4..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="height: 146;" class="auto-style1">
<font size="4" color="blue">SW-6<br><font size="2" color="black"/font>tu opis
<br>przeznaczenia<br>
<br>

<img id="buttonf" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 5 | sed 's/port.5..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 45px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-7<br><font size="2" color="black"/font>tu opis
<br>przeznaczenia<br>
<br>

<img id="buttong" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 6 | sed 's/port.6..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 113; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-8<br><font size="2" color="black"/font>tu opis
<br>przeznaczenia<br>
<br>

<img id="buttonh" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 7 | sed 's/port.7..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >
<br>
<tr align="center">
<td class="auto-style1" colspan="8" style="height: 28">
<strong>Wlaczenie chwilowe</strong></td>
</tr>
<tr align="center">
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttona1s" >SW-1 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttonb1s" >SW-2 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttonc1s" >SW-3 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttond1s" >SW-4 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttone1s" >SW-5 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttonf1s" >SW-6 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttong1s" >SW-7 (2s)</button></td>
<td sstyle="width: 103px; height: 38;"class="auto-style1">
<button style="width: 105px" id="buttonh1s" >SW-8 (2s)</button></td>
</tr>
<tr  align="center"><td class="auto-style1" colspan="2" style="height: 36px">
    <strong>Ustaw czas zalaczenia - crona</strong></td>
    <td class="auto-style1" colspan="2" style="height: 36px">
    <strong>Wybierz stan przekaznika</strong></td>
    <td class="auto-style1" colspan="4" style="height: 36px">
    <strong>Usuwanie ustawien crona</strong></td>

    <tr align="center">
<td colspan="2" class="auto-style1" rowspan="2">

<form name="listswitchharm" action="/cgi-bin/switchharm/setswitchharm.sh" method="get" enctype="text/plain" >
<table cellpadding="4" style="height: 239px; width: 210px;">
<tr><td style="width: 105px; height: 90px;">&nbsp;&nbsp;&nbsp; Godzina <br> <br>
            <select name="hours" title="Wybierz godzine" style="width: 44px; height: 19px;">
<option value="*"></option>
<option value="0">0</option><option value="1">1</option>
<option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option>
<option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option>
<option value="10">10</option><option value="11">11</option>
<option value="12">12</option><option value="13">13</option>
<option value="14">14</option><option value="15">15</option>
<option value="16">16</option><option value="17">17</option>
<option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option>
<option value="22">22</option><option value="23">23</option>  
</select><input type="checkbox" title="Co wybrany zakres godzin" name="everyhour" value="on" class="auto-style10" style="width: 22px"></td>
<td style="height: 90px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Minuty<br><br>
            <select name="minutes" title="Wybierz minuty" style="height: 19px; width: 62px;">
<option value="*"></option>
<option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option>
<option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option>
<option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option>
<option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option>
<option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option>
<option value="32">32</option><option value="33">33</option><option value="34">34</option><option value="35">35</option>
<option value="36">36</option><option value="37">37</option><option value="38">38</option><option value="39">39</option>
<option value="40">40</option><option value="41">41</option><option value="42">42</option><option value="43">43</option>
<option value="44">44</option><option value="45">45</option><option value="46">46</option><option value="47">47</option>
<option value="48">48</option><option value="49">49</option><option value="50">50</option><option value="51">51</option>
<option value="52">52</option><option value="53">53</option><option value="54">54</option><option value="55">55</option>
<option value="56">56</option><option value="57">57</option><option value="58">58</option><option value="59">59</option>  
            </select><input type="checkbox" title="Co wybrany zakres minut" name="everymin" value="on" class="auto-style7"></td></tr>
<tr><td style="height: 57px; width: 105px;">&nbsp;&nbsp;&nbsp;&nbsp; Dzien<br>&nbsp;<br>
            <select name="day" title="Wybierz dzien" style="width: 40px; height: 19px;" >
<option value="*"></option>
<option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option>
<option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option>
<option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option>
<option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option>
<option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option> 
            </select><input type="checkbox" title="Co podany dzien" name="everyday" value="on" class="auto-style8" style="width: 20px"></td>

<td style="height: 57" class="auto-style1">&nbsp; Dzien tygodnia<br><br>
<select name="dayofweek" title="Wybierz dzien tygodnia" style="height: 19px" >
<option value="*"></option>
<option value="1">Poniedzialek</option>
<option value="2">Wtorek</option>
<option value="3">Sroda</option>
<option value="4">Czwartek</option>
<option value="5">Piatek</option>
<option value="6">Sobota</option>
<option value="0">Niedziela</option>
</select></td></tr>
</table>





<td colspan="2" class="auto-style1" rowspan="2">

<table cellpadding="4" style="height: 242px; width: 210px"><tr><td align="center">
<input type="radio" name="activ" value="on" checked="check"/>Wlaczenie</td>
<td><input type="radio" name="activ" value="off"/>Wylaczenie</td></tr>

<tr><td align="center" colspan="2">Numer przekaznika<br><br>
<select name="nrswitch" title="Wybierz nr portu" class="auto-style6" style="width: 118px; height: 19px;">
<option value="1">1</option>
<option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option>
<option value="6">6</option><option value="7">7</option>
<option value="8">8</option>  
            </select></td></tr>
<tr><td align="center" colspan="2" style="height: 36px">        
<input type="submit" title="dodaj do harmonogramu" value="Dodaj" id="wpisz" style="width: 133px; height: 28px;"/></td></tr>
</table>
</form>

    </td>
<td style="height: 150px;" colspan="4" class="auto-style1">

<iframe src="/cgi-bin/switchharm/readharm.sh" height="150" frameborder="1" style="width: 455px" class="auto-style6"></iframe></td>

</tr>

<tr align="center">
<td colspan="4" class="auto-style1" style="height: 69px">
    
<form name="delswitchharm" action="/cgi-bin/switchharm/delswitchharm.sh" method="get" enctype="text/plain" style="height: 61px" class="auto-style11" >
&nbsp;<br>  
<input type="submit" name="usuwanie" value="Usun" onclick="return confirm('Na pewno chcesz usunac ?');" style="height: 26px; width: 161px"/>
<select name="lstswitchharm" class="auto-style9" style="height: 34px; width: 172px" >
<? 
/www/cgi-bin/switchharm/lstswitchharm.sh

?>
</select></form>
</td>
</tr>
</table>
</div>
</body>

</html>

:

110 (edytowany przez roblad 2013-08-19 09:42:37)

Odp: Power Switch - najtańszy sterownik ON/OFF

Czesc,

Pytanie w zasadzie do Cezarego, dotyczy budowy plugina do gargoyle-powerswitch.

Przygotowuje Makefile do instalacji plugina i nie wiem czy dobrze to napisalem. Dodatkowo kopiowanie plikow niezachowuje mi executable dla skompilowanego pliku dla danej platformy.

include $(TOPDIR)/rules.mk

PKG_NAME:=plugin_gargoyle_powerswitch
PKG_VERSION:=20130817

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

include $(INCLUDE_DIR)/package.mk

define Package/plugin-gargoyle-powerswitch
    SECTION:=admin
    CATEGORY:=Administration
    SUBMENU:=Gargoyle Web Interface
    TITLE:=Powerswitch program for Gargoyle
    MAINTAINER:=RL
    DEPENDS:=+gargoyle +libusb +libusb-1.0
    PKGARCH:=all
endef

define Package/plugin-gargoyle-powerswitch/description
    Plugin powerswitch[PL]
endef

define Build/Prepare
endef

define Build/Configure
endef

define Build/Compile
    $(CP) ./src/* $(PKG_BUILD_DIR)
    $(TARGET_CC) $(TARGET_CONFIGURE_OPTS) -c $(PKG_BUILD_DIR)/powerSwitch.c -o $(PKG_BUILD_DIR)/dodatki/powersw/powerswitch ## czy to jest ok
    $(TARGET_CC) $(TARGET_CONFIGURE_OPTS) -c $(PKG_BUILD_DIR)/powerSwitch.c -o $(PKG_BUILD_DIR)/dodatki/powersw/power  ## czy to jest ok
    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/dodatki/powersw/powerswitch  $(1)/dodatki/powersw/powerswitch ## czy to ma byc tu ?? czy w sekcji install
    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/dodatki/powersw/powerswitch  $(1)/dodatki/powersw/power   ## czy to ma byc tu ?? czy w sekcji install
    
##compile@root:/media/proc/test5/gargoyle$ /media/proc/test5/gargoyle/custom-src/staging_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-uclibc-gcc -Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -o powerswitch -c /media/proc/gargoyl_pl_build/gargoyle_add/plugin-gargoyle-powerswitch/src/powerSwitch.c 
endef

define Package/plugin-gargoyle-powerswitch/postinst
#!/bin/sh

if [ -z "$${IPKG_INSTROOT}" ]; then
    uci set gargoyle.display.system_powerswitch='Zadania powerswitch'
    uci set gargoyle.scripts.system_powerswitch='switch.sh'
    uci set gargoyle.system.powerswitch='1000'
    uci commit
fi
endef

define Package/plugin-gargoyle-powerswitch/postrm
#!/bin/sh

if [ -z "$${IPKG_INSTROOT}" ]; then
    uci del gargoyle.display.system_powerswitch
    uci del gargoyle.scripts.system_powerswitch
    uci del gargoyle.system.powerswitch
    uci commit
fi
endef


define Package/plugin-gargoyle-powerswitch/install
    $(INSTALL_DIR) $(1)
    install -m0755 $(PKG_BUILD_DIR)/dodatki/powersw/powerswitch  $(1)/dodatki/powersw/powerswitch
    install -m0755 $(PKG_BUILD_DIR)/dodatki/powersw/powerswitch  $(1)/dodatki/powersw/power
    $(CP) ./files/* $(1)/
endef

$(eval $(call BuildPackage,plugin-gargoyle-powerswitch))

Pozostaje jeszcze przerobienie stronki do formatu gargoyle, ale tu juz wczesniej poległem.

Cezary możesz pomoc ?

Odezwal bym sie jeszcze w sprawie formatu dla gargoyle dla stronki.

tu jej kod

#!/usr/bin/haserl

<?

eval $( gargoyle_session_validator -c "$COOKIE_hash" -e "$COOKIE_exp" -a "$HTTP_USER_AGENT" -i "$REMOTE_ADDR" -r "login.sh" -t $(uci get gargoyle.global.session_timeout) -b "$COOKIE_browser_time"  )

status=$( cgi-bin/powersw/urzadzenie.sh )


echo "Content-type: text/html"
echo "$status"
?>

<html>
<head>
 <title>Power Switch w garazu</title>
<div align="center" align="justify"><font size="6" color="black" title >Power switch 
    przekaznikowy -
    <span class="auto-style6">Atiny 2313</span>, sterowanie przez
    <? if [ -e /tmp/sysinfo/model ]; then
        echo "var model=\""$(cat /tmp/sysinfo/model)"\";"
    else
    
     #echo "var model=\"brak danych\";"
     echo "var model=\""$(awk -F: '/machine/ {print $2}' /proc/cpuinfo)"\";" 
                
    
    fi ?> </font> </div>
<script src="js/jquery.min.js"></script> <!-- Trzeba pobrać: http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js -->


 
 
 
 <script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan1.sh',function(data) {
          $('#buttona').attr('src',"iconsw/"+data+".png");
          $('#buttona').attr('power',data);
   });
},4000);
    $('#buttona').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power1.sh',{action:power},function(data) {
          $('#buttona').attr('src',"iconsw/"+data+".png");
          $('#buttona').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan2.sh',function(data) {
          $('#buttonb').attr('src',"iconsw/"+data+".png");
          $('#buttonb').attr('power',data);
   });
},4000);
    $('#buttonb').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power2.sh',{action:power},function(data) {
          $('#buttonb').attr('src',"iconsw/"+data+".png");
          $('#buttonb').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan3.sh',function(data) {
          $('#buttonc').attr('src',"iconsw/"+data+".png");
          $('#buttonc').attr('power',data);
   });
},4000);
    $('#buttonc').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power3.sh',{action:power},function(data) {
          $('#buttonc').attr('src',"iconsw/"+data+".png");
          $('#buttonc').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan4.sh',function(data) {
          $('#buttond').attr('src',"iconsw/"+data+".png");
          $('#buttond').attr('power',data);
   });
},4000);
    $('#buttond').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power4.sh',{action:power},function(data) {
          $('#buttond').attr('src',"iconsw/"+data+".png");
          $('#buttond').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan5.sh',function(data) {
          $('#buttone').attr('src',"iconsw/"+data+".png");
          $('#buttone').attr('power',data);
   });
},4000);
    $('#buttone').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power5.sh',{action:power},function(data) {
          $('#buttone').attr('src',"iconsw/"+data+".png");
          $('#buttone').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan6.sh',function(data) {
          $('#buttonf').attr('src',"iconsw/"+data+".png");
          $('#buttonf').attr('power',data);
   });
},4000);
    $('#buttonf').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power6.sh',{action:power},function(data) {
          $('#buttonf').attr('src',"iconsw/"+data+".png");
          $('#buttonf').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan7.sh',function(data) {
          $('#buttong').attr('src',"iconsw/"+data+".png");
          $('#buttong').attr('power',data);
   });
},4000);
    $('#buttong').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power7.sh',{action:power},function(data) {
          $('#buttong').attr('src',"iconsw/"+data+".png");
          $('#buttong').attr('power',data);
       });
    });
});
</script>

<script>
 
$(document).ready(function(){
    setInterval(function (){
   $.get('cgi-bin/powersw/stan8.sh',function(data) {
          $('#buttonh').attr('src',"iconsw/"+data+".png");
          $('#buttonh').attr('power',data);
   });
},4000);
    $('#buttonh').click(function(){
       var power=$(this).attr('power');
        if(power=='on'){
            power='off'
       }else{
            power='on';
       }
         if(power=='NA'){
                power='NA';
         }
       $.get('cgi-bin/powersw/power8.sh',{action:power},function(data) {
          $('#buttonh').attr('src',"iconsw/"+data+".png");
          $('#buttonh').attr('power',data);
       });
    });
});
</script>


<!-- chwilowe przyciski -->
<script>
$(document).ready(function(){
        $('#buttona1s').click(function(){    
       $.get('cgi-bin/powersw/power11s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttonb1s').click(function(){    
       $.get('cgi-bin/powersw/power21s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttonc1s').click(function(){    
       $.get('cgi-bin/powersw/power31s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttond1s').click(function(){    
       $.get('cgi-bin/powersw/power41s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttone1s').click(function(){    
       $.get('cgi-bin/powersw/power51s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttonf1s').click(function(){    
       $.get('cgi-bin/powersw/power61s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttong1s').click(function(){    
       $.get('cgi-bin/powersw/power71s.sh')
    });
});
</script>

<script>
$(document).ready(function(){
        $('#buttonh1s').click(function(){    
       $.get('cgi-bin/powersw/power81s.sh')
    });
});
</script>

<style type="text/css">
.auto-style1 {
    border: 2px solid #000000;
}
.auto-style2 {
    border-width: 2px;
}
.auto-style4 {
    border-left-style: solid;
    border-left-width: 2px;
    border-right-style: solid;
    border-right-width: 2px;
    border-top-style: solid;
    border-top-width: 2px;
    border-bottom-width: 2px;
}
.auto-style6 {
    margin-left: 0px;
}
.auto-style7 {
    margin-left: 11px;
}
.auto-style8 {
    margin-left: 6px;
}
.auto-style9 {
    margin-left: 40px;
}
.auto-style10 {
    margin-left: 2px;
}
.auto-style11 {
    margin-left: 1px;
}
</style>


</head>
<body style="height: 80px; width: 935px; margin-top: 10; margin-bottom: 10; background-color: #C0C0C0">

<div align="center" style="height: 20px"><br><font size="4" color="red"> <? status=$(cgi-bin/powersw/urzadzenie.sh 2>/dev/null) echo "$status" ?></font></div>

<div auto;="" margin:="" style="position: absolute; left: 10px; top: 152px; height: 982px; width: 934px;">

<table class="auto-style1" >
<colgroup span="1"></colgroup>
<colgroup span="7"></colgroup>
<tr align="center" class="auto-style2">
<td style="border-bottom-color: #000000; border-color: #000000; height: 36; border-bottom-style: double; border-bottom-width: inherit;" class="auto-style4" colspan="8">
<strong>Przekazniki (kliknij na ikone aby przelaczyc) <br> info: <a href="http://eko.one.pl/forum/viewtopic.php?id=3894"><br/>http://eko.one.pl/forum/viewtopic.php?id=3894</strong></td>
</tr>
<tr align="center">
<td style="width: 103px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-1<br><font size="2" color="black"/font>tu opis przeznaczenia<br>
<br>

<img id="buttona" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 0 | sed 's/port.0..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 107px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-2<br><font size="2" color="black"/font>tu opis przeznaczenia<br>
<br>

<img id="buttonb" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 1 | sed 's/port.1..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >
<br>
    <td style="width: 113; height: 146;" class="auto-style1">
    <font size="4" color="blue">SW-3<font size="2" color="black"/font><br>tu opis przeznaczenia<br>
    <br>

<img id="buttonc" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 2 | sed 's/port.2..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 107px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-4<br><font size="2" color="black"/font>tu opis przeznaczenia<br>
<br>

<img id="buttond" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 3 | sed 's/port.3..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 133px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-5<br><font size="2" color="black"/font>tu opis
<br>przeznaczenia<br>
<br>

<img id="buttone" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 4 | sed 's/port.4..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="height: 146;" class="auto-style1">
<font size="4" color="blue">SW-6<br><font size="2" color="black"/font>tu opis
<br>przeznaczenia<br>
<br>

<img id="buttonf" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 5 | sed 's/port.5..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 45px; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-7<br><font size="2" color="black"/font>tu opis
<br>przeznaczenia<br>
<br>

<img id="buttong" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 6 | sed 's/port.6..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >

<br>
<td style="width: 113; height: 146;" class="auto-style1">
<font size="4" color="blue">SW-8<br><font size="2" color="black"/font>tu opis
<br>przeznaczenia<br>
<br>

<img id="buttonh" src="<?
stan=`/dodatki/powersw/power status 2>/dev/null | wc -l`
if [ "$stan" -gt "0" ] ; then
status1=$(/dodatki/powersw/power status | grep 7 | sed 's/port.7..//')
echo -n "iconsw/$status1.png"
else
echo -n "iconsw/NA.png"  
fi
?>" power="<?
if [ "$stan" -gt "0" ] ; then
echo -n "$status1"
else
echo -n "NA"  
fi
?>" width="50" height="50" >
<br>
<tr align="center">
<td class="auto-style1" colspan="8" style="height: 28">
<strong>Wlaczenie chwilowe</strong></td>
</tr>
<tr align="center">
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttona1s" >SW-1 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttonb1s" >SW-2 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttonc1s" >SW-3 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttond1s" >SW-4 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttone1s" >SW-5 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttonf1s" >SW-6 (2s)</button></td>
<td style="width: 103px; height: 38;" class="auto-style1">
<button style="width: 105px" id="buttong1s" >SW-7 (2s)</button></td>
<td sstyle="width: 103px; height: 38;"class="auto-style1">
<button style="width: 105px" id="buttonh1s" >SW-8 (2s)</button></td>
</tr>
<tr  align="center"><td class="auto-style1" colspan="2" style="height: 36px">
    <strong>Ustaw czas zalaczenia - crona</strong></td>
    <td class="auto-style1" colspan="2" style="height: 36px">
    <strong>Wybierz stan przekaznika</strong></td>
    <td class="auto-style1" colspan="4" style="height: 36px">
    <strong>Usuwanie ustawien crona</strong></td>

    <tr align="center">
<td colspan="2" class="auto-style1" rowspan="2">

<form name="listswitchharm" action="/cgi-bin/switchharm/setswitchharm.sh" method="get" enctype="text/plain" >
<table cellpadding="4" style="height: 239px; width: 210px;">
<tr><td style="width: 105px; height: 90px;">&nbsp;&nbsp;&nbsp; Godzina <br> <br>
            <select name="hours" title="Wybierz godzine" style="width: 44px; height: 19px;">
<option value="*"></option>
<option value="0">0</option><option value="1">1</option>
<option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option>
<option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option>
<option value="10">10</option><option value="11">11</option>
<option value="12">12</option><option value="13">13</option>
<option value="14">14</option><option value="15">15</option>
<option value="16">16</option><option value="17">17</option>
<option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option>
<option value="22">22</option><option value="23">23</option>  
</select><input type="checkbox" title="Co wybrany zakres godzin" name="everyhour" value="on" class="auto-style10" style="width: 22px"></td>
<td style="height: 90px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Minuty<br><br>
            <select name="minutes" title="Wybierz minuty" style="height: 19px; width: 62px;">
<option value="*"></option>
<option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option>
<option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option>
<option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option>
<option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option>
<option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option>
<option value="32">32</option><option value="33">33</option><option value="34">34</option><option value="35">35</option>
<option value="36">36</option><option value="37">37</option><option value="38">38</option><option value="39">39</option>
<option value="40">40</option><option value="41">41</option><option value="42">42</option><option value="43">43</option>
<option value="44">44</option><option value="45">45</option><option value="46">46</option><option value="47">47</option>
<option value="48">48</option><option value="49">49</option><option value="50">50</option><option value="51">51</option>
<option value="52">52</option><option value="53">53</option><option value="54">54</option><option value="55">55</option>
<option value="56">56</option><option value="57">57</option><option value="58">58</option><option value="59">59</option>  
            </select><input type="checkbox" title="Co wybrany zakres minut" name="everymin" value="on" class="auto-style7"></td></tr>
<tr><td style="height: 57px; width: 105px;">&nbsp;&nbsp;&nbsp;&nbsp; Dzien<br>&nbsp;<br>
            <select name="day" title="Wybierz dzien" style="width: 40px; height: 19px;" >
<option value="*"></option>
<option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option>
<option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option>
<option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option>
<option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option>
<option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option> 
            </select><input type="checkbox" title="Co podany dzien" name="everyday" value="on" class="auto-style8" style="width: 20px"></td>

<td style="height: 57" class="auto-style1">&nbsp; Dzien tygodnia<br><br>
<select name="dayofweek" title="Wybierz dzien tygodnia" style="height: 19px" >
<option value="*"></option>
<option value="1">Poniedzialek</option>
<option value="2">Wtorek</option>
<option value="3">Sroda</option>
<option value="4">Czwartek</option>
<option value="5">Piatek</option>
<option value="6">Sobota</option>
<option value="0">Niedziela</option>
</select></td></tr>
</table>





<td colspan="2" class="auto-style1" rowspan="2">

<table cellpadding="4" style="height: 242px; width: 210px"><tr><td align="center">
<input type="radio" name="activ" value="on" checked="check"/>Wlaczenie</td>
<td><input type="radio" name="activ" value="off"/>Wylaczenie</td></tr>

<tr><td align="center" colspan="2">Numer przekaznika<br><br>
<select name="nrswitch" title="Wybierz nr portu" class="auto-style6" style="width: 118px; height: 19px;">
<option value="1">1</option>
<option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option>
<option value="6">6</option><option value="7">7</option>
<option value="8">8</option>  
            </select></td></tr>
<tr><td align="center" colspan="2" style="height: 36px">        
<input type="submit" title="dodaj do harmonogramu" value="Dodaj" id="wpisz" style="width: 133px; height: 28px;"/></td></tr>
</table>
</form>

    </td>
<td style="height: 150px;" colspan="4" class="auto-style1">

<iframe src="/cgi-bin/switchharm/readharm.sh" height="150" frameborder="1" style="width: 455px" class="auto-style6"></iframe></td>

</tr>

<tr align="center">
<td colspan="4" class="auto-style1" style="height: 69px">
    
<form name="delswitchharm" action="/cgi-bin/switchharm/delswitchharm.sh" method="get" enctype="text/plain" style="height: 61px" class="auto-style11" >
&nbsp;<br>  
<input type="submit" name="usuwanie" value="Usun" onclick="return confirm('Na pewno chcesz usunac ?');" style="height: 26px; width: 161px"/>
<select name="lstswitchharm" class="auto-style9" style="height: 34px; width: 172px" >
<? 
/www/cgi-bin/switchharm/lstswitchharm.sh

?>
</select></form>
</td>
</tr>
</table>
</div>
</body>

</html>

Pozdrawiam,

111

Odp: Power Switch - najtańszy sterownik ON/OFF

DEPENDS:=+gargoyle +libusb +libusb-1.0

Na pewno nie. Albo jedna albo druga, program nie korzysta z obu na raz.

Powinno być w sekcji install. I nie stosuje się install tak jak zrobiłeś tylko makra $(INSTALL_BIN) ew. $(CP). Czemu kopiujesz binarki do /dodatki/powersw (nie robiąc tego katalogu tak swoją drogą wcześniej) zamiast np. do /usr/bin ?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

112

Odp: Power Switch - najtańszy sterownik ON/OFF

Co do strony - raz że on kompletnie jest jest zrobiona w idelologii gargoyle (tam nie ma jquery, można było to na samym js zrobić ) dwa - jest źle, bo jeżeli to ma być plugin do gargoyle to ma nie być head, body itd. Sama strona jest wkładana jako część diva w istniejącym body, więc musisz ją zrobić identycznie. Zobacz inne pluginy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

113

Odp: Power Switch - najtańszy sterownik ON/OFF

Cezary napisał/a:

DEPENDS:=+gargoyle +libusb +libusb-1.0

Na pewno nie. Albo jedna albo druga, program nie korzysta z obu na raz.

Powinno być w sekcji install. I nie stosuje się install tak jak zrobiłeś tylko makra $(INSTALL_BIN) ew. $(CP). Czemu kopiujesz binarki do /dodatki/powersw (nie robiąc tego katalogu tak swoją drogą wcześniej) zamiast np. do /usr/bin ?


Witam,

Wlasnie $(CP) nie zmienia mi praw dostepu na wykonywalne. Katalogi tam sa w katalogu files - jest tam jeszcze pare skryptow sh, nie wiem czy potrzebne to jest robienie katalogu. $(INSTALL_BIN) w ktorej za tem sekcji powinien byc w compile czy w install.  A co do libusb, to ktory jest lepszy ?

114

Odp: Power Switch - najtańszy sterownik ON/OFF

No nie zmienia. Masz już w źródłach mieć ustawione odpowiednie.

Tu nie ma które libusb jest lepsze, to dwie różne biblioteki. Z którą wersją masz program zlinkowany?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

115 (edytowany przez roblad 2013-08-19 10:44:26)

Odp: Power Switch - najtańszy sterownik ON/OFF

Czesc,

Tak naprawde nie wiem nie robilem linkow, skompilowalem bez linkowania, a do dzialania tego programu jest potrzebny libusb* w pliku .c jest tylko odniesienie do usb.h. Nie bardzo wiem do ktorego zlinkowac - opcja -L w kompilatorze to wiem.  Sugerowalem sie tym:

"Switch został wykonany na podstawie schematu z tej strony, można tam też znaleźć pliki źródłowe, gotowy wsad dla Attiny2313 jak i program sterujący, dzięki wielkiej uprzejmości Cezarego który skompilował go pod Openwrt mogłem przetestować owe urządzenie.
wersja dla OpenWrt Backfire -> powerSwitch - po pobraniu ustawić chmod 755"

ty robiles ta kompilacje dla innej platformy - pytanie do Ciebie z jaka biblioteka zlinkowac - ja wgralem poprostu usb.h do usr/included w stage_dir i sie skompilowalo.

kod pobralem z tej stronki

http://www.obdev.at/products/vusb/powerswitch.html

oryginalny Makefile mowi tylko to

USBFLAGS = `libusb-config --cflags`
USBLIBS = `libusb-config --libs` #-framework CoreFoundation
EXE_SUFFIX =

# Use the following 3 lines on Windows and comment out the 3 above. You may
# have to change the include paths to where you installed libusb-win32
#USBFLAGS = -I/usr/local/include
#USBLIBS = -L/usr/local/lib -lusb
#EXE_SUFFIX = .exe


CC        = gcc
CFLAGS    = $(USBFLAGS) -O -Wall
LIBS    = $(USBLIBS)

PROGRAM = powerSwitch$(EXE_SUFFIX)


all: $(PROGRAM)

.c.o:
    $(CC) $(CFLAGS) -c $<

$(PROGRAM): powerSwitch.o
    $(CC) -o $(PROGRAM) powerSwitch.o $(LIBS)

strip: $(PROGRAM)
    strip $(PROGRAM)

clean:
    rm -f *.o $(PROGRAM)
USBFLAGS = `libusb-config --cflags`
USBLIBS = `libusb-config --libs` #-framework CoreFoundation
EXE_SUFFIX =

# Use the following 3 lines on Windows and comment out the 3 above. You may
# have to change the include paths to where you installed libusb-win32
#USBFLAGS = -I/usr/local/include
#USBLIBS = -L/usr/local/lib -lusb
#EXE_SUFFIX = .exe


CC        = gcc
CFLAGS    = $(USBFLAGS) -O -Wall
LIBS    = $(USBLIBS)

PROGRAM = powerSwitch$(EXE_SUFFIX)


all: $(PROGRAM)

.c.o:
    $(CC) $(CFLAGS) -c $<

$(PROGRAM): powerSwitch.o
    $(CC) -o $(PROGRAM) powerSwitch.o $(LIBS)

strip: $(PROGRAM)
    strip $(PROGRAM)

clean:
    rm -f *.o $(PROGRAM)

Przyznam sie , ze nie jestem zbyt dobry w zagadnieniach GCC i kompilacji OpenWrt, to moja 1 przygoda, ale zalezy mi na tym pluginie.

Czy moglbys pomoc w prawidlowej definicji ?

pozdrawiam,

116

Odp: Power Switch - najtańszy sterownik ON/OFF

Zrób

strings /dodatki/powersw/powerswitch | grep libusb

(czy gdzie tam masz tą binarkę) to Ci pokaże czy zależy od libusb czy libusb-1.0. Moja była kompilowana z libusb, ale ta informacja jest dla Ciebie bezużyteczna, bo przecież sam to skompilowałeś, więc może być inaczej.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

117

Odp: Power Switch - najtańszy sterownik ON/OFF

Cezary napisał/a:

Zrób

strings /dodatki/powersw/powerswitch | grep libusb

(czy gdzie tam masz tą binarkę) to Ci pokaże czy zależy od libusb czy libusb-1.0. Moja była kompilowana z libusb, ale ta informacja jest dla Ciebie bezużyteczna, bo przecież sam to skompilowałeś, więc może być inaczej.


Nie mam takiej binarki ona jest w pakiecie openwrt, nie mam tam nic wgrane tylko skompilowany powerswitch, nie bardzo wiem jak to opanowac.

118

Odp: Power Switch - najtańszy sterownik ON/OFF

Na routerze to zrób.

Zresztą  - nie ma znaczenia, możesz i na komputerze - po prostu podaj pełną ścieżkę do binarki.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

119

Odp: Power Switch - najtańszy sterownik ON/OFF

Czesc,

mam taki rezultat

$!8@
'! @
$!8@
'! @
B$! `
B$! `
B$! `
B$! `
<! @
<! @
usage:
  %s status
  %s on <port> [<duration>]
  %s off <port> [<duration>]
  %s test
Ports are single digits in the range 0...7
The pulse duration for switching temporarily is given in seconds.
Warning: cannot open USB device: %s
Warning: cannot query manufacturer for device: %s
Warning: cannot query product for device: %s
www.obdev.at
PowerSwitch
Could not find USB device "PowerSwitch" with vid=0x%x pid=0x%x
test
USB error: %s
only %d bytes received in iteration %d
value sent = 0x%x
data error: received 0x%x instead of 0x%x in iteration %d
test succeeded
status
only %d bytes status received
port %d: %s%s
 / pulse off
 / pulse on

120

Odp: Power Switch - najtańszy sterownik ON/OFF

No chyba niekoniecznie zrobiłeś grep libusb smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

121

Odp: Power Switch - najtańszy sterownik ON/OFF

Cezary napisał/a:

No chyba niekoniecznie zrobiłeś grep libusb smile


Bo rezultat byl pusty. Czy powinienem przy kompilacji uzyc -L czy wystarczy standardowe usb.h w ../included w kompilatorze

/media/proc/test5/gargoyle/custom-src/staging_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-uclibc-gcc -Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -o powerswitch -c /media/proc/gargoyl_pl_build/gargoyle_add/plugin-gargoyle-powerswitch/src/powerSwitch.c

122

Odp: Power Switch - najtańszy sterownik ON/OFF

Jak zrobisz o w ten sposób to z libusb będzie zlinkowane. Nie z linusb-1.0, więc ten pierwszy tylko podajesz w zależnościach.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

123

Odp: Power Switch - najtańszy sterownik ON/OFF

Czesc,

no i ktory uzyc ?

i jak ?

./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/include/linux/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/arch/mips/include/asm/mach-pnx8550/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/arch/mips/include/asm/netlogic/xlp-hal/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/arch/arm/plat-omap/include/plat/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/arch/arm/mach-omap1/include/mach/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/drivers/staging/keucr/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/drivers/net/wireless/mwifiex/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/drivers/net/wireless/brcm80211/brcmfmac/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/drivers/net/wireless/rtlwifi/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/drivers/usb/storage/usb.h
./build_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/linux-3.7.2/drivers/usb/core/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/libusb-0.1.12/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/libusb-0.1.12/ipkg-install/usr/include/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/.pc/generic/820-usb_add_usb_find_device_by_name.patch/include/linux/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/include/config/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/include/linux/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/arch/mips/include/asm/mach-pnx8550/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/arch/mips/include/asm/netlogic/xlp-hal/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/arch/arm/plat-omap/include/plat/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/arch/arm/mach-omap1/include/mach/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/drivers/staging/keucr/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/drivers/net/wireless/mwifiex/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/drivers/net/wireless/brcm80211/brcmfmac/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/drivers/net/wireless/rtlwifi/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/drivers/usb/storage/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.7.2/drivers/usb/core/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/libpcap-1.1.1/pcap/usb.h
./build_dir/target-mipsel_r2_uClibc-0.9.33.2/libpcap-1.1.1/ipkg-install/usr/include/pcap/usb.h
./build_dir/host/u-boot-2012.04.01/include/usb.h
./build_dir/host/u-boot-2012.04.01/arch/arm/include/asm/arch-tegra2/usb.h
./build_dir/host/u-boot-2012.04.01/arch/blackfin/include/asm/mach-common/bits/usb.h
./staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/include/usb.h
./staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/include/pcap/usb.h

124

Odp: Power Switch - najtańszy sterownik ON/OFF

staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/include/usb.h

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

125

Odp: Power Switch - najtańszy sterownik ON/OFF

Cezary napisał/a:

staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/include/usb.h


Cos nie hula(na tym sprzecie co robie, pozniej sprawdze na 2),

 /media/disk/openwrt/staging_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-uclibc-gcc -Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -o power ./powerSwitch.c -I /media/disk/openwrt/staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/include
/tmp/ccx7rw92.o: In function `usbGetStringAscii.constprop.1':
powerSwitch.c:(.text+0x38): undefined reference to `usb_control_msg'
/tmp/ccx7rw92.o: In function `usbOpenDevice.constprop.0':
powerSwitch.c:(.text+0x100): undefined reference to `usb_init'
powerSwitch.c:(.text+0x108): undefined reference to `usb_find_busses'
powerSwitch.c:(.text+0x110): undefined reference to `usb_find_devices'
powerSwitch.c:(.text+0x118): undefined reference to `usb_get_busses'
powerSwitch.c:(.text+0x15c): undefined reference to `usb_open'
powerSwitch.c:(.text+0x16c): undefined reference to `usb_strerror'
powerSwitch.c:(.text+0x1ac): undefined reference to `usb_strerror'
powerSwitch.c:(.text+0x1e8): undefined reference to `usb_strerror'
powerSwitch.c:(.text+0x218): undefined reference to `usb_close'
/tmp/ccx7rw92.o: In function `main':
powerSwitch.c:(.text.startup+0x40): undefined reference to `usb_init'
powerSwitch.c:(.text.startup+0xd0): undefined reference to `usb_control_msg'
powerSwitch.c:(.text.startup+0xf0): undefined reference to `usb_strerror'
powerSwitch.c:(.text.startup+0x1c4): undefined reference to `usb_control_msg'
powerSwitch.c:(.text.startup+0x1e4): undefined reference to `usb_strerror'
powerSwitch.c:(.text.startup+0x388): undefined reference to `usb_control_msg'
powerSwitch.c:(.text.startup+0x3b0): undefined reference to `usb_strerror'
powerSwitch.c:(.text.startup+0x3cc): undefined reference to `usb_close'
collect2: ld returned 1 exit status

no i nie dales mi odpowiedzi co do Makefile (chcialbym abys mi troszke pomogl - bede wdzieczny), jak prawidlowo powinien byc zrobiony i jak zapewnic aby chmod 755 wykonywalny sie kopiowal podczas kompilacji calego bina (stronke zostawie sobie na pozniej). Czy w SRC katalogu w pluginie powinno byc linkowanie do usb.h czy ewentualnie biblioteka z libusb. Doszlismy co do DEPENDS: , ze musi byc libusb. Czy przy kompilowaniu powerswitch binarki konieczne jest to linkowanie do libusb (w twoim skompilowaniu z tego watku bylo linkowanie do libsub1-0.[...]14.o) - nie wiem jak to skompilowales, ze to dziala.


Czy finalna postac komilacji z reki powinna wygladac tak:

/media/disk/openwrt/staging_dir/toolchain-mipsel_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-uclibc-gcc -Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -o power ./powerSwitch.c -I /media/disk/openwrt/staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/include