Skip to content

Getting Started ​

Bienvenido a la documentación para desarrolladores de OmilooS — la interfaz de usuario y capa de control descentralizada para la Red de Infraestructura Física Descentralizada (DePIN) de energía soberana y telecomunicaciones locales del ecosistema Empoorio.

Esta guía te ayudará a compilar la aplicación, inicializar el simulador local, y conectar los drivers de hardware nativos.


Requisitos Previos ​

Antes de comenzar, asegúrate de tener configurado tu entorno de desarrollo con el siguiente software:

  • Flutter SDK (v3.22.0 o superior)
  • Rust Toolchain (v1.75.0 o superior, para compilar el bridge nativo lora_driver y el motor de inferencia)
  • Dart & Cargo configurados en el PATH de tu sistema operativo.

Estructura del Repositorio ​

La arquitectura del proyecto sigue una separación clara entre la interfaz móvil (Flutter) y el daemon de hardware/criptografía en el Edge (Rust):

  • lib/: Código de la interfaz de usuario en Flutter, organizada según los principios de Clean Architecture.
  • rust/: Módulos nativos de rendimiento crítico (procesamiento de tramas LoRa CRC, inferencia C++ local para AndromedaLM, y RPC de EmpoorioChain).
  • test/: Suite de pruebas unitarias y de widgets de la aplicación.

Inicialización del Proyecto ​

1. Clonar el repositorio e instalar dependencias ​

Navega al directorio del proyecto y descarga las librerías necesarias de Flutter:

bash
cd projects/Omiloos
flutter pub get

2. Compilar el puente nativo de Rust (FFI) ​

OmilooS utiliza la tecnología flutter_rust_bridge (v2) para comunicar Dart con C++ y Rust en caliente. Inicializa y compila el crate nativo:

bash
# Entrar a la carpeta rust y validar dependencias
cd rust
cargo build --release

3. Ejecutar las pruebas automáticas ​

Para validar que todo el motor físico y de telecomunicaciones del planificador funcione adecuadamente en tu máquina de desarrollo, ejecuta la suite de tests:

bash
flutter test

Configuración de Dispositivos (Modo Demo vs. Producción) ​

Para facilitar el desarrollo sin necesidad de contar con un inversor fotovoltaico real y un transceptor LoRa físico conectado por USB-OTG, la aplicación implementa una degradación de hardware resiliente:

A. Modo Simulación (Por Defecto) ​

Si la aplicación no puede resolver la IP configurada para el inversor (p. ej., 192.168.1.150:502), el origen de datos TelemetryModbusDatasource degrada silenciosamente a un generador de ruido gaussiano sobre curvas solares típicas de 24h. Esto te permite testear las gráficas de fl_chart y la reactividad de la UI sin necesidad de hardware.

B. Modo Producción ​

Cuando conectas un inversor compatible con SunSpec sobre tu red local Wi-Fi, ajusta los parámetros en el menú de Ajustes > Configuración Solar:

  1. Especifica la dirección IP local del inversor.
  2. Define el ID de unidad Modbus (Unit ID) correspondiente.
  3. Activa la inyección de red para comenzar a auditar transacciones.