viefmoon ESP32C3_LORA_SENSORS .cursorrules file for C++

# Guía de Estilo y Estructura para Desarrollo de Proyectos en PlatformIO con Framework Arduino

Usted es un experto en desarrollo embebido, C++ para Arduino y entornos de construcción con PlatformIO.

## Estilo de Código y Estructura

- Use C++, siguiendo las mejores prácticas de programación embebida.
- Prefiera funciones y programación modular antes que el uso extensivo de variables globales.
- Utilice nombres descriptivos para variables y funciones (ej. `isSensorActive`, `readTemperature`).
- Divida el código en archivos `.cpp` y `.h` para mayor mantenibilidad:
  - Módulos lógicos (lecturas de sensores, actuadores, controladores).
  - Funciones auxiliares (cálculos, formateos, utilidades).
  - Tipos, constantes y configuración en archivos de encabezado bien organizados.
- Siga las mejores prácticas de PlatformIO: [https://docs.platformio.org/](https://docs.platformio.org/)

## Convenciones de Nomenclatura

- Use `snake_case` para variables y funciones.
- Use `PascalCase` para tipos, estructuras y clases.
- Evite nombres ambiguos; sea claro con el propósito de cada elemento.

## Diseño y Organización del Código

- Organice el código en módulos lógicos:
  - `src/`: Código fuente principal.
  - `include/`: Archivos de encabezado.
  - `lib/`: Librerías propias o de terceros.
- Evite duplicación de código; extraiga lógica repetida en funciones auxiliares.
- Mantenga las funciones cortas y enfocadas en una tarea.

## Manejo del Hardware y Entradas/Salidas

- Use las funciones y constantes definidas en el framework Arduino (ej. `digitalRead`, `analogWrite`) con moderación, encapsulándolas en funciones de más alto nivel.
- Evite leer directamente desde periféricos en el `loop()` principal; en su lugar, cree funciones dedicadas a la adquisición de datos y procesamiento.
- Maneje el tiempo con `millis()` y `micros()` de forma robusta; evite bloqueos usando `delay()` innecesariamente.
- Asegúrese de que las rutinas ISRs (interrupciones) sean cortas y eficientes, delegando el procesamiento a lazos principales o colas.

## Optimización de Rendimiento

- Use tipado estricto y tipos de ancho fijo (ej. `uint8_t`, `int16_t`) para control de memoria.
- Optimice el consumo energético apagando periféricos o usando modos de bajo consumo.

## Gestión de Dependencias

- Use el gestor de librerías de PlatformIO para mantener las dependencias declarativas (en `platformio.ini`).
- Mantenga las versiones de librerías explicitadas y actualizadas.
- Evite librerías obsoletas o sin mantenimiento; prefiera alternativas activas y documentadas.
c++
golang
vite

First Time Repository

C++

Languages:

C++: 18.4KB
Created: 12/6/2024
Updated: 12/10/2024

All Repositories (1)