ソースを参照

增加调试接口,增加ble基站有效门限判断,蓝牙刷新改成500毫秒刷新一次

zhoutao 2 週間 前
コミット
f77e55e254
4 ファイル変更56 行追加14 行削除
  1. 14 7
      app.js
  2. 3 3
      pages/home/home.js
  3. BIN
      wasm/aplm8000sdk.wasm
  4. 39 4
      worker/wasmapi.js

+ 14 - 7
app.js

@@ -142,7 +142,7 @@ App({
             success: function (res) {
                 wx.startBluetoothDevicesDiscovery({
                     allowDuplicatesKey: true,//允许重复上报同一设备,每次上报RSSI值会有不同
-                    interval: 2000,//2秒扫描一次
+                    interval: 500,//2秒扫描一次
                     powerLevel: "medium",
                     success() {
                         self.monitorBleBtsScanResult()
@@ -180,15 +180,22 @@ App({
 
                         let macAddress = bleName.substring(0, 12);//BLE的mac地址
                         let rssi = -10000;
-                        if (element.RSSI) {
+                        if (element.RSSI && element.RSSI > -78) {
                             rssi = element.RSSI//接收电平强度
+                            //保存扫描结果
+                            let item = {}
+                            item['mac'] = macAddress;
+                            item['rssi'] = rssi
+                            bleBtsDataList.push(item)
+
+                            console.log("rssi", element.RSSI)
                         }
 
-                        //保存扫描结果
-                        let item = {}
-                        item['mac'] = macAddress;
-                        item['rssi'] = rssi
-                        bleBtsDataList.push(item)
+                        // //保存扫描结果
+                        // let item = {}
+                        // item['mac'] = macAddress;
+                        // item['rssi'] = rssi
+                        // bleBtsDataList.push(item)
                     }
                 }
             })

+ 3 - 3
pages/home/home.js

@@ -422,9 +422,9 @@ Page({
             let x = (this.data.btsDataList[i].dwCoordX - ctxMinX) * radio
             let y = this.data.canvasHeight - (this.data.btsDataList[i].dwCoordY - ctxMinY) * radio
             const btsId = this.data.btsDataList[i].dwBtsId
-            const freqIndex = this.data.btsDataList[i].dwFreqIndex
-            const slot = this.data.btsDataList[i].dwSlot
-            const coord = "[" + this.data.btsDataList[i].dwCoordX / 100 + "," + this.data.btsDataList[i].dwCoordY / 100 + "," + this.data.btsDataList[i].dwCoordZ / 100 + "]"
+            const freqIndex = this.data.btsDataList[i].dwFreqIndex + 1
+            const slot = this.data.btsDataList[i].dwSlot + 1
+            const coord = "[" + parseInt(this.data.btsDataList[i].dwCoordX / 100) + "," + parseInt(this.data.btsDataList[i].dwCoordY / 100) + "," + parseInt(this.data.btsDataList[i].dwCoordZ / 100) + "]"
 
             positionCtx.fillStyle = "#FF0000"
             positionCtx.fillRect(x - 5, y - 5, 6, 6);//基站标识符

BIN
wasm/aplm8000sdk.wasm


+ 39 - 4
worker/wasmapi.js

@@ -78,6 +78,8 @@ const wasmapi = {
         currentLocationCoordPtr: 0,//定位坐标数据指针
         accDataPtr: 0,//加速度指针
         softNameAndVersionPtr: 0,//软件名称和版本数据指针
+        btsSysConfigParamPtr: 0,//基站系统配置参数
+        sysDebugSwitchPtr: 0,//系统调试开关数据指针
     },
     data: {
         audioDataList: [],//音频数据队列
@@ -195,6 +197,14 @@ const wasmapi = {
             //获得wasm模块软件名称和版本数据指针
             self.wasmDataPtr.softNameAndVersionPtr = self.wasmFuncs.exchange_js_get_soft_name_and_version_save_address()
 
+            //获得wasm模块基站系统配置参数
+            self.wasmDataPtr.btsSysConfigParamPtr = self.wasmFuncs.exchange_js_get_sys_config_param_save_address()
+            self.injectBtsSysConfigParamToWasm()//注入数据并通知wasm模块设置基站系统配置参数
+
+            //获得系统调试开关数据指针并配置调试开关
+            self.wasmDataPtr.sysDebugSwitchPtr = self.wasmFuncs.exchange_js_get_debug_switch_data_address()
+            self.injectSysDebugSwitchToWasm()//注入调试开关数据
+
             //通知主控模块开始监听蓝牙
             worker.postMessage({
                 message: 'WORKER_MAIN_START_MONITOR_BLE_BTS',
@@ -327,7 +337,7 @@ const wasmapi = {
                 //把音频数据逐帧注入wasm模块
                 let ptr = this.wasmDataPtr.audioDataPtr / 2//音频数据在wasm模块中按2字节存储
                 for (let i = 0; i < frameCounter; i++) {
-                    let beginTime = new Date().getTime()//开始计时
+                    // let beginTime = new Date().getTime()//开始计时
 
                     //1、把数据注入wasm模块
                     let baseIndex = i * this.data.oneFrameLen
@@ -345,8 +355,8 @@ const wasmapi = {
                     //3、通知wasm模块处理音频数据
                     let result = this.wasmFuncs.exchange_js_notice_wasm_start_work()
 
-                    let stopTime = new Date().getTime() - beginTime//结束计时
-                    console.log("耗时:", stopTime)
+                    // let stopTime = new Date().getTime() - beginTime//结束计时
+                    // console.log("耗时:", stopTime)
 
                     //4、获取wasm模块处理音频数据的结果
                     if (result != 1) {
@@ -440,7 +450,7 @@ const wasmapi = {
             //注入3轴加速度
             for (let i = 0; i < wLen; i++) {
                 item = dataList[i]
-                ptr = ptr + i * 3//修改数据指针
+                ptr = ptr + i * 3//修改数据指针,去掉时间戳数据
                 HEAPF32[ptr] = item.x//x轴加速度
                 HEAPF32[ptr + 1] = item.y//y轴加速度
                 HEAPF32[ptr + 2] = item.z//z轴加速度
@@ -450,6 +460,31 @@ const wasmapi = {
             this.wasmFuncs.exchange_js_notice_wasm_save_acc()
         }
     },
+    //注入基站系统配置参数到wasm模块
+    injectBtsSysConfigParamToWasm() {
+        //注入数据
+        let ptr = this.wasmDataPtr.btsSysConfigParamPtr / 4 //基站系统配置参数在wasm模块中按4字节存储
+        HEAPU32[ptr] = 350 //基站幅度有效门限,默认值350
+        HEAPU32[ptr + 1] = 50 // 基站SNR有效门限,默认值50
+        HEAPU32[ptr + 2] = 1500 // 主站幅度有效门限,默认值1500
+        HEAPU32[ptr + 3] = 35 // 基站间最大间距,单位米,默认值35
+        HEAPU32[ptr + 4] = 102 // 三轴陀螺仪加速度门限,默认值102
+
+        //通知wasm模块设置基站系统配置参数
+        this.wasmFuncs.exchange_js_notice_wasm_set_sys_config_param()
+    },
+    //注入系统调试开关参数到wasm模块,以决定打印相关调试信息
+    injectSysDebugSwitchToWasm() {
+        //注入数据
+        let ptr = this.wasmDataPtr.sysDebugSwitchPtr / 4 //参数在wasm模块中按4字节存储
+        HEAPU32[ptr] = 0 //初始化阶段主站信息,0:不打印,1:打印
+        HEAPU32[ptr + 1] = 1 // 定位基站组,0:不打印,1:打印
+        HEAPU32[ptr + 2] = 0 // 频率同步信息,0:不打印,1:打印
+        HEAPU32[ptr + 3] = 0 // 初步有效基站组,0:不打印,1:打印
+        HEAPU32[ptr + 4] = 0 // 最终有效基站组(暂无效),0:不打印,1:打印
+        HEAPU32[ptr + 5] = 1 // 路径选择,0:不打印,1:打印
+        HEAPU32[ptr + 6] = 1 // 维度选择,0:不打印,1:打印
+    },
     //通知wasm模块释放内存
     noticeWasmFreeMemory() {
         this.wasmFuncs.exchange_js_notice_wasm_free_memory()