Files
BLE_emulator/docs.md
2026-02-23 00:31:32 +01:00

83 lines
3.9 KiB
Markdown

# Manuale Protocollo Comandi V-BLACK (nRF52)
**Data:** 19/01/2026
**Comunicazione:** Nordic UART Service (NUS)
## 1. Introduzione
Il dispositivo comunica tramite il servizio seriale standard Nordic UART.
- **Caratteristica RX (Scrittura):** Canale per inviare i comandi alla scheda.
- **Caratteristica TX (Notifica):** Canale per ricevere dati e risposte dalla scheda.
> **NOTA IMPORTANTE:** Per modificare (W) o leggere (R) i parametri, è OBBLIGATORIO entrare prima in modalità programmazione inviando il comando `PROG_ON`.
---
## 2. Comandi di Controllo Globali
Possono essere inviati in qualsiasi momento. Sono case-insensitive.
| Comando | Descrizione | Risposta Attesa |
| :--------- | :------------------------------------------------------------- | :------------------------------------- |
| `PROG_ON` | Abilita Modalità Programmazione. Ferma l'allarme. | `PROG_MODE: ON` |
| `PROG_OFF` | Esce dalla Modalità Programmazione, salva e riabilita allarme. | `PROG_MODE: OFF` |
| `RESET` | Spegne uscita allarme e azzera i contatori. | `INFO: Uscita allarme resettata (BT).` |
| `CALI` | Attiva/Disattiva modalità diagnostica (Dati RAW veloci). | `--- MODALITA CALIBRAZIONE ATTIVA ---` |
| `FACTORY` | Ripristino ai dati di fabbrica (Default). | `FACTORY RESET DONE` |
---
## 3. Configurazione Parametri (Scrittura 'W')
**Requisito:** Modalità Programmazione ATTIVA.
**Formato:** `W<ID>=<VALORE>` (Esempio: `W1=1200`)
| ID | Nome | Range | Descrizione |
| :------ | :----------------- | :-------- | :------------------------------------------------------------------------- |
| **W1** | Soglia Minima | 0 - 2000 | Livello minimo vibrazione per urto. (100-500: Sensibile, 1000-1500: Medio) |
| **W2** | Soglia Massima | 0 - 4095 | Filtro superiore disturbi. Default: 4000. |
| **W3** | Conteggio Impulsi | 1 - 50 | Numero di impulsi W1 necessari per allarme. Default: 2 o 3. |
| **W4** | Finestra Tempo | 10 - 1000 | Ciclo di analisi in ms per impulsi W3. Default: 40. |
| **W20** | Gain (Wiper) | 0 - 255 | Potenziometro digitale (0: max, 255: min). |
| **W11** | Durata Min Impulso | 0 - 1000 | Parametro avanzato/riservato. |
| **W12** | Durata Max Impulso | 0 - 1000 | Parametro avanzato/riservato. |
| **WNC** | Normalmente Chiuso | 0 o 1 | Configurazione ingresso (1: NC, 0: NA). Default: 1. |
**Risposta tipica:** `OK: Parametro W1 impostato e salvato: 1200`
---
## 4. Lettura Parametri (Lettura 'R')
**Formato:** `R<ID>` (Esempio: `R1`)
| Comando | Risposta Ricevuta | Significato |
| :------ | :---------------- | :-------------------------------- |
| `R1` | `PARAM: W1=1200` | Restituisce valore Soglia Minima |
| `R2` | `PARAM: W2=4000` | Restituisce valore Soglia Massima |
| ... | ... | ... |
---
## 5. Messaggi dal Dispositivo (Notifiche TX)
### A. Streaming Dati (Heartbeat)
Inviato ogni 500 ms.
- **Formato:** `SENSOR:<valore>` (Esempio: `SENSOR:2067`)
- **Nota:** Indica valore ADC a riposo (ideale ~2067).
### B. Eventi di Allarme
- `ALARM: TRIGGERED`: Vibrazione valida rilevata (Soglia W1 per W3 volte).
- `ALARM: TAMPER`: Taglio cavi o corto circuito (Segnale fisso 0 o 4095).
- `INFO: Allarme resettato automaticamente`: Fine tempo sirena (5s).
### C. Errori Comuni
- `ERRORE: I comandi 'W' sono accettati solo in modalità programmazione.`
- `ERRORE: ID Sconosciuto`
- `ERRORE: Formato comando non valido`