153 lines
2.6 KiB
Markdown
153 lines
2.6 KiB
Markdown
# PTP Monitoring Toolkit
|
|
|
|
## Overview
|
|
|
|
This toolkit provides two main components:
|
|
|
|
- PTP log collector (bash script)
|
|
- PTP graphing tool (Python GUI)
|
|
|
|
These tools allow you to collect PTP statistics from ptp4l and visualise timing behaviour, including RMS offset, frequency deviation, state changes, and master changes.
|
|
|
|
---
|
|
|
|
## 1. PTP Log Collector
|
|
|
|
### Purpose
|
|
|
|
The log collector records PTP statistics at approximately 1 Hz and formats them similarly to ptp4l output.
|
|
|
|
### Example Output
|
|
|
|
```
|
|
Jun 12 16:49:58 host ptp4l@media1: [6443.95] rms 62 max 191 freq -307 +/- 86 delay 1121 +/- 13
|
|
```
|
|
|
|
### Running the Collector
|
|
|
|
Ensure ptp4l is running and accessible via a UNIX socket.
|
|
|
|
Run the script:
|
|
|
|
```
|
|
bash PTPLogger.sh
|
|
```
|
|
|
|
### Requirements
|
|
|
|
- linuxptp installed
|
|
- pmc available
|
|
- Access to correct ptp4l socket (e.g. /var/run/ptp4l_media1)
|
|
|
|
### Common Issues
|
|
|
|
- All values are zero: ptp4l is not synced or no master is present
|
|
- No output: incorrect socket or domain
|
|
|
|
---
|
|
|
|
## 2. PTP Graphing Tool
|
|
|
|
### Purpose
|
|
|
|
The Python GUI tool visualises collected logs and detects PTP events.
|
|
|
|
### Features
|
|
|
|
- Plots RMS offset and frequency deviation
|
|
- Displays PTP state changes
|
|
- Displays master clock changes
|
|
- Adjustable time resolution
|
|
- Handles multi-day logs
|
|
|
|
|
|
### Usage
|
|
|
|
1. Click "Open Log"
|
|
2. Select a log file
|
|
3. Choose time detail if required
|
|
4. View graphs and event list
|
|
|
|
### Supported Log Format
|
|
|
|
The tool requires log lines containing:
|
|
|
|
```
|
|
rms <value> ... freq <value>
|
|
```
|
|
|
|
### Graph Interpretation
|
|
|
|
- RMS: timing accuracy
|
|
- Frequency deviation: servo behaviour
|
|
- Blue vertical lines: state changes
|
|
- Red vertical lines: master changes
|
|
|
|
|
|
|
|
---
|
|
|
|
## 3. Compilation (Windows)
|
|
|
|
### Install PyInstaller
|
|
|
|
```
|
|
python -m pip install pyinstaller
|
|
```
|
|
|
|
### Build Executable
|
|
|
|
```
|
|
pyinstaller --onefile --windowed PTPLogger_Graphing.py
|
|
```
|
|
|
|
### Output
|
|
|
|
```
|
|
dist/PTPLogger_Graphing.exe
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Compilation (Linux)
|
|
|
|
### Install Dependencies
|
|
|
|
```
|
|
sudo apt install python3 python3-pip python3-tk
|
|
pip3 install matplotlib pyinstaller
|
|
```
|
|
|
|
### Build Executable
|
|
|
|
```
|
|
pyinstaller --onefile --windowed PTPLogger_Graphing.py
|
|
```
|
|
|
|
### Output
|
|
|
|
```
|
|
dist/PTPLogger_Graphing
|
|
```
|
|
|
|
Run:
|
|
|
|
```
|
|
./dist/PTPLogger_Graphing
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Notes
|
|
|
|
- The graphing tool works best with continuous ptp4l statistics output
|
|
- If logs contain no RMS data, the graph will be empty
|
|
- Correct socket configuration is required for pmc to collect data
|
|
- Tested with Bolero Diagnotics, and RSP-1216 logs
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
The log collector gathers PTP timing data, and the graphing tool provides visual analysis for troubleshooting and performance monitoring.
|