# 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` or create a shortcut ### 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 The script retries up to 3 times if a file is locked. If errors persist, the file may be in use by another application. ### 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 ## Version History | Version | Date | Changes | |---------|------|---------| | 1.0.0 | 2025-12-12 | Initial release | ## Author GE Aerospace - Rutland