Pinchot C# Diagnostic API¶
This high level document covers the main objects, methods, and properties related to the diagnostic capabilities provided by the Pinchot API for troubleshooting, monitoring, and analyzing ScanHead and ScanSystem performance. These tools help developers identify connection issues, monitor system health, capture diagnostic images, and analyze scan data quality.
High-Level Overview¶
The Pinchot API provides comprehensive diagnostic functionality to help developers troubleshoot issues and monitor system performance:
- Device Discovery and Status: Discover scan heads and ScanSyncs on the network, monitor connection status, and retrieve detailed system information
- Diagnostic Images: Capture raw camera images for visual inspection of laser lines, alignment verification, and hardware troubleshooting
- System Health Monitoring: Monitor temperatures, encoder status, profile statistics, and buffer overflow conditions
- ScanSync Diagnostics: Monitor encoder synchronization, detect connection faults, and analyze timing information
- Performance Analysis: Track scan rates, profile counts, data quality metrics, and identify bottlenecks
These diagnostic capabilities are essential for: - Initial Setup: Verifying hardware connections and system configuration - Troubleshooting: Identifying and resolving scanning issues - Performance Optimization: Analyzing system performance and identifying bottlenecks - Quality Assurance: Monitoring data quality and system health over time
Relevant API Calls¶
Device Discovery and Status¶
ScanSystem.DiscoverDevices()- Discover scan heads on networkScanSystem.DiscoverScanSyncs()- Discover ScanSync devicesScanHead.RequestStatus()- Get detailed scan head statusScanHead.IsConnected- Check connection status
Diagnostic Images¶
ScanHead.GetDiagnosticCameraImage(Camera, uint, DiagnosticImageType)- Capture diagnostic imagesCameraImage- Access image data and metadataDiagnosticImageType- Raw or masked image options
ScanSync Monitoring¶
ScanSystem.ScanSyncUpdateEvent- Monitor ScanSync updatesScanSystem.GetScanSyncMapping()- Get encoder mappingsScanSyncData- ScanSync timing and encoder data
System Health and Performance¶
ScanHeadStatus- Comprehensive status informationScanHead.ProfileBufferOverflowed- Buffer overflow detectionScanSystem.GetMinScanPeriod()- Performance limits