Browse Source

修改同步模块,增加同步信号中继功能,增加北斗GPS使能功能

zhoutao 1 day ago
parent
commit
33d5066420

BIN
ipsomcadmin/dist.rar


+ 34 - 0
ipsomcadmin/src/views/bparam/basestaticdata.js

@@ -156,6 +156,24 @@ export function genCenterFreqList() {
     return dataList
 }
 
+//收发同步字
+export function genSyncWordList() {
+    let dataList = []
+    let temp = {}
+    temp.label = '请选择'
+    temp.value = 0
+    dataList.push(temp)
+
+    for (let i = 1; i < 5; i++) {
+        let item = {}
+        item.label = i.toString() + "号同步"
+        item.value = i
+        dataList.push(item)
+    }
+
+    return dataList
+}
+
 //同步发射功率
 export function genSyncTxPowerList() {
     let dataList = []
@@ -187,3 +205,19 @@ export function genDaGainList() {
 
     return dataList
 }
+
+
+//开关
+export function genSwitchList() {
+    let dataList = []
+    let item = { "label": '请选择', value: 0 }
+    dataList.push(item)
+
+    item = { "label": '关闭', value: 1 }
+    dataList.push(item)
+
+    item = { "label": '打开', value: 2 }
+    dataList.push(item)
+
+    return dataList
+}

+ 11 - 1
ipsomcadmin/src/views/bparam/component/rtcdlg.vue

@@ -38,6 +38,14 @@
                     v-model.trim="dialogData.editData.data.bts_id" auto-complete="off"
                     style="width:100%"></el-input-number>
             </el-form-item>
+            <el-form-item label="设备类型" prop="bts_type">
+                <el-select v-model="dialogData.editData.data.bts_type" disabled clearable placeholder="请选择"
+                    style="width:100%">
+                    <el-option v-for="(item, index) in mainData.btsTypeList" :key="index" :label="item.label"
+                        :value="item.value">
+                    </el-option>
+                </el-select>
+            </el-form-item>
             <el-form-item label="时钟时间" prop="rtc_date_time">
                 <el-date-picker v-model="dialogData.editData.data.rtc_date_time" type="datetime" style="width:100%"
                     value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期和时间" />
@@ -91,7 +99,7 @@
 
 
 import { getBtsBaseParamById, updateBtsBaseParam, getBtsOamParamRtc, setBtsOamParamRtc } from "@/api/bparam"
-
+import { genBtsTypeList } from "../basestaticdata.js"
 export default {
     name: 'rtcdlg',
     props: {
@@ -122,6 +130,7 @@ export default {
                 editData: {
                     data: {
                         id: 0,
+                        bts_type: 0,
                         project_id: 0,//后端会绑定项目编号
                         bts_id: 0,
 
@@ -159,6 +168,7 @@ export default {
                 }
             },
             mainData: {
+                btsTypeList: genBtsTypeList(),
                 btnEnable: true,
             }
         }

+ 151 - 28
ipsomcadmin/src/views/bparam/component/syncparamdlg.vue

@@ -45,40 +45,116 @@
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="中心频率">
-                <div class="syncparamdlg__item">
-                    <el-select v-model="dialogData.editData.data.center_freq" clearable placeholder="请选择"
+            <div v-if="mainData.bts_type == 1">
+                <el-form-item label="接收频率" prop="center_freq">
+                    <div class="syncparamdlg__item">
+                        <el-select v-model="dialogData.editData.data.center_freq" clearable placeholder="请选择"
+                            style="width:100%">
+                            <el-option v-for="(item, index) in mainData.centerFreqList" :key="index" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                        <div class="syncparamdlg__item-right">mHz</div>
+                    </div>
+                </el-form-item>
+                <el-form-item label="接收同步" prop="rx_sync_word_id">
+                    <el-select v-model="dialogData.editData.data.rx_sync_word_id" clearable placeholder="请选择"
                         style="width:100%">
-                        <el-option v-for="(item, index) in mainData.centerFreqList" :key="index" :label="item.label"
+                        <el-option v-for="(item, index) in mainData.syncWordList" :key="index" :label="item.label"
                             :value="item.value">
                         </el-option>
                     </el-select>
-                    <div class="syncparamdlg__item-right">mHz</div>
-                </div>
-            </el-form-item>
-            <el-form-item label="发射功率" v-if="mainData.bts_type == 2 || mainData.bts_type == 3">
-                <div class="syncparamdlg__item">
-                    <div class="syncparamdlg__item-left">
-                        <el-select v-model="dialogData.editData.data.tx_power" clearable placeholder="请选择"
+                </el-form-item>
+                <el-form-item label="接收电平">
+                    <div class="syncparamdlg__item">
+                        <div class="syncparamdlg__item-left">
+                            <el-input-number :precision="0" :step="1" :min="-128" disabled
+                                v-model.trim="dialogData.editData.data.rssi" auto-complete="off"
+                                style="width:100%"></el-input-number>
+                        </div>
+                        <div class="syncparamdlg__item-right">dBm</div>
+                    </div>
+                </el-form-item>
+                <el-form-item label="转发开关" prop="tx_switch">
+                    <el-select v-model="dialogData.editData.data.tx_switch" clearable placeholder="请选择"
+                        style="width:100%">
+                        <el-option v-for="(item, index) in mainData.switchList" :key="index" :label="item.label"
+                            :value="item.value">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="转发频率" prop="tx_center_freq" v-if="dialogData.editData.data.tx_switch == 2">
+                    <div class="syncparamdlg__item">
+                        <el-select v-model="dialogData.editData.data.tx_center_freq" clearable placeholder="请选择"
                             style="width:100%">
-                            <el-option v-for="(item, index) in mainData.txPowerList" :key="index" :label="item.label"
+                            <el-option v-for="(item, index) in mainData.centerFreqList" :key="index" :label="item.label"
                                 :value="item.value">
                             </el-option>
                         </el-select>
+                        <div class="syncparamdlg__item-right">mHz</div>
                     </div>
-                    <div class="syncparamdlg__item-right">dBm</div>
-                </div>
-            </el-form-item>
-            <el-form-item label="接收电平" v-if="mainData.bts_type == 1">
-                <div class="syncparamdlg__item">
-                    <div class="syncparamdlg__item-left">
-                        <el-input-number :precision="0" :step="1" :min="-128" disabled
-                            v-model.trim="dialogData.editData.data.rssi" auto-complete="off"
-                            style="width:100%"></el-input-number>
+                </el-form-item>
+                <el-form-item label="转发同步" prop="tx_sync_word_id" v-if="dialogData.editData.data.tx_switch == 2">
+                    <el-select v-model="dialogData.editData.data.tx_sync_word_id" clearable placeholder="请选择"
+                        style="width:100%">
+                        <el-option v-for="(item, index) in mainData.syncWordList" :key="index" :label="item.label"
+                            :value="item.value">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="转发功率" prop="tx_power" v-if="dialogData.editData.data.tx_switch == 2">
+                    <div class="syncparamdlg__item">
+                        <div class="syncparamdlg__item-left">
+                            <el-select v-model="dialogData.editData.data.tx_power" clearable placeholder="请选择"
+                                style="width:100%">
+                                <el-option v-for="(item, index) in mainData.txPowerList" :key="index"
+                                    :label="item.label" :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </div>
+                        <div class="syncparamdlg__item-right">dBm</div>
                     </div>
-                    <div class="syncparamdlg__item-right">dBm</div>
-                </div>
-            </el-form-item>
+                </el-form-item>
+            </div>
+            <div v-else>
+                <el-form-item label="中心频率" prop="center_freq">
+                    <div class="syncparamdlg__item">
+                        <el-select v-model="dialogData.editData.data.center_freq" clearable placeholder="请选择"
+                            style="width:100%">
+                            <el-option v-for="(item, index) in mainData.centerFreqList" :key="index" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                        <div class="syncparamdlg__item-right">mHz</div>
+                    </div>
+                </el-form-item>
+                <el-form-item label="发射功率" prop="tx_power">
+                    <div class="syncparamdlg__item">
+                        <div class="syncparamdlg__item-left">
+                            <el-select v-model="dialogData.editData.data.tx_power" clearable placeholder="请选择"
+                                style="width:100%">
+                                <el-option v-for="(item, index) in mainData.txPowerList" :key="index"
+                                    :label="item.label" :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </div>
+                        <div class="syncparamdlg__item-right">dBm</div>
+                    </div>
+                </el-form-item>
+                <el-form-item label="北斗开关" prop="bd_gps_enable">
+                    <div class="syncparamdlg__item">
+                        <div class="syncparamdlg__item-left">
+                            <el-select v-model="dialogData.editData.data.bd_gps_enable" clearable placeholder="请选择"
+                                style="width:100%">
+                                <el-option v-for="(item, index) in mainData.switchList" :key="index" :label="item.label"
+                                    :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </div>
+                        <div class="syncparamdlg__item-right">打开:依赖北斗产生同步信号</div>
+                    </div>
+                </el-form-item>
+            </div>
         </el-form>
         <div style="padding-top: 10px;text-align:right">
             <el-button type="success" @click.native="hQueryOamSyncParam"
@@ -94,7 +170,7 @@
 
 <script>
 import { getBtsBaseParamById, updateBtsBaseParam, getBtsOamParamSync, setBtsOamParamSync } from "@/api/bparam"
-import { genSyncTxPowerList, genCenterFreqList, genBtsTypeList } from "../basestaticdata.js"
+import { genSyncTxPowerList, genCenterFreqList, genBtsTypeList, genSyncWordList, genSwitchList } from "../basestaticdata.js"
 export default {
     name: 'syncparamdlg',
     props: {
@@ -123,11 +199,38 @@ export default {
                         project_id: 0,
                         bts_id: 0,
                         bts_type: 0,
-                        center_freq: 0,
-                        tx_power: 0,
+                        center_freq: 0,//接收频率
+                        rx_sync_word_id: 0,//接收同步字
                         rssi: -128,//接收电平
+                        tx_switch: 0,//转发使能
+                        tx_center_freq: 0,//转发频率
+                        tx_sync_word_id: 0,//转发同步字
+                        tx_power: 0,//转发功率
+                        rssi: -128,//接收电平
+                        bd_gps_enable: 0,//北斗开关
                     },
                     rules: {
+                        center_freq: [
+                            { required: true, message: '请选择中心频率', trigger: 'blur' },
+                        ],
+                        rx_sync_word_id: [
+                            { required: true, message: '请选择接收同步字', trigger: 'blur' },
+                        ],
+                        tx_switch: [
+                            { required: true, message: '请选择转发开关', trigger: 'blur' },
+                        ],
+                        tx_center_freq: [
+                            { required: true, message: '请选择转发频率', trigger: 'blur' },
+                        ],
+                        tx_sync_word_id: [
+                            { required: true, message: '请选择转发同步字', trigger: 'blur' },
+                        ],
+                        tx_power: [
+                            { required: true, message: '请选择发射功率', trigger: 'blur' },
+                        ],
+                        bd_gps_enable: [
+                            { required: true, message: '请选择北斗开关', trigger: 'blur' },
+                        ],
                     }
                 }
             },
@@ -135,6 +238,8 @@ export default {
                 btsTypeList: genBtsTypeList(),
                 txPowerList: genSyncTxPowerList(),
                 centerFreqList: genCenterFreqList(),
+                syncWordList: genSyncWordList(),//同步字
+                switchList: genSwitchList(),//开关
                 btnEnable: true,
                 center_freq: 0,
                 bts_type: 0,
@@ -199,6 +304,7 @@ export default {
             getBtsOamParamSync(paramData).then((res) => {
                 this.$nextTick(() => {
                     this.dialogData.editData.data = res.data
+                    this.dialogData.editData.data.bd_gps_enable = res.data.bd_gps_enable + 1
                     this.dialogData.editData.data.bts_type = this.mainData.bts_type
                 })
             }).catch((err) => {
@@ -224,9 +330,20 @@ export default {
             paramData['id'] = parseInt(this.id)//记录ID
             paramData['bts_id'] = this.dialogData.editData.data.bts_id
             paramData['center_freq'] = this.dialogData.editData.data.center_freq
+            paramData['rx_sync_word_id'] = this.dialogData.editData.data.rx_sync_word_id
+            paramData['tx_switch'] = this.dialogData.editData.data.tx_switch
+            paramData['tx_center_freq'] = this.dialogData.editData.data.tx_center_freq
+            paramData['tx_sync_word_id'] = this.dialogData.editData.data.tx_sync_word_id
+
+            //GPS使能
+            paramData['bd_gps_enable'] = 0
+            if (this.dialogData.editData.data.bd_gps_enable > 0) {
+                paramData['bd_gps_enable'] = this.dialogData.editData.data.bd_gps_enable - 1
+            }
+
             paramData['tx_power'] = this.dialogData.editData.data.tx_power
 
-            setBtsOamParamSync(paramData).then((res) => {
+            setBtsOamParamSync(paramData).then(() => {
                 this.$message({ message: '远程设置参数成功', type: 'success' })
             }).catch(() => {
                 this.$message({ message: '远程设置参数失败', type: 'error' })
@@ -249,7 +366,13 @@ export default {
             }
 
             paramData['id'] = parseInt(this.id)//记录ID
+            paramData['bts_id'] = this.dialogData.editData.data.bts_id
             paramData['center_freq'] = this.dialogData.editData.data.center_freq
+            paramData['rx_sync_word_id'] = this.dialogData.editData.data.rx_sync_word_id
+            paramData['tx_switch'] = this.dialogData.editData.data.tx_switch
+            paramData['tx_center_freq'] = this.dialogData.editData.data.tx_center_freq
+            paramData['tx_sync_word_id'] = this.dialogData.editData.data.tx_sync_word_id
+            paramData['bd_gps_enable'] = this.dialogData.editData.data.bd_gps_enable
             paramData['tx_power'] = this.dialogData.editData.data.tx_power
 
             updateBtsBaseParam(paramData).then((res) => {

BIN
ipsomcapi/config.rar


+ 1 - 1
ipsomcapi/config/config.toml

@@ -37,5 +37,5 @@ secret="20f51dcb2619fae0008202aad5efacad"
 grant_type="authorization_code"
 
 [socket]
-hostaddress="192.168.1.7" #socket服务器的IP地址,如果是本地可以写0.0.0.0
+hostaddress="192.168.1.6" #socket服务器的IP地址,如果是本地可以写0.0.0.0
 hostport=8972 #socket服务器的端口

+ 2 - 1
ipsomcapi/module/bparam/bparammodel/bparammodel.go

@@ -48,11 +48,12 @@ type BtsBaseParam struct {
 	//同步参数
 	CenterFreq   uint8 `json:"center_freq" gorm:"default:0"`     //接收中心频率ID
 	RxSyncWordId uint8 `json:"rx_sync_word_id" gorm:"default:0"` //接收同步字ID
-	Rssi         int8  `json:"rssi" gorm:"default:-128"`         //接收电平
+	Rssi         int16 `json:"rssi" gorm:"default:-128"`         //接收电平
 	TxSwitch     uint8 `json:"tx_switch" gorm:"default:0"`       //转发开关(1:关闭,2:打开)
 	TxCenterFreq uint8 `json:"tx_center_freq" gorm:"default:0"`  //转发中心频率ID
 	TxSyncWordId uint8 `json:"tx_sync_word_id" gorm:"default:0"` //转发同步字ID
 	TxPower      int8  `json:"tx_power" gorm:"default:0"`        //转发功率
+	BdGpsEnable  uint8 `json:"bd_gps_enable" gorm:"default:0"`   //北斗GPS使能开关(1:关闭,2:打开)
 
 	//增益参数
 	DaSwitch  uint8  `json:"da_switch" gorm:"default:0"` //DA开关

+ 28 - 5
ipsomcapi/module/bparam/bparamoam/bparamoam.go

@@ -132,9 +132,17 @@ func (obj *BparamOam) OamQuerySyncParam(dataModel *bparammodel.BtsBaseParam) err
 	var dataList bytes.Buffer
 
 	////组织查询参数
-	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_CENTER_FREQ), &dataList) //中心频率
-	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_TX_POWER), &dataList)    //发射功率
-	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_RSSI), &dataList)        //接收电平
+	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_CENTER_FREQ), &dataList)  //中心频率
+	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_RX_SYNC_WORD), &dataList) //接收同步字
+	obj.OamOrganizeQueryLtvA(6, uint16(oam.ORDER_SYNC_RSSI), &dataList)         //接收电平
+
+	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_TX_FLAG), &dataList)        //转发开关
+	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_TX_CENTER_FREQ), &dataList) //转发频率
+	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_TX_SYNC_WORD), &dataList)   //转发同步字
+
+	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_TX_POWER), &dataList) //发射功率
+
+	obj.OamOrganizeQueryLtvA(5, uint16(oam.ORDER_SYNC_BD_GPS_ENABLE), &dataList) //北斗开关
 
 	//发送数据给基站
 	if err := obj.psDlApi.PsDlSendOamDataToBts(int(dataModel.ProjectID), dataModel.BtsID, psmodel.MCP_A, psmodel.MCP_A_QUERY, dataList.Bytes()); err != nil {
@@ -152,10 +160,25 @@ func (obj *BparamOam) OamSetSyncParam(dataModel *bparammodel.BtsBaseParam) error
 
 	////组织参数
 	tmpBytes = []byte{byte(dataModel.CenterFreq)}
-	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_CENTER_FREQ), tmpBytes, &dataList)
+	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_CENTER_FREQ), tmpBytes, &dataList) //中心频率(声波基站和同步基站)
+
+	tmpBytes = []byte{byte(dataModel.RxSyncWordId)}
+	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_RX_SYNC_WORD), tmpBytes, &dataList) //接收同步字
+
+	tmpBytes = []byte{byte(dataModel.TxSwitch)}
+	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_TX_FLAG), tmpBytes, &dataList) //转发开关
+
+	tmpBytes = []byte{byte(dataModel.TxCenterFreq)}
+	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_TX_CENTER_FREQ), tmpBytes, &dataList) //转发频率
+
+	tmpBytes = []byte{byte(dataModel.TxSyncWordId)}
+	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_TX_SYNC_WORD), tmpBytes, &dataList) //转发同步字
 
 	tmpBytes = []byte{byte(dataModel.TxPower)}
-	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_TX_POWER), tmpBytes, &dataList) //发射功率
+	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_TX_POWER), tmpBytes, &dataList) //发射功率(声波基站和同步基站)
+
+	tmpBytes = []byte{byte(dataModel.BdGpsEnable)}
+	obj.OamOrganizeSetLtvA(5, uint16(oam.ORDER_SYNC_BD_GPS_ENABLE), tmpBytes, &dataList) //北斗GPS使能开关
 
 	//发送数据给基站
 	if err := obj.psDlApi.PsDlSendOamDataToBts(int(dataModel.ProjectID), dataModel.BtsID, psmodel.MCP_A, psmodel.MCP_A_CONFIGURE, dataList.Bytes()); err != nil {

+ 9 - 6
ipsomcapi/module/oam/oamsync.go

@@ -21,6 +21,7 @@ const (
 	ORDER_SYNC_TX_CENTER_FREQ = 0x0507
 	ORDER_SYNC_TX_SYNC_WORD   = 0x0508
 	ORDER_SYNC_TX_POWER       = 0x0503
+	ORDER_SYNC_BD_GPS_ENABLE  = 0x0509
 )
 
 // 同步参数查询响应
@@ -30,20 +31,22 @@ const (
 // wLen:队列长度
 func (obj *OamSync) OamSyncQueryResp(dataModel *bparammodel.BtsBaseParam, wCommand uint16, datalist []byte, wLen uint16) error {
 	switch wCommand {
-	case ORDER_SYNC_CENTER_FREQ: //接收中心频率
+	case ORDER_SYNC_CENTER_FREQ: //接收/发射中心频率
 		dataModel.CenterFreq = uint8(datalist[0])
 	case ORDER_SYNC_RX_SYNC_WORD: //接收同步字
 		dataModel.RxSyncWordId = uint8(datalist[0])
 	case ORDER_SYNC_RSSI: //接收电平
-		dataModel.Rssi = int8(datalist[0])
-	case ORDER_SYNC_TX_FLAG: //发射标识符
+		dataModel.Rssi = int16(datalist[0])
+	case ORDER_SYNC_TX_FLAG: //转发开关
 		dataModel.TxSwitch = uint8(datalist[0])
-	case ORDER_SYNC_TX_CENTER_FREQ: //发中心频率
+	case ORDER_SYNC_TX_CENTER_FREQ: //发中心频率
 		dataModel.TxCenterFreq = uint8(datalist[0])
-	case ORDER_SYNC_TX_SYNC_WORD: //发同步字
+	case ORDER_SYNC_TX_SYNC_WORD: //发同步字
 		dataModel.TxSyncWordId = uint8(datalist[0])
-	case ORDER_SYNC_TX_POWER: //发送功率
+	case ORDER_SYNC_TX_POWER: //发送/转发功率
 		dataModel.TxPower = int8(datalist[0])
+	case ORDER_SYNC_BD_GPS_ENABLE: //BD/GSP开关
+		dataModel.BdGpsEnable = uint8(datalist[0])
 	default:
 		break
 	}