<?php
	
	$DEBUG = false;
	
	if ($DEBUG == true) { exit; }
	
	include('config.php');
	require('routeros_api_silent.class.php');
	
	$RESPONSE_ARRAY = array();
	
	function ConvertSpeed($bits) { 
	
		switch(true) {
			case $bits <= 1000:
				return round($bits, 2);
				break;
			case $bits <= 1048576:
				return round(($bits / 1024), 2);
				break;
			case $bits <= 1073741824:
				return round(($bits / 1048576), 2);
				break;
			case $bits <= 1099511627776:
				return round(($bits / 1073741824), 2);
				break;
			case $bits >= 1099511627776:
				return round(($bits / 1099511627776), 2);
				break;
			default:
				return 'nd';
				break;
		}
		
	} 
	function ConvertSpeedType($bits) { 
	
		switch(true) {
			case $bits <= 1000:
				return 'B';
				break;
			case $bits <= 1048576:
				return 'KB';
				break;
			case $bits <= 1073741824:
				return 'MB';
				break;
			case $bits <= 1099511627776:
				return 'GB';
				break;
			case $bits >= 1099511627776:
				return 'TB';
				break;
			default:
				return 'nd';
				break;
		}
		
	} 

	switch ($_POST['COMMAND']) {
		case 'CheckConnection':
						$API = new RouterosAPI();
						$API->debug = false;
						if ($API->connect($_POST['BB_IP_ADDRESS'], $_POST['BB_USERNAME'], $_POST['BB_PASSWORD'])) {
							$API->disconnect();
						    $RESPONSE_ARRAY['ConnectioState'] = 'Success';
							echo json_encode($RESPONSE_ARRAY);							
						} else {
							$RESPONSE_ARRAY['ConnectioState'] = 'Error';
							echo json_encode($RESPONSE_ARRAY);
						}
						break;
						
		case 'GetInterface':
						$API = new RouterosAPI();
						$API->debug = false;
						if ($API->connect($_POST['BB_IP_ADDRESS'], $_POST['BB_USERNAME'], $_POST['BB_PASSWORD'])) {
						   $API->write('/interface/ethernet/print');
						   $READ = $API->read(false);
						   $ARRAY_INTERFACES = $API->parseResponse($READ);
						   $API->write('/system/identity/print');
						   $READ = $API->read(false);
						   $ARRAY_IDENTITY = $API->parseResponse($READ);
						   $API->write('/system/resource/print');
						   $READ = $API->read(false);
						   $ARRAY_RESOURCE = $API->parseResponse($READ);
						   $API->disconnect();
						   
							$RESPONSE_ARRAY['ConnectioState'] = 'IDet';
							$RESPONSE_ARRAY['Identity'] = $ARRAY_IDENTITY[0]['name'];
							$RESPONSE_ARRAY['Resource'] = $ARRAY_RESOURCE;
							$RESPONSE_ARRAY['Interfaces'] = $ARRAY_INTERFACES;
							
							echo json_encode($RESPONSE_ARRAY);
							
						} else {
							$RESPONSE_ARRAY['ConnectioState'] = 'Error';
							echo json_encode($RESPONSE_ARRAY);
						} 
						break;
		
		case 'GetInterfaceDetails':
						$API = new RouterosAPI();
						$API->debug = false;
						if ($API->connect($_POST['BB_IP_ADDRESS'], $_POST['BB_USERNAME'], $_POST['BB_PASSWORD'])) {
						   $API->write('/interface/ethernet/print');
						   //$API->write('=detail=');
						   $READ = $API->read(false);
						   $ARRAY_INTERFACES = $API->parseResponse($READ);
						   $API->disconnect();
						   
							$RESPONSE_ARRAY['ConnectioState'] = 'Idet2';
							foreach ($ARRAY_INTERFACES as $key => $value) {
								if ($ARRAY_INTERFACES[$key]['default-name'] == $_POST['IDI']) {
									$RESPONSE_ARRAY['InterfaceData'][] = $ARRAY_INTERFACES[$key];
									$RESPONSE_ARRAY['DownloadBytes'] = ConvertSpeed($ARRAY_INTERFACES[$key]['rx-bytes']).' '.ConvertSpeedType($ARRAY_INTERFACES[$key]['rx-bytes']);
									$RESPONSE_ARRAY['UploadBytes'] = ConvertSpeed($ARRAY_INTERFACES[$key]['tx-bytes']).' '.ConvertSpeedType($ARRAY_INTERFACES[$key]['tx-bytes']);
								}
							}
							
							
							
							echo json_encode($RESPONSE_ARRAY);
							
						} else {
							$RESPONSE_ARRAY['ConnectioState'] = 'Error';
							echo json_encode($RESPONSE_ARRAY);
						}
						break;
						
	}
		
	
	
?>