From kobe
Jump to: navigation, search

OnePro - routines ⤣[edit]

Detailní dokumentace k implementaci RestApi

Definice běhu routin[edit]

Pro správný běh OnePro obshuje mechanismus, který v definovaných intervalech pouští potřebné rutiny. Spouštění je inicializováno vnitřním sygnálem, který se spoští kařdých pět vteřin. Rutiny pak mají definované své Cyclony které vyhodnocují, zda je čas na puštění. Cyclony mohou vý tohoto typu:

  • EXACT - Spouští se na přesný cycle number - po startu se pouští pouze jednou
  • MODAL - Běží periodicky v definovaném minutovém intervalu
  • DECENT - Beží v definovanou minutu - a také po každých dalších deseti minutách - jen pro ladění
  • HOURLY - Beží v definovanou minutu - další opakování po hodině
  • QUARTELY - Beží v definovanou minutu - další opakování po čtyřech hodinách
  • DAILY - Beží v definovanou minutu - další opakování po 24 hodinách
  • WEEKLY - Beží v definovanou minutu - další opakování po týdnu

Jednotlivé rutiny rutiny[edit]

Rutiny jsou uvedené v pořadí, jak jsou prováděná po startu

REQUESTED_ACTIONS[edit]

Spouští volání, které získá ze serveru požadovanou akci. Velmi rychlý cyklus volání. Frekvence volání je závislá na módu přehrávání. Při módu ON DEMAND je to rychlá frekvence, jinak je pomalá.

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 9
adb shell am broadcast -a com.philips.artemis.onepro.RUN_TEST --es action test_request --es par1 "selective_update"

Detailnější informace zde

GUI_CHECK[edit]

Spouští kontrolu, zda když je přítomný aktivni playlist, tak je zapnutá obrazovka.

  • typ: MODAL
  • gap: 1
  • ofset: 1
  • beat: 1

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 11

Akce probíhá tak často, že nevytváří žádné logy! Má nejnižšší prioritu, a tak pokud se dostane do časového konfliktu s jinou akcí, tak se nespustí.

GIT_CHECK[edit]

Spouští rutinu která kontroluje zda není čas se optat na aktualizaci u GIT playlistů.

  • typ: MODAL
  • gap: 2
  • ofset: 7
  • beat: 2

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 50

SEND_LOG[edit]

Posílá na Artemis server kumulované informace o přehraných playlistech

  • typ: MODAL
  • gap: 10
  • ofset: 8
  • beat: 18
  • routine: call_Log()
  • associated call: log

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 3

UPDATE_DEVICE[edit]

Posílá na Artemis server informace o nastavení monitoru a přijímá nastavení nová

  • typ: MODAL
  • gap: 10
  • ofset: 9
  • beat: 19
  • routine: call_UpdateDevice()
  • associated call: update_device

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 1

CHECK_PLAN[edit]

Zeptá se na Artemis serveru zda není nový scénář přehrávání.

  • typ: MODAL
  • gap: 5
  • ofset: 11
  • beat: 21
  • routine: call_Plan()
  • associated call: get_plan

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 2

GUI_CHECK[edit]

Zkontroluje zda je aplikace OnePro na popředí.

  • typ: MODAL
  • gap: 5
  • ofset: 13
  • beat: 23

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 8

CHECK_CONNECTION[edit]

Spojí se se Artemis serverem a potvrdí připojení na něj.

  • typ: MODAL
  • gap: 20
  • ofset: 15
  • beat: 25
  • routine: call_CheckConnection()
  • associated call: check_connection

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 0

Akce se také poští automaticky při startu aplikace.

CHECK_INTEGRITY[edit]

Hlídá zda jsou soubory staženy korektně

  • typ: EXACT
  • gap: 30 (přímo definovaný cykl)
  • beat: 30

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 22

Vychází z předpokladu, že při přetušení stahování souborů buď výpadkem internetu nebo pádem zařízení nedojde k tomu, že se indikátor stavu v tabulce files nepřepne do stavu FINISHED tedy hodnota 3

Rutina vyhledává řádky s hosnotou !=3 a pokud nějaký najde, tak všechny záznamy v tabulce smaže a taky vynuluje hash, identifikující poslední scénář. Při dalším cyklu CHECK_PLAYLIST by pak mělo dojít k znovunačtení dat a souborů.

Testy neprokázaly 100% řešení problému. Plalisty typu mix vykazují náchylnost k neintegritě

ARCHIVE_OLDER[edit]

Exportuje záznamy o přehranách plalistech do CSV souboru na disku.

  • typ: D01
  • gap: 4
  • ofset: 6
  • beat: 64

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 101

DELETE_OLD[edit]

Smaže už nepoužívané soubory plalistů

  • typ: D01
  • gap: 5
  • ofset: 5
  • beat: 75

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 7

TIME_SYNC[edit]

Zjistí rozdíl mezi univerzálním časem a časem HW

  • typ: H01
  • gap: 5
  • ofset: 7
  • beat: 77

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 4

APK_VERSION[edit]

Zeptá se na Artemis serveru zda není dostupná aktualizace

  • typ: D07
  • gap: 10
  • ofset: 1
  • beat: 131

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 5

DELETE_PLAYS[edit]

Smaže na disku staré archivy o přehrání. Chrání to přeplnění disku.

  • typ: D01
  • gap: 10
  • ofset: 6
  • beat: 136

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 102

SPEED_TEST[edit]

Spustí test rychlosti sítě.

  • typ: H06 - Uživatelsky nastavitelné
  • gap: 15
  • ofset: 3
  • beat: 193

Rachlost opakování je nastavená pomocí parametru VOY_SPEED_RUN a defaultně je to 6 hodin

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 10

NET_CHECK[edit]

Kontroluje wlan0 inod na linuxové úrovni a pokud ho nenalezne, spustí reboot. Spouští se pouze při povolení.

  • typ: EXACT
  • ofset: 0
  • beat: 9

testovací intent

adb shell am broadcast -a com.philips.artemis.onepro.RUN_ACTION --ei action_no 51