1
Home
Miguel edited this page 2025-05-22 16:48:41 -03:00
Table of Contents
Maselli Protocol Simulator/Tracer
Overview
The Maselli Protocol Simulator/Tracer is a Python-based desktop application designed to simulate a Maselli device sending data using a specific ADAM-like protocol, and also to trace (listen to) data from such a device. It supports Serial, TCP, and UDP communication. The application provides a graphical user interface (GUI) built with Tkinter for easy configuration and operation.
Features
- Dual Mode Operation:
- Simulator Mode: Emulates a Maselli device, sending data packets.
- Supports Linear, Sinusoidal, and Manual data generation patterns.
- Configurable ADAM address and data sending period.
- Real-time display of simulated Brix and mA values.
- Live plotting of simulated Brix and mA over time.
- Trace Mode: Listens for incoming data packets from a Maselli device.
- Parses ADAM protocol messages to extract mA values.
- Converts mA to Brix based on user-defined mapping.
- Logs received data (Timestamp, mA, Brix, Raw Message) to a CSV file.
- Real-time display of last received data.
- Live plotting of received Brix values over time.
- Simulator Mode: Emulates a Maselli device, sending data packets.
- Flexible Connectivity:
- Supports Serial (RS485/RS232), TCP, and UDP connections.
- Configurable connection parameters (COM port, baud rate, IP address, port).
- Data Visualization:
- Separate real-time graphs for simulator and trace modes.
- Graphs display Brix and/or mA values against time.
- Configuration Management:
- Save and load connection and simulation settings to/from a JSON file (
maselli_simulator_config.json
).
- Save and load connection and simulation settings to/from a JSON file (
- Logging:
- Communication logs for both simulator and trace modes.
- User-Friendly Interface:
- Tabbed interface for easy switching between Simulator and Trace modes.
- Clear input fields and controls.
Requirements
- Python 3.x
- The following Python libraries:
tkinter
(usually included with Python)pyserial
matplotlib
You can install the required libraries using pip:
pip install pyserial matplotlib