1 Home
Miguel edited this page 2025-05-22 16:48:41 -03:00

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.
  • 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).
  • 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