if (!$ms_client->connect()) { exit(1); } $params = array("presentation" => "doPresentation", "set" => "doSet", "req" => "doReq", "internal" => "doInternal"); $ms_client->subscribe($params); //=== Req values === $rec = SQLSelect("SELECT * FROM msnodeval WHERE req=1;"); $total = count($rec); if ($total) { for ($i = 0; $i < $total; $i++) { $ms->cmd($rec[$i]['NID'] . ";" . $rec[$i]['SID'] . ";2;" . $rec[$i]['ACK'] . ";" . $rec[$i]['SUBTYPE'] . ";"); } } //== Cycle === $previousMillis = 0; while ($ms_client->proc()) { // Send $rec = SQLSelectOne("SELECT * FROM mssendstack;"); if ($rec['ID']) { //echo "Send: ".print_r($rec, true)."\n"; $expire = $rec['EXPIRE'] < time(); // Del not ACK packet if ($rec['ACK'] == 0 || $expire) { SQLExec("DELETE FROM mssendstack WHERE ID='" . $rec['ID'] . "'"); } if ($expire) { $sens = SQLSelectOne("SELECT * FROM msnodeval WHERE NID='" . $rec['NID'] . "' AND SID='" . $rec['SID'] . "' AND SUBTYPE='" . $rec['SUBTYPE'] . "';"); if ($sens['LINKED_OBJECT'] && $sens['LINKED_PROPERTY']) { echo "Expire send set rollback : " . $sens['LINKED_OBJECT'] . '.' . $sens['LINKED_PROPERTY'] . "=" . $sens['VAL'] . "\n"; // Rollback value if not comin setGlobal($sens['LINKED_OBJECT'] . '.' . $sens['LINKED_PROPERTY'], $rec['VAL'], array($ms->name => '0'));
$params = array("presentation" => "doPresentation", "set" => "doSet", "req" => "doReq", "internal" => "doInternal"); $ms_client->subscribe($params); //=== Req values === $rec = SQLSelect("SELECT * FROM msnodeval WHERE req=1;"); $total = count($rec); if ($total) { for ($i = 0; $i < $total; $i++) { $ms->cmd($rec[$i]['NID'] . ";" . $rec[$i]['SID'] . ";2;" . $rec[$i]['ACK'] . ";" . $rec[$i]['SUBTYPE'] . ";"); } } //== Cycle === $previousMillis = 0; while (true) { //echo "Process\n"; // echo date("Y-m-d H:i:s u")." Proc start\n"; $ret = $ms_client->proc(); if ($ret === false) { echo "Error process\n"; sleep(5); // Sleep 5 seconds continue; } // echo date("Y-m-d H:i:s u")." Send\n"; // Send $rec = SQLSelectOne("SELECT * FROM mssendstack;"); if ($rec['ID']) { //echo "Send: ".print_r($rec, true)."\n"; $expire = $rec['EXPIRE'] < time(); // Del not ACK packet if ($rec['ACK'] == 0 || $expire) { SQLExec("DELETE FROM mssendstack WHERE ID='" . $rec['ID'] . "'");