<?php
 
 
require_once 'cli.php';
 
 
//standard cli samples
 
gCli()->showCursor(false);
 
gCli()->setbgColor('black');
 
gCli()->setColor('white');
 
gCli()->clearScrean();
 
 
gCli()->gotoXY(5,1);
 
echo 'Hello';
 
gCli()->gotoXY(5,2);
 
echo gCli()->textParser('%red%Red text%rst%');
 
 
gCli()->thickBorder(20, 2, 20, 10, 'Hello window');
 
 
gCli()->gotoXY(5,3);
 
echo 'Press any key';
 
gCli()->gotoXY(5,4);
 
echo 'to continue';
 
 
 
 
while (true) {
 
    gCli()->gotoXY(5,5);    
 
    echo gCli()->textParser('%spinner%  [%knightrider%]');
 
    $c = gCli()->isKeypressed();
 
    
 
    if ($c) {
 
        break;
 
    }
 
}
 
 
 
//Windowing system
 
gCli()->clearScrean();
 
gCli()->gotoXY(1, 1);
 
 
$infoWindow = new gWindow(1, 1, 80, 14, 'G-Lex\'s CLI magics');
 
$infoWindow->draw();
 
$statusWindow = new gWindow(81, 1, 50, 14, 'System status');
 
$statusWindow->draw();
 
 
 
$infoWindow->addLine('Version: %green;bold% 1.0' );
 
$infoWindow->addLine(' ');
 
$infoWindow->addLine('You can hold a lot of texts within this area');
 
$infoWindow->addLine('%green%Press%rst% %red%x%rst% to exit');
 
 
$statusSystem = $statusWindow->addStatusSignal('%white;bold%System%rst%');
 
$statusDriver = $statusWindow->addStatusSignal('Camera driver');
 
$statusCamera = $statusWindow->addStatusSignal('Camera status', '%red;faint%offline%rst%');
 
$statusConnection = $statusWindow->addStatusSignal('Camera connection');
 
$statusCameraWarming = $statusWindow->addStatusSignal('Camera warming');
 
$statusAlarm = $statusWindow->addStatusSignal('Alarm');
 
$statusMotion = $statusWindow->addStatusSignal('Motion');
 
$statusKeyframes = $statusWindow->addStatusSignal('Keyframes');
 
$statusAutopan = $statusWindow->addStatusSignal('AutoPan');
 
$statusPanPos = $statusWindow->addStatusSignal('PanPosition');
 
$statusSystem->setSignal('%yellow;bold%init%rst%', true);
 
 
 $statusDriver->setSignal(true, true);
 
 
$statusConnection->setSignal(true, true);
 
$statusCamera->setSignal('%yellow;bold%online%rst%', true);
 
 
 
$statusPanPos->setSignal('0x0', true);
 
$statusCamera->setSignal('%yellow;bold%ready%rst%', true);
 
 
 
$statusCamera->setSignal('%yellow;bold%centering%rst%', true);
 
$statusCameraWarming->setSignal('%knightrider%');
 
 
$warmupEnd = time() + 5;
 
while ($warmupEnd > time()) {
 
    $statusCameraWarming->setSignal('%knightrider%');
 
    usleep(10000);
 
}
 
$statusCameraWarming->setSignal('%green;bold%ready%rst%');
 
$statusCamera->setSignal('%green;bold%online%rst%', true);
 
$statusSystem->setSignal('%green;bold%ARMED%rst%', true);
 
$statusAlarm->setSignal('%green;bold%no%rst%', true);
 
$statusMotion->setSignal('%green;bold%no%rst%', true);
 
 
 while (true) {
 
    $c = gCli()->isKeypressed();
 
    if ($c) {
 
        $infoWindow->addLine(dateStamp().'KeyCode: '.ord($c).' | '.  dechex(ord($c)));
 
    }    
 
    
 
    if ($c == 'x') {
 
        break;
 
    }
 
    
 
    
 
}
 
 
 
gCli()->clearScrean();
 
gCli()->gotoXY(1, 1);
 
gCli()->showCursor(true);
 
 |