SCSgate è un modulo di interfaccia tra il bus SCS Ticino e una porta seriale UART a 115200 baud; è un dispositivo amatoriale autocostruito e come tale privo di qualsiasi garanzia in merito al corretto funzionamento ed interfacciamento – SCS è un bus “proprietario” che non è lecito replicare con dispositivi commerciali.
Scopo del modulo è di consentire a dispositivi esterni (computers, Arduino, …) tramite porta seriale o USB di ricevere e inviare messaggi sulla rete SCS (accendere e spegnere luci, tapparelle, ecc...) - l'interfaccia si riferisce SOLO ai moduli di automazione, non alla trasmissione dati (citofonia, video, ecc...).
Lo scambio di dati viene sempre sollecitato da un comando inviato al dispositivo – ogni comando ha il seguente formato (i simboli < e > vengono utilizzati come separatori):
<@><comando><valore><dati opzionali>
Il modulo risponde sempre ma in vario modo a seconda del comando.
Imposta il tipo di interfaccia hardware utilizzata; i valori possono essere i seguenti:
0 : TP-UART infineon (default)
1 : FZE1066G infineon
2 : comparatore interno al PIC
3 : comparatore esterno
Risposte possibili: <k> : tutto ok <E> : errore
Imposta la modalità di comunicazione sulla porta seriale; i valori possono essere i seguenti:
X : esadecimale (default): i dati vengono scambiati in esadecimale puro (bytes da 0x00 a 0xFF)
A : ascii: i dati vengono scambiati con caratteri ascii, per esempio l'esadecimale 0x2A va inviato con 2 caratteri, il carattere '2' seguito dal carattere 'A'. In modalità ascii la lunghezza effettiva dei dati inviati risulta quindi doppia rispetto alle lunghezze specificate che sono quindi lunghezze logiche. La modalità ascii è utile per fare test diretti con programmi standard di interfaccia seriale (tipo “putty”).
Risposte possibili: <k> : tutto ok <E> : errore
Permette di applicare un filtro sui messaggi SCS per ignorare quelli che non interessano; i valori espressi sempre in ascii possono essere i seguenti:
0 : nessun filtro
1 : i messaggi doppi o tripli vengono trasmessi in seriale una volta sola.
2 : i messaggi di ACK (0xA5) vengono ignorati.
3 : comprende sia il filtro “1” che il filtro “2”.
4 : i messaggi di ACK e i messaggi di stato vengono ignorati.
Risposte possibili: <k> : tutto ok <E> : errore
Permette di impostare il valore del byte di “numero rete” nei messaggi – se il comando non viene mai inviato o se il valore è 0x20 (blank) il numero di rete viene individuato dai messaggi che transitano in rete.
Risposte possibili: <k> : tutto ok <E> : errore
Permette di leggere dal dispositivo il successivo telegramma ricevuto e bufferizzato; la lettura lo rimuove dal buffer. Il dispositivo ha un buffer in grado di contenere fino a 10 telegrammi; la mancata lettura dei messaggi provoca un overflow del buffer con conseguente perdita dei telegrammi più vecchi.
Risposta:
<lunghezza> : sempre e solo un carattere (ascii o esadecimale puro) da '0' a 'F' che indica la lunghezza logica dei dati rimanenti (se vale '0' significa che non ci sono telegrammi in attesa di scodamento)
<dati> : i dati del telegramma in esadecimale puro oppure in ascii a seconda del modo operativo
Permette di leggere dal dispositivo il successivo telegramma ricevuto e bufferizzato; la lettura lo rimuove dal buffer. Il dispositivo ha un buffer in grado di contenere fino a 10 telegrammi; la mancata lettura dei messaggi provoca un overflow del buffer con conseguente perdita dei telegrammi più vecchi. Se il buffer non contiene messaggi la risposta viene differita: la risposta avrà luogo solo quando il buffer conterrà un telegramma.
Risposta:
<lunghezza> : sempre e solo un carattere (ascii o esadecimale puro) da '0' a 'F' che indica la lunghezza logica dei dati rimanenti (non può essere 0)
<dati> : i dati del telegramma in esadecimale puro oppure in ascii a seconda del modo operativo
Permette di uscire dallo stato di attesa innescato dal comando @R.
Risposta: <k>
Permette di trasmettere al dispositivo un telegramma da inviare in rete
<valore> : sempre e solo un carattere (ascii o esadecimale puro) da '0' a 'F' che indica la lunghezza logica dei dati rimanenti
<dati> : i dati del telegramma in esadecimale puro oppure in ascii a seconda del modo operativo
Risposte possibili: <k> : tutto ok <E> : errore
Modalità rapida per mandare un telegramma da inviare in rete
<valore> : sempre e solo un carattere (ascii o esadecimale puro) da '0' a 'F' che rappresenta il comando da inviare al dispositivo ('0' accendi, '1' spegni)
<dati> : indirizzo dell'attuatore in esadecimale puro (1 byte) oppure in ascii (2 bytes) a seconda del modo operativo
Per poter utilizzare correttamente questa modalità è indispensabile che il dispositivo abbia ricevuto dalla rete almeno un telegramma dal momento dell'accensione – in caso contrario usa alcuni valori di default come indirizzi di rete.
Risposte possibili: <k> : tutto ok <E> : errore
Dalla versione 18.30 i
valore impostati con i comandi @M, @F, @D vengono memorizzati nella eeprom del PIC e rimangono impostati anche spegnendo e
riaccendendo il dispositivo.
Pulisce tutti i buffers di ricezione.
Risposta : <k> : tutto ok
Espone un menu di help – solo in modalità ASCII.
Query version – solo in modalità ASCII. Dalla versione 18.30 anche in modalità HEX.
Risposta : <k> seguito dalla VERSIONE : tutto ok
Attiva un log a video dei messaggi ricevuti e trasmessi – solo in modalita ASCII. Dalla versione 18.30 anche in modalità HEX. In modalità HEX il formato dei dati ricevuti è il medesimo del comando @r.
Risposte possibili: <k> : tutto ok <E> : errore
Pulisce lo stato di attesa - solo in modalita ASCII.
Risposte possibili: <k> : tutto ok <E> : errore
Dump di tutti i buffers di ricezione – solo in modalita ASCII.
Risposte possibili: <k> : tutto ok <E> : errore
Sbilancia l’indice dei buffers di ricezione simulando una ricezione di messaggio – solo in modalita ASCII-
Risposte possibili: <k> : tutto ok <E> : errore
Imposta il comparatore interno al PIC a valori adeguati ad una alimentazione di 3,3Volts.
Comando
disponibile sono con firmware 18.4x ed hardware 141113.
ATTENZIONE !
Non tutti i dispositivi sono adatti al funzionamento a 3,3 Volt – chiedete prima
di acquistare.
Risposte possibili: <k> : tutto ok <E> : errore
Imposta il comparatore interno al PIC a valori adeguati ad una alimentazione di 5Volts.
Comando
disponibile sono con firmware 18.4x ed hardware 141113.
Risposte possibili: <k> : tutto ok <E> : errore