#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Script wrapper para iniciar o robô de balanceamento e salvar seu PID
Compatível com Windows e Linux
"""

import os
import sys
import json
from pathlib import Path
import time
import subprocess

# Diretório do script
script_dir = Path(__file__).parent.absolute()
pid_file = script_dir / 'robo.pid'
robo_script = script_dir / 'robo_balanceamento.py'

def iniciar_robo():
    """Inicia o robô e salva seu PID"""
    
    # Verificar se robo_balanceamento.py existe
    if not robo_script.exists():
        print(f"Erro: {robo_script} não encontrado", file=sys.stderr)
        sys.exit(1)
    
    # Salvar PID do processo atual
    pid = os.getpid()
    try:
        with open(pid_file, 'w') as f:
            f.write(str(pid))
        # Garantir que o arquivo tenha permissões de leitura
        os.chmod(pid_file, 0o666)
    except Exception as e:
        print(f"Aviso: Não consegui salvar PID em {pid_file}: {e}", file=sys.stderr)
        # Continuar mesmo assim
    
    # Executar robô principal
    try:
        import robo_balanceamento
        # Se conseguir importar, executar diretamente
        if hasattr(robo_balanceamento, 'main'):
            robo_balanceamento.main()
        else:
            # Executar o script
            exec(open(robo_script).read())
    except Exception as e:
        # Se falhar a importação, tentar exec
        try:
            with open(robo_script) as f:
                exec(f.read())
        except Exception as e:
            print(f"Erro ao executar robô: {e}", file=sys.stderr)
            if pid_file.exists():
                try:
                    pid_file.unlink()
                except:
                    pass
            sys.exit(1)

if __name__ == '__main__':
    iniciar_robo()
