126

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

-L/scieżka/do/libusb zapomniałeś.

Dostałeś odpowiedni do makefile, czego jeszcze nie wiesz?

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

127

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

Czesc

Nie wiem czy komenda jest kompletna i mozna ja juz zastosowac -L/scieżka/do/libusb - czy nie dopisujemy biblioteki  -lusb (czy sciezka ma byc taka sama w Makefile w pluginie gargoile)?

czy w kompilacji mozna zastosowac opcje -c tak aby sie nic nie linkowalo, bo i tak w systemie bedzie libusb.

Dodatkowo nie wiem jak uzupelnic sekcje install i comile z poczatku naszej korespondencji plik Makefile do plugina.

Mam za duzo niewiadomych.

Cezary czy mozesz pomoc (sory za upierdliwosc)

Pozdrawiam,

128

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

Nie robi się statycznych binarek zawsze będzie korzystała z tego libusb co jest w systemie. I tak, musisz podać -L / -lusb bo przecież inaczej nie skompilujesz.

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

129

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

roblad napisał/a:

Dodatkowo nie wiem jak uzupelnic sekcje install i comile z poczatku naszej korespondencji plik Makefile do plugina.

Tzn czego nie wiesz? compile ma skompilować binarkę, install umieścić wszystko w katalogach w $(1).

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

130 (edytowany przez roblad 2013-08-19 16:47:20)

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

Czesc,

1)  A co z plikiem Makefile ?

2)i jak to umiescic w Makefile pluginie tak zeby sie kompilowalo prawidlowo podczas kompilacji calego .bin'a - teraz szuka biblioteki - a po "chamsku" tez nie ma co wsadzac na 1 platforme chcialbym uzyc zmiennych uniwersalnych w sekcji compile.

komenda do kompilacji zatem jest taka:

/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 powerswitch /media/disk/openwrt/plugin-gargoyle-powerswitch/src/powerSwitch.c -I/media/disk/openwrt/staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/include -L/media/disk/openwrt/staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/lib -lusb

resultat ze strings

 
strings powerswitch 
/lib/ld-uClibc.so.0
libusb-0.1.so.4
_DYNAMIC_LINKING
__RLD_MAP
usb_strerror
usb_find_busses
usb_init
usb_find_devices
usb_get_busses
_fini
_GLOBAL_OFFSET_TABLE_
_Jv_RegisterClasses
fputs
atoi
usb_close
stderr
strcmp
usb_control_msg
fprintf
usb_open
libgcc_s.so.1
__divdf3
__fixdfsi
__adddf3
libc.so.0
atof
rand
__uClibc_main
exit
_ftext
_fdata
_edata
__bss_start
_fbss
_end
GCC_3.0
<!0 
<!0 
<!0 
<!0 
$!0 
$!8@
$!0 
$! @
<! `
$! `
$*(b
<!  
$!0@
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
www.obdev.at
Warning: cannot query product for device: %s
PowerSwitch
 / pulse on
 / pulse off
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

Typ pliku

file powerswitch
powerswitch: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, not stripped

3) nie wiem jak sobie tez poradzic z prawami dostepu do wykonywania i prawidlowo zeby pliki z katalogu files sie kopiowaly do wynikowego z chmod 755 teraz znika bit wykonywania pliku.

131

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

3. $(INSTALL_BIN) zastosuj, pisałem.
2. (cd $(PKG_BUILD_DIR)); $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o powerswitch powerSwitch.c -I$(STAGING_DIR)/usr/include -L$(STAGING_DIR)/usr/lib -lusb)

Nie działa?
1. Którym w końcu Makefile?

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

132

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

Cezary napisał/a:

3. $(INSTALL_BIN) zastosuj, pisałem.
2. (cd $(PKG_BUILD_DIR)); $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o powerswitch powerSwitch.c -I$(STAGING_DIR)/usr/include -L$(STAGING_DIR)/usr/lib -lusb)

Nie działa?
1. Którym w końcu Makefile?


ano w tym, tak aby sie prawa dostępu prawidlowo ustawialy

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))

zamiast nstall -m0755

mam uzyc makra

$(INSTALL_BIN) $(PKG_INSTALL_DIR)/dodatki/powersw/powerswitch  $(1)/dodatki/powersw/power

i czy to ma byc w sekcji comile czy w sekcji install Makefile pluginowego ?


i czy to zapewnia prawidlowe ustawienia bitu wykonywalnego dla pliku.

Pozdrawiam,

133

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

W sekcji install nie compile. Tak zachowa.

Po co kompilujesz i instalujesz dwa razy tą samą binarkę pod różnymi nazwami?

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

134

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

Cezary napisał/a:

W sekcji install nie compile. Tak zachowa.

Po co kompilujesz i instalujesz dwa razy tą samą binarkę pod różnymi nazwami?


Aaaa, bo musze troche skrypty pozmieniac, a juz zapomnialem czy przypadkiem nie byla ta nazwa juz zmieniona czy byla, 1 docelowo wywale po uporzadkowaniu skryptow odpalajacych powerswitcha, narazie musi byc tak aby przetestowac instalowanie, pozniej bedziemy tuningowac i robic stronke (tu troche licze na Twoja pomoc).

Posprzatam i wywale 1 :-) , skladalem 2 elementy powerswitch scheduler do crona i powerswitch obsluga - nie pamietam czy zmienilem skrypty a na rooterze 1043nd mam 2 wgrane napewno 1 jest niepotrzebna ale musze sprawdzic skrypty czy gdzies sie nie odwoluje ten 1 smieciowy.

Pozdr,

135

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

Czesc,


Mam jeszcze 1 pytanie, jak bym dokladal z menuconfig to jak tajemnie sprawic , zeby uci dopisalo do configa gargoyle nowa pozycje - czy to uci-default sprawia ?

mam tez problemy przy dodaniu innych paru pluginow nie pojawiaja mi sie w menu np. cron, logi, tinyproxy,  - pomijajac to ze mindlna wogole gdzies mi znika w menuconfig - mimo to ze jak sie szuka to jest w menuconfig ale nie da sie wybrac.

hddidle tez nie zmienia mi plikow na wykonywalne itd. pare bledow mam przy kompilacji ramipsa - ale to w innym watku.



Pozdr,

136

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

Nie, skrypt postinst w Makefile.

hdidle ma pliki wykonywalne - nie wiem co ma ci "zmieniać".

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

137

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

Czesc,

opisze to wszystko co mi sie dzieje przy kompilacji calosci, niestety sa problemy z prawami wykonywania, dodatkowo np nowy 3ginfo nie kompiluje sie przwidlowo

uglifyjs -nc ./files/www/js/3ginfo.js > /media/proc/test5/gargoyle/custom-src/build_dir/target-mipsel_r2_uClibc-0.9.33.2/plugin_gargoyle_3ginfo-20120815/ipkg-all/plugin-gargoyle-3ginfo/www/js/3ginfo.js
bash: uglifyjs: command not found

ale to jak mowie pozniej zbiore do kupki i zrobie nowy temat kompilacja ramips.

138

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

Sobie uglifyjs zainstaluj (node-js)

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

139

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

Czesc,

Czy mozna powiedziec ze ten Makefile jest juz ok:

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
    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)
    (cd $(PKG_BUILD_DIR)); $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o power powerSwitch.c -I$(STAGING_DIR)/usr/include -L$(STAGING_DIR)/usr/lib -lusb)
    
##compile@root:/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 /media/disk/openwrt/plugin-gargoyle-powerswitch/src/powerSwitch.c -I/media/disk/openwrt/staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/include -L/media/disk/openwrt/staging_dir/target-mipsel_r2_uClibc-0.9.33.2/usr/lib -lusb 
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)
        mkdir -p $(1)/dodatki/powersw
    $(CP) ./files/* $(1)/
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/dodatki/powersw/power $(1)/dodatki/powersw/power
endef

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

140

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

Kompletnie jest. Jeżeli binarkę generujesz w bieżącym build_root to /dodatki/powersw/power ?

$(INSTALL_BIN) $(PKG_BUILD_DIR)/power $(1)/dodatki/powersw/power

I nie mkdir -p $(1)/dodatki/powersw
tylko  $(INSTALL_DIR)/dodatki/powersw (choć nadal twierdzę że to /usr/bin powinno być).

Nie pytaj się czy makefile jest dobry, po prostu kompiluj pakiet. Sam  zobaczysz czy się zrobi.

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

141

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

Cezary napisał/a:

Kompletnie jest. Jeżeli binarkę generujesz w bieżącym build_root to /dodatki/powersw/power ?

$(INSTALL_BIN) $(PKG_BUILD_DIR)/power $(1)/dodatki/powersw/power

I nie mkdir -p $(1)/dodatki/powersw
tylko  $(INSTALL_DIR)/dodatki/powersw (choć nadal twierdzę że to /usr/bin powinno być).

Nie pytaj się czy makefile jest dobry, po prostu kompiluj pakiet. Sam  zobaczysz czy się zrobi.


docelowo zmienie do /usr/bin, tak zeby bylo koszernie :-) bede jeszcze przerabial, no i stronka zostaje do roboty, przy tej okazji zamienie sciezki do /usr/bin

142

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

Czesc,

skompilowalo sie ale musialem ciut zmienic w lini do kompilowania

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
    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_CFLAGS) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/power $(PKG_BUILD_DIR)/powerSwitch.c -I$(STAGING_DIR)/usr/include -L$(STAGING_DIR)/usr/lib -lusb
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)
    mkdir -p $(1)/dodatki/powersw
    $(CP) ./files/*    $(1)/
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/power    $(1)/dodatki/powersw/power
endef
$(eval $(call BuildPackage,plugin-gargoyle-powerswitch))

143

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

Cezary napisał/a:

Sobie uglifyjs zainstaluj (node-js)

node mam przy pakiecie gargojle i build.sh kompresuje.

W przypadku gdy chcialbym dodac taki pakiet do routera to musze go miec zainstalowanego na routerze gdy nie ma skompresowanego .js. Oczywiscie zainstaluje w moim systemie ten program, ale warto aby ten pakiet sprawdzal ze nie ma go albo wywalal komunikat jak go nie ma jak sie kompilacja robi.

Pozdrawiam,

144

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

Czesc,

Sprawa stronki, czy jakis css i .js jest mi potrzebny przy przerabianiu stronki powerswitcha czy moge skorzystac z gotowcow, ktore juz sa a innych pakietach ?

Pozdrawiam,

145

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

roblad napisał/a:
Cezary napisał/a:

Sobie uglifyjs zainstaluj (node-js)

node mam przy pakiecie gargojle i build.sh kompresuje.

W przypadku gdy chcialbym dodac taki pakiet do routera to musze go miec zainstalowanego na routerze gdy nie ma skompresowanego .js. Oczywiscie zainstaluje w moim systemie ten program, ale warto aby ten pakiet sprawdzal ze nie ma go albo wywalal komunikat jak go nie ma jak sie kompilacja robi.

Pozdrawiam,

Ale nie masz go na ogólno dostępnej ścieżce.

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

146

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

roblad napisał/a:

Czesc,

Sprawa stronki, czy jakis css i .js jest mi potrzebny przy przerabianiu stronki powerswitcha czy moge skorzystac z gotowcow, ktore juz sa a innych pakietach ?

Pozdrawiam,

To jest czysty js, więc żadnych więcej bibliotek nie musisz ściągać jeżeli chcesz w czystym gargoyle.

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

147 (edytowany przez roblad 2013-08-20 11:39:05)

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

Cezary napisał/a:
roblad napisał/a:

Czesc,

Sprawa stronki, czy jakis css i .js jest mi potrzebny przy przerabianiu stronki powerswitcha czy moge skorzystac z gotowcow, ktore juz sa a innych pakietach ?

Pozdrawiam,

To jest czysty js, więc żadnych więcej bibliotek nie musisz ściągać jeżeli chcesz w czystym gargoyle.


Czyli, bez gargoyle_header_footer -h -s "system" -p "powerswitch"

bez tego

-c "internal.css"

i tego

-j "table.js"


powerswitch



A w stopce tylko to


gargoyle_header_footer -f -s "system" -p "powerswitch"


Narazie zrobilem tyle;

#!/usr/bin/haserl

<?
    # This program is copyright © 2013 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
    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"  )
    gargoyle_header_footer -h -s "system" -p "powerswitch" -c "internal.css" -j "table.js" powerswitch

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


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


?>


<!-- <script><?


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"

?></script>//-->



<fieldset id="powerswitch">
<legend class="sectionheader">Power Switch</legend>


<div align="center" align="justify" style="width: 968px; height: 16px" ><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 "$(cat /tmp/sysinfo/model)"
    else
    
     #echo "var model=\"brak danych\";"
     echo "var model=\""$(awk -F: '/machine/ {print $2}' /proc/cpuinfo)"\";" 
                
    
    fi ?> </font> </div>

<div align="center" style="height: 25px; width: 968px;"><br><font size="4" color="red"> <? status=$(cgi-bin/powersw/urzadzenie.sh 2>/dev/null) echo "$status" ?></font></div>
<table class="auto-style1" style="height: 797px" >
<colgroup span="1"></colgroup>
<colgroup span="7"></colgroup>
<tr align="center" class="auto-style2">
<td style="border-bottom-color: #000000; border-color: #000000; height: 48px; 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: 94px;" 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: 110px; height: 94px;" 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: 94px;" class="auto-style1">
    <font size="4" color="blue">SW-3<font size="2" color="black"/font><br>tu opis 
    <br>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="48" height="47" >

<br>
<td style="width: 107px; height: 94px;" 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: 108px; height: 94px;" 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: 94px;" 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: 101px; height: 94px;" 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="47" height="50" class="auto-style12" >

<br>
<td style="height: 94px;" 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: 110px; 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: 108px; 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: 101px; 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: 28px">
    <strong>Ustaw czas zalaczenia - crona</strong></td>
    <td class="auto-style1" colspan="2" style="height: 28px">
    <strong>Wybierz stan przekaznika</strong></td>
    <td class="auto-style1" colspan="4" style="height: 28px">
    <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: 117px; width: 210px;">
<tr><td style="width: 105px; height: 90px;">&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; 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: 175px; width: 210px"><tr>
    <td align="center" style="height: 11px">
<input type="radio" name="activ1" value="V1" checked="true"/>Wlaczenie</td>
<td style="height: 11px"><input type="radio" name="activ" value="V1" checked="true"/>Wylaczenie</td></tr>

<tr><td align="center" colspan="2" style="height: 114px">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: 13px;" colspan="4" class="auto-style1">

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

</tr>

<tr align="center">
<td colspan="4" class="auto-style1" style="height: 13px">
    
<form name="delswitchharm" action="/cgi-bin/switchharm/delswitchharm.sh" method="get" enctype="text/plain" style="height: 50px" 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>

<head>
 <title>Power Switch w garazu</title>
<script src="file:///H:/GitHub/Gargoyle/62b7660_gargoyle/package/plugin-gargoyle-minidlna/files/www/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;
}
.auto-style12 {
    margin-left: 13px;
}
</style>

</fieldset>

<?
    gargoyle_header_footer -f -s "system" -p "powerswitch"
?>

ale nie mam mozliwosci teraz przetestowac

148

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

To najpierw testuj zamiast publikować, bo na razie to się nie nadaje smile
Źle:
echo "Content-type: text/html"
echo "$status"
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"  ) (druga linia)
W kilku miejscach <? zapomniałeś a używasz skryptów itd. Uruchom to samodzielnie i zobacz jak to wygląda.

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

149

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

Czesc,

Ale chodzi mi o wywalone sekcje body i head, czy teraz

gargoyle_header_footer

czadziala <? ?> sa wszedzie w parach, moze ich dobrze nie widac, bo sa w ciagu kodu, poprawie.

glownie chodzi mi tez o ta linie

gargoyle_header_footer -h -s "system" -p "powerswitch" -c "internal.css" -j "table.js" powerswitch

co powinno tam byc dokladnie czy potrzebne sa w/w biblioteki, czy mozna z nich calkowicie zrezygnowac.

150

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

Uruchom ten program to ci wypisze help i powie czym są te parametry.


-j "table.js" powerswitch nie koniecznie, jeżeli nie używasz tabel w stylu gargoyle i skryptu uci o nazwie powerswitch

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