function alarmLogger($timestamp, $ip, $mac, $log, $sev)
{
    require "daemon_db_init.php";
    require_once "daemon_getDeviceIdPerIp.php";
    $deviceid = getDeviceIdPerIp($ip);
    $ip = "'" . $ip . "'";
    $des = "'" . "" . "'";
    $mac = "'" . $mac . "'";
    $log = "'" . $log . "'";
    $ack = "'" . "no" . "'";
    $sev = "'" . $sev . "'";
    $query = "INSERT INTO PUBLIC.daemonalarm (deviceid, time, ip, description, mac, severity, logs, ack) VALUES (\n\t\t{$deviceid},\n\t\t{$timestamp},\n\t\t{$ip},\n\t\t{$des},\n\t\t{$mac},\n\t\t{$sev},\n\t\t{$log},\n\t\t{$ack});";
    $result = pg_query($query) or die('Query failed: ' . pg_last_error());
    pg_free_result($result);
    pg_close($dbconn);
    //echo "Alarm ok!";
}
			background-color: #000000;
			color: white;

		}

		td{
			height: 40px;
			padding: 10px;
		}
	</style> -->

	<?php 
session_start();
require "daemon_db_init.php";
require "daemon_getDeviceIdPerIp.php";
$deviceid = getDeviceIdPerIp($_GET['ip']);
// $target_ip = "'" . "10.100.0.50" . "%'";
$_SESSION['deviceid'] = $deviceid;
//echo $_SESSION['deviceid'];
echo "<b>Status Values of EG1550.</b><br>";
echo "<hr>";
echo "<img src='images/EG1550TX_product.png' alt='EG1550TX Series' height='250', width='250'>";
// $query = "SELECT
// 	dameonsnmp1550value.time
// 	FROM
// 	public.dameonsnmp1550value;";
// $result = pg_query($query) or die('Query failed: ' . pg_last_error());
// while ($row = pg_fetch_object($result)) {
// 	$time = $row->time;
// }
// $time = "'" . strval($time) .  "'";
function daemon_snmpScanIntoDb_1550($ip)
{
    // TO-DO: 1) extract all snmp value from 1550, 2) check if the table is existed, 3) if not existed, create it, and 4) put it into db. This action should be wrapped in a function.
    // header for initialization
    $genericSnmpPath = $_SERVER["DOCUMENT_ROOT"] . "/vanguardhe/php_scripts/oidget/genericSnmp.php";
    require_once $genericSnmpPath;
    // to initialize snmp
    require "daemon_db_init.php";
    // to initialize database connection
    require_once "daemon_getDeviceIdPerIp.php";
    // to initialize database connection
    // 1, extract all snmp value from 1550
    //$timestamp = "'" . date('YmdGis') . "'";
    $deviceid = getDeviceIdPerIp($ip);
    //echo $deivceid;
    global $timestamp;
    $recordedIp = trim(deco_1550($ip));
    $sysDescr = deco_1550(snmpget_smallp($ip, ".1.3.6.1.2.1.1.1.0"));
    $sysObjectID = deco_1550(snmpget_smallp($ip, ".1.3.6.1.2.1.1.2.0"));
    $sysUpTime = deco_1550(snmpget_smallp($ip, ".1.3.6.1.2.1.1.3.0"));
    $sysContact = deco_1550(snmpget_smallp($ip, ".1.3.6.1.2.1.1.4.0"));
    $sysName = deco_1550(snmpget_smallp($ip, ".1.3.6.1.2.1.1.5.0"));
    $sysLocation = deco_1550(snmpget_smallp($ip, ".1.3.6.1.2.1.1.6.0"));
    $sysService = deco_1550(snmpget_smallp($ip, ".1.3.6.1.2.1.1.7.0"));
    $defaultIp = trim(deco_1550(snmpget_smallp($ip, ".1.3.6.1.4.1.33826.3.1.1.0")));
    $defaultMac = deco_1550(snmpget_smallp($ip, ".1.3.6.1.4.1.33826.3.1.5.0"));
    $value[0] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.1.1");
    $value[1] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.2.1");
    $value[2] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.3.1");
    $value[3] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.4.1");
    $value[4] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.5.1");
    $value[5] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.6.1");
    $value[6] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.7.1");
    $value[7] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.8.1");
    $value[8] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.9.1");
    $value[9] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.10.1");
    $value[10] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.11.1");
    $value[11] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.12.1");
    $value[12] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.13.1");
    $value[13] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.14.1");
    $value[14] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.15.1");
    $value[15] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.16.1");
    $value[16] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.17.1");
    $value[17] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.18.1");
    $value[18] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.19.1");
    $value[19] = snmpget_smallp($ip, ".1.3.6.1.4.1.3222.4.6.1.1.20.1");
    for ($i = 0; $i < 20; $i++) {
        # code...
        $value[$i] = deco_1550($value[$i]);
    }
    $lab[0] = "StatusIndex";
    $lab[1] = "IDcode";
    $lab[2] = "subID";
    $lab[3] = "FirmwareVersion";
    $lab[4] = "Laser IM";
    $lab[5] = "Laser Temperature (C)";
    $lab[6] = "Laser Bias";
    $lab[7] = "RF Modulation Level";
    $lab[8] = "DC24V Voltage";
    $lab[9] = "DC12V Voltage";
    $lab[10] = "DC5V Voltage";
    $lab[11] = "-5VDC Voltage";
    $lab[12] = "Tx Optical Power";
    $lab[13] = "Gain Control Setting";
    $lab[14] = "SBS CONTROL Setting";
    $lab[15] = "CTB_CONTROL_Setting";
    $lab[16] = "Tx RF Module Level";
    $lab[17] = "Present AC Power 1 status";
    $lab[18] = "Present AC Power 2 status";
    $lab[19] = "Tx AC Power supply status";
    // 2, check if the table "dameonSnmp1550Value" in the database "vanguardhe"
    $query_exist = "SELECT relname FROM pg_class \n\tWHERE relname = 'dameonsnmp1550value';";
    $result_exist = pg_query($query_exist) or die('Query failed: ' . pg_last_error());
    $exist = '';
    while ($row_exist = pg_fetch_object($result_exist)) {
        $exist = $row_exist->relname;
    }
    // // 3, if not existed, create it
    if ($exist != "dameonsnmp1550value") {
        # code...
        $query_construct = "CREATE TABLE PUBLIC.dameonsnmp1550value(\n\t\t\tdeviceid int,\n\t\t\ttime           TEXT    ,\n\t\t\trecordip\tTEXT,\n\t\t\tdescription            TEXT  ,\n\t\t\toids       TEXT,\n\t\t\tuptime         TEXT,\n\t\t\tcontact         TEXT,\n\t\t\tname        TEXT,\n\t\t\tlocation         TEXT,\n\t\t\tservice        TEXT,\n\t\t\tip         TEXT,\n\t\t\tmac         MACADDR,\n\t\t\tstatusindex            TEXT  ,\n\t\t\tidcode       TEXT,\n\t\t\tsubID         TEXT,\n\t\t\tFirmwareVersion         TEXT,\n\t\t\tLaserIM        TEXT,\n\t\t\tLaserTemperature        TEXT,\n\t\t\tLaserBias        TEXT,\n\t\t\tRFModulationLevel         TEXT,\n\t\t\tDC24VVoltage         TEXT,\n\t\t\tDC12VVoltage            TEXT  ,\n\t\t\tDC5VVoltage      TEXT,\n\t\t\tminor5VDCVoltage         TEXT,\n\t\t\tTxOpticalPower         TEXT,\n\t\t\tGainControlSetting        TEXT,\n\t\t\tSBSCONTROLSetting        TEXT,\n\t\t\tCTBCONTROLSetting       TEXT,\n\t\t\tTxRFModuleLevel         TEXT,\n\t\t\tPresentACPower1status        TEXT,\n\t\t\tPresentACPower2status         TEXT,\n\t\t\tTxACPowersupplystatus       TEXT\t\t\t);";
        $result_construct = pg_query($query_construct) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct);
    }
    // 4, insert data into the table
    $query_insert = "INSERT INTO PUBLIC.dameonsnmp1550value VALUES ({$deviceid}, {$timestamp}, {$recordedIp}, {$sysDescr}, {$sysObjectID}, {$sysUpTime}, {$sysContact}, {$sysName}, {$sysLocation}, {$sysService}, {$defaultIp}, {$defaultMac}, {$value['0']}, {$value['1']}, {$value['2']}, {$value['3']}, {$value['4']}, {$value['5']}, {$value['6']}, {$value['7']}, {$value['8']}, {$value['9']}, {$value['10']}, {$value['11']}, {$value['12']}, {$value['13']}, {$value['14']}, {$value['15']}, {$value['16']}, {$value['17']}, {$value['18']}, {$value['19']});";
    $result_insert = pg_query($query_insert) or die('Query failed: ' . pg_last_error());
    // 5, check if the table "dameonSnmp1550Summary" in the database "vanguardhe": this table is for the other maybe info further
    $query_exist_sum = "SELECT relname FROM pg_class \n\tWHERE relname = 'dameonsnmp1550summary';";
    $result_exist_sum = pg_query($query_exist_sum) or die('Query failed: ' . pg_last_error());
    $exist_sum = '';
    while ($row_exist_sum = pg_fetch_object($result_exist_sum)) {
        $exist_sum = $row_exist_sum->relname;
    }
    // // 3, if not existed, create it
    if ($exist_sum != "dameonsnmp1550summary") {
        # code...
        $query_construct_sum = "CREATE TABLE PUBLIC.dameonsnmp1550summary(\n\t\t\tdescription\tText,\n\t\t\tcomments           TEXT  \t\t);";
        $result_construct_sum = pg_query($query_construct_sum) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct_sum);
    }
    pg_free_result($result_exist);
    pg_free_result($result_insert);
    pg_free_result($result_exist_sum);
    pg_close($dbconn);
}
function daemon_snmpScanIntoDb_egfa($ip)
{
    // TO-DO: 1) extract all snmp value from efga, 2) check if the table is existed, 3) if not existed, create it, and 4) put it into db. This action should be wrapped in a function.
    // header for initialization
    $genericSnmpPath = $_SERVER["DOCUMENT_ROOT"] . "/vanguardhe/php_scripts/oidget/genericSnmp.php";
    require_once $genericSnmpPath;
    // to initialize snmp
    require "daemon_db_init.php";
    // to initialize database connection
    require_once "daemon_getDeviceIdPerIp.php";
    // to initialize database connection
    // 1, extract all snmp value from efga
    //$timestamp = "'" . date('YmdGis') . "'";
    $deviceid = getDeviceIdPerIp($ip);
    global $timestamp;
    $sysDescr = deco_egfa(snmpget_bigP($ip, ".1.3.6.1.2.1.1.1.0"));
    $sysObjectID = deco_egfa(snmpget_bigP($ip, ".1.3.6.1.2.1.1.2.0"));
    $sysUpTime = deco_egfa(snmpget_bigP($ip, ".1.3.6.1.2.1.1.3.0"));
    $sysContact = deco_egfa(snmpget_bigP($ip, ".1.3.6.1.2.1.1.4.0"));
    $sysName = deco_egfa(snmpget_bigP($ip, ".1.3.6.1.2.1.1.5.0"));
    $sysLocation = deco_egfa(snmpget_bigP($ip, ".1.3.6.1.2.1.1.6.0"));
    $sysService = deco_egfa(snmpget_bigP($ip, ".1.3.6.1.2.1.1.7.0"));
    $defaultIp = trim(deco_egfa(snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.1.9.0")));
    $defaultMac = deco_egfa(snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.2.1.1.1.0"));
    $value[0] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.2.0");
    // "Output Optical Power"
    $value[1] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.3.0");
    // "Input Optical Power";
    $value[2] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.4.1.4.1");
    // "Pump Temperature 1";
    $value[3] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.4.1.4.2");
    //"Pump Temperature 2";
    $value[4] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.4.1.4.3");
    // "Pump Temperature 3";
    $value[5] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.5.0");
    //"Number of DC Power Supply";
    $value[6] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.6.0");
    //"DC Power Supply Mode";
    $value[7] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.7.1.2.1");
    // "DC +5V"
    $value[8] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.7.1.2.2");
    // "DC -5V";
    $value[9] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.7.1.2.3");
    // "DC +3.3V"
    $value[10] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.7.1.2.4");
    //  "DC +12V";
    $value[11] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.7.1.2.5");
    // "Left +5V"
    $value[12] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.7.1.2.6");
    // "Right +5V";
    $value[13] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.7.1.2.7");
    // "Left -5V";
    $value[14] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.11.7.1.2.8");
    //  "Right -5V";
    $value[15] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.3.2.2.1.18.1");
    // "Device Manufactoring Date";
    $value[16] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.3.2.2.1.19.1");
    // Firmware Version";
    $value[17] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.1.3.0");
    //   Model";
    $value[18] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.1.4.0");
    // Serial Number";
    $value[19] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.1.5.0");
    // "Vendor";
    $value[20] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.1.10.0");
    // Check Code";
    $value[21] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.1.12.0");
    // "Tamper Status";
    $value[22] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.1.13.0");
    // Internal Temperature";
    $value[23] = snmpget_bigP($ip, ".1.3.6.1.4.1.17409.1.3.1.17.0");
    // "Craft Status";
    for ($i = 0; $i < 24; $i++) {
        # code...
        $value[$i] = deco_egfa($value[$i]);
    }
    $lab[0] = "StatusIndex";
    $lab[1] = "IDcode";
    $lab[2] = "subID";
    $lab[3] = "FirmwareVersion";
    $lab[4] = "Laser IM";
    $lab[5] = "Laser Temperature (C)";
    $lab[6] = "Laser Bias";
    $lab[7] = "RF Modulation Level";
    $lab[8] = "DC24V Voltage";
    $lab[9] = "DC12V Voltage";
    $lab[10] = "DC5V Voltage";
    $lab[11] = "-5VDC Voltage";
    $lab[12] = "Tx Optical Power";
    $lab[13] = "Gain Control Setting";
    $lab[14] = "SBS CONTROL Setting";
    $lab[15] = "CTB_CONTROL_Setting";
    $lab[16] = "Tx RF Module Level";
    $lab[17] = "Present AC Power 1 status";
    $lab[18] = "Present AC Power 2 status";
    $lab[19] = "Tx AC Power supply status";
    // 2, check if the table "dameonSnmpEGFAValue" in the database "vanguardhe"
    $query_exist = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemonsnmpegfavalue';";
    $result_exist = pg_query($query_exist) or die('Query failed: ' . pg_last_error());
    $exist = 'not here';
    while ($row_exist = pg_fetch_object($result_exist)) {
        $exist = $row_exist->relname;
    }
    // // 3, if not existed, create it
    if ($exist != "daemonsnmpegfavalue") {
        # code...
        $query_construct = "CREATE TABLE PUBLIC.daemonsnmpegfavalue(\n\t\t\tdeviceid\tint,\n\t\t\ttime           TEXT    ,\n\t\t\tdescription            TEXT  ,\n\t\t\toids       TEXT,\n\t\t\tuptime         TEXT,\n\t\t\tcontact         TEXT,\n\t\t\tname        TEXT,\n\t\t\tlocation         TEXT,\n\t\t\tservice        TEXT,\n\t\t\tip         TEXT,\n\t\t\tmac         TEXT,\n\t\t\toutputopticalpower            TEXT  ,\n\t\t\tinputopticalpower       TEXT,\n\t\t\tpumptemp1         TEXT,\n\t\t\tpumptemp2         TEXT,\n\t\t\tpumptemp3        TEXT,\n\t\t\tdcpsnumber        TEXT,\n\t\t\tdcpsmode        TEXT,\n\t\t\tdc5v         TEXT,\n\t\t\tdcminor5v         TEXT,\n\t\t\tdc33v            TEXT  ,\n\t\t\tdc12v      TEXT,\n\t\t\tleft5v         TEXT,\n\t\t\tright5v         TEXT,\n\t\t\tleftminor5v       TEXT,\n\t\t\trightminor5v        TEXT,\n\t\t\tmanudate       TEXT,\n\t\t\tfirmware         TEXT,\n\t\t\tmodel        TEXT,\n\t\t\tsn         TEXT,\n\t\t\tvendor       TEXT,\t\n\t\t\tcheckcode         TEXT,\n\t\t\ttamperstatus        TEXT,\n\t\t\tinternaltemp         TEXT,\n\t\t\tcraftstatus       TEXT\n\t\t\t);";
        $result_construct = pg_query($query_construct) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct);
    }
    // 4, insert data into the table
    $query_insert = "INSERT INTO PUBLIC.daemonsnmpegfavalue VALUES ({$deviceid}, {$timestamp}, {$sysDescr}, {$sysObjectID}, {$sysUpTime}, {$sysContact}, {$sysName}, {$sysLocation}, \n\t\t{$sysService}, {$defaultIp}, {$defaultMac},  {$value['0']}, {$value['1']}, {$value['2']}, {$value['3']}, {$value['4']}, {$value['5']}, {$value['6']}, {$value['7']}, {$value['8']}, {$value['9']}, {$value['10']}, {$value['11']}, {$value['12']}, {$value['13']}, {$value['14']}, {$value['15']}, {$value['16']}, {$value['17']}, {$value['18']}, {$value['19']}, {$value['20']}, {$value['21']}, {$value['22']}, {$value['23']});";
    $result_insert = pg_query($query_insert) or die('Query failed: ' . pg_last_error());
    // 5, check if the table "daemonsnmpegfasummary" in the database "vanguardhe": this table is for the other maybe info further
    $query_exist_sum = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemonsnmpegfasummary';";
    $result_exist_sum = pg_query($query_exist_sum) or die('Query failed: ' . pg_last_error());
    $exist_sum = '';
    while ($row_exist_sum = pg_fetch_object($result_exist_sum)) {
        $exist_sum = $row_exist_sum->relname;
    }
    // // 3, if not existed, create it
    if ($exist_sum != "daemonsnmpegfasummary") {
        # code...
        $query_construct_sum = "CREATE TABLE PUBLIC.daemonsnmpegfasummary(\n\t\t\tdescription\tText,\n\t\t\tcomments           TEXT  \t\t);";
        $result_construct_sum = pg_query($query_construct_sum) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct_sum);
    }
    pg_free_result($result_exist);
    pg_free_result($result_insert);
    pg_free_result($result_exist_sum);
    pg_close($dbconn);
}
function daemon_snmpScanIntoDb_elink($ip)
{
    $genericSnmpPath = $_SERVER["DOCUMENT_ROOT"] . "/vanguardhe/php_scripts/oidget/genericSnmp.php";
    require_once "daemon_checkElink.php";
    require_once $genericSnmpPath;
    // to initialize snmp
    require "daemon_db_init.php";
    // to initialize database connection
    require_once "daemon_getDeviceIdPerIp.php";
    // to initialize database connection
    // 1, extract all snmp value from 1550
    //$timestamp = "'" . date('YmdGis') . "'";
    $deviceid = getDeviceIdPerIp($ip);
    // get device map
    $onlineDev = elinkSlot($ip);
    // $timestamp = deco_elink(date("j F Y h:i:s A"));
    global $timestamp;
    for ($j = 0; $j < sizeof($onlineDev[0]); $j++) {
        # code...
        $dev[] = $onlineDev[0][$j];
        $devSlot[] = $onlineDev[1][$j];
    }
    // get different device array, and ps/ems always at 16/1 slot
    for ($i = 0; $i < sizeof($dev); $i++) {
        # code...
        switch ($dev[$i]) {
            case 'EL-RRX':
                # code...
                $slot_rrx[] = $devSlot[$i];
                break;
            case 'EL-FTX':
                # code...
                $slot_ftx[] = $devSlot[$i];
        }
    }
    // get EMS all of snmp value
    $pos_ems = "1";
    $sysDescr = deco_elink(snmpget_smallp($ip, ".1.3.6.1.2.1.1.1.0"));
    $sysObjectID = deco_elink(snmpget_smallp($ip, ".1.3.6.1.2.1.1.2.0"));
    $sysUpTime = deco_elink(snmpget_smallp($ip, ".1.3.6.1.2.1.1.3.0"));
    $sysContact = deco_elink(snmpget_smallp($ip, ".1.3.6.1.2.1.1.4.0"));
    $sysName = deco_elink(snmpget_smallp($ip, ".1.3.6.1.2.1.1.5.0"));
    $sysLocation = deco_elink(snmpget_smallp($ip, ".1.3.6.1.2.1.1.6.0"));
    $sysService = deco_elink(snmpget_smallp($ip, ".1.3.6.1.2.1.1.7.0"));
    $alarm = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.2.4.0"));
    $ipadd = trim(deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.9.0")));
    $ems = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.3.1"));
    $ems_sn = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.4.1"));
    $ems_temp = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.1.1.1.1.1.1.2.1.0"));
    $nms[0] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.5.0"));
    // vendro
    $nms[1] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.8.0"));
    // alarm detection
    $nms[2] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.9.0"));
    // ip
    $nms[3] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.10.0"));
    // check code
    $nms[4] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.12.0"));
    // tamper status
    $nms[5] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.13.0"));
    // internal temperarure
    $nms[6] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.17.0"));
    // craft status
    // get PS all of snmp value
    $pos_ps = "16";
    $psu = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.3.16"));
    $psu_sn = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.4.16"));
    $psu_temp = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.1.1.1.1.1.1.2.16.0"));
    $ps[0] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.2.1.1.1.1.3.16.0"));
    // input v
    $ps[1] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.2.1.1.2.1.2.16.0"));
    // output v
    $ps[2] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.2.1.1.2.1.3.16.0"));
    // output ma
    $ps[3] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.2.1.1.2.1.4.16.0"));
    // output W
    // get FAN all of snmp value, 1 is normal, 2 is fault
    $fan[0] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.3.1.1.2.1.3.1.0"));
    $fan[1] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.3.1.1.2.1.3.2.0"));
    $fan[2] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.3.1.1.2.1.3.3.0"));
    $fan[3] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.3.1.1.2.1.3.4.0"));
    $fan[4] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.3.1.1.2.1.3.5.0"));
    $fan[5] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.3.1.1.2.1.3.6.0"));
    $fan[6] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.3.1.1.2.1.3.7.0"));
    $fan[7] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.3.1.1.2.1.3.8.0"));
    // get RRX all of snmp value
    for ($i = 0; $i < sizeof($slot_rrx); $i++) {
        # code...
        //echo $slot_rrx[$i];
        $pos_rrx[] = $slot_rrx[$i];
        $rrx_name[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.3." . $slot_rrx[$i]));
        $rrx_sn[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.4." . $slot_rrx[$i]));
        $rrx_temp[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.1.1.1.1.1.1.2." . $slot_rrx[$i] . ".0"));
        $rrx_input1[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.2.1.1.1.1.2." . $slot_rrx[$i] . ".1"));
        // input power dBm
        $rrx_input2[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.2.1.1.1.1.2." . $slot_rrx[$i] . ".2"));
        $rrx_input3[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.2.1.1.1.1.2." . $slot_rrx[$i] . ".3"));
        $rrx_input4[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.2.1.1.1.1.2." . $slot_rrx[$i] . ".4"));
        $rrx_status1[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.2.1.1.1.1.4." . $slot_rrx[$i] . ".1"));
        // status, 1 is normal, 2 is fault
        $rrx_status2[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.2.1.1.1.1.4." . $slot_rrx[$i] . ".2"));
        $rrx_status3[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.2.1.1.1.1.4." . $slot_rrx[$i] . ".3"));
        $rrx_status4[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.2.1.1.1.1.4." . $slot_rrx[$i] . ".4"));
    }
    // get FTX all of snmp value
    for ($i = 0; $i < sizeof($slot_ftx); $i++) {
        //echo $slot_ftx[$i];
        $pos_ftx[] = $slot_ftx[$i];
        $ftx_name[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.3." . $slot_ftx[$i]));
        $ftx_sn[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.3.1.4." . $slot_ftx[$i]));
        $ftx_temp[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.2.1.1.1.1.1.1.2." . $slot_ftx[$i] . ".0"));
        $ftx_rfinputpower[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.1.1.1.2.1.2." . $slot_ftx[$i] . ".1"));
        // input power dBmV
        $ftx_agcmode[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.1.1.1.2.1.4." . $slot_ftx[$i] . ".0"));
        // AGC MODE   1 OFF , 2 ON
        $ftx_lasertemp[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.1.1.1.3.1.2." . $slot_ftx[$i] . ".0"));
        // laser temp, C
        $ftx_laserbiascurent[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.1.1.1.3.1.3." . $slot_ftx[$i] . ".0"));
        // laer bias current, mA
        $ftx_outputpower[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.1.1.1.3.1.4." . $slot_ftx[$i] . ".0"));
        // laser output power, dBm
        $ftx_thermoeleccoolercurrent[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.1.1.1.3.1.5." . $slot_ftx[$i] . ".0"));
        // thermal electroc cooler current, mA
        $ftx_lasertype[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.1.1.1.3.1.6." . $slot_ftx[$i] . ".0"));
        // laser type
        $ftx_wavelength[] = deco_elink(snmpget_smallp($ip, ".1.3.6.1.4.1.5591.1.11.1.1.1.1.3.1.7." . $slot_ftx[$i] . ".0"));
        // laser wavelength, nm
    }
    // DB1	chech if the table "daemonsnmpelinksummary" in the database "vanguardhe"; this table is for MAC address and maybe other use
    $query_exist_sum = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemonsnmpelinksummary';";
    $result_exist_sum = pg_query($query_exist_sum) or die('Query failed: ' . pg_last_error());
    $exist_sum = '';
    while ($row_exist_sum = pg_fetch_object($result_exist_sum)) {
        $exist_sum = $row_exist_sum->relname;
    }
    // if not existed, create it
    if ($exist_sum != "daemonsnmpelinksummary") {
        # code...
        $query_construct_sum = "CREATE TABLE PUBLIC.daemonsnmpelinksummary(\n\t\t\tmac           TEXT,\n\t\t\tdecription\tText,\n\t\t\tcomments            TEXT );";
        $result_construct_sum = pg_query($query_construct_sum) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct_sum);
    }
    // DB2:  chech if the table "daemonsnmpelinkems" in the database "vanguardhe"; this table is for EMS
    $query_exist_ems = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemonsnmpelinkems';";
    $result_exist_ems = pg_query($query_exist_ems) or die('Query failed: ' . pg_last_error());
    $exist_ems = '';
    while ($row_exist_ems = pg_fetch_object($result_exist_ems)) {
        $exist_ems = $row_exist_ems->relname;
    }
    // if not existed, create it
    if ($exist_ems != "daemonsnmpelinkems") {
        # code...
        $query_construct_ems = "CREATE TABLE PUBLIC.daemonsnmpelinkems(\n\t\t\tdeviceid int,\n\t\t\ttime           TEXT    ,\n\t\t\tslot\tTEXT,  \n\t\t\tdescription            TEXT  ,\n\t\t\toids       TEXT,\n\t\t\tuptime         TEXT,\n\t\t\tcontact         TEXT,\n\t\t\tname        TEXT,\n\t\t\tlocation         TEXT,\n\t\t\tservice        TEXT,\n\t\t\tip         TEXT,\n\t\t\talarm         TEXT,\n\t\t\tmodel        TEXT,\n\t\t\tsn       TEXT,\n\t\t\ttemp         TEXT,\n\t\t\tvendor        TEXT,\n\t\t\talarmdetection         TEXT,\n\t\t\tipaddress        TEXT,\n\t\t\tcheckcode         TEXT,\n\t\t\ttamperstatus         TEXT,\n\t\t\tinternaltemp        TEXT,\n\t\t\tcraftstatus       TEXT\n\t\t\t);";
        $result_construct_ems = pg_query($query_construct_ems) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct_ems);
    }
    // insert data into the table
    $query_insert_ems = "INSERT INTO PUBLIC.daemonsnmpelinkems VALUES ({$deviceid}, {$timestamp}, {$pos_ems}, {$sysDescr}, {$sysObjectID}, {$sysUpTime}, {$sysContact}, {$sysName}, {$sysLocation}, {$sysService}, {$ipadd}, {$alarm}, {$ems}, {$ems_sn}, {$ems_temp}, {$nms['0']}, {$nms['1']}, {$nms['2']}, {$nms['3']}, {$nms['4']}, {$nms['5']}, {$nms['6']});";
    $result_insert_ems = pg_query($query_insert_ems) or die('Query failed: ' . pg_last_error());
    // DB3:  chech if the table "daemonsnmpelinkps" in the database "vanguardhe"; this table is for PS
    $query_exist_ps = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemonsnmpelinkps';";
    $result_exist_ps = pg_query($query_exist_ps) or die('Query failed: ' . pg_last_error());
    $exist_ps = '';
    while ($row_exist_ps = pg_fetch_object($result_exist_ps)) {
        $exist_ps = $row_exist_ps->relname;
    }
    // if not existed, create it
    if ($exist_ps != "daemonsnmpelinkps") {
        # code...
        $query_construct_ps = "CREATE TABLE PUBLIC.daemonsnmpelinkps(\n\t\t\tdeviceid \tINT,\n\t\t\ttime           TEXT    ,\n\t\t\tslot\tTEXT,  \n\t\t\tmodel        TEXT,\n\t\t\tsn       TEXT,\n\t\t\ttemp         TEXT,\n\t\t\tinputv        TEXT,\n\t\t\toutputv         TEXT,\n\t\t\toutputma        TEXT,\n\t\t\toutputw         TEXT\n\t\t\t);";
        $result_construct_ps = pg_query($query_construct_ps) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct_ps);
    }
    // insert data into the table
    $query_insert_ps = "INSERT INTO PUBLIC.daemonsnmpelinkps VALUES ({$deviceid}, {$timestamp}, {$pos_ps}, {$psu}, {$psu_sn}, {$psu_temp}, {$ps['0']}, {$ps['1']}, {$ps['2']}, {$ps['3']});";
    $result_insert_ps = pg_query($query_insert_ps) or die('Query failed: ' . pg_last_error());
    // DB4:  chech if the table "daemonsnmpelinkfan" in the database "vanguardhe"; this table is for fan
    $query_exist_fan = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemonsnmpelinkfan';";
    $result_exist_fan = pg_query($query_exist_fan) or die('Query failed: ' . pg_last_error());
    $exist_fan = '';
    while ($row_exist_fan = pg_fetch_object($result_exist_fan)) {
        $exist_fan = $row_exist_fan->relname;
    }
    // if not existed, create it
    if ($exist_fan != "daemonsnmpelinkfan") {
        # code...
        $query_construct_fan = "CREATE TABLE PUBLIC.daemonsnmpelinkfan(\n\t\t\tdeivceid \tINT,\n\t\t\ttime           TEXT   , \n\t\t\tfan1        TEXT,\n\t\t\tfan2       TEXT,\n\t\t\tfan3         TEXT,\n\t\t\tfan4        TEXT,\n\t\t\tfan5         TEXT,\n\t\t\tfan6        TEXT,\n\t\t\tfan7         TEXT,\n\t\t\tfan8\t\tTEXT\n\t\t\t);";
        $result_construct_fan = pg_query($query_construct_fan) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct_fan);
    }
    // insert data into the table
    $query_insert_fan = "INSERT INTO PUBLIC.daemonsnmpelinkfan VALUES ({$deviceid}, {$timestamp}, {$fan['0']}, {$fan['1']}, {$fan['2']}, {$fan['3']}, {$fan['4']}, {$fan['5']}, {$fan['6']}, {$fan['7']});";
    $result_insert_fan = pg_query($query_insert_fan) or die('Query failed: ' . pg_last_error());
    // DB5:  chech if the table "daemonsnmpelinkrrx" in the database "vanguardhe"; this table is for RRX
    $query_exist_rrx = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemonsnmpelinkrrx';";
    $result_exist_rrx = pg_query($query_exist_rrx) or die('Query failed: ' . pg_last_error());
    $exist_rrx = '';
    while ($row_exist_rrx = pg_fetch_object($result_exist_rrx)) {
        $exist_rrx = $row_exist_rrx->relname;
    }
    // if not existed, create it
    if ($exist_rrx != "daemonsnmpelinkrrx") {
        # code...
        $query_construct_rrx = "CREATE TABLE PUBLIC.daemonsnmpelinkrrx(\n\t\t\tdeviceid \tINT,\n\t\t\ttime           TEXT    , \n\t\t\tslot\tTEXT,  \n\t\t\tmodel        TEXT,\n\t\t\tsn       TEXT,\n\t\t\ttemp         TEXT,\n\t\t\tinput1         TEXT,\n\t\t\tinput2        TEXT,\n\t\t\tinput3        TEXT,\n\t\t\tinput4\t\tTEXT,\n\t\t\tstatus1         TEXT,\n\t\t\tstatus2        TEXT,\n\t\t\tstatus3        TEXT,\n\t\t\tstatus4\t\tTEXT\n\t\t\t);";
        $result_construct_rrx = pg_query($query_construct_rrx) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct_rrx);
    }
    // insert data
    for ($i = 0; $i < sizeof($slot_rrx); $i++) {
        // insert data into the table
        $query_insert_rrx = "INSERT INTO PUBLIC.daemonsnmpelinkrrx VALUES ({$deviceid}, {$timestamp}, {$pos_rrx[$i]}, {$rrx_name[$i]}, {$rrx_sn[$i]}, {$rrx_temp[$i]}, {$rrx_input1[$i]}, {$rrx_input2[$i]}, {$rrx_input3[$i]}, {$rrx_input4[$i]}, {$rrx_status1[$i]}, {$rrx_status2[$i]}, {$rrx_status3[$i]}, {$rrx_status4[$i]});";
        $result_insert_rrx = pg_query($query_insert_rrx) or die('Query failed: ' . pg_last_error());
    }
    // DB6:  chech if the table "daemonsnmpelinkftx" in the database "vanguardhe"; this table is for RRX
    $query_exist_ftx = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemonsnmpelinkftx';";
    $result_exist_ftx = pg_query($query_exist_ftx) or die('Query failed: ' . pg_last_error());
    $exist_ftx = '';
    while ($row_exist_ftx = pg_fetch_object($result_exist_ftx)) {
        $exist_ftx = $row_exist_ftx->relname;
    }
    // if not existed, create it
    if ($exist_ftx != "daemonsnmpelinkftx") {
        # code...
        $query_construct_ftx = "CREATE TABLE PUBLIC.daemonsnmpelinkftx(\n\t\t\tdeviceid \tINT,\n\t\t\ttime           TEXT    , \n\t\t\tslot\tTEXT,  \n\t\t\tmodel        TEXT,\n\t\t\tsn       TEXT,\n\t\t\ttemp         TEXT,\n\t\t\trfinputpower         TEXT,\n\t\t\tagcmode        TEXT,\n\t\t\tlasertemp        TEXT,\n\t\t\tlaserbiascurrent\t\tTEXT,\n\t\t\toutputpower         TEXT,\n\t\t\tthccurrent        TEXT,\n\t\t\tlasertype        TEXT,\n\t\t\twavelength\t\tTEXT\n\t\t\t);";
        $result_construct_ftx = pg_query($query_construct_ftx) or die('Query failed: ' . pg_last_error());
        pg_free_result($result_construct_ftx);
    }
    // insert data
    for ($i = 0; $i < sizeof($slot_ftx); $i++) {
        // insert data into the table
        $query_insert_ftx = "INSERT INTO PUBLIC.daemonsnmpelinkftx VALUES ({$deviceid}, {$timestamp}, {$pos_ftx[$i]}, {$ftx_name[$i]}, {$ftx_sn[$i]}, {$ftx_temp[$i]}, {$ftx_rfinputpower[$i]}, {$ftx_agcmode[$i]}, {$ftx_lasertemp[$i]}, {$ftx_laserbiascurent[$i]}, {$ftx_outputpower[$i]}, {$ftx_thermoeleccoolercurrent[$i]}, {$ftx_lasertype[$i]}, {$ftx_wavelength[$i]});";
        $result_insert_ftx = pg_query($query_insert_ftx) or die('Query failed: ' . pg_last_error());
    }
    // pg_free_result($result_exist);
    // pg_free_result($result_insert);
    // pg_free_result($result_construct);
    pg_free_result($result_exist_sum);
    pg_free_result($result_exist_ems);
    pg_free_result($result_insert_ems);
    pg_free_result($result_exist_ps);
    pg_free_result($result_insert_ps);
    pg_free_result($result_exist_fan);
    pg_free_result($result_insert_fan);
    pg_free_result($result_exist_rrx);
    pg_free_result($result_insert_rrx);
    pg_free_result($result_exist_ftx);
    pg_free_result($result_insert_ftx);
    pg_close($dbconn);
}