#!/bin/sh /etc/rc.common
START=49
STOP=10
USE_PROCD=1

# Configuration paths
QUEUE_DIR="/tmp/at_queue"
RESULTS_DIR="$QUEUE_DIR/results"
LOG_DIR="/www/signal_graphs"

start_service() {
    # Ensure required directories exist
    mkdir -p "$QUEUE_DIR" "$RESULTS_DIR" "$LOG_DIR"
    chmod 755 "$QUEUE_DIR" "$RESULTS_DIR" "$LOG_DIR"
    
    # Start the AT Command Queue Manager
    echo "Starting AT Command Queue Manager..."
    procd_open_instance
    procd_set_param command /www/cgi-bin/services/at_queue_manager.sh
    procd_set_param respawn
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_close_instance
    echo "AT Queue Manager Started"

    # Start the Signal Metrics Logger
    echo "Starting Signal Metrics Logger..."
    procd_open_instance
    procd_set_param command /www/cgi-bin/services/log_signal_metrics.sh
    procd_set_param respawn
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_close_instance
    echo "Signal Metrics Logger started"

    # Start the QCAINFO Interpreter
    echo "Starting QCAINFO Interpreter..."
    procd_open_instance
    procd_set_param command /www/cgi-bin/services/network_insights_interpreter.sh
    procd_set_param respawn
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_close_instance
    echo "QCAINFO Interpreter started"

    # Start ping daemon if enabled in configuration
    PING_CONFIG_FILE="/etc/quecmanager/settings/ping_settings.conf"
    if [ -f "$PING_CONFIG_FILE" ]; then
        PING_ENABLED=$(awk -F'=' '/^PING_ENABLED=/ {print $2}' "$PING_CONFIG_FILE" 2>/dev/null | tr -d '"' | tr -d ' ')
        echo "Ping config found. PING_ENABLED='$PING_ENABLED'"
        
        case "$PING_ENABLED" in
            true|1|on|yes|enabled)
                echo "Starting Ping Daemon..."
                procd_open_instance
                procd_set_param command /www/cgi-bin/services/ping_daemon.sh
                procd_set_param respawn
                procd_set_param stdout 1
                procd_set_param stderr 1
                procd_close_instance
                echo "Ping Daemon started"
                ;;
            *)
                echo "Ping Daemon disabled in configuration (value: '$PING_ENABLED')"
                ;;
        esac
    else
        echo "Ping configuration not found at $PING_CONFIG_FILE, skipping Ping Daemon"
    fi

    # Start memory daemon if enabled in configuration
    CONFIG_FILE="/etc/quecmanager/settings/memory_settings.conf"
    if [ -f "$CONFIG_FILE" ]; then
        # More robust parsing for OpenWrt/BusyBox
        MEMORY_ENABLED=$(awk -F'=' '/^MEMORY_ENABLED=/ {print $2}' "$CONFIG_FILE" 2>/dev/null | tr -d '"' | tr -d ' ')
        echo "Memory config found. MEMORY_ENABLED='$MEMORY_ENABLED'"
        
        case "$MEMORY_ENABLED" in
            true|1|on|yes|enabled)
                echo "Starting Memory Daemon..."
                procd_open_instance
                procd_set_param command /www/cgi-bin/services/memory_daemon.sh
                procd_set_param respawn
                procd_set_param stdout 1
                procd_set_param stderr 1
                procd_close_instance
                echo "Memory Daemon started"
                ;;
            *)
                echo "Memory Daemon disabled in configuration (value: '$MEMORY_ENABLED')"
                ;;
        esac
    else
        echo "Memory configuration not found at $CONFIG_FILE, skipping Memory Daemon"
    fi

    echo "All QuecManager services Started"
}

stop_service() {
    # procd will handle stopping all instances automatically
    echo "Stopping QuecManager services."
}