Gas Station Tank-Level Telemetry & Alerting System
A Windows telemetry gateway that has monitored LPG tank levels across 10+ Aygaz and Milangaz filling stations since 2022. The application runs a raw TCP listener alongside Modbus TCP polling to ingest heterogeneous field-device protocols, applies per-station calibration formulas to convert analog sensor readings into kg/Sm³ tank levels, persists everything to SQL Server, and automatically emails site operators when a station's data feed goes stale.
Industrial Telemetry Systems Engineer
- Multi-Protocol Field Ingestion – Built a custom TCP listener plus a Modbus TCP poller to ingest telemetry from heterogeneous PLCs and sensors across gas station sites, each with its own configurable read schedule stored as JSON.
- Per-Station Calibration Engine – Implemented site-specific calibration formulas converting raw ADC values into kg/Sm³ tank levels for 10+ physical stations, including an international branch rollout.
- Stale-Feed Alerting – Added a background level-monitor service that emails operators automatically when a station's telemetry feed stops updating for 30+ minutes.
- Self-Healing Configuration – Designed an INI-based runtime configuration layer that auto-creates its own config on first run, simplifying new-station onboarding.
- Fleet Onboarding Tooling – Wrote a companion CLI (SideCopy) to clone an existing station's database configuration onto a new device serial number when bringing new sites online.
Features
- TCP listener + Modbus TCP polling for heterogeneous field-device telemetry
- Per-station calibration math (ADC → kg/Sm³) across 10+ live sites, including an international branch
- Automated stale-feed email alerting for unattended monitoring
- Self-healing INI configuration with zero-touch first-run setup
- Companion onboarding CLI for fast new-station deployment
- 3+ years of continuous production operation with ongoing maintenance
Technologies
- .NET Framework 4.7.2
- C# WinForms
- Entity Framework 6 (Code First)
- SQL Server
- NModbus (Modbus TCP)
- SimpleTCP
- INI-based configuration (ini-parser)
- Newtonsoft.Json