Ship-to-shore crane digital twin and logging
A crane digital-twin project where I developed logging components for MQTT-driven subsystem events.
Goal
Support a ship-to-shore crane digital twin with a consistent way to record events from its simulated systems and modules.
Constraints
The logger had to accept subsystem information through MQTT and produce useful records without coupling the output to the rest of the simulation. The logging component was developed with automated tests.
Process
I implemented a session manager using UUIDs, a logging handler, CSV and console logging outputs, and an MQTT message listener. CSV events followed a shared structure: timestamp, system, module, status and details.
I used pytest to check CSV writing and the parsing of MQTT messages, keeping the event-handling work separate from the wider crane simulation.
Result
Delivered a logging component with CSV and console outputs and tests for core logging behaviour. This describes my contribution, not a claim that I built the entire crane simulation.
What I learned
Separating message reception, event representation and output makes an integration component easier to test. The tests also provided concrete checks for the structure of messages and recorded events.