diff --git a/EdgeManager.php b/EdgeManager.php index 465a932..f71f385 100644 --- a/EdgeManager.php +++ b/EdgeManager.php @@ -323,6 +323,12 @@ $worker -> onMessage = function(TcpConnection $connection, Request $request) { 'code' => 0, 'data' => $devices ))); + } else if ($get['query'] === 'all_devices') { + $all_devices = EConfigure::get_all_devices($dbconn); + $connection -> send(json_encode(array( + 'code' => 0, + 'data' => $all_devices + ))); } else { $connection -> send(json_encode(array( 'code' => 1, diff --git a/EdgeManager/EController/EConfigure.php b/EdgeManager/EController/EConfigure.php index cb90dc4..2f23434 100644 --- a/EdgeManager/EController/EConfigure.php +++ b/EdgeManager/EController/EConfigure.php @@ -134,4 +134,28 @@ class EConfigure { )); return pg_fetch_all($res); } + + static function get_all_devices() { + $res = pg_query( + "SELECT server_id, + server.name AS server_name, + url, port, + device.name AS device_name, + conf -> '@DeviceType' AS device_type + FROM hf_mes_scada_edgeserver_controller_server server, + hf_mes_scada_edgeserver_controller_device device + WHERE (conf -> '@DeviceType') IS NOT NULL + AND server.id = server_id;" + ); + $server_devices = pg_fetch_all($res); + + $all_devices = []; + foreach ($server_devices as $device) { + if (!isset($all_devices[$device['server_id']])) + $all_devices[$device['server_id']] = array_slice($device, 0, 4); + $all_devices[$device['server_id']]['devices'][] = array_slice($device, -2); + } + + return $all_devices; + } }