remote setup
This commit is contained in:
125
setup_controller.sh
Normal file
125
setup_controller.sh
Normal file
@@ -0,0 +1,125 @@
|
||||
#!/bin/bash
|
||||
# Setup script for IR controller mapping
|
||||
|
||||
echo "=========================================="
|
||||
echo "IR Controller Setup Script"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check if we're on the Raspberry Pi
|
||||
if ! command -v python3 &> /dev/null; then
|
||||
echo "Error: Python3 not found. Please install Python3."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if RPi.GPIO is available
|
||||
python3 -c "import RPi.GPIO" 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: RPi.GPIO not available. This script requires Raspberry Pi hardware."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "This script will help you set up your IR remote controller."
|
||||
echo "It will:"
|
||||
echo "1. Integrate the custom protocol decoder into your IR system"
|
||||
echo "2. Run the controller setup to map your remote buttons"
|
||||
echo ""
|
||||
|
||||
read -p "Do you want to continue? (y/n): " -n 1 -r
|
||||
echo ""
|
||||
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Setup cancelled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Step 1: Integrating custom protocol decoder..."
|
||||
echo "=============================================="
|
||||
|
||||
# Check if custom protocol files exist
|
||||
if [ ! -f "custom_ir_protocol_final.py" ]; then
|
||||
echo "Error: custom_ir_protocol_final.py not found!"
|
||||
echo "Please make sure the custom protocol decoder is available."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Backup existing files
|
||||
echo "Backing up existing IR system files..."
|
||||
mkdir -p backup_ir_system
|
||||
cp ir_remote.py backup_ir_system/ 2>/dev/null || echo "ir_remote.py not found, skipping backup"
|
||||
cp simple_ir_listener.py backup_ir_system/ 2>/dev/null || echo "simple_ir_listener.py not found, skipping backup"
|
||||
cp simple_ir_listener_polling.py backup_ir_system/ 2>/dev/null || echo "simple_ir_listener_polling.py not found, skipping backup"
|
||||
|
||||
# Update ir_remote.py to include custom protocol
|
||||
echo "Updating ir_remote.py..."
|
||||
if [ -f "ir_remote.py" ]; then
|
||||
# Add import for custom protocol
|
||||
if ! grep -q "from custom_ir_protocol_final import CustomIRProtocol" ir_remote.py; then
|
||||
# Find the import section and add our import
|
||||
sed -i '/^import /a from custom_ir_protocol_final import CustomIRProtocol' ir_remote.py
|
||||
fi
|
||||
|
||||
# Update the protocols initialization
|
||||
sed -i 's/protocols or \[NECProtocol(), RC5Protocol()\]/protocols or [NECProtocol(), RC5Protocol(), CustomIRProtocol()]/' ir_remote.py
|
||||
echo "✅ Updated ir_remote.py"
|
||||
else
|
||||
echo "⚠️ ir_remote.py not found, skipping update"
|
||||
fi
|
||||
|
||||
# Update simple listeners
|
||||
echo "Updating simple IR listeners..."
|
||||
for listener in simple_ir_listener.py simple_ir_listener_polling.py; do
|
||||
if [ -f "$listener" ]; then
|
||||
# Add import for custom protocol
|
||||
if ! grep -q "from custom_ir_protocol_final import CustomIRProtocol" "$listener"; then
|
||||
sed -i '/^import /a from custom_ir_protocol_final import CustomIRProtocol' "$listener"
|
||||
fi
|
||||
|
||||
# Update the protocols initialization
|
||||
sed -i 's/protocols or \[NECProtocol(), RC5Protocol()\]/protocols or [NECProtocol(), RC5Protocol(), CustomIRProtocol()]/' "$listener"
|
||||
sed -i 's/\[NECProtocol(), RC5Protocol()\]/[NECProtocol(), RC5Protocol(), CustomIRProtocol()]/' "$listener"
|
||||
echo "✅ Updated $listener"
|
||||
else
|
||||
echo "⚠️ $listener not found, skipping update"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Step 2: Running controller setup..."
|
||||
echo "=================================="
|
||||
|
||||
# Check if controller setup script exists
|
||||
if [ ! -f "quick_controller_setup.py" ]; then
|
||||
echo "Error: quick_controller_setup.py not found!"
|
||||
echo "Please make sure the controller setup script is available."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Starting controller setup..."
|
||||
echo "This will guide you through mapping your remote buttons."
|
||||
echo ""
|
||||
|
||||
# Run the controller setup
|
||||
python3 quick_controller_setup.py
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "SETUP COMPLETE!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Your IR controller has been set up successfully."
|
||||
echo "The mappings have been saved to ir_mapping.json"
|
||||
echo ""
|
||||
echo "You can now use your IR remote with the video player system."
|
||||
echo ""
|
||||
echo "To test the setup, run:"
|
||||
echo " python3 simple_ir_listener_polling.py --verbose"
|
||||
echo ""
|
||||
echo "Backup files are in: backup_ir_system/"
|
||||
else
|
||||
echo ""
|
||||
echo "Setup failed or was interrupted."
|
||||
echo "You can restore from backup if needed."
|
||||
fi
|
||||
Reference in New Issue
Block a user