Author Topic: Colloquio tra utente e STS1Master  (Read 3528 times)

Offline I2NOS

  • Full Member
  • ***
  • Posts: 179
Colloquio tra utente e STS1Master
« on: February 04, 2014, 08:09:27 AM »
Proseguendo lo scambio di idee con I2LQF Fabio in questa sezione affrontiamo il colloquio tra utente e STS1 Master. Fabio giustamente evidenzia le seguenti idee architetturali:
" - Considero, per il momento, l'impianto di monitoraggio come una black-box: riceve dalla radio dei semplici comandi stringa, di tipologia/codice/dimensione limitata ed univoca, ed ad ognuno di questi risponde (la black-box) con una specifica stringa di ritorno, sempre sullo stesso canale radio. Come questa funzione viene realizzata in dettaglio, al momento non ci interessa (anche se e' la parte principale del lavoro...!).
- Quello che voglio approfondire invece e' l'interazione da remoto, attraverso il canale radio; la mia proposta/visione e' di un utente, provvisto di radio+TNC collegati al computer; sul PC gira (girera') un software dedicato che, su una o piu' maschere, presenta all'utente i dati ricevuti dalla black-box in formato "umano" ed, inoltre, permette di inviare i comandi con il click di pulsanti (spegni...accendi...leggi temp...). Nel background, questo programma si occuperera' di convertire i comandi in stringhe comprese dalla black-box, confezionarle secondo le regole del TNC e scaricarle sulla porta seriale (che dialoga con il TNC). All'inverso, si occuperera', per le stringhe ricevute via seriale e TNC, di formattarle in modo leggibile sullo schermo.
Questo approccio, secondo me, ottimizza l'architettura SW, perche' lascia al PC la parte di lavoro che piu' gli addice (presentazione grafica, trattamento stringhe, interzione mouse ecc...), permette di controllare la validita' dei messaggi trasmessi, limita il traffico sul canale radio al minimo indispensabile e lascia alla black-box i lavori per cui e' piu' tagliata (misure, controllo, comando...).
- La tua visione/idea, sperando di averla capita bene (e mi scuso per eventuali imprecisioni...), prevede di "estendere il perimetro di competenza" della black-box ed affidare alla Discovery il compito di costruire un menu semplificato di scelte (penso in formato carattere > "1-fai questo 2-fai quello, ...9-esci) ed, a selezione utente, rispondere con una stringa di valori formattata, od un messaggio di "Ok, eseguito". A mio avviso questo approccio e' meno performante se sviluppato sulla Discovery, richiede un maggiore consumo di banda radio ed implica che l'utente debba comunque usare un emulatore terminale per dare comandi e ricevere risposte in formato abbastanza grezzo, con una sintassi che, per quanto semplice, non e' user-friendly e passibile di errori; sono un poco fuori dal mercato dei programmi per TNC, ma non credo ci sia qualcosa di piu' sofisticato adatto alle nostre esigenze"
« Last Edit: February 04, 2014, 08:11:31 AM by I2NOS »

Offline I2NOS

  • Full Member
  • ***
  • Posts: 179
Re:Colloquio tra utente e STS1Master
« Reply #1 on: February 04, 2014, 08:29:54 AM »
Quindi, riprendendo quanto detto da Fabio, io pensavo di percorrere parallelamente le varie strade possibili, lasciando all'utente la scelta e le relative limitazioni. Per cui pensavo ad:
  • Un messaggio minimale in cw (sollecitato / in broadcast) per la richiesta di poche info (esempio livello batterie, nome nodo) 
  • Un menù packet informativo minimale per utente libero (nome nodo, livello batterie, temperatura humidità etc)
  • Un menù packet minimale per le emergenze gestionali (con comandi protetti da pwd)
  • Un protocolloalfanumerico per il colloquio degli amministratori e degli utenti evoluti, con tutte le varie possibilità offerte dalle autorizzazioni, da elaborare e riformattare sul pc dell'utente come descritto da Fabio
Ovviamente le funzionalità saranno rilasciate via via che saremo pronti.
Avete altro da aggiungere?
Cosa ne pensate?
I2NOS Giuseppe

Offline i2lqf

  • Jr. Member
  • **
  • Posts: 89
Re:Colloquio tra utente e STS1Master
« Reply #2 on: February 09, 2014, 07:15:55 PM »
In merito alla tua domanda finale, si potrebbe aggiungere, se in futuro migliorera' la banda utilizzabile (cioe' saliamo di frequenza o cambiamo protocollo) una gestione via WEB, come gia' accennato: Una richiesta HTTP su un indirizzo IP (privato ?) risponde con una pagina di dati ed, eventualmente, una ulteriore pagina privilegiata per gestire i comandi.
Non e' ovviamente proponibile in packet a 1200 !

Dal lato dell'interfaccia "evoluta", mi sono messo a provare uno scheletro di applicazione Windows che parla con la Discovery (RTos a bordo) via seriale (packet e radio le lasciamo per dopo...) e funziona, come gestore di comandi; un po' meno come richiedente informazioni.

In altri termini, se scrivo sul terminale "RI1" (o RI2 ecc...) la Discovery mi risponde quello che ho configurato come risposta, ma se, dall'applicativo in test, eseguo la sequenza invio "RI1", display risposta, invio "RI2", display risposta, ecc..., alcune risposte non escono dalla scheda, come se fosse troppo lenta a rispondere/trasmettere.
Speravo di presentarvi una "demo" funzionante della mia idea, ma non ci sono ancora...dovro' implementare il debug della Discovery come printf su una seconda porta seriale !

Saluti, I2LQF

Offline I2NOS

  • Full Member
  • ***
  • Posts: 179
Colloquio tra utente e STS1Master
« Reply #3 on: February 18, 2014, 09:52:32 AM »
Dopo aver un poco ragionato eccoci alla parte delle proposte di menù utente. Per prima cosa si pensa di avere più possibilità di accesso (ax25, morse, etc) per cui il menù si adatterà al mezzo. Ovviamente per prima cosa implementeremo l'accesso via ax25.
La prima proposta di menu' l'ha fatta Fabio per cui lascio a lui la scelta se metterla sul forum. Intanto io metto una bozza modificata. 

Offline I2NOS

  • Full Member
  • ***
  • Posts: 179
STS1Master - Menu' utente ax25
« Reply #4 on: February 18, 2014, 09:57:55 AM »
Io avevo in mente qualcosa di simile. Questa soluzione mi sembra più espandibile a fronte di aggiustamenti/aggiunte etc. Comunque discussione aperta.
Si dovrebbe poter raggiungere il singolo menu' direttamente digitando ad esempio 2.3.2.xxx (dammi i dati del carico del xxx)

Menu' generale AX25 (testo a console carattere)

- 1 sintesi stato attuale (menu' disponibile a tutti)
- 2 generale (solo utenti abilitati e utenti autorizzati con pwd)
- 3 per sistema (solo utenti autorizzati con password)

 1.1 SottoMenu 1 (sintesi / verifica stato attuale)
  - 1 Stato pannelli (Tensione e corrente; timestamp)
  - 2 Stato batterie (Tensione e corrente; timestamp)
  - 3 Temperatura e umidità ambiente
 
 2.1 Generale
 - 1 Pannelli
 - 2 Batterie
 - 3 Carichi
 - 4 Interruttori
 - 5 Timer e Orologi
 - 8 Temperature
 - 9 Log

3.1 SottoMenu 3 (per sistema)
 -1 Elenco dei sistemi (1 Master – n slave)
 -2 Selezione Sistema

2.1.1 SottoMenu 2-1 (Pannelli)
 - 1 Elenco panelli
 - 2 Selezione pannello; la selezione pannello ti risponde tutti i dati relativi picchi medie storici etc;

2.1.2 SottoMenu 2-2 (Batterie)
 - 1 Elenco Batterie 
 - 2 Selezione Batteria; la selezione ti risponde tutti i dati relativi picchi medie storici etc;

2.1.3 SottoMenu 2-3 (Carichi)
 - 1 Elenco dei Carichi 
- 2 Selezione Carico; la selezione ti risponde tutti i dati relativi picchi medie storici etc;

2.1.4 SottoMenu 2-4 (Interruttori)
 - 1 Elenco Elenco Interruttori 
 - 2 Seleziona Interruttore; la selezione ti risponde lo stato dell'interruttore;
 - 3 La selezione ti permette di settare l'interruttore  (se utente autorizzato)

2.1.5 SottoMenu 2-5 (Timer e Orologi)
 - 1 Elenco Elenco Timer 
 - 2 Seleziona Timer; la selezione ti risponde lo stato del timer;
 - 3 La selezione ti permette di settare il timer  (se utente autorizzato)

2.1.8 SottoMenu 2-3 (Ambiente e Temperature)
 - 1 Elenco Sonde 
 - 2 Seleziona Sonda; la selezione ti risponde tutti i dati relativi picchi medie storici etc;

2.1.9 SottoMenu 2 (log)
  - 1 Dall'ultimo indietro (A per avanzare di timestamp, I per arretrare)
  - 2 dal primo in avanti (A per avanzare di timestamp, I per arretrare)

3.1.2 SottoMenu ( singolo sistema)
 - 1 Elenco dei comandi/periferiche del sistema selezionato
 - 2 Lettura stato della singola periferica
 - 3 Settaggio della singola periferica


2.1.5.3 SottoMenu (Set Timer Orologi)
  - 1 Set orologio (formato gg-mm-aa hh:mm:ss)
  - 2 Aggiorna pianificazione giornaliera (+ SottoM)
  - 3-Duplica pianificazione per settimanale (+ SottoM)
  - 4 Modifica temporanea pianificazione giornaliera (+ SottoM)
  - 5 Leggi pianificazione (per riga, in ordine di timestamp/perif A per avanzare, I per arretrare.

2.1.5.3.2 SottoMenu  (Agg. Pianif. Giorn.)
    - 1 per tutte le periferiche on/off (gg-mm-aa-hh:mmS(pento)/A(cceso))
    - ...
    - A Per perif. A
    - B Per perif. B
    - ...

 2.1.5.3.3 SottoMenu  (Duplica Pianif. Giorn.)
    - 1 per tutte le periferiche  (gg-mm-aa(orig.)>gg-mm-aa(dest.))
    - 2 per tutte le periferiche ripetuto  (gg-mm-aa(orig.)>gg-mm-aa(da)/gg-mm-aa(a))
    - A Per perif. A
    - B Per perif. B
    - ...

 2.1.5.3.4 SottoMenu (Modifica temporanea. Pianif. Giorn.)
Questa modifica agisce per una sola volta, non duplicabile con 4-3
    - 1 per tutte le periferiche on/off (gg-mm-aa-hh:mmS(pento)/A(cceso))
    - ...
    - A Per perif. A
    - B Per perif. B
    - ...

3.1.2.1 SottoMenu  (esempio menu del master)
  - 1 leggi il callsign di STS
  - 2 Dammi la versione SW (Master + slaves)
  - 3 dammi il timestamp del master
  - 4 Dammi il contatore di resets del master
- etc