CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Stahl con ben 17 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: Stahl con ben 96 Thanks ricevuti negli ultimi sette giorni
Utente del mese: Stahl con ben 466 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 7 su 7
Discussione:

How to... Modus Operandi

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    How to... Modus Operandi

    Ecco il thread di how to per comprendere ogni aspetto di Modus Operandi e i trucchi per ottenere il massimo dall'applicazione.

    Interfaccia Grafica:

    All'avvio di Modus Operandi viene presentata all'utente la schermata di dashboard:




    Questa dashboard è composta da una actionbar e da 4 pulsanti.

    ACTIONBAR:

    Nell'actionbar sono presenti il titolo dell'applicazione e l'icona di una lampadina (che di default è accesa).
    Questa lampadina rappresenta lo stato di attivazione di Modus Operandi:

    • Lampadina accesa
      Ogni 10 minuti verranno controllate tutte le situazioni inserite dall'utente
    • Lampadina spenta
      Modus Operandi è disattivato


    In questo modo l'utente ha la possibilità di disattivare completamente l'attività di Modus Operandi o di attivarla a piacimento.
    Con la lampadina disattivata il telefono rimarrà nello stato in cui si trova al momento in cui la lampadina è stata spenta.

    PULSANTI AZIONE:

    Oltre alla ActionBar sono presenti 4 pulsanti azioni: Gestisci Situazioni, Nuova Situazione, Nuovi Plugin, Help.

    • Gestisci Situazioni
      Apre l'elenco delle situazioni
    • Nuova Situazione
      Permette di creare una nuova situazione direttamente dalla dashboard
    • Nuovi Plugin
      Apre il market con la lista di plugin attualmente disponibili per permettere all'utente di installare ciò che gli serve. Di fatto cerca "Modus Operandi" sul market per te
    • Help
      Rimanda al forum ufficiale di supporto per Modus Operandi


    Passiamo ora alla spiegazione delle varie componenti appena descritte:

    Nuova Situazione:

    Apre una nuova finestra e chiede all'utente il nome della Situazione
    Con la spunta verde presente nell'ActionBar si salva la Situazione e si apre la finestra delle preferenze della Situazione.


    Gestisci Situazioni

    Ecco uno screenshot:



    Come potete vedere, anche qui c'è una ActionBar con la possibilità di tornare alla dashboard con l'icona a forma di casa e con un fulmine che permette di creare una nuova situazione (fa la stessa cosa dell'azione Nuova Situazione descritta nel pulsante della Dashboard).

    Ogni Situazione che viene creata è rappresentata da un elemento della lista ed è composto da un interruttore On-Off, dal nome della situazione che l'utente deve compilare e da un cestino per eliminare la situazione.

    • Interruttore
      Quando Modus Operandi è attivo (lampadina accesa) e controlla le situazioni, lo fa delle sole situazioni che hanno l'interruttore a ON.
      Di fatto settare a OFF questo interruttore disabilita la Situazione e la esclude dal controllo che Modus Operandi esegue ogni 10 minuti.
    • Nome
      Cliccando sul nome della Situazione si può accedere alle preferenze della Situazione. Ci saranno 3 Tab: Preferenze (con il nome editabile), Elenco Condizioni ed Elenco Azioni.
    • Cestino
      Permette di cancellare in modo definitivo la situazione


    Preferenze della Situazione:

    E' composta da 3 Tab: Preferenze, Condizioni e Azioni.

    "Preferenze" permette di modificare il nome della Situazione, "Condizioni" contiene l'elenco delle Condizioni, "Azioni" contiene l'elenco delle azioni.


    E' presente una ActionBar con il pulsante per salvare rappresentato da un'icona a forma di spunta verde.

    "Condizioni":


    Rappresenta la lista delle condizioni: per aggiungere una nuova condizione è presente l'apposito pulsante e ogni condizione è rappresentata dall'icona del plugin, dal suo nome e dal solito cestino per eliminare la condizione dall'elenco.

    Il Pulsante per aggiungere la condizione, apre l'elenco dei plugin condizionali presenti che l'utente ha installato.


    Se nessun plugin è stato installato aprirà un messaggio e successivamente aprirà il Market per permettere di scaricare i plugin necessari.

    Scelto il plugin viene aperta la finestra di configurazione del plugin che è dipendente dal plugin in questione.
    Salvata la configurazione del plugin, si troverà nell'elenco delle "Condizioni" l'elemento che rappresenta la condizione salvata.

    "Azioni"


    Vedi "Condizioni" ma riferiti all'azione.

    "To be continued..."


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  2.  
  3. #2
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Passiamo al processo con cui Modus Operandi elabora le varie situazioni.
    Spiegando questo, l'utente dovrebbe essere in grado di comprendere meglio le regole alla base di una buona configurazione.

    In questo post verranno analizzate i problemi comuni che possono incorrere in una configurazione che genera dei conflitti e delle anomalie.

    Seguirà poi un post relativo alla configurazione di Modus Operandi sul mio Nexus One che utilizza praticamente tutti i plugin sviluppati e attualmente disponibili .

    Bene, iniziamo!

    Il cuore di Modus Operandi è la procedura di controllo delle Situazioni.

    Regola numero uno:

    l'ordine in cui compaiono le Situazioni non è necessariamente l'ordine con cui le Situazioni vengono controllate. Quest'ordine non è definibile e di conseguenza le situazioni devono essere configurate in modo da non andare in conflitto tra di loro.

    Le situazioni in conflitto sono di fatto Situazioni che hanno Azioni in contrasto (per esempio attivo wifi in una situazione e lo disattivo in un altra) e hanno condizioni diverse che risultano validate contemporaneamente in un certo momento della giornata.

    Regola numero due:

    In caso di 2 o più Situazioni in conflitto, l'ultima situazione che viene verificata tra le 'contendenti' vince.

    Aggiungo infine l'ultima regola :

    Per far eseguire le Azioni di una Situazioni, tutte le Condizioni della Situazione devono essere verificate contemporaneamente (sono tutte in logica AND tra di loro)

    Ecco un esempio di situazione in conflitto, che come intuibile sono assolutamente da evitare per non imbattersi in comportamenti anomali:

    1) Situazione "Wifi attivo a casa":

    • Condizioni
      Location (Casa, Interno)
    • Azioni
      Wifi (Attiva)


    2) Situazione "Batteria scarica":

    • Condizioni
      Batteria (25%, <)
    • Azioni
      Wifi (Disattiva)


    In questo esempio si capisce che quando si è a casa e la batteria è scarica entrambe le Situazioni sono verificate ed è altrettanto semplice capire che le azioni inserite in queste situazioni sono in contrasto: infatti una situazione attiva il wifi e l'altra lo disattiva.
    Questo fa si che, in modo casuale, Modus Operandi farà vincere la 1) o la 2) e quindi ogni tanto ci si trova il wifi attivo e ogni tanto lo si trova disattivo (dipendentemente da come Modus Operandi elabora le situazioni, potrebbe anche non presentarsi mai il problema perchè il modo con cui vengono processate le situazioni è, sempre per caso , come l'utente vuole).

    Un modo intelligente di affrontare questo problema è capire cosa si vuole dall'applicazione.

    Più si vuole automazione e più è importante creare Situazioni e configurarle avendo ben presente cosa si vuole ottenere.

    Ecco il modo di ottenere una configurazione funzionante secondo le esigenze dell'esempio:

    1) Situazione "Wifi attivo a casa":

    • Condizioni
      Location (Casa, Interno)
      Batteria (25%, >)
    • Azioni
      Wifi (Attiva)


    2) Situazione "Batteria scarica":

    • Condizioni
      Batteria (25%, <)
    • Azioni
      Wifi (Disattiva)


    In questo modo la mia Situazione 1) è vera solo se sono a casa e se ho la batteria con carica superiore a 25%.
    Non potrà mai andare in conflitto con la situazione 2) che è vera solo quando la batteria ha una carica inferiore a 25%.

    Di fatto, quando si decide di usare il plugin condizionale della Batteria, è bene creare una regola per quando la batteria è scarica e inserire una condizione per la batteria carica in tutte le altre situazioni, indipendentemente da quali e quante esse siano.

    Un altro esempio interessante che genera anomalie è usare più locazioni geografiche in situazioni diverse, ma farlo in modo semplicistico :

    1) Situazione "Wifi attivo a casa"
    • Condizioni
      Location (Casa, Interno)
    • Azioni
      Wifi (Attivo)


    2) Situazione "Wifi disattivo"
    • Condizioni
      Location (Casa, Esterno)
    • Azioni
      Wifi (Disattivo)


    3) Situazione "Wifi attivo a lavoro"
    • Condizioni
      Location (Lavoro, Interno)
    • Azioni
      Wifi (Attivo)


    In questo caso, la Situazione 2) e 3) sono validate entrambe (ma sono anche in conflitto) quando sono a lavoro.
    Infatti quando sono a lavoro la 2) vorrebbe disattivare il wifi (perchè non sono a casa) e la 3) vorrebbe attivarlo (perchè sono a lavoro).

    La soluzione al problema è modificare così la Situazione 2)

    2) Situazione "Wifi disattivo"
    • Condizioni
      Location (Casa, Esterno)
      Location (Lavoro, Esterno)
    • Azioni
      Wifi (Disattivo)


    In questo modo la disattivazione del Wifi è fatta solo quando non sono a casa nè a lavoro (quindi durante il tragitto, risparmiando la batteria ), ma attivandola quando sono a casa o quando sono a lavoro.

    Anticipo alcuni di voi con una precisazione:

    Non posso creare un'unica Situazione che chiamo "Wifi attivo" e dirgli di attivarlo quando sono a lavoro e a casa (in un'unica Situazione intendo), perchè in realtà non è corretto dire "sono a lavoro e sono a casa". Non si può essere in due posti contemporaneamente e Modus Operandi lo sa . Quindi è necessario creare una Situazione per ogni luogo quando la configurazione è "Interno" (nel rispetto dell'ultima regola detta in alto).

    Per la configurazione "Esterno" del plugin della geolocalizzazione invece, è vero che si può non essere a lavoro e contemporaneamente non essere a casa, quindi Modus Operandi lo gestisce in un'unica Situazione (sempre nel rispetto dell'ultima regola).

    Se poi a queste situazioni si aggiunge quella della batteria scarica, ricordarsi anche di aggiungere la condizione batteria carica nelle altre situazioni .

    Seguirà un post con la mia configurazione di Modus Operandi, vi invito a postare la vostra, in modo da permettere agli utenti di capire le potenzialità ed i modi di utilizzo di questa applicazione .

    Enjoy!
    Ultima modifica di Azatoth; 10-01-11 alle 18:15


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  4. #3
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    In questo post verrano analizzati i plugin e la loro configurazione con i limiti, i pro e i contro di ognuno.

    Premessa:

    Ogni plugin viene chiamato da Modus Operandi per visualizzare la schermata che ne permette la configurazione e successivamente viene chiamato ogni 10 minuti e svolge il lavoro per cui è stato progettato.

    Se è un plugin Condizionale questo verificherà che la condizione configurata sia valida o meno e restituisce il risultato a Modus Operandi che procederà con i controlli.
    Terminati i controlli di ogni plugin condizionale di una determinata Situazione, se per ognuno di essi il risultato è stato validato, Modus Operandi chiamerà i plugin Azione che faranno ciò per cui sono nati.

    Alcuni plugin non verranno trattati perchè sono esclusivamente di tipo "Attiva/Disattiva" e ritengo sia inutile qualsiasi altra spiegazione

    Plugin Condizionali


    Batteria:

    Il plugin della Batteria permette di creare situazioni valide in base al livello di carica della batteria.
    Presenta una schermata di configurazione che ne termina le regole di controllo.


    Presenta 2 informazioni che l'utente dovrà settare:

    Il livello della batteria ed il metodo di controllo, che accetta solo ">" e "<".

    Molto semplicemente il plugin dovrà essere configurato in base all'esigenza.
    Può fare due tipi di controllo:

    • Verificare se l'attuale carica della Batteria è superiore alla soglia impostata
      il metodo di controllo è ">"
    • Verificare se l'attuale carica della Batteria è inferiore alla soglia impostata
      il metodo di controllo è "<"


    Esempio:

    Se, per esempio, voglio che la mia condizione sia verificata quando la batteria ha un valore di carica superiore al 25%, il plugin dovrà essere così configurato:

    Livello della batteria: "25%"
    Metodo di controllo: ">"

    ------------------------------------------------

    Days of Week:

    Il plugin dei giorni della settimana permette di creare situazioni valide solo in alcuni giorni della settimana.


    Si può mettere la spunta in più giorni.

    Il plugin controllerà il giorno della settimana della data odierna, se quel giorno:

    • è spuntato
      la condizione sarà valida
    • non è spuntato
      la condizione non sarà valida


    Se, per esempio, voglio che la mia condizione sia valida solo il martedì, il mercoledì e il venerdì, basterà spuntare questi giorni e salvare.
    Se quando la situazione verrà controllata sarà Martedì, Mercoledì o Venerdì, il plugin dirà a Modus Operandi che è valida la condizione e verranno eseguite le azioni (nel rispetto delle altre condizioni inserite, ovviamente).

    Qualsiasi altro giorno non sarà valida la situazione e le azioni inserite non verranno eseguite.

    E' ovvio che spuntare tutti i giorni e salvare rende sempre valida la situazione (per quel che concerne questo plugin): è come non inserire la condizione

    ------------------------------------------------

    Location:

    Con questo plugin si possono creare Situazioni legate alla posizione che viene rilevata dal sistema Android.
    Sono possibili sia la rilevazione tramite GPS che tramite la rete (default).
    E' inoltre possibile configurare il raggio in cui è valida la posizione. Di default è di 1500 metri, ma è possibile deciderlo in base alle proprie esigenze.

    ATTENZIONE: i parametri di configurazione di questo plugin (sistema di rilevazione e/o raggio di considerazione) sono a livello globale e non della singola posizione salvata.

    Inoltre c'è da dire che se la posizione non viene rilevata correttamente, considerare la possibilità di incrementare il raggio e/o usare un metodo diverso.

    Ecco la schermata principale di configurazione:


    E' composta anche qui da una ActionBar dove c'è il pulsante di Ricerca di una posizione e il pulsante che permette di accedere alla schermata di configurazione del plugin:


    Qui è invece possibile configurare le caratteristiche globali del plugin:

    • Metodo di rilevazione
      E' possibile configurare GPS o Rete in base alle esigenze
    • Radius
      E' possibile configurare la dimensione in metri del raggio di validazione


    Nella schermata principale ci sono le opzioni "Interno" ed "Esterno", la mappa con il puntatore e il Radius e due pulsanti: "Posizione Corrente" e "Salva".

    Per quanto riguarda le opzioni:

    • Interno
      Serve a specificare che la posizione che si vuole salvare è da intendere all'interno del Radius

      Si vuole quindi dire che si è in quella posizione
    • Esterno
      Serve a specificare che la posizione che si vuole salvare è da considerarsi all'esterno del Radius

      Si vuole quindi dire che si è fuori da quella posizione


    Il pulsante "Posizione Corrente" serve a rilevare la posizione in cui ci si trova in questo momento seguendo ovviamente la configurazione del plugin.

    Il pulsante "Salva" permette, come per gli altri plugin, di considerare la locazione nel modo in cui l'abbiamo specificata.

    Questo plugin utilizza un modo molto 'economico' (per quanto concerne il consumo della batteria) di rilevare la posizione corrente.
    Sfrutta infatti il sistema intrinseco di rilevamento che Android usa per specificare (per esempio in Latitude) la posizione: usa l'ultima posizione conosciuta per il metodo che si è scelto. Quindi quando Modus Operandi interrogherà questo plugin, lui chiederà al sistema l'ultima posizione rilevata e la confronterà con quella salvata.

    In base al tipo di opzione scelta, se questa è:

    • Interno
      Se la distanza tra le due posizione è minore o uguale al Radius specificato, la condizione sarà vera, altrimenti falsa
    • Esterno
      Se la distanza tra le due posizione è superiore o uguale al Radius specificato, la condizione sarà vera, altrimenti falsa


    Questo permette il miglior livello di compromesso tra tempi di risposta e consumi di batteria.

    Considerazioni e 'limiti':

    Se si usa il metodo "Rete", Android per tenere aggiornata la posizione necessita che ci sia una connessione dati attiva (wifi o mobile che sia): se questa manca, la posizione che continuerà a rilevare sarà l'ultima 'utile' e questo potrebbe non coincidere con la posizione 'reale' del device.
    Quindi in questo caso avere la connessione attiva è l'unico modo per rendere utilizzabile il plugin.

    Altro modo è usare "GPS" come metodo di rilevazione, che necessiterà però che il servizio GPS sia attivo altrimenti il plugin passerà al metodo "Rete" in automatico .

    Attenzione ad usare "Rete" ed un radius troppo basso, la posizione potrebbe essere 'centrata' anche molto lontano facendo risultare la posizione anche fino a 4 km di distanza da quella reale (mi è capitato ). Tendenzialmente, 1500 metri di Radius sono un valore più che accettabile per il metodo "Rete".

    Usare il metodo "GPS" invece dovrebbe consentire un Radius meno 'grande' e quindi una rilevazione più precisa (infatti quando il metodo "Rete" dava una distanza di 4km dalla mia reale posizione, il metodo "GPS" era assolutamente preciso).

    In pratica... è necessario un po' di test per verificare che la configurazione del plugin sia coerente alle condizioni in cui si usa e alle necessità di rilevazione.
    Ultima modifica di Azatoth; 11-01-11 alle 23:28


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  5. #4
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    ------------------------------------------------

    Time:

    Il plugin per l'ora permette di specificare un orario e di specificare il metodo di controllo.

    Ecco la schermata principale di configurazione:


    Quando Modus Operandi farà il controllo e chiamerà, questo plugin controllerà l'ora corrente ed in base al metodo di configurazione e all'ora specificata nella configurazione:

    • Metodo ">"
      la condizione sarà validata se l'ora corrente è maggiore all'ora specificata
    • Metodo "<"
      la condizione sarà validata se l'ora corrente è minore all'ora specificata


    E' possibile, come per ogni plugin, inserire più volte nella stessa situazione questo plugin: in questo modo è possibile specificare un unico range di ore in cui considerare valida la situazione (esempio dalle 9am alle 10pm):

    Time (9am, >)
    Time (10pm, <)

    Così facendo questa situazione è valida solo se quando viene controllata l'ora di sistema è tra le 9 del mattino e le 10 di sera.

    E' necessario fare attenzione ad un particolare che potrebbe far incombere in una situazione di conflitto:

    Se l'ora corrente è 6:30 del pomeriggio (le 18):

    Time (9am, >) è verificata;
    Time (6pm, >) è verificata.

    Quindi se si vuole per esempio attivare il wifi quando l'ora è superiore alle 9 am e disattivarlo quando l'ora è superiore alle 18, la corretta configurazione è:

    1) "Wifi Attivo"

    • Condizioni
      Time(9am, >)
      Time(6pm, <)
    • Azioni
      Wifi (Attiva)


    2) "Wifi Disattivo"

    • Condizioni
      Time(6pm, >)
    • Azioni
      Wifi (Disattiva)


    Se si omette la condizione Time(6pm, <) della Situazione n.1, dopo le 18... le situazioni sono in conflitto e non si può sapere quale sarà la Situazione vincente. Ma basta un po' di attenzione durante la configurazione e tutto sarà perfetto
    Ultima modifica di Azatoth; 11-01-11 alle 23:33


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  6. #5
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Riservato per nuovi plugin


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  7. #6
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Riservato per eventuali nuovi plugin che verranno sviluppati


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  8. #7
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    In questo post verrà presentata la mia configurazione di Modus Operandi.


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy