349 lines
8.1 KiB
Markdown
349 lines
8.1 KiB
Markdown
# GRIFO_M_PBIT Simulation Mode - Launcher Guide
|
|
|
|
## Overview
|
|
|
|
This document describes the launcher scripts for executing GRIFO_M_PBIT test in simulation mode without physical hardware.
|
|
|
|
## Available Launchers
|
|
|
|
### 1. `run_simulate_simple.bat` (RECOMMENDED)
|
|
|
|
**Best for:** Quick testing with any Python installation
|
|
|
|
**How it works:**
|
|
- Uses the Python wrapper script to configure environment
|
|
- Works with system Python (3.7+) or embedded Python
|
|
- Automatically configures paths to use local test environment packages
|
|
- Bypasses uPlatSim.exe complexity
|
|
|
|
**Usage:**
|
|
```cmd
|
|
cd C:\src\____GitProjects\SXXXXXXX_PyBusMonitor1553\__OLD\__TEST_GENOVA\GrifoAutomaticTestEnv
|
|
run_simulate_simple.bat
|
|
```
|
|
|
|
**Requirements:**
|
|
- Python 3.7 or higher available in PATH
|
|
- Or: Run with explicit Python interpreter (see alternative usage below)
|
|
|
|
**Pros:**
|
|
- ✅ Simple and straightforward
|
|
- ✅ Works with any Python 3.7+
|
|
- ✅ Easy to debug
|
|
- ✅ No dependency on uPlatSim.exe
|
|
|
|
**Cons:**
|
|
- ⚠️ May have minor package version differences if using system Python
|
|
|
|
---
|
|
|
|
### 2. `run_simulate.bat` (PRODUCTION-LIKE)
|
|
|
|
**Best for:** Testing with exact production environment
|
|
|
|
**How it works:**
|
|
- Uses embedded Python from PlatformSimulator/bin/
|
|
- Executes via uPlatSim.exe in batch mode
|
|
- Creates temporary INI configuration for simulation mode
|
|
- Mimics production execution environment
|
|
|
|
**Usage:**
|
|
```cmd
|
|
cd C:\src\____GitProjects\SXXXXXXX_PyBusMonitor1553\__OLD\__TEST_GENOVA\GrifoAutomaticTestEnv
|
|
run_simulate.bat
|
|
```
|
|
|
|
**Requirements:**
|
|
- uPlatSim.exe must be present in PlatformSimulator/bin/
|
|
- Embedded Python environment (python37.dll)
|
|
|
|
**Pros:**
|
|
- ✅ Uses exact production Python version (3.7)
|
|
- ✅ Identical package versions as production
|
|
- ✅ Closest to real test environment
|
|
|
|
**Cons:**
|
|
- ⚠️ Depends on uPlatSim.exe supporting batch mode without hardware
|
|
- ⚠️ More complex execution path
|
|
|
|
---
|
|
|
|
### 3. `python_simulate_wrapper.py` (MANUAL)
|
|
|
|
**Best for:** Advanced users, debugging, custom Python interpreters
|
|
|
|
**How it works:**
|
|
- Python script that configures environment paths
|
|
- Can be executed with any Python interpreter
|
|
- Provides detailed environment configuration output
|
|
- Verifies all required packages before test execution
|
|
|
|
**Usage:**
|
|
```cmd
|
|
# Using system Python
|
|
python python_simulate_wrapper.py
|
|
|
|
# Using specific Python version
|
|
py -3.7 python_simulate_wrapper.py
|
|
|
|
# Using embedded Python (if available as standalone)
|
|
PlatformSimulator\bin\python.exe python_simulate_wrapper.py
|
|
|
|
# Direct execution (if Python associated with .py)
|
|
python_simulate_wrapper.py
|
|
```
|
|
|
|
**Requirements:**
|
|
- Python 3.7 or higher
|
|
- fpdf2, defusedxml, PIL, pyserial, pyvisa packages (available in env/site-packages/)
|
|
|
|
**Pros:**
|
|
- ✅ Maximum flexibility
|
|
- ✅ Detailed diagnostic output
|
|
- ✅ Easy to modify for custom scenarios
|
|
- ✅ Cross-platform compatible
|
|
|
|
**Cons:**
|
|
- ⚠️ Requires manual Python invocation
|
|
|
|
---
|
|
|
|
## Execution Flow
|
|
|
|
All launchers follow this pattern:
|
|
|
|
```
|
|
Launcher Script
|
|
↓
|
|
Configure Environment Paths
|
|
↓
|
|
Verify Dependencies
|
|
↓
|
|
Execute GRIFO_M_PBIT.py --simulate
|
|
↓
|
|
Simulation Mode Detection
|
|
↓
|
|
Import GRIFO_M_PBIT_mock.py
|
|
↓
|
|
setup_simulation()
|
|
↓
|
|
Run Test with Mock Objects
|
|
↓
|
|
Generate PDF Report
|
|
```
|
|
|
|
## Which Launcher Should I Use?
|
|
|
|
### Decision Tree:
|
|
|
|
1. **Do you want the simplest option?**
|
|
- YES → Use `run_simulate_simple.bat`
|
|
- NO → Continue
|
|
|
|
2. **Do you need exact production environment?**
|
|
- YES → Use `run_simulate.bat`
|
|
- NO → Continue
|
|
|
|
3. **Do you want maximum control and diagnostics?**
|
|
- YES → Use `python_simulate_wrapper.py` manually
|
|
- NO → Use `run_simulate_simple.bat`
|
|
|
|
### Recommendations by Use Case:
|
|
|
|
- **First-time testing:** `run_simulate_simple.bat`
|
|
- **Development/debugging:** `python_simulate_wrapper.py`
|
|
- **Production validation:** `run_simulate.bat`
|
|
- **CI/CD integration:** `python_simulate_wrapper.py` (scriptable)
|
|
- **Quick test execution:** `run_simulate_simple.bat`
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Error: "No Python interpreter found in PATH"
|
|
|
|
**Solution:**
|
|
```cmd
|
|
# Option 1: Add Python to PATH temporarily
|
|
set PATH=C:\Path\To\Python;%PATH%
|
|
run_simulate_simple.bat
|
|
|
|
# Option 2: Use wrapper directly with full path
|
|
C:\Path\To\Python\python.exe python_simulate_wrapper.py
|
|
|
|
# Option 3: Use py launcher (if available)
|
|
py python_simulate_wrapper.py
|
|
```
|
|
|
|
---
|
|
|
|
### Error: "ImportError: cannot import name 'FontFace'"
|
|
|
|
**Cause:** Using system Python with incompatible fpdf2 version
|
|
|
|
**Solution:**
|
|
```cmd
|
|
# The wrapper script should handle this automatically by prioritizing
|
|
# local site-packages. If it persists:
|
|
|
|
# Check Python path priority
|
|
python python_simulate_wrapper.py
|
|
|
|
# Look for this output:
|
|
# Configuring environment paths:
|
|
# [+] ...\TestEnvironment\env\site-packages
|
|
|
|
# If site-packages is not first, check sys.path modification in wrapper
|
|
```
|
|
|
|
---
|
|
|
|
### Error: "uPlatSim.exe not found"
|
|
|
|
**Cause:** Using `run_simulate.bat` without embedded environment
|
|
|
|
**Solution:**
|
|
```cmd
|
|
# Use the simple launcher instead
|
|
run_simulate_simple.bat
|
|
|
|
# Or verify uPlatSim.exe location
|
|
dir PlatformSimulator\bin\uPlatSim.exe
|
|
```
|
|
|
|
---
|
|
|
|
### Test Runs but No PDF Report Generated
|
|
|
|
**Check:**
|
|
1. Console output for errors
|
|
2. Log file: `TestEnvironment\LOG\GRIFO_M_PBIT.log`
|
|
3. PDF reports folder: `TestEnvironment\pdf_reports\`
|
|
|
|
**Common causes:**
|
|
- fpdf2 package issues
|
|
- File permission problems
|
|
- Disk space
|
|
|
|
---
|
|
|
|
## Output Files
|
|
|
|
After successful execution, find results in:
|
|
|
|
### Log File:
|
|
```
|
|
TestEnvironment\LOG\GRIFO_M_PBIT.log
|
|
```
|
|
|
|
### PDF Report:
|
|
```
|
|
TestEnvironment\pdf_reports\GRIFO_M_PBIT_<timestamp>.pdf
|
|
```
|
|
|
|
Report includes:
|
|
- Executive summary
|
|
- Per-run detailed results with serial statistics
|
|
- Aggregate statistics (pass/fail rates, timing)
|
|
- Serial communication analysis (Errors, Fatal, Recycles)
|
|
- Dedicated recycle events section
|
|
- Test configuration and environment info
|
|
|
|
---
|
|
|
|
## Advanced Usage
|
|
|
|
### Custom Python Environment
|
|
|
|
```cmd
|
|
# Create virtual environment with specific Python version
|
|
python -m venv grifo_test_env
|
|
grifo_test_env\Scripts\activate
|
|
|
|
# Install required packages from test environment
|
|
pip install fpdf2==2.7.8 defusedxml pillow pyserial pyvisa
|
|
|
|
# Run wrapper
|
|
python python_simulate_wrapper.py
|
|
```
|
|
|
|
---
|
|
|
|
### Modifying Simulation Parameters
|
|
|
|
Edit `TestEnvironment\scripts\GRIFO_M_PBIT_mock.py`:
|
|
|
|
```python
|
|
# Adjust PBIT duration (default: 15-25 seconds)
|
|
PBIT_TIME_MIN = 10.0 # Faster for testing
|
|
PBIT_TIME_MAX = 15.0
|
|
|
|
# Change scenario
|
|
SIMULATION_SCENARIO = 'pedestal_fail' # Or 'random_failures'
|
|
|
|
# Enable/disable serial message simulation
|
|
SIMULATE_SERIAL_ERRORS = True
|
|
SIMULATE_SERIAL_FATAL = True
|
|
SIMULATE_SERIAL_RECYCLE_EVENTS = True
|
|
```
|
|
|
|
---
|
|
|
|
### Running from Different Directory
|
|
|
|
```cmd
|
|
# Using absolute paths
|
|
cd C:\any\directory
|
|
python C:\src\...\GrifoAutomaticTestEnv\python_simulate_wrapper.py
|
|
|
|
# Or use batch file with full path
|
|
C:\src\...\GrifoAutomaticTestEnv\run_simulate_simple.bat
|
|
```
|
|
|
|
---
|
|
|
|
## Continuous Integration Example
|
|
|
|
```yaml
|
|
# GitHub Actions / GitLab CI example
|
|
test_simulation:
|
|
script:
|
|
- cd __OLD/__TEST_GENOVA/GrifoAutomaticTestEnv
|
|
- python python_simulate_wrapper.py
|
|
artifacts:
|
|
paths:
|
|
- TestEnvironment/pdf_reports/*.pdf
|
|
- TestEnvironment/LOG/*.log
|
|
when: always
|
|
```
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
| Launcher | Simplicity | Production-Like | Flexibility | Recommended |
|
|
|----------|-----------|----------------|-------------|-------------|
|
|
| `run_simulate_simple.bat` | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ✅ Yes |
|
|
| `run_simulate.bat` | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | For production |
|
|
| `python_simulate_wrapper.py` | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | For debugging |
|
|
|
|
**Quick Start:** Use `run_simulate_simple.bat` for immediate testing.
|
|
|
|
---
|
|
|
|
## Questions?
|
|
|
|
For issues or questions:
|
|
1. Check `TestEnvironment\LOG\GRIFO_M_PBIT.log` for detailed error messages
|
|
2. Review the Troubleshooting section above
|
|
3. Verify Python version: `python --version` (must be 3.7+)
|
|
4. Check package availability: `python -c "import fpdf; print(fpdf.__version__)"`
|
|
|
|
---
|
|
|
|
## Related Documentation
|
|
|
|
- `README_SIMULATION.md` - Simulation mode overview and features
|
|
- `GRIFO_Test_Environment_Analysis.md` - Complete environment analysis
|
|
- `IMPLEMENTATION_SUMMARY.md` - Technical implementation details
|