Nie działa wyłączanie kamerki z poziomu GUI, czyli jak zaznaczam włącz webcam to włącza a po odznaczeniu powinien wyłaczyć a tego nie robi
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Posty przez wabikboy
Nie działa wyłączanie kamerki z poziomu GUI, czyli jak zaznaczam włącz webcam to włącza a po odznaczeniu powinien wyłaczyć a tego nie robi
Własnie wolał bym z GUI ale nie działa prawidłowo bo nie chce wyłączyć kamerki chyba ze tak ma być że nie wyłącza ale wątpie
no tak i działa jak się zaznaczy t.j. włącza kamerkę ale po odznaczeniu kamerka się nie wyłącza a myślę że powinna, jedynie enable w /etc/config/mjpg-streamer zmienia tylko stan na 0
Więc sądzę że gdzieś trzeba zmienić kolejność wczytywania w js aby to prawidłowo działało
Faktycznie miałem w /etc/config/mjpg-streamer enabled 0 i po przestawieniu ręcznie na 1 skrypt w konsoli tj. /etc/init.d/mjpg-streamer działa bez usuwania wspomnianych linijek ale w GUI nadal nie działa prawidłowo gdyż nie wyłącza kamerki po odznaczeniu checkboxa i zapisaniu ustawień, dopiero jak w /etc/config/mjpg-streamer zmienie znów 0 na 1 i w GUI kliknę zapisz z odznaczonym checkboxem to wyłącza kamerke
Widocznie skrypt w js najpierw wpisuje stan do enabled a potem wywołuje /etc/init.d/mjpg-streamer
init.d/mjpg-streamer :
#!/bin/sh /etc/rc.common
# Copyright (C) 2009-2012 OpenWrt.org
START=50
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
PROG=/usr/bin/mjpg_streamer
error() {
echo "${initscript}:" "$@" 1>&2
}
section_enabled() {
config_get_bool enabled "$1" 'enabled' 0
[ $enabled -gt 0 ]
}
start_instance() {
local s="$1"
local auth=""
section_enabled "$s" || return 1
config_get device "$s" 'device'
config_get resolution "$s" 'resolution'
config_get fps "$s" 'fps'
config_get yuv "$s" 'yuv' 0
config_get port "$s" 'port'
config_get www "$s" 'www' "/usr/lib/mjpg-streamer/www"
config_get username "$s" 'username'
config_get password "$s" 'password'
[ $yuv = "1" ] && yuv="-y" || yuv=""
[ -c "$device" ] || {
error "device '$device' does not exist"
return 1
}
[ -n "$username" -a -n "$password" ] && {
auth="--credentials $username:$password"
}
service_start /usr/bin/mjpg_streamer \
--input "input_uvc.so $yuv --device $device --fps $fps --resolution $resolution" \
--output "output_http.so --www $www --port $port $auth"
}
stop_instance() {
local s="$1"
section_enabled "$s" || return 1
service_stop /usr/bin/mjpg_streamer
}
start() {
config_load 'mjpg-streamer'
config_foreach start_instance 'mjpg-streamer'
}
stop() {
config_load 'mjpg-streamer'
config_foreach stop_instance 'mjpg-streamer'
}usunięcie || return 1 z linijek section_enabled "$s" || return 1
pozwala uruchomić skrypt z init.d i z przeglądarki również włącza i wyłącza kamerkę.
Nie rozumiem w jakim celu zostały one wpisane ![]()
sam program odpala po poleceniu:
root@Gargoyle:~# mjpg_streamer -i "input_uvc.so -d /dev/video0" -o "output_http.
so"
MJPG Streamer Version: svn rev: Unversioned directory
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MJPEG
Adding control for Pan (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan/tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Focus (absolute)
UVCIOC_CTRL_ADD - Error: Invalid argument
mapping control for Pan (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan/tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Focus (absolute)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Mode
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Frequency
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Disable video processing
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Raw bits per pixel
UVCIOC_CTRL_MAP - Error: Invalid argument
o: www-folder-path...: disabled
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled
^Csetting signal to stop
i: cleaning up ressources allocated by input thread
force cancellation of threads and cleanup resources
o: cleaning up ressources allocated by server thread #00
doneNo właśnie nie ma i z GUI startuje normalnie a z konsoli nie chce
a przecież GUI korzysta z /etc/init.d/mjpg-streamer start
Ok ale jeszcze dziwniejsze jest to że jak jest wyłączone to nie można z konsoli uruchomić za pomocą /etc/init.d/mjpg-streamer start
Jest jakiś błąd z webcam w GUI i chyba z /etc/init.d/mjpg-streamer, otóż po włączeniu checkboxem w GUI kamerka się załącza ale po odznaczeniu i zapisaniu już nie wyłącza kamerki, nie można też jej wyłączyć z konsoli tj /etc/init.d/mjpg-streamer stop, ale jak się uruchomi w GUI a potem w konsoli z palca zrobię /etc/init.d/mjpg-streamer stop to kamerka sie wyłącza.
Kamerka: SC-13HDL12639P "wymontowana z laptopa"
sterownik: uvcvideo
Działa bez problemów
Widzisz
tak Cię zrozumiałem, ale ok nie róbmy OT
Może, i ciąg trzech zer występować gdzie indziej, ale na pewno nie ciąg trzech zer z przecinkiem "000,"
A zobacz jak jest zapisany ciąg znaków i jaki jest znak oddzielający czas od temperatury ![]()
@Jaack ja Cię doskonale rozumiem i jeśli te 000 da się wykluczyć z pliku to ok ale jak widzisz mimo wszystko 19 znaków mniej a 3 to jednak różnica. Co więcej czy odczyt nie jest wystarczający co 10 min ? daje to tylko 144 odczytów na dobę ![]()
Zmniejszcie sobie częstotliwość odczytów to i danych będzie mniej, co więcej nie wiem czy jest to poprawione ale przy przekroczeniu granicy ( nie pamiętam jakiej ilości ) wpisów w pliku strona z wykresem przestaje się wyświetlać.
@Jaack możesz się ze mną nie zgodzić ale chyba jednak czytanie ostatniego wpisu i porównanie z czasem routera będzie bardziej automatyczne oczywiście jeszcze do tego sprawdzenie czy plik istnieje i czy nie jest pusty aby skrypt działał prawidłowo ![]()
Ale to jest tylko moja propozycja
Czas jest zapisywany, jak już pewnie z kodu powyżej wyczaiłeś w takim formacie:
[1416349960000,te.mp]
Jeśli chodzi o zapis dla wykresu to wiedziałem tylko nie wiem czemu myślałem że masz dodatkowy plik z pomiarem w jakimś innym formacie stąd moje pytanie.
Pomijając to @xury się już postarał w php.
A jeśli chodzi o sprawdzanie czy istnieje timestamp.txt to moim zdaniem wystarczy dodać jeden warunek "if" na początku który to sprawdza i jeśli brak to tworzy go i wpisuje bieżący czas ![]()
Ok ok nie zgodność rozumienia ![]()
W każdym bądź razie niech @Jaack określi czy w php czy bash
to się sklei gotowe rozwiązanie
Nadal źle ![]()
Nie chodzi o samo wyciągnięcie danych tylko jeszcze trzeba porównać te dane z czasem routera który aktualizuje się po pewnym czasie z internetu aby nie robił się bałagan na wykresie jak wyżej.
np coś takiego:
#!/bin/sh
jakas_data="2014-11-18 18:10:09"
last_data=$(date -d "$jakas_data" +%s)
if [ "$last_data" -gt `date +%s` ] ; then
echo 1
fiJeśli zwraca 1 znaczy że źle
Jak dostanę to o co prosiłem tzn format daty zapisanej w pliku to zrobie gotowca
Tu nie chodzi o generowanie wyniku lecz o porównanie ostatniej zapisanej daty pomiaru z bieżącym czasem.
pokaż mi tylko w jaki sposób masz zapisane dane w pliku z pomiarami.
Ups
nie zauważyłem.
Niestety w php Ci nie pomogę ale w bash'u jest to dość proste więc jak Ci pasuje to wieczorem coś skleję ![]()
A nie prościej jest pobrać ostatnią zapisaną datę z pliku pomiarów i porównać ją z bieżącym czasem ?
Rozumiem że xinetd działa tak iż jeśli połączenie na porcie zostanie przerwane to proces programu uruchomionego przez niego powinien zostać "ubity" no więc zrobiłem sobie prosty skrypt a w nim:
#!/bin/sh
socat udp-listen:5000,fork - | madplay - -Quruchamiając z palca działa jak trzeba a przerywając działanie skryptu, socat jak i madplay zostają przerwane.
Jednak xinetd już tak nie robi, tzn przerywam połączenie na porcie a socat i madplay wisi w procesach.
Wiem że xinetd po jakimś czasie dopiero zwalnia zasoby zajęte przez wywołany program ale nawet po 30 min procesy wisiały.
Czy nie da sie tego wykorzystać w taki sposób czy może jest coś jeszcze do zrobienia ?
ok już lata ![]()
przy UDP
powinno być
socket_type = dgram
coś mu nie pasuje tylko nie wiem co
root@Gargoyle:~# xinetd -d
14/10/27@18:11:59: DEBUG: 7530 {handle_includedir} Reading included configuration file: /etc/xinetd.d/sriming [file=/etc/xinetd.conf] [line=6]
Service defaults
Bind = All addresses.
Only from: All sites
No access: No blocked sites
No logging
Service configuration: stremmp3
id = stremmp3
flags = IPv4
socket_type = stream
Protocol (name,number) = (udp,17)
port = 5000
wait = no
user = 0
group = 0
Groups = no
PER_SOURCE = -1
Bind = All addresses.
Server = /dodatki/skrypty/strim.sh
Server argv = strim.sh
Only from: All sites
No access: No blocked sites
No logging
14/10/27@18:11:59: ERROR: 7530 {svc_activate} socket creation failed (Protocol not supported (errno = 120)). service = stremmp3
14/10/27@18:11:59: ERROR: 7530 {cnf_start_services} Service stremmp3 failed to start and is deactivated.
14/10/27@18:11:59: DEBUG: 7530 {cnf_start_services} mask_max = 0, services_started = 0
14/10/27@18:11:59: CRITICAL: 7530 {init_services} no services. Exiting...eko.one.pl → Posty przez wabikboy
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc