From 366c867c373a4328588bdb02fb3e61f362409953 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 14 十二月 2021 15:30:12 +0800
Subject: [PATCH] GetAllCamerasAndGroupsByDevID ret nil []DomainUnit
---
gb28181Api.go | 60 +++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 39 insertions(+), 21 deletions(-)
diff --git a/gb28181Api.go b/gb28181Api.go
index 8a5241c..a74be0e 100644
--- a/gb28181Api.go
+++ b/gb28181Api.go
@@ -6,6 +6,7 @@
"fmt"
"log"
"strconv"
+ urlLib "net/url"
)
func SmartPrintStruct(src interface{}) string {
@@ -25,23 +26,27 @@
//SetPlatformServerInfo 璁剧疆鏈嶅姟鍣ㄤ俊鎭�
func (api Gb28181Api) SetPlatformServerInfo(serverInfo GbServerInfo) bool {
- url := BASIC_URL + DATA_URL_PREFIX + "/set_platform_server"
+ serverInfo.GbUsername = serverInfo.PublicID //閴存潈鍚嶅瓧涓嶇敓鏁堬紝鏈�濂藉拰璁惧id涓�鑷�
+
+ u := urlLib.Values{}
+ u.Set("gbsvrname", serverInfo.Name)
+ u.Set("gbsvrid", serverInfo.PublicID)
+ u.Set("gbsvrport", strconv.Itoa(serverInfo.GbServerPort))
+ u.Set("registerauth", strconv.FormatBool(serverInfo.RegisterAuth))
+ u.Set("gbusername", serverInfo.GbUsername)
+ u.Set("gbpasswd", serverInfo.GbPasswd)
+ str := u.Encode()
+ url := BASIC_URL + DATA_URL_PREFIX + "/set_platform_server?" + str
+ log.Println("url:", url)
+
client := NewClient()
-
- paramBody := make(map[string]string, 0)
- paramBody["gbsvrid"] = serverInfo.PublicID
- paramBody["gbsvrport"] = strconv.Itoa(serverInfo.GbServerPort)
- paramBody["gbsvrname"] = serverInfo.Name
- paramBody["rtspsvrport"] = strconv.Itoa(serverInfo.RtspServrPort)
-
- // fmt.Println("url:", url)
- body, err := client.DoGetRequest(url, paramBody, nil)
+ body, err := client.DoGetRequest(url, nil, nil)
if err != nil {
return false
}
var res GbResult
- // fmt.Println("body", string(body))
+ log.Println("body:", string(body[:]))
if err = json.Unmarshal(body, &res); err != nil {
log.Println("jsonErr:", err)
return false
@@ -139,7 +144,7 @@
//pageNo (鏁板瓧) 鎸囧畾鑾峰彇绗嚑椤碉紝绗竴娆′负1锛岃繑鍥炴�婚〉鏁帮紝鎬绘潯鏁扮瓑锛屽啀鏍规嵁杩欎簺淇℃伅鍘诲啀娆℃煡璇紝鐩村埌鍙栧畬鍏ㄩ儴
//srcType (瀛楃涓�) "all"-琛ㄧず鑾峰彇璁惧鐨勬墍鏈夎祫婧� "node"-鐖惰妭鐐逛笅鐨勭涓�绾ц祫婧�
//娉ㄦ剰锛氭牴鎹�"restype"瀛楁锛屽拷鐣ヨ祫婧愮粍锛屽彧淇濈暀閫氶亾璧勬簮------"restype"锛�(鏁板瓧)1-閫氶亾璧勬簮 2-璧勬簮缁�
-func (api Gb28181Api) getCamsByDevAndPage(devID string, srcType string, pageNo int) (CamerasInOnePage, bool) {
+func (api Gb28181Api) getCamsAndGroupsByDevAndPage(devID string, srcType string, pageNo int) (CamerasInOnePage, bool) {
url := BASIC_URL + DATA_URL_PREFIX + "/get_all_channel/" + devID + "/" + srcType + "/" + strconv.Itoa(pageNo)
client := NewClient()
@@ -159,40 +164,50 @@
log.Println("errcode: ", camerasPerPage.ErrCode, " errdesc: ", camerasPerPage.ErrDesc)
return camerasPerPage, false
}
-
+ /*
if len(camerasPerPage.Data) > 0 {
for i := 0; i < len(camerasPerPage.Data); i++ {
if camerasPerPage.Data[i].ResType == 2 {
+ di := camerasPerPage.Data[i]
+ camerasPerPage.Groups = append(camerasPerPage.Groups, DomainUnit{
+ DevPubID: di.DevPubID,
+ ResType: 2,
+ PublicID: di.PublicID,
+ Name: di.Name,
+ ParentID: di.ParentID,
+ })
camerasPerPage.Data = append(camerasPerPage.Data[:i], camerasPerPage.Data[i+1:]...)
i--
}
}
- }
+ }*/
return camerasPerPage, true
}
//GetAllCamerasByDevID 鑾峰彇鍏ㄩ儴涓嬬骇璁惧鐨勬憚鍍忔満鍒楄〃
//devID (瀛楃涓�) 娉ㄥ唽鐨勮澶囩殑20浣峣d
-func (api Gb28181Api) GetAllCamerasByDevID(devID string) ([]CameraInfo, bool) {
+func (api Gb28181Api) GetAllCamerasAndGroupsByDevID(devID string) ([]CameraInfo, []DomainUnit, bool) {
var cameraSlice []CameraInfo
- camerasPerPage, flag := api.getCamsByDevAndPage(devID, "all", 1)
+ var groups []DomainUnit
+ camerasPerPage, flag := api.getCamsAndGroupsByDevAndPage(devID, "all", 1)
if !flag {
log.Println("GetCamsByDevAndPage Error, deviceSlice is nil")
- return cameraSlice, false
+ return cameraSlice, groups, false
}
cameraSlice = camerasPerPage.Data
-
+ groups = camerasPerPage.Groups
for i := 1; i < camerasPerPage.TotalPage; i++ {
- camerasPerPage, flag := api.getCamsByDevAndPage(devID, "all", i+1)
+ camerasPerPage, flag := api.getCamsAndGroupsByDevAndPage(devID, "all", i+1)
if !flag {
log.Println("GetCamsByDevAndPage Error! devID:" + devID + ",type:all,pageno:" + strconv.Itoa(i+1) + " ,cameraSlice is not completed")
- return cameraSlice, false
+ return cameraSlice, groups, false
}
cameraSlice = append(cameraSlice, camerasPerPage.Data...)
+ groups = append(groups, camerasPerPage.Groups...)
}
- return cameraSlice, true
+ return cameraSlice, groups, true
}
//GetAllDomainUnit get all domainunit 鑾峰彇鎵�鏈夎鏀垮尯鍩�
@@ -223,6 +238,7 @@
//GetAllCamerasByDomainUnit get all cameras by domainunit 鑾峰彇鎵�鏈夎鏀垮尯鍩熶笅鐨勮澶�
func (api Gb28181Api) getAllCamerasByDomainUnitAndPage(domainpubid string, pageNo int) (CamerasInOnePage, bool) {
url := BASIC_URL + DATA_URL_PREFIX + "/get_domainunit_channel/" + domainpubid + "/" + strconv.Itoa(pageNo)
+ log.Println("getAllCamerasByDomainUnitAndPage:", url)
client := NewClient()
var camerasPerPage CamerasInOnePage
@@ -307,6 +323,7 @@
}
}
+ log.Println("dmUnits:", dmUnits)
return dmUnits, true
}
@@ -348,6 +365,7 @@
api.getGroupsByGroupID(devID, &dmUnitAll)
+ log.Println("dmUnitAll:", dmUnitAll)
return dmUnitAll
}
--
Gitblit v1.8.0