www/dbglobal.php

changeset 717
22dd7ab614e5
parent 698
92a080c1a5d5
equal deleted inserted replaced
716:5c30c8ef83a8 717:22dd7ab614e5
1 <?php
2
3
4 function open_socket()
5 {
6 $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
7
8 if (!($sock === false)) {
9 if (socket_connect($sock, "localhost", 6554)) {
10 socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 15, 'usec' => 0));
11 } else {
12 socket_close($sock);
13 }
14 }
15 return $sock;
16 }
17
18
19 /**
20 * @param string $command to send to the server.
21 * @return string with the complete reply from the
22 * server. This can be a multiline reply.
23 */
24 function send_cmd($command)
25 {
26 $sock = open_socket();
27 if ($sock == false) {
28 return "";
29 }
30 socket_write($sock, $command . "\r\n", 4096);
31
32 $answer = "";
33 while (1) {
34 $line = socket_read($sock, 4096);
35 if ($line === '')
36 break;
37 $answer .= $line;
38 }
39 socket_close($sock);
40
41 return $answer;
42 }
43
44
45 function startsWith($haystack, $needle)
46 {
47 return !strncmp($haystack, $needle, strlen($needle));
48 }
49
50 $response = array(
51 'error' => false,
52 'msg' => 'Ok',
53 );
54
55
56 if (isset($_POST['update'])) {
57
58 /* Changing ports does not yet work in the web scripts, disabled. */
59 $cmd = "GLOBAL PUT\r\n";
60 $cmd .= "NAME," . $_POST['name'] . "\r\n";
61 // $cmd .= "PORT," . $_POST['port'] . "\r\n";
62 $cmd .= "TEMP_UUID," . $_POST['temp_uuid'] . "\r\n";
63 $cmd .= "HUM_UUID," . $_POST['hum_uuid'] . "\r\n";
64 $cmd .= "TEMP_HUM_IDX," . $_POST['temp_hum_idx'] . "\r\n";
65 $cmd .= "LCD_ADDRESS," . $_POST['lcd_address'] . "\r\n";
66 $cmd .= "LCD_COLS," . $_POST['lcd_cols'] . "\r\n";
67 $cmd .= "LCD_ROWS," . $_POST['lcd_rows'] . "\r\n";
68 $cmd .= "MQTT_HOST," . $_POST['mqtt_host'] . "\r\n";
69 $cmd .= "MQTT_PORT," . $_POST['mqtt_port'] . "\r\n";
70 $cmd .= "MQTT_USER," . $_POST['mqtt_user'] . "\r\n";
71 $cmd .= "MQTT_PASS," . $_POST['mqtt_pass'] . "\r\n";
72 // $cmd .= "WEBSOCKET_PORT," . $_POST['websocket_port'] . "\r\n";
73 $cmd .= ".";
74 $answer = send_cmd($cmd);
75 $arr = explode("\r\n", $answer);
76 if (! startsWith($arr[0], "219")) {
77 $response['error'] = true;
78 }
79 exit(json_encode($response));
80
81 } else {
82
83 $answer = send_cmd("GLOBAL JSON");
84 header("Content-type: application/json");
85
86 $arr = explode("\r\n", $answer);
87 if (startsWith($arr[0], "213")) {
88 echo $arr[1];
89 } else {
90 echo '{}';
91 }
92 }
93
94
95 ?>

mercurial