Development - ZGoode/Legacy_RS232_DripFeeder GitHub Wiki

Development

Important source areas

Source area Responsibility
esp32-firmware/main/main.c Startup and active-interface selection
esp32-firmware/main/server.c HTTP handlers
sd_storage.c / crc_cache.c Storage and integrity maintenance
rs232.c UART transport
network_fallback.c Runtime network switching
MainWindow.xaml.cs Windows discovery, connection, and normal transfer actions
DeviceApiClient.cs / Rs232ApiClient.cs Client APIs
TransferQueue.cs Normal per-device transfer scheduler
Services/DeviceProtocol/ Package loading, validation, commands, and persistence

Implementation constraints

  • Do not treat password setup as global authorization unless handlers are actually gated.
  • Preserve SD path validation and CRC-cache semantics.
  • Keep the editor direct-transfer exception in mind when changing transfer concurrency/cancellation behavior.
  • A protocol package's command list is not automatically supported by every device type.
  • DeviceProtocolEngine currently reflects the supplied mnemonic/comma/semicolon HP-GL style rather than a fully generalized wire-format engine.

Persistence

Firmware uses NVS for settings/authentication/Wi-Fi and the SD card for user files plus CRC metadata. Windows persists configured RS232 devices and optional remembered passwords in %AppData%\FileLinkDiscovery.