How franstio/coilbin works
CoilBin is an industrial bin-control application with an Avalonia desktop interface and web APIs, alongside a separate rack-management API. The main bin workflow starts or ends a collection/disposal transaction, persists its state, drives PLC outputs, and monitors sensors to update operator clients. Rack workflows select racks, trigger doors, and record transactions. Sampled source supports these connections; the README is empty, and omitted source leaves some wiring uncertain.
Main entry points: SaleableService.cs Sensor workflows · Program.cs Bin API · BinService.cs Bin service · RackController.cs Rack controller
Components 20
Bin operations
- Bin API
CoilBin.WebApi/Program.cs - Slim bin API
CoilBin.Api/Program.cs - Bin service
CoilBin.PLC/Services/BinService.cs - Sensor workflows
CoilBin.WebApi/Services/SaleableService.cs
Rack operations
- Rack API
CoilBin.RackApi/Program.cs - Rack controller
CoilBin.RackApi/Controllers/RackController.cs - Rack data service
CoilBin.RackApi/Services/RackSaleableServices.cs - Rack PLC service
CoilBin.RackApi/Services/RackPLCService.cs
State and hardware
- PLC service
CoilBin.PLC/PLCService.cs - Transaction state
CoilBin.PLC/RunningTransactionManager.cs - Bin information
CoilBin.PLC/BinInfoManager.cs - Rack database
Operator interfaces
- Desktop host
CoilBin.Desktop/Program.cs - Avalonia UI
CoilBin/App.axaml.cs - Main view model
CoilBin/ViewModels/MainViewModel.cs - Bin hub
CoilBin.WebApi/Hubs/BinHub/BinHub.cs - Rack hub
CoilBin.RackApi/Hubs/Rack/RackHub.cs
Other components
- Operator
- PLC hardware
- Weighing system
Connections 28
- Operator → Desktop host: uses
- Desktop host → Avalonia UI: starts
- Desktop host → Bin API: hosts
- Avalonia UI → Main view model: binds
- Operator → Bin API: requests
- Bin API → Bin service: dispatches
- Slim bin API → Bin service: dispatches
- Bin API → Transaction state: reads status
- Slim bin API → Transaction state: reads status
- Bin API → Sensor workflows: starts loops
- Sensor workflows → Bin service: reads sensors
- Sensor workflows → Transaction state: reads and saves
- Sensor workflows → Bin information: reads bin data
- Sensor workflows → Bin hub: dispatches updates
- Bin service → PLC service: reads and writes
- Bin service → Transaction state: reads and saves
- PLC service → PLC hardware: communicates
- Weighing system → Slim bin API: sends weights
- Slim bin API → Bin information: saves weights
- Operator → Rack API: requests
- Rack API → Rack controller: routes
- Rack controller → Rack data service: queries and saves
- Rack controller → Rack PLC service: triggers doors
- Rack controller → Rack hub: publishes weight
- Rack data service → Rack database: queries and updates
- Rack data service → Weighing system: syncs employees
- Rack API → Rack data service: syncs employees
- Rack PLC service → PLC hardware: controls racks