Guest s6s Posted November 23, 2013 Share Posted November 23, 2013 Jak z poziomu skryptu shell'a sprawdzić czy głowica nie działa aktualnie (czyli czy ktoś akurat nie ogląda tv w danej chwili albo nie nagrywa się planowa audycja tv)? ok, coś takiego udało mi się wymodzić, żeby sprawdzić czy string zwracany przez: strng=`wget -q -O - "http://127.0.0.1/web/about" |grep e2servicename\> | /usr/bin/cut -d '>' -f2 | /usr/bin/cut -d '<' -f1 )` zawiera nazwę audycji/stacji (kiedy głowica włączona) czy nic nie zawiera kiedy tuner przełączy się w stan "sleep". (Przy okazji wiemy jak otrzymać nazwę audycji (kiedy EPG podaje) lub stacji (kiedy nic nie ma w EPG)) Ale czy to nie za bardzo "karkołomna" metoda i nie da się prościej? Scalono Quote Link to comment Share on other sites More sharing options...
mickey Posted November 25, 2013 Share Posted November 25, 2013 Działało, kiedy używałem: #!/bin/bash timers_file=/etc/enigma2/timers.xml time_now=`date +%s` timer_state=0 while read -r line; do line_start=`echo "$line" | awk '{ print $1 }'` if [ "$line_start" = "<timer" ] then timer_begin=`echo "$line" | awk '{ print $2 }' | sed 's/"/ /g' | awk '{print $2}'` timer_end=`echo "$line" | awk '{ print $3 }' | sed 's/"/ /g' | awk '{print $2}'` if [ "$time_now" -ge "$timer_begin" ] && [ "$time_now" -le "$timer_end" ] then timer_state=1 fi fi done < $timers_file echo "$timer_state" Zwraca 0 jeżeli aktualnie nic się nie nagrywa i 1 jeżeli coś się jednak nagrywa ... bazując na danych z timers.xml. Jeżeli włączymy nagranie w czasie oglądania, używając czerwonego R to niestety nie dopisuje się to do timers.xml :( Wydaje się, że jeżeli coś się odtwarza lub nagrywa to powinny być ustawione parametry w /proc/stb/vmpeg ... ale mimo aktywnego nagrania są tam zera. Quote Link to comment Share on other sites More sharing options...
Guest herpoi Posted November 25, 2013 Share Posted November 25, 2013 A tu się nie pojawia timer odpalony z klawisza? http://ip_boxa/web/timerlist Quote Link to comment Share on other sites More sharing options...
Guest s6s Posted November 25, 2013 Share Posted November 25, 2013 cat /proc/stb/vmpeg/0/framerate pokazuje zero kiedy tuner w 'sleep' a cztery "cyfry" szensnastkowe kiedy podczas oglądania... Podczas stanu sleep kiedy nagrywa planowe zadanie rzeczywiście pokazuje niestety zero (tak samo zresztą i w stanie czuwania kiedy "nie ma wolnego tunera" i obraz ciemny) Quote Link to comment Share on other sites More sharing options...
mickey Posted November 25, 2013 Share Posted November 25, 2013 Właśnie wiem... Wydawało mi się, że tam powinno coś być jeżeli jeden z tunerów pracuje (coś dekoduje) a są wartości różne od 0 tylko kiedy obraz jest wyświetlany :( Quote Link to comment Share on other sites More sharing options...
AbrahaM Posted January 15, 2014 Share Posted January 15, 2014 Właśnie wiem... Wydawało mi się, że tam powinno coś być jeżeli jeden z tunerów pracuje (coś dekoduje) a są wartości różne od 0 tylko kiedy obraz jest wyświetlany :( odkopuje. na podstawie pliku LCD generowanego przez oscam, można wywnioskować czy coś się dekoduje. Po więcej (jak to ustawiać) odsyłam do: http://www.streamboard.tv/wiki/OSCam/en/Config/oscam.conf#enablelcd - po testach zobaczysz co oscam tam umieszcza :) Quote Link to comment Share on other sites More sharing options...
Guest s6s Posted January 17, 2014 Share Posted January 17, 2014 Ale to oznacze, że musi męczyć dysk HDD ciągłym zapisywaniem bzdur, nie da się jakoś ominąć owej konieczności? Jakiś bufor w tmpfs albo co... jakby ograniczyć wielkość pliku do minimum żeby nie zapychać też pamięci? Quote Link to comment Share on other sites More sharing options...
tux Posted January 17, 2014 Share Posted January 17, 2014 Ale to oznacze, że musi męczyć dysk HDD ciągłym zapisywaniem bzdur, nie da się jakoś ominąć owej konieczności? Jakiś bufor w tmpfs albo co... jakby ograniczyć wielkość pliku do minimum żeby nie zapychać też pamięci? Włącz myślenie - możesz definować ścieżki! Quote Link to comment Share on other sites More sharing options...
Guest s6s Posted January 17, 2014 Share Posted January 17, 2014 Ważna uwaga, w owym opisie z linku: http://www.streamboard.tv/wiki/OSCam/en/Config/oscam.conf#enablelcd występuje pewna niedbałość. Otóż żeby 'lcd' działało należy owe wpisy konfiguracyjne poprzedzić nagłówkiem [lcd] , czyli w sumie np.: [lcd] enablelcd = 1 # NEU - NEW - NOUVEAU - NUOVO svn:6285/01/23/2012 lcd_outputpath = /tmp #wartość domyślna jeżeli nic nie wpiszesz - a poza tym trzeba wpisać ścieżkę FOLDERu! lcd_hideidle = 0 lcd_writeinterval = 10 (przy najmniej mnie jedynie pod powyższym warunkiem działa) ------------ Aha, jeszcze dodam, że mam oscam'a z ostatniej aktualizacji przez opkg, i mówi on, że obsługuje lcd: # cat /tmp/.oscam/oscam.version Version: oscam-1.20-unstable_svn-r9072 ... LCD support: yes ... ------------------- Przy okazji, pojęcia nie ma do czego służy owa funkcja "lcd" w oscam'ie (czy mógłby ktoś jednym zdaniem oświecić pliiiz?) a w szczególności, czy owe informacje zawarte w plikach oscam.lcd.* można wykorzystać jedynie aby określić czy tuner odbiera kanały kodowane - czy również FTA? Quote Link to comment Share on other sites More sharing options...
AbrahaM Posted January 17, 2014 Share Posted January 17, 2014 (Przy okazji, pojęcia nie ma do czego służy owa funkcja "lcd" w oscam'ie, czy mógłby ktoś jednym zdaniem oświecić pliiiz?) Mama mia. W wątku o czym tu dyskutujemy? o sprawdzaniu czy coś się dekoduje, cytuję za innym guru oscamowym (Jej@n) W pliku (lcd, dopisek mój) otrzymujemy sporo informacji takich jak: - pełne dane o wersji OSCam'a - uptime - dane z tabelki "Totals" w zakładce USERS - informacje o czytnikach i userach przykładowe dane (także cytuję za Jej@n) Version: 1.20-unstable_svn Revision: 8829 up: 10:34:08 totals: 2728/0/6/0/1/0 uptime: 38048 Typ| Label | Idle | w | s | b | e | St ---+------------+--------------+---+---+---+---+---- R0 | alfa | 00:00:38 | 0| 0| 0| 0| OK R1 | beta | 00:00:13 | 0| 0| 0| 0| OK P0 | dcw | 10:34:08 | 0| 0| 0| 0| CON P1 | chi | 00:00:00 | 0| 0| 0| 0| CON P2 | phi | 02:28:35 | 0| 0| 0| 0| CON P3 | delta | 00:00:01 | 2/213 cards | CON P4 | kappa | 00:00:53 | 1/ 1 card | CON P5 | sigma | 00:00:18 | 5/ 29 cards | CON P6 | ex301 | 00:00:38 | 0| 0| 0| 0| CON P7 | ex302 | 00:00:00 | 0| 0| 0| 0| CON P8 | ex303 | 00:00:13 | 0| 0| 0| 0| CON P9 | ex304 | 00:00:00 | 0| 0| 0| 0| CON ---+------------+--------------+---+---+---+--++---- Typ| Label | Channel | Time ---+------------+-----------------------------+----- U0 | nbox | nc+ :Polsat HD | 227 U1 | dm500 | nc+ :Filmbox Action | 393 ---+------------+-----------------------------+----- Te dane można wykorzystać w skrypcie, choćby do sprawdzania czy odbiornik coś dekoduje, wtedy "będzie widać" że użytkownikowi dvbapi przyrasta ilość zapytań o ECM. Quote Link to comment Share on other sites More sharing options...
Guest s6s Posted January 17, 2014 Share Posted January 17, 2014 czyli z tego ca napisałes wynikałoby, że tylko kodowane kanały... A ja zauważam, że na kanale FTA - jak tuner włączony to tabelka pokazuje np.: Typ| Label | Idle | w | s | b | e | St ---+------------+--------------+---+---+---+---+---- R0 | sci0 | 00:00:00 | 0| 0| 0| 0| OFF ---+------------+--------------+---+---+---+--++---- Typ| Label | Channel | Time ---+------------+-----------------------------+----- ---+------------+-----------------------------+----- a jak w standby (i bez nagrywania) to: Typ| Label | Idle | w | s | b | e | St ---+------------+--------------+---+---+---+---+---- ---+------------+--------------+---+---+---+--++---- Typ| Label | Channel | Time ---+------------+-----------------------------+----- ---+------------+-----------------------------+----- czyli wiersza z R0 wówczas brak - czy można więc oprzeć sie własnie na tym żeby po prostu sprawdzać czy w tabelce znajduje się wiersz z danymi czytnika karty? Quote Link to comment Share on other sites More sharing options...
AbrahaM Posted January 17, 2014 Share Posted January 17, 2014 czyli z tego ca napisałes wynikałoby, że tylko kodowane kanały... A ja zauważam, że na kanale FTA - jak tuner włączony to tabelka pokazuje np.: [ciach by abraham] czyli wiersza z R0 wówczas brak - czy można więc oprzeć sie własnie na tym żeby po prostu sprawdzać czy w tabelce znajduje się wiersz z danymi czytnika karty? Nie miałem potrzeb by to testować, więc pisałem o tym co wynikało z dokumentacji i/lub innych źródeł które znałem. Logicznie rzecz biorąc, Twoja uwaga jest słuszna, w wypadku odbiorników można by sprawdzać obecność czytnika R0. Co rozwiązuje kwestie Twojego pytania, od którego się ten wątek zaczął. Quote Link to comment Share on other sites More sharing options...
Guest s6s Posted January 19, 2014 Share Posted January 19, 2014 A, czyli (w skrypcie) badać coś w rodzaju: . /etc/oscam/oscam.conf if [ -n "$lcd_outputpath" ]; then plik="$lcd_outputpath/oscam.lcd.tmp" else plik=/tmp/.oscam/oscam.lcd.tmp fi czytniki="R0 R1 P0 P1 U0 U1" for szukany in $czytniki; do if [ -n "$( cat $plik | grep "$szukany | " )" ]; then # znaleziono więc nie wolno nic robić więc: return fi done sync && system.sh restart #albo inna akcja do wykonania w przypadku niewykorzystanego tunera ... Ale jednak trzeba uwzględnic fakt, że plik oscam.lcd.tmp aktualizuje się co kilkadziesiąt sekund więc jeżeli chcemy np. restartować tuner to trzeba by najpierw zliczyć kolejne po sobie stany niewykorzystania tunera przynajmniej przez pół mnuty (zeleżnie od parametru lcd_writeinterval z pliku konfiguracyjnego oscam.conf Jak to zrobić...? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.