|
@@ -218,16 +218,16 @@ func (obj *BparamHan) GuiUploadBtsBaseParamUpdateHan(c *gin.Context) {
|
|
|
//***********************************下面是socket命令********************************************
|
|
|
|
|
|
// 保存http请求通道
|
|
|
-func (obj *BparamHan) SaveRequestChan(httpReqChan chan interface{}, ProjectID int, BtsID int, mcpCmdType uint8) {
|
|
|
- requestIdStr := fmt.Sprintf("%08X", ProjectID) + "-" + fmt.Sprintf("%08X", BtsID) + "-" + fmt.Sprintf("%d", mcpCmdType)
|
|
|
+func (obj *BparamHan) SaveRequestChan(httpReqChan chan interface{}, ProjectID int, BtsID int, mcpCmdType uint8, moduleId uint8) {
|
|
|
+ requestIdStr := fmt.Sprintf("%08X", ProjectID) + "-" + fmt.Sprintf("%08X", BtsID) + "-" + fmt.Sprintf("%d", mcpCmdType) + "-" + fmt.Sprintf("%d", moduleId)
|
|
|
public.Gpub_mutex.Lock()
|
|
|
public.Gpub_mapChan[requestIdStr] = httpReqChan //保存通道
|
|
|
public.Gpub_mutex.Unlock()
|
|
|
}
|
|
|
|
|
|
// 返回数据并删除http请求通道
|
|
|
-func (obj *BparamHan) RespDataWithChan(c *gin.Context, httpReqChan chan interface{}, ProjectID int, BtsID int, mcpCmdType uint8) {
|
|
|
- requestIdStr := fmt.Sprintf("%08X", ProjectID) + "-" + fmt.Sprintf("%08X", BtsID) + "-" + fmt.Sprintf("%d", mcpCmdType)
|
|
|
+func (obj *BparamHan) RespDataWithChan(c *gin.Context, httpReqChan chan interface{}, ProjectID int, BtsID int, mcpCmdType uint8, moduleId uint8) {
|
|
|
+ requestIdStr := fmt.Sprintf("%08X", ProjectID) + "-" + fmt.Sprintf("%08X", BtsID) + "-" + fmt.Sprintf("%d", mcpCmdType) + "-" + fmt.Sprintf("%d", moduleId)
|
|
|
|
|
|
//把数据返回给客户端
|
|
|
select {
|
|
@@ -237,6 +237,8 @@ func (obj *BparamHan) RespDataWithChan(c *gin.Context, httpReqChan chan interfac
|
|
|
resp.RespFail(c, "查询超时")
|
|
|
}
|
|
|
|
|
|
+ close(httpReqChan) //关闭通道
|
|
|
+
|
|
|
public.Gpub_mutex.Lock()
|
|
|
delete(public.Gpub_mapChan, requestIdStr)
|
|
|
public.Gpub_mutex.Unlock()
|
|
@@ -254,7 +256,7 @@ func (obj *BparamHan) GetBtsOamParamDeviceHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_DEVICE)
|
|
|
|
|
|
//查询基站参数
|
|
|
if err := obj.bparamOamApi.OamQueryDeviceParam(dataModel); err != nil {
|
|
@@ -262,7 +264,7 @@ func (obj *BparamHan) GetBtsOamParamDeviceHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_DEVICE)
|
|
|
}
|
|
|
|
|
|
// 查询基站网管参数
|
|
@@ -277,7 +279,7 @@ func (obj *BparamHan) GetBtsOamParamNetworkHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_NETWORK)
|
|
|
|
|
|
//查询基站参数
|
|
|
if err := obj.bparamOamApi.OamQueryNetworkParam(dataModel); err != nil {
|
|
@@ -285,7 +287,7 @@ func (obj *BparamHan) GetBtsOamParamNetworkHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_NETWORK)
|
|
|
}
|
|
|
|
|
|
// 设置基站网管参数
|
|
@@ -300,7 +302,7 @@ func (obj *BparamHan) SetBtsOamParamNetworkHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_NETWORK)
|
|
|
|
|
|
//设置基站参数
|
|
|
if err := obj.bparamOamApi.OamSetNetworkParam(dataModel); err != nil {
|
|
@@ -308,7 +310,7 @@ func (obj *BparamHan) SetBtsOamParamNetworkHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_NETWORK)
|
|
|
}
|
|
|
|
|
|
// 查询基站同步参数
|
|
@@ -323,7 +325,7 @@ func (obj *BparamHan) GetBtsOamParamSyncHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_SYNC)
|
|
|
|
|
|
//查询基站参数
|
|
|
if err := obj.bparamOamApi.OamQuerySyncParam(dataModel); err != nil {
|
|
@@ -331,7 +333,7 @@ func (obj *BparamHan) GetBtsOamParamSyncHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_SYNC)
|
|
|
}
|
|
|
|
|
|
// 设置基站同步参数
|
|
@@ -346,7 +348,7 @@ func (obj *BparamHan) SetBtsOamParamSyncHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_SYNC)
|
|
|
|
|
|
//设置基站参数
|
|
|
if err := obj.bparamOamApi.OamSetSyncParam(dataModel); err != nil {
|
|
@@ -354,7 +356,7 @@ func (obj *BparamHan) SetBtsOamParamSyncHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_SYNC)
|
|
|
}
|
|
|
|
|
|
// 查询基站增益参数
|
|
@@ -369,7 +371,7 @@ func (obj *BparamHan) GetBtsOamParamGainHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_GAIN)
|
|
|
|
|
|
//查询基站参数
|
|
|
if err := obj.bparamOamApi.OamQueryGainParam(dataModel); err != nil {
|
|
@@ -377,7 +379,7 @@ func (obj *BparamHan) GetBtsOamParamGainHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_GAIN)
|
|
|
}
|
|
|
|
|
|
// 设置基站增益参数
|
|
@@ -392,7 +394,7 @@ func (obj *BparamHan) SetBtsOamParamGainHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_GAIN)
|
|
|
|
|
|
//设置基站参数
|
|
|
if err := obj.bparamOamApi.OamSetGainParam(dataModel); err != nil {
|
|
@@ -400,7 +402,7 @@ func (obj *BparamHan) SetBtsOamParamGainHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_GAIN)
|
|
|
}
|
|
|
|
|
|
// 查询安装参数
|
|
@@ -415,7 +417,7 @@ func (obj *BparamHan) GetBtsOamParamInstallHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_INSTALL)
|
|
|
|
|
|
//查询基站参数
|
|
|
if err := obj.bparamOamApi.OamQueryInstallParam(dataModel); err != nil {
|
|
@@ -423,7 +425,7 @@ func (obj *BparamHan) GetBtsOamParamInstallHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_INSTALL)
|
|
|
}
|
|
|
|
|
|
// 配置基站参数
|
|
@@ -438,7 +440,7 @@ func (obj *BparamHan) SetBtsOamParamInstallHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_INSTALL)
|
|
|
|
|
|
//设置基站参数
|
|
|
if err := obj.bparamOamApi.OamSetInstallParam(dataModel); err != nil {
|
|
@@ -446,7 +448,7 @@ func (obj *BparamHan) SetBtsOamParamInstallHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_INSTALL)
|
|
|
}
|
|
|
|
|
|
// 查询基站参数
|
|
@@ -461,7 +463,7 @@ func (obj *BparamHan) GetBtsOamParamBtsHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_BTS)
|
|
|
|
|
|
//查询基站参数
|
|
|
if err := obj.bparamOamApi.OamQueryBtsParam(dataModel); err != nil {
|
|
@@ -469,7 +471,7 @@ func (obj *BparamHan) GetBtsOamParamBtsHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_BTS)
|
|
|
}
|
|
|
|
|
|
// 配置基站参数
|
|
@@ -484,7 +486,7 @@ func (obj *BparamHan) SetBtsOamParamBtsHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_BTS)
|
|
|
|
|
|
//设置基站参数
|
|
|
if err := obj.bparamOamApi.OamSetBtsParam(dataModel); err != nil {
|
|
@@ -492,7 +494,7 @@ func (obj *BparamHan) SetBtsOamParamBtsHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_BTS)
|
|
|
}
|
|
|
|
|
|
// 查询定位类型参数
|
|
@@ -507,7 +509,7 @@ func (obj *BparamHan) GetBtsOamParamLocationTypeHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_BTS)
|
|
|
|
|
|
//查询基站参数
|
|
|
if err := obj.bparamOamApi.OamQueryLocationTypeParam(dataModel); err != nil {
|
|
@@ -515,7 +517,7 @@ func (obj *BparamHan) GetBtsOamParamLocationTypeHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_BTS)
|
|
|
}
|
|
|
|
|
|
// 配置定位类型参数
|
|
@@ -530,7 +532,7 @@ func (obj *BparamHan) SetBtsOamParamLocationTypeHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_BTS)
|
|
|
|
|
|
//设置基站参数
|
|
|
if err := obj.bparamOamApi.OamSetLocationTypeParam(dataModel); err != nil {
|
|
@@ -538,7 +540,7 @@ func (obj *BparamHan) SetBtsOamParamLocationTypeHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_BTS)
|
|
|
}
|
|
|
|
|
|
// 查询rtc参数
|
|
@@ -553,7 +555,7 @@ func (obj *BparamHan) GetBtsOamParamRtcHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_RTC)
|
|
|
|
|
|
//查询基站参数
|
|
|
if err := obj.bparamOamApi.OamQueryRtcParam(dataModel); err != nil {
|
|
@@ -561,7 +563,7 @@ func (obj *BparamHan) GetBtsOamParamRtcHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_QUERY, public.BTS_MODULE_RTC)
|
|
|
}
|
|
|
|
|
|
// 配置rtc参数
|
|
@@ -576,7 +578,7 @@ func (obj *BparamHan) SetBtsOamParamRtcHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_RTC)
|
|
|
|
|
|
//设置基站参数
|
|
|
if err := obj.bparamOamApi.OamSetRtcParam(dataModel); err != nil {
|
|
@@ -584,7 +586,7 @@ func (obj *BparamHan) SetBtsOamParamRtcHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_RTC)
|
|
|
}
|
|
|
|
|
|
// 保存参数
|
|
@@ -599,7 +601,7 @@ func (obj *BparamHan) SaveOamParamHan(c *gin.Context) {
|
|
|
|
|
|
//生成并保存http请求通道
|
|
|
httpReqChan := make(chan interface{})
|
|
|
- obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.SaveRequestChan(httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_GAIN)
|
|
|
|
|
|
//设置基站参数
|
|
|
if err := obj.bparamOamApi.OamSaveParam(dataModel); err != nil {
|
|
@@ -607,7 +609,7 @@ func (obj *BparamHan) SaveOamParamHan(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
//返回数据并删除http请求通道
|
|
|
- obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET)
|
|
|
+ obj.RespDataWithChan(c, httpReqChan, dataModel.ProjectID, dataModel.BtsID, public.BTS_MCP_SET, public.BTS_MODULE_GAIN)
|
|
|
}
|
|
|
|
|
|
// 复位基站
|