How heng8598/aoi_terminal_inspection works
This is a PySide6/OpenCV terminal-inspection application: operators configure camera, inspection regions and thresholds, then start manual, continuous or hardware-triggered checks. Frames are processed across Ground, Live and Neutral terminals for pin presence, width and angle; the UI presents inspection images, OK/NG results, counters and history. The state machine and signal bus coordinate camera and trigger flow, while UART and Modbus TCP provide optional hardware paths. Relationships are limited to README statements and the provided excerpts/SOURCE INDEX; unsampled feature links are omitted where their caller is not shown.
Main entry points: main_ui.py Application window · prosess_inspection.py Inspection pipeline · menu_bar.py Settings menu · signal_bus.py Signal bus
Components 28
Operator workflow
- Application window
ui_screen/main_ui.py - Inspection display
ui_screen/inspection_view_panel.py - Results and counters
ui_screen/final_result_valve.py - NG history
ui_screen/ng_history_panel.py - Settings menu
ui_screen/menu_bar.py
Vision inspection
- Camera capture
camera/camera_thread.py - Inspection pipeline
pipeline/prosess_inspection.py - Terminal ROIs
pipeline/base_inspection.py - Image analyzer
pipeline/terminal_analyzers.py - Pin detection
pipeline/terminal_pin_analyzers.py - Width and angle
pipeline/terminal_measurement.py - Result overlays
pipeline/terminal_draw_tool.py
Runtime coordination
- Inspection state machine
state_machine/state_machine.py - Signal bus
camera/signal_bus.py - Inspection controller
inspection_controller/inspection_contorller.py
Hardware communication
- UART worker
uart/uart_thread.py - UART connection
connecting/uart_connecting_manager.py - STM32 board
- Modbus worker
plc/modbus_thread.py - Modbus connection
connecting/modbus_connecting_manager.py - Relay board
Configuration and settings
- Persistent settings
utils/config.py - Camera settings
dialog/camera_setting_dialog.py - ROI settings
dialog/roi_setting_dialog.py - Detection parameters
dialog/detection_parameter.py - Calibration
dialog/calibration.py - Modbus settings
plc/modbus.py
Other components
- Operator
Connections 34
- Operator → Application window: uses
README.md - Application window → Camera capture: starts capture
ui_screen/main_ui.py - Camera capture → Signal bus: emits frames
camera/camera_thread.py - Signal bus → Inspection state machine: signals events
state_machine/state_machine.py - Inspection state machine → Inspection controller: dispatches inspection
state_machine/state_machine.py - Inspection controller → Inspection pipeline: invokes
inspection_controller/inspection_contorller.py - Inspection pipeline → Terminal ROIs: uses regions
pipeline/prosess_inspection.py - Inspection pipeline → Image analyzer: analyzes image
pipeline/prosess_inspection.py - Inspection pipeline → Pin detection: detects pins
pipeline/prosess_inspection.py - Inspection pipeline → Width and angle: measures terminals
pipeline/prosess_inspection.py - Inspection pipeline → Result overlays: draws results
pipeline/prosess_inspection.py - Inspection pipeline → Signal bus: publishes result
- Application window → Inspection display: updates display
ui_screen/main_ui.py - Application window → Results and counters: updates results
ui_screen/main_ui.py - Application window → NG history: records NG
ui_screen/main_ui.py - Operator → Settings menu: configures
README.md - Settings menu → Camera settings: opens
ui_screen/menu_bar.py - Settings menu → ROI settings: opens
ui_screen/menu_bar.py - Settings menu → Detection parameters: opens
ui_screen/menu_bar.py - Settings menu → Calibration: opens
ui_screen/menu_bar.py - Settings menu → Modbus settings: opens
ui_screen/menu_bar.py - Camera settings → Persistent settings: saves settings
dialog/camera_setting_dialog.py - ROI settings → Persistent settings: saves regions
dialog/roi_setting_dialog.py - Detection parameters → Persistent settings: saves parameters
dialog/detection_parameter.py - Calibration → Persistent settings: saves calibration
dialog/calibration.py - Modbus settings → Persistent settings: saves settings
plc/modbus.py - Application window → UART worker: runs worker
ui_screen/main_ui.py - UART worker → UART connection: reads UART
uart/uart_thread.py - STM32 board → UART connection: triggers over UART
README.md - Application window → Modbus worker: runs worker
ui_screen/main_ui.py - Modbus worker → Modbus connection: uses connection
plc/modbus_thread.py - Relay board → Modbus connection: triggers over TCP
README.md - UART worker → Signal bus: emits trigger
uart/uart_thread.py - Modbus worker → Signal bus: emits trigger
plc/modbus_thread.py