@echo off
setlocal
cd /d "%~dp0"
title JPLuz Scanner v64 - PARAR TUDO

echo.
echo Solicitando parada de TODOS os modulos JPLuz Scanner...
> ".jpluz_scanner_stop" echo stop

rem Aguarda o supervisor encerrar os filhos de forma controlada.
for /L %%I in (1,1,12) do (
  powershell -NoProfile -ExecutionPolicy Bypass -Command "$p=Get-CimInstance Win32_Process -Filter \"Name='python.exe' OR Name='pythonw.exe'\" ^| Where-Object { $_.CommandLine -like '*jpluz_supervisor.py*' -and $_.CommandLine -like ('*'+(Get-Location).Path+'*') }; if($p){exit 1}else{exit 0}" >nul 2>&1
  if not errorlevel 1 goto :OK
  timeout /t 1 /nobreak >nul
)

rem Fallback: encerra SOMENTE scripts JPLuz desta pasta se algum processo ficou preso.
powershell -NoProfile -ExecutionPolicy Bypass -Command "$base=(Get-Location).Path; $names=@('jpluz_supervisor.py','jpluz_scanner.py','camera_gateway.py','video_tunnel.py','plate_watchdog.py','plate_reader.py'); Get-CimInstance Win32_Process -Filter \"Name='python.exe' OR Name='pythonw.exe'\" ^| Where-Object { $c=$_.CommandLine; $c -like ('*'+$base+'*') -and ($names ^| Where-Object { $c -like ('*'+$_+'*') }) } ^| ForEach-Object { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }" >nul 2>&1

:OK
if exist ".jpluz_scanner_stop" del /q ".jpluz_scanner_stop" >nul 2>&1
echo.
echo TODOS OS MODULOS DO JPLUZ SCANNER FORAM PARADOS.
echo Scanner de rede + Video + Tunnel + Leitor de Placas + Watchdog.
echo.
pause
