Files
edncfix/README.md
cproudlock 9a8b16e0d4 v1.3.0: Fixed header UI + auto-elevate to Administrator
- GE Aerospace ASCII banner stays fixed at top of console
- Live status line updates (Processing, Cleaned, Failed, etc.)
- Live stats counter in header (Cleaned/Failed counts)
- Batch file auto-elevates to Administrator via UAC

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 08:40:35 -05:00

143 lines
4.3 KiB
Markdown

# eDNC Special Character Fix
Real-time file watcher that automatically removes invalid special characters from DNC (Direct Numerical Control) program files.
## Problem
Some legacy DNC systems and communication protocols add padding or termination bytes that modern CNC controllers cannot process correctly. Common problematic characters include:
| Byte | Hex | Name | Description |
|------|-----|------|-------------|
| 255 | 0xFF | Fill | Padding/fill character |
| 0 | 0x00 | NULL | Null character |
| 26 | 0x1A | SUB | Ctrl+Z / EOF marker |
| 127 | 0x7F | DEL | Delete character |
## Solution
This utility monitors a folder for DNC files and automatically strips specified characters as soon as files are created or modified.
## Installation
1. Copy the project folder to your DNC workstation
2. Edit `eDNC-SpecialCharFix.ps1` to set your watch folder (default: `C:\Dnc_Files\Q`)
3. Run `Run-eDNCFix.bat` - it will auto-elevate to Administrator
**Note:** The batch file automatically requests Administrator privileges via UAC prompt.
### Run at Startup (Optional)
To run automatically at Windows startup:
1. Press `Win + R`, type `shell:startup`, press Enter
2. Create a shortcut to `Run-eDNCFix.bat` in the Startup folder
## Usage
### Basic Usage
Double-click `Run-eDNCFix.bat` or run from PowerShell:
```powershell
.\eDNC-SpecialCharFix.ps1
```
### Custom Watch Folder
```powershell
.\eDNC-SpecialCharFix.ps1 -WatchFolder "D:\DNC\Programs"
```
### Different File Types
```powershell
.\eDNC-SpecialCharFix.ps1 -FileFilter "*.nc"
```
### Remove Additional Characters
```powershell
# Remove 0xFF, NULL, and SUB characters
.\eDNC-SpecialCharFix.ps1 -CharactersToRemove @(255, 0, 26)
```
### All Options
```powershell
.\eDNC-SpecialCharFix.ps1 `
-WatchFolder "C:\Dnc_Files\Q" `
-FileFilter "*.pun" `
-IncludeSubfolders $true `
-CharactersToRemove @(255)
```
## Parameters
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| WatchFolder | String | C:\Dnc_Files\Q | Folder to monitor |
| FileFilter | String | *.pun | File pattern to watch |
| IncludeSubfolders | Boolean | $true | Watch subdirectories |
| CharactersToRemove | Int[] | @(255) | Byte values to strip |
## Output
The script displays real-time activity:
```
========================================
eDNC Special Character Fix v1.0.0
========================================
Configuration:
Watch Folder: C:\Dnc_Files\Q
File Filter: *.pun
Subfolders: True
Removing bytes: 255 (0xFF)
Watching for files... Press Ctrl+C to stop
2025-12-12 08:30:15 | Created | PART001.pun
[CLEANED] Removed 3 byte(s)
2025-12-12 08:30:22 | Changed | PART002.pun
[OK] No special characters found
```
## Requirements
- Windows PowerShell 5.1 or later
- Read/Write access to the watch folder
## Troubleshooting
### "Watch folder does not exist"
Create the folder or specify a different path with `-WatchFolder`.
### "File locked" errors (v1.0.0)
If using v1.0.0, update to v1.1.0 for improved file locking handling with exponential backoff and stability checks.
### Script doesn't detect files
- Verify the file extension matches `-FileFilter`
- Check that `-IncludeSubfolders` is set correctly
- Ensure the script has permissions to the folder
### "[WAIT] File still being written..."
This is normal behavior. The script waits for the file size to stabilize before processing, which means eDNC is still transferring the file. The script will automatically process it once the transfer completes.
### "[RETRY] File locked..."
The script uses exponential backoff (500ms → 1s → 2s → 4s → up to 16s) for up to 10 attempts. If you see `[FAILED]` messages, eDNC may be holding the file longer than expected.
## Version History
| Version | Date | Changes |
|---------|------|---------|
| 1.3.0 | 2025-12-12 | Fixed header UI, live status/stats, auto-elevate to Administrator |
| 1.2.1 | 2025-12-12 | Added GE Aerospace ASCII banner |
| 1.2.0 | 2025-12-12 | Immediate processing: 50ms delay, aggressive retry (100ms+), 15 attempts |
| 1.1.0 | 2025-12-12 | Improved file locking: stability check, exponential backoff, debouncing |
| 1.0.0 | 2025-12-12 | Initial release |
## Author
GE Aerospace - Rutland