function processAMIresponse($aResponse) { global $szAMIusername, $szAMIsecret, $lStartTime, $lEndTime, $szPacketTerminator, $szCRLF; //print_r($aResponse); // if( isset($aResponse["Event"])) //// if(strtolower($aResponse["Event"])=="configentry") // {// print "\nDetected (configentry) ".print_r($aResponse,true);// } if (isset($aResponse["Response"])) { switch ($aResponse["Response"]) { case "_AMIQueues": // if(isset($aResponse["QUEUESResponse"])) // { //dPrint("QUEUES RESPONSE HERE!!!!!!!!!!!!!!!!".print_r($aResponse,TRUE),iCare_dPrint_always); // vectorEvent($aResponse); // return; // } // return; break; case "Authenticate": // Remap the authentication request to look like an event. //dPrint("Authenticate REQUEST",iCare_dPrint_always); $aResponse["Event"] = "_AMIauthenticate"; break; case "Success": // Remap success packets to pseudo events. // Provide special handling for the huge list // returned by the "listcommands" command. if (isset($aResponse["WaitEvent"])) { if (isset($aResponse["MeetmeList"])) { if (isset($aResponse["DAHDIRestart"])) { handleAMI_ListCommands($aResponse); return; } } } if (isset($aResponse["Message"])) { switch ($aResponse["Message"]) { case "Authentication accepted": //Remap to look like event $oSHM = new shm(); $oSHM->bAuthenticated = TRUE; // Flag indicating if we have been // Authenticated by AMI. // Get a copy of the AsterClick.conf user logins and pass it back // to code in class.wSockets.inc to reflect the list into that // process's thread. AMIaction("getconfig", array("ORIGIN" => "SYSTEM_ASTERCLICK", "filename" => "AsterClick.conf")); $aPendingLogin = $oSHM->aPendingLogin; dPrint("AMI AUTHENTICATION ACCEPTED (" . count($aPendingLogin) . ")", 3); for (; count($aPendingLogin);) { $value = array_shift($aPendingLogin); AMIaction($value["szAction"], $value["aParams"], $value["bStack"]); } $oSHM->aPendingLogin = array(); $aResponse["Event"] = "_AMIauthenticateAccepted"; break; case "Meetme user list will follow": $aResponse["Event"] = "MeetmeListStarts"; break; default: $aResponse["Event"] = "_AMIsuccess"; break; } // /switch(Message) } else { // Reporting of events setting ("On","Off") . if (isset($aResponse["Events"])) { $aResponse["Event"] = "Events"; break; } // print "\nAMIresponse (success ) now test for config stuff ".print_r($aResponse,TRUE); if (isset($aResponse["Category-000000"])) { if (isset($aResponse["Line-000000-000000"])) { $aResponse["Event"] = "_AMIConfigFile"; break; } else { $aResponse["Event"] = "_AMIConfigFileCategories"; break; } } $aResponse["Event"] = "_AMIpayload"; dPrint("\nprocessAMIresponse(" . count($aResponse) . ")[" . $aResponse["Response"] . "|||" . $aResponse["Event"] . "]"); } break; case "Failure": // Remap Failure packets to pseudo Event $aResponse["Event"] = "_AMIfailure"; break; case "Error": // Remap error packets to pseudo Event $aResponse["Event"] = "_AMIerror"; break; case "Follows": // Remap follows packets to pseudo Event $aResponse["Event"] = "_AMIfollows"; if (isset($aResponse["CLIResponse"])) { handleAMI_CLIresponse($aResponse); // parses CLI text blob responses into structured data, // divides them up into nice sized chunks // and sends them to vectorEvent(). return; } break; default: dPrint("switch(Response) ERROR , unhanded response (" . $aResponse["Response"] . ")"); break; } // /switch(Response) } else { // if(!isset($aResponse["Event"])) // dPrint("\nDAH , No Response ".print_r($aResponse,TRUE)); } // end big if if (isset($aResponse["Event"])) { // require_once("caseEvent.php"); vectorEvent($aResponse); } $lEndTime = mktime(); }
array_push($arr_xticks, $row['uts']); } // get maxs list($max_temp, $max_temp_uts) = getArrEXTUTS($Temp_data, $arr_xticks, 1); list($max_prss, $max_prss_uts) = getArrEXTUTS($Prss_data, $arr_xticks, 1); list($max_wnds, $max_wnds_uts) = getArrEXTUTS($WndS_data, $arr_xticks, 1); list($max_batt, $max_batt_uts) = getArrEXTUTS($Batt_data, $arr_xticks, 1); // get mins list($min_temp, $min_temp_uts) = getArrEXTUTS($Temp_data, $arr_xticks, 0, true); list($min_prss, $min_prss_uts) = getArrEXTUTS($Prss_data, $arr_xticks, 0, true); //extInsert(data, maxmin, value, uts) extInsert("temp", 1, $max_temp, $max_temp_uts); extInsert("temp", 0, $min_temp, $min_temp_uts); extInsert("pressure", 1, $max_prss, $max_prss_uts); extInsert("pressure", 0, $min_prss, $min_prss_uts); extInsert("wind_spd", 1, $max_wnds, $max_wnds_uts); extInsert("batt", 1, $max_batt, $max_batt_uts); // and debug function dPrint($data, $value, $uts, $maxmin, $units) { echo $maxmin == 1 ? "max" : "min"; echo " " . $data . " was: " . $value . $units . " at " . date("G:i, F j Y", $uts) . ".<br>"; } if ($DEBUG) { dPrint("temp", $max_temp, $max_temp_uts, 1, "C"); dPrint("temp", $min_temp, $min_temp_uts, 0, "C"); dPrint("prss", $max_prss, $max_prss_uts, 1, "mb"); dPrint("prss", $min_prss, $min_prss_uts, 0, "mb"); dPrint("WndS", $max_wnds, $max_wnds_uts, 1, " rpm"); dPrint("batt", $max_batt, $max_batt_uts, 1, "V"); }
function vectorEventSend($aResponse) { global $oMSGqueue; // System V message queue class. if (!isset($aResponse["ActionID"])) { $aResponse["ActionID"] = mktime() . "_0_ALL_ALL"; } $aActionID = explode("_", $aResponse["ActionID"]); for ($x = 0; $x < 4; $x++) { if (!isset($aActionID[$x])) { $aActionID[$x] = ""; } } $aActionIDmap = array("timestamp" => $aActionID[0], "sequence" => $aActionID[1], "groupID" => $aActionID[2], "userID" => $aActionID[3], "response" => $aResponse); $aResponse["__userID"] = $aActionID[3]; $aResponse["__groupID"] = $aActionID[2]; foreach ($aResponse as $key => $value) { $aResponse[$key] = trim($value); } switch ($aResponse["__groupID"]) { case "SYSTEM": processAsterClickResponse($aResponse); dPrint("SYSTEM EVENT:" . print_r($aResponse, TRUE), iCare_dPrint_SYSTEMevent); break; case "FastAMI": case "ALL": // print "\n SAW GROUP ALL" ; // print "\n SAW GROUP ALL" ; case "HTML5": // print "\n SAW GROUP HTML5" ; $oMSGqueue->msg_send(array("message" => $aResponse)); break; default: print "\n SAW UNKNOWN GROUP " . $aResponse["__groupID"]; break; } // End Switch $aStatus = $oMSGqueue->msg_stat_queue(); $iQueued = $aStatus["msg_qnum"]; $iPauseUnit = 95; $iPause = $iQueued * $iPauseUnit; dPrint("\n QUE LENGTH(" . $iQueued . ")\n" . $iQueued * $iPauseUnit . "\n"); usleep($iPause); }