diff options
Diffstat (limited to 'localwebsite/classes')
-rw-r--r-- | localwebsite/classes/E3372.php | 310 | ||||
-rw-r--r-- | localwebsite/classes/GPIORelaydClient.php | 18 | ||||
-rw-r--r-- | localwebsite/classes/InverterdClient.php | 69 |
3 files changed, 0 insertions, 397 deletions
diff --git a/localwebsite/classes/E3372.php b/localwebsite/classes/E3372.php deleted file mode 100644 index a3ce80c..0000000 --- a/localwebsite/classes/E3372.php +++ /dev/null @@ -1,310 +0,0 @@ -<?php - -class E3372 -{ - - const WIFI_CONNECTING = '900'; - const WIFI_CONNECTED = '901'; - const WIFI_DISCONNECTED = '902'; - const WIFI_DISCONNECTING = '903'; - - const CRADLE_CONNECTING = '900'; - const CRADLE_CONNECTED = '901'; - const CRADLE_DISCONNECTED = '902'; - const CRADLE_DISCONNECTING = '903'; - const CRADLE_CONNECTFAILED = '904'; - const CRADLE_CONNECTSTATUSNULL = '905'; - const CRANDLE_CONNECTSTATUSERRO = '906'; - - const MACRO_EVDO_LEVEL_ZERO = '0'; - const MACRO_EVDO_LEVEL_ONE = '1'; - const MACRO_EVDO_LEVEL_TWO = '2'; - const MACRO_EVDO_LEVEL_THREE = '3'; - const MACRO_EVDO_LEVEL_FOUR = '4'; - const MACRO_EVDO_LEVEL_FIVE = '5'; - - // CurrentNetworkType - const MACRO_NET_WORK_TYPE_NOSERVICE = 0; - const MACRO_NET_WORK_TYPE_GSM = 1; - const MACRO_NET_WORK_TYPE_GPRS = 2; - const MACRO_NET_WORK_TYPE_EDGE = 3; - const MACRO_NET_WORK_TYPE_WCDMA = 4; - const MACRO_NET_WORK_TYPE_HSDPA = 5; - const MACRO_NET_WORK_TYPE_HSUPA = 6; - const MACRO_NET_WORK_TYPE_HSPA = 7; - const MACRO_NET_WORK_TYPE_TDSCDMA = 8; - const MACRO_NET_WORK_TYPE_HSPA_PLUS = 9; - const MACRO_NET_WORK_TYPE_EVDO_REV_0 = 10; - const MACRO_NET_WORK_TYPE_EVDO_REV_A = 11; - const MACRO_NET_WORK_TYPE_EVDO_REV_B = 12; - const MACRO_NET_WORK_TYPE_1xRTT = 13; - const MACRO_NET_WORK_TYPE_UMB = 14; - const MACRO_NET_WORK_TYPE_1xEVDV = 15; - const MACRO_NET_WORK_TYPE_3xRTT = 16; - const MACRO_NET_WORK_TYPE_HSPA_PLUS_64QAM = 17; - const MACRO_NET_WORK_TYPE_HSPA_PLUS_MIMO = 18; - const MACRO_NET_WORK_TYPE_LTE = 19; - const MACRO_NET_WORK_TYPE_EX_NOSERVICE = 0; - const MACRO_NET_WORK_TYPE_EX_GSM = 1; - const MACRO_NET_WORK_TYPE_EX_GPRS = 2; - const MACRO_NET_WORK_TYPE_EX_EDGE = 3; - const MACRO_NET_WORK_TYPE_EX_IS95A = 21; - const MACRO_NET_WORK_TYPE_EX_IS95B = 22; - const MACRO_NET_WORK_TYPE_EX_CDMA_1x = 23; - const MACRO_NET_WORK_TYPE_EX_EVDO_REV_0 = 24; - const MACRO_NET_WORK_TYPE_EX_EVDO_REV_A = 25; - const MACRO_NET_WORK_TYPE_EX_EVDO_REV_B = 26; - const MACRO_NET_WORK_TYPE_EX_HYBRID_CDMA_1x = 27; - const MACRO_NET_WORK_TYPE_EX_HYBRID_EVDO_REV_0 = 28; - const MACRO_NET_WORK_TYPE_EX_HYBRID_EVDO_REV_A = 29; - const MACRO_NET_WORK_TYPE_EX_HYBRID_EVDO_REV_B = 30; - const MACRO_NET_WORK_TYPE_EX_EHRPD_REL_0 = 31; - const MACRO_NET_WORK_TYPE_EX_EHRPD_REL_A = 32; - const MACRO_NET_WORK_TYPE_EX_EHRPD_REL_B = 33; - const MACRO_NET_WORK_TYPE_EX_HYBRID_EHRPD_REL_0 = 34; - const MACRO_NET_WORK_TYPE_EX_HYBRID_EHRPD_REL_A = 35; - const MACRO_NET_WORK_TYPE_EX_HYBRID_EHRPD_REL_B = 36; - const MACRO_NET_WORK_TYPE_EX_WCDMA = 41; - const MACRO_NET_WORK_TYPE_EX_HSDPA = 42; - const MACRO_NET_WORK_TYPE_EX_HSUPA = 43; - const MACRO_NET_WORK_TYPE_EX_HSPA = 44; - const MACRO_NET_WORK_TYPE_EX_HSPA_PLUS = 45; - const MACRO_NET_WORK_TYPE_EX_DC_HSPA_PLUS = 46; - const MACRO_NET_WORK_TYPE_EX_TD_SCDMA = 61; - const MACRO_NET_WORK_TYPE_EX_TD_HSDPA = 62; - const MACRO_NET_WORK_TYPE_EX_TD_HSUPA = 63; - const MACRO_NET_WORK_TYPE_EX_TD_HSPA = 64; - const MACRO_NET_WORK_TYPE_EX_TD_HSPA_PLUS = 65; - const MACRO_NET_WORK_TYPE_EX_802_16E = 81; - const MACRO_NET_WORK_TYPE_EX_LTE = 101; - - - const ERROR_SYSTEM_NO_SUPPORT = 100002; - const ERROR_SYSTEM_NO_RIGHTS = 100003; - const ERROR_SYSTEM_BUSY = 100004; - const ERROR_LOGIN_USERNAME_WRONG = 108001; - const ERROR_LOGIN_PASSWORD_WRONG = 108002; - const ERROR_LOGIN_ALREADY_LOGIN = 108003; - const ERROR_LOGIN_USERNAME_PWD_WRONG = 108006; - const ERROR_LOGIN_USERNAME_PWD_ORERRUN = 108007; - const ERROR_LOGIN_TOUCH_ALREADY_LOGIN = 108009; - const ERROR_VOICE_BUSY = 120001; - const ERROR_WRONG_TOKEN = 125001; - const ERROR_WRONG_SESSION = 125002; - const ERROR_WRONG_SESSION_TOKEN = 125003; - - private string $host; - private array $headers = []; - private bool $authorized = false; - private bool $useLegacyTokenAuth = false; - - public function __construct(string $host, bool $legacy_token_auth = false) { - $this->host = $host; - $this->useLegacyTokenAuth = $legacy_token_auth; - } - - public function auth() { - if ($this->authorized) - return; - - if (!$this->useLegacyTokenAuth) { - $data = $this->request('webserver/SesTokInfo'); - $this->headers = [ - 'Cookie: '.$data['SesInfo'], - '__RequestVerificationToken: '.$data['TokInfo'], - 'Content-Type: text/xml' - ]; - } else { - $data = $this->request('webserver/token'); - $this->headers = [ - '__RequestVerificationToken: '.$data['token'], - 'Content-Type: text/xml' - ]; - } - $this->authorized = true; - } - - public function getDeviceInformation() { - $this->auth(); - return $this->request('device/information'); - } - - public function getDeviceSignal() { - $this->auth(); - return $this->request('device/signal'); - } - - public function getMonitoringStatus() { - $this->auth(); - return $this->request('monitoring/status'); - } - - public function getNotifications() { - $this->auth(); - return $this->request('monitoring/check-notifications'); - } - - public function getDialupConnection() { - $this->auth(); - return $this->request('dialup/connection'); - } - - public function getTrafficStats() { - $this->auth(); - return $this->request('monitoring/traffic-statistics'); - } - - public function getSMSCount() { - $this->auth(); - return $this->request('sms/sms-count'); - } - - public function sendSMS(string $phone, string $text) { - $this->auth(); - return $this->request('sms/send-sms', 'POST', [ - 'Index' => -1, - 'Phones' => [ - 'Phone' => $phone - ], - 'Sca' => '', - 'Content' => $text, - 'Length' => -1, - 'Reserved' => 1, - 'Date' => -1 - ]); - } - - public function getSMSList(int $page = 1, int $count = 20, bool $outbox = false) { - $this->auth(); - $xml = $this->request('sms/sms-list', 'POST', [ - 'PageIndex' => $page, - 'ReadCount' => $count, - 'BoxType' => !$outbox ? 1 : 2, - 'SortType' => 0, - 'Ascending' => 0, - 'UnreadPreferred' => !$outbox ? 1 : 0 - ], true); - $xml = simplexml_load_string($xml); - - $messages = []; - foreach ($xml->Messages->Message as $message) { - $dt = DateTime::createFromFormat("Y-m-d H:i:s", (string)$message->Date); - $messages[] = [ - 'date' => (string)$message->Date, - 'timestamp' => $dt->getTimestamp(), - 'phone' => (string)$message->Phone, - 'content' => (string)$message->Content - ]; - } - return $messages; - } - - private function xmlToAssoc(string $xml): array { - $xml = new SimpleXMLElement($xml); - $data = []; - foreach ($xml as $name => $value) { - $data[$name] = (string)$value; - } - return $data; - } - - private function request(string $method, string $http_method = 'GET', array $data = [], bool $return_body = false) { - $ch = curl_init(); - $url = 'http://'.$this->host.'/api/'.$method; - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - if (!empty($this->headers)) - curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers); - if ($http_method == 'POST') { - curl_setopt($ch, CURLOPT_POST, true); - - $post_data = $this->postDataToXML($data); - // debugLog('post_data:', $post_data); - - if (!empty($data)) - curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); - } - $body = curl_exec($ch); - - $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - if ($code != 200) - throw new Exception('e3372 host returned code '.$code); - - curl_close($ch); - return $return_body ? $body : $this->xmlToAssoc($body); - } - - private function postDataToXML(array $data, int $depth = 1): string { - if ($depth == 1) - return '<?xml version: "1.0" encoding="UTF-8"?>'.$this->postDataToXML(['request' => $data], $depth+1); - - $items = []; - foreach ($data as $key => $value) { - if (is_array($value)) - $value = $this->postDataToXML($value, $depth+1); - $items[] = "<{$key}>{$value}</{$key}>"; - } - - return implode('', $items); - } - - public static function getNetworkTypeLabel($type): string { - switch ((int)$type) { - case self::MACRO_NET_WORK_TYPE_NOSERVICE: return 'NOSERVICE'; - case self::MACRO_NET_WORK_TYPE_GSM: return 'GSM'; - case self::MACRO_NET_WORK_TYPE_GPRS: return 'GPRS'; - case self::MACRO_NET_WORK_TYPE_EDGE: return 'EDGE'; - case self::MACRO_NET_WORK_TYPE_WCDMA: return 'WCDMA'; - case self::MACRO_NET_WORK_TYPE_HSDPA: return 'HSDPA'; - case self::MACRO_NET_WORK_TYPE_HSUPA: return 'HSUPA'; - case self::MACRO_NET_WORK_TYPE_HSPA: return 'HSPA'; - case self::MACRO_NET_WORK_TYPE_TDSCDMA: return 'TDSCDMA'; - case self::MACRO_NET_WORK_TYPE_HSPA_PLUS: return 'HSPA_PLUS'; - case self::MACRO_NET_WORK_TYPE_EVDO_REV_0: return 'EVDO_REV_0'; - case self::MACRO_NET_WORK_TYPE_EVDO_REV_A: return 'EVDO_REV_A'; - case self::MACRO_NET_WORK_TYPE_EVDO_REV_B: return 'EVDO_REV_B'; - case self::MACRO_NET_WORK_TYPE_1xRTT: return '1xRTT'; - case self::MACRO_NET_WORK_TYPE_UMB: return 'UMB'; - case self::MACRO_NET_WORK_TYPE_1xEVDV: return '1xEVDV'; - case self::MACRO_NET_WORK_TYPE_3xRTT: return '3xRTT'; - case self::MACRO_NET_WORK_TYPE_HSPA_PLUS_64QAM: return 'HSPA_PLUS_64QAM'; - case self::MACRO_NET_WORK_TYPE_HSPA_PLUS_MIMO: return 'HSPA_PLUS_MIMO'; - case self::MACRO_NET_WORK_TYPE_LTE: return 'LTE'; - case self::MACRO_NET_WORK_TYPE_EX_NOSERVICE: return 'NOSERVICE'; - case self::MACRO_NET_WORK_TYPE_EX_GSM: return 'GSM'; - case self::MACRO_NET_WORK_TYPE_EX_GPRS: return 'GPRS'; - case self::MACRO_NET_WORK_TYPE_EX_EDGE: return 'EDGE'; - case self::MACRO_NET_WORK_TYPE_EX_IS95A: return 'IS95A'; - case self::MACRO_NET_WORK_TYPE_EX_IS95B: return 'IS95B'; - case self::MACRO_NET_WORK_TYPE_EX_CDMA_1x: return 'CDMA_1x'; - case self::MACRO_NET_WORK_TYPE_EX_EVDO_REV_0: return 'EVDO_REV_0'; - case self::MACRO_NET_WORK_TYPE_EX_EVDO_REV_A: return 'EVDO_REV_A'; - case self::MACRO_NET_WORK_TYPE_EX_EVDO_REV_B: return 'EVDO_REV_B'; - case self::MACRO_NET_WORK_TYPE_EX_HYBRID_CDMA_1x: return 'HYBRID_CDMA_1x'; - case self::MACRO_NET_WORK_TYPE_EX_HYBRID_EVDO_REV_0: return 'HYBRID_EVDO_REV_0'; - case self::MACRO_NET_WORK_TYPE_EX_HYBRID_EVDO_REV_A: return 'HYBRID_EVDO_REV_A'; - case self::MACRO_NET_WORK_TYPE_EX_HYBRID_EVDO_REV_B: return 'HYBRID_EVDO_REV_B'; - case self::MACRO_NET_WORK_TYPE_EX_EHRPD_REL_0: return 'EHRPD_REL_0'; - case self::MACRO_NET_WORK_TYPE_EX_EHRPD_REL_A: return 'EHRPD_REL_A'; - case self::MACRO_NET_WORK_TYPE_EX_EHRPD_REL_B: return 'EHRPD_REL_B'; - case self::MACRO_NET_WORK_TYPE_EX_HYBRID_EHRPD_REL_0: return 'HYBRID_EHRPD_REL_0'; - case self::MACRO_NET_WORK_TYPE_EX_HYBRID_EHRPD_REL_A: return 'HYBRID_EHRPD_REL_A'; - case self::MACRO_NET_WORK_TYPE_EX_HYBRID_EHRPD_REL_B: return 'HYBRID_EHRPD_REL_B'; - case self::MACRO_NET_WORK_TYPE_EX_WCDMA: return 'WCDMA'; - case self::MACRO_NET_WORK_TYPE_EX_HSDPA: return 'HSDPA'; - case self::MACRO_NET_WORK_TYPE_EX_HSUPA: return 'HSUPA'; - case self::MACRO_NET_WORK_TYPE_EX_HSPA: return 'HSPA'; - case self::MACRO_NET_WORK_TYPE_EX_HSPA_PLUS: return 'HSPA_PLUS'; - case self::MACRO_NET_WORK_TYPE_EX_DC_HSPA_PLUS: return 'DC_HSPA_PLUS'; - case self::MACRO_NET_WORK_TYPE_EX_TD_SCDMA: return 'TD_SCDMA'; - case self::MACRO_NET_WORK_TYPE_EX_TD_HSDPA: return 'TD_HSDPA'; - case self::MACRO_NET_WORK_TYPE_EX_TD_HSUPA: return 'TD_HSUPA'; - case self::MACRO_NET_WORK_TYPE_EX_TD_HSPA: return 'TD_HSPA'; - case self::MACRO_NET_WORK_TYPE_EX_TD_HSPA_PLUS: return 'TD_HSPA_PLUS'; - case self::MACRO_NET_WORK_TYPE_EX_802_16E: return '802_16E'; - case self::MACRO_NET_WORK_TYPE_EX_LTE: return 'LTE'; - default: return '?'; - } - } - -} diff --git a/localwebsite/classes/GPIORelaydClient.php b/localwebsite/classes/GPIORelaydClient.php deleted file mode 100644 index 89c8dc9..0000000 --- a/localwebsite/classes/GPIORelaydClient.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php - -class GPIORelaydClient extends MySimpleSocketClient { - - const STATUS_ON = 'on'; - const STATUS_OFF = 'off'; - - public function setStatus(string $status) { - $this->send($status); - return $this->recv(); - } - - public function getStatus() { - $this->send('get'); - return $this->recv(); - } - -}
\ No newline at end of file diff --git a/localwebsite/classes/InverterdClient.php b/localwebsite/classes/InverterdClient.php deleted file mode 100644 index b68b784..0000000 --- a/localwebsite/classes/InverterdClient.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php - -class InverterdClient extends MySimpleSocketClient { - - /** - * @throws Exception - */ - public function setProtocol(int $v): string - { - $this->send("v $v"); - return $this->recv(); - } - - /** - * @throws Exception - */ - public function setFormat(string $fmt): string - { - $this->send("format $fmt"); - return $this->recv(); - } - - /** - * @throws Exception - */ - public function exec(string $command, array $arguments = []): string - { - $buf = "exec $command"; - if (!empty($arguments)) { - foreach ($arguments as $arg) - $buf .= " $arg"; - } - $this->send($buf); - return $this->recv(); - } - - /** - * @throws Exception - */ - public function recv() - { - $recv_buf = ''; - $buf = ''; - - while (true) { - $result = socket_recv($this->sock, $recv_buf, 1024, 0); - if ($result === false) - throw new Exception(__METHOD__ . ": socket_recv() failed: " . $this->getSocketError()); - - // peer disconnected - if ($result === 0) - break; - - $buf .= $recv_buf; - if (endsWith($buf, "\r\n\r\n")) - break; - } - - $response = explode("\r\n", $buf); - $status = array_shift($response); - if (!in_array($status, ['ok', 'err'])) - throw new Exception(__METHOD__.': unexpected status ('.$status.')'); - if ($status == 'err') - throw new Exception(empty($response) ? 'unknown inverterd error' : $response[0]); - - return trim(implode("\r\n", $response)); - } - -}
\ No newline at end of file |