c5645c0f2b
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 23s
- Aggiunto supporto ENV variables nel Dockerfile: * INVERTER_DEVICE, MQTT_SERVER, MQTT_PORT, MQTT_TOPIC * MQTT_DEVICENAME, MQTT_USERNAME, MQTT_PASSWORD * FORCE_DISCOVERY, SKIP_DISCOVERY - Implementata funzione update_mqtt_config() in entrypoint.sh * Aggiorna automaticamente mqtt.json da ENV variables all'avvio * Backup automatico configurazione originale - Fix workflow Docker build: * Login Docker Hub solo se secrets configurati * Push solo se secrets disponibili (evita errori CI/CD) * Build funziona anche senza secrets (utile per test locali) - Aggiornato docker-compose.yml con esempio ENV variables - Creata documentazione completa DOCKER_SETUP.md: * Guida configurazione variabili d'ambiente * Esempi docker-compose e docker run * Guida configurazione secrets Gitea * Troubleshooting e health check Ora è possibile configurare completamente il container senza modificare file
VS Code Configuration
Questa directory contiene le configurazioni per sviluppo e debug del progetto in VS Code.
File di Configurazione
launch.json
Configurazioni di debug per inverter-cli con GDB:
- Debug con build Release
- Debug con build completa (simboli debug)
- Debug in modalità loop
- Debug comandi raw
- Attach a processo esistente
tasks.json
Task automatizzati per:
- Build (Release/Debug)
- Clean e Rebuild
- Esecuzione diretta
- Gestione container Docker
c_cpp_properties.json
Configurazione IntelliSense per C/C++:
- Include paths
- Standard C++11
- Compiler settings
settings.json
Impostazioni workspace:
- Configurazione CMake
- File associations
- Esclusioni ricerca e explorer
extensions.json
Estensioni raccomandate per il progetto:
- C/C++ tools
- CMake tools
- Docker
- ShellCheck
- YAML support
Quick Start
Prima Build
-
Apri il progetto in VS Code:
code /home/pi/Progetti -
Installa estensioni raccomandate (popup VS Code)
-
Build del progetto:
- Premi
Ctrl+Shift+Bper build default - Oppure
Tasks: Run Task→build-inverter-cli-debug
- Premi
Debug Rapido
- Apri
sources/inverter-cli/main.cpp - Imposta breakpoint (F9 su riga)
- Premi
F5e seleziona configurazione debug - Usa
F10(step over) eF11(step into)
Testare Modifiche
- Modifica codice in
sources/inverter-cli/ - Build:
Ctrl+Shift+B - Run: Tasks →
run-inverter-cli-once - Verifica output JSON
Documentazione Dettagliata
Vedi DEBUG.md per guida completa al debug e troubleshooting.
Configurazioni Disponibili
Debug Configurations (F5)
- (gdb) Debug inverter_poller - Debug rapido con Release build
- (gdb) Debug inverter_poller - Run Once with Debug - Debug completo, esecuzione singola
- (gdb) Debug inverter_poller - Loop Mode - Debug in modalità continua
- (gdb) Debug inverter_poller - Raw Command - Debug comandi specifici
- (gdb) Attach to running inverter_poller - Attach a processo esistente
Build Tasks (Ctrl+Shift+B)
- build-inverter-cli (default) - Build Release ottimizzato
- build-inverter-cli-debug - Build con simboli debug
- clean-inverter-cli - Pulizia file di build
- rebuild-inverter-cli - Clean + Build
Run Tasks
- run-inverter-cli-once - Esegui una volta
- run-inverter-cli-loop - Esegui in loop
- docker-build - Build immagine Docker
- docker-run - Avvia container
- docker-logs - Visualizza log container
- docker-stop - Ferma container
Shortcuts Utili
| Shortcut | Azione |
|---|---|
F5 |
Start Debugging |
Ctrl+F5 |
Run Without Debugging |
F9 |
Toggle Breakpoint |
F10 |
Step Over |
F11 |
Step Into |
Shift+F11 |
Step Out |
Ctrl+Shift+B |
Run Build Task |
Ctrl+Shift+P |
Command Palette |
Ctrl+ ` |
Toggle Terminal |
Estensioni Consigliate
Essenziali
- C/C++ - IntelliSense, debugging, browsing
- CMake Tools - Integrazione CMake
Utili
- Docker - Gestione container
- ShellCheck - Linting script bash
- YAML - Syntax per configurazioni
Opzionali
- GitHub Copilot - AI code assistant
- GitLens - Git supercharged
Troubleshooting
IntelliSense non funziona
- Ricarica window:
Ctrl+Shift+P→ "Reload Window" - Verifica estensione C/C++ installata
- Build il progetto almeno una volta
GDB non trovato
sudo apt-get install gdb
Permission denied su device
sudo usermod -a -G dialout $USER
# Logout e login necessari
Task build fallisce
cd sources/inverter-cli
rm -rf CMakeFiles CMakeCache.txt
cmake . && make
Tips
- Multiple Debug Windows: Puoi avere più configurazioni debug attive contemporaneamente
- Watch Variables: Usa il pannello Watch per monitorare variabili durante debug
- Debug Console: Esegui comandi GDB direttamente nel Debug Console
- Logpoints: Usa logpoints invece di printf per non modificare codice
Risorse
- VS Code C++ Docs
- CMake Tools Extension
- GDB Documentation
- DEBUG.md - Guida debug completa del progetto