From: liangzhenying <867174124@qq.com> Date: Fri, 4 Jul 2025 05:58:37 +0000 (+0800) Subject: 乘车码分包传输 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=69d40feba6143e75104d48743027d1156809d75e;p=mirrors%2FIOTBluetooth-iOS.git 乘车码分包传输 --- diff --git "a/Doc/\346\227\245\345\277\227/\345\233\272\344\273\266\345\215\207\347\272\247\345\244\261\350\264\245.txt" "b/Doc/\346\227\245\345\277\227/\345\233\272\344\273\266\345\215\207\347\272\247\345\244\261\350\264\245.txt" new file mode 100644 index 0000000..944222a --- /dev/null +++ "b/Doc/\346\227\245\345\277\227/\345\233\272\344\273\266\345\215\207\347\272\247\345\244\261\350\264\245.txt" @@ -0,0 +1,448 @@ +CLIENT OF UIKIT REQUIRES UPDATE: This process does not adopt UIScene lifecycle. This will become an assert in a future version. +logCollectUserId must be less than 128. +==================可接入免费的网络分析能力!!!=================== +详情见:https://developer.umeng.com/docs/193624/detail/194595#h4-xf3-pt3-wwy +================开启网络模块的开发者必读提醒!!!================= +========同时集成U-UAPM网络模块和NSURLProtocol特别注意如下======== +========保证NSURLProtocol先初始化,U-UAPM网络模块后初始化========= +=========================示例代码如下:======================== + [NSURLProtocol registerClass:[UMURLProtocol class]]; + + UMAPMConfig* config = [UMAPMConfig defaultConfig]; + config.networkEnable = YES; + [UMCrashConfigure setAPMConfig:config]; + [UMConfigure initWithAppkey:UMAPPKEY channel:UMChannel]; + +FAQ链接如下: +https://developer.umeng.com/docs/193624/detail/352123 +============================================================= +[Reporter] SDK init success +logCollectUserId must be less than 128. +2025-06-12 15:55:57.236 [IOTBluetooth-031]: ==============IOTBluetooth_v2.0.2===================== +host=(null) +port=(null) +type=kCFProxyTypeNone +2025-06-12 15:55:57.370 [IOTBluetooth-015]: 当前网络状态改变true +2025-06-12 15:55:57.370 UBManager.swift prepare() [Line 154] Verbose: 2.0.2 +2025-06-12 15:55:57.375 [IOTBluetooth-062]: 1 +2025-06-12 15:55:57.375 [IOTBluetooth-156]: 1002 Write: 730901010000000100000001000000010001ff Bytes(19) +2025-06-12 15:55:57.375 [IOTBluetooth-172]: 手机未连上蓝牙设备! +2025-06-12 15:55:57.375 UBOfflineChecker.swift prepare() [Line 45] Bluetooth: UBOfflineChecker Ready. +2025-06-12 15:55:57.456 BMLocalNotification.swift requestAuthorization() [Line 67] Verbose: 2 +UMAPM_NetworkEnable(0:1): 0 +UMAPM_MemEnable(0:0): 0 +UMAPM_OOMSampling(0,0):NO +UMAPM_NetworkSampling(0,0):NO +2025-06-12 15:55:57.658 [IOTBluetooth-116]: 开始扫描蓝牙设备... +2025-06-12 15:55:57.661 [IOTBluetooth-207]: poweredOn +tcp_input [C1.1.1:3] flags=[R] seq=3912953162, ack=3657537026, win=0 state=LAST_ACK rcv_nxt=3912953162, snd_una=4152042502 +tcp_input [C1.1.1:3] flags=[R] seq=3912953162, ack=3657537026, win=0 state=CLOSED rcv_nxt=3912953162, snd_una=4152042502 +tcp_input [C1.1.1:3] flags=[R] seq=3912953162, ack=3657537026, win=0 state=CLOSED rcv_nxt=3912953162, snd_una=4152042502 +tcp_input [C2.1.1:3] flags=[R] seq=2407215361, ack=1610070882, win=0 state=LAST_ACK rcv_nxt=2407215361, snd_una=429175426 +tcp_input [C2.1.1:3] flags=[R] seq=2407215361, ack=1610070882, win=0 state=CLOSED rcv_nxt=2407215361, snd_una=429175426 +tcp_input [C3.1.1:3] flags=[R] seq=2255938117, ack=1146931541, win=0 state=LAST_ACK rcv_nxt=2255938117, snd_una=2465726230 +tcp_input [C3.1.1:3] flags=[R] seq=2255938117, ack=1146931541, win=0 state=CLOSED rcv_nxt=2255938117, snd_una=2465726230 +tcp_input [C3.1.1:3] flags=[R] seq=2255938117, ack=1146931541, win=0 state=CLOSED rcv_nxt=2255938117, snd_una=2465726230 +2025-06-12 15:55:59.691 BMLaunchViewController.swift checkNetworkAuthStatus() [Line 172] Verbose: 已授权访问网络 +2025-06-12 15:55:59.997 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/app/application/new-version?id=1796118737042604035¤tVersionCode=11000 +App is being debugged, do not track this hang +Hang detected: 0.30s (debugger attached, not reporting) +2025-06-12 15:56:00.142 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:00.158 Request.swift adaptHandler [Line 38] Debug: ["app-id": "80_JsWgHTvEdZf5dAe5owyr", "appId": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034"] +2025-06-12 15:56:00.971 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"当前已经是最新版本","code":20006,"data":null} +2025-06-12 15:56:01.055 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/app/application/new-version?id=1796118737042604035¤tVersionCode=11000 +2025-06-12 15:56:01.056 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:01.056 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"当前已经是最新版本","code":20006,"data":null} +2025-06-12 15:56:01.210 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/uc/token +2025-06-12 15:56:01.212 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:01.212 Request.swift adaptHandler [Line 38] Debug: ["sob-token": "b67f9914e1904771b62b31306e9b5034", "appId": "80_JsWgHTvEdZf5dAe5owyr", "app-id": "80_JsWgHTvEdZf5dAe5owyr"] +2025-06-12 15:56:01.447 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"账号已登录","code":20000,"data":{"id":"1796118737042604035","avatar":"https://u-oss.thisiot.com/images/2025_01_14/1879019986452283393.jpg","userName":"22","createTime":"2024-05-30 17:57","regIp":null,"loginIp":null,"phone":"134*****445","token":"b67f9914e1904771b62b31306e9b5034","status":"1","roleId":null,"roleName":null,"companyId":null,"companyName":null,"menuVersion":null,"gender":"","vip":false,"verify":false}} +2025-06-12 15:56:01.517 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/uc/token +2025-06-12 15:56:01.517 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:01.518 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"账号已登录","code":20000,"data":{"id":"1796118737042604035","avatar":"https://u-oss.thisiot.com/images/2025_01_14/1879019986452283393.jpg","userName":"22","createTime":"2024-05-30 17:57","regIp":null,"loginIp":null,"phone":"134*****445","token":"b67f9914e1904771b62b31306e9b5034","status":"1","roleId":null,"roleName":null,"companyId":null,"companyName":null,"menuVersion":null,"gender":"","vip":false,"verify":false}} +2025-06-12 15:56:01.687 BMNetwork.swift fetchUserInfo(completionHandler:) [Line 105] Verbose: success +2025-06-12 15:56:01.771 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/uc/user-info +2025-06-12 15:56:01.773 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:01.844 Request.swift adaptHandler [Line 38] Debug: ["app-id": "80_JsWgHTvEdZf5dAe5owyr", "appId": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034"] +App is being debugged, do not track this hang +Hang detected: 0.30s (debugger attached, not reporting) +2025-06-12 15:56:02.237 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"获取用户信息成功.","code":20000,"data":{"id":"1796118737063575553","userId":"1796118737042604035","registerIp":"119.123.72.209","birthday":"1993-01-01 00:00","qq":null,"weChat":null,"sign":null,"age":32,"tall":184,"weight":56000,"deleted":"0","gender":"","createTime":"2024-05-30 17:57","updateTime":"2024-05-30 17:57"}} +2025-06-12 15:56:02.237 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/uc/user-info +2025-06-12 15:56:02.237 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:02.238 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"获取用户信息成功.","code":20000,"data":{"id":"1796118737063575553","userId":"1796118737042604035","registerIp":"119.123.72.209","birthday":"1993-01-01 00:00","qq":null,"weChat":null,"sign":null,"age":32,"tall":184,"weight":56000,"deleted":"0","gender":"","createTime":"2024-05-30 17:57","updateTime":"2024-05-30 17:57"}} +2025-06-12 15:56:02.496 BMLaunchViewController.swift checkNetworkAuthStatus() [Line 172] Verbose: 已授权访问网络 +2025-06-12 15:56:02.611 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMLaunchViewController,0x0000000105072b40 +2025-06-12 15:56:02.611 BaseView.swift deinit [Line 32] Verbose: deinit BaseView +2025-06-12 15:56:02.617 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/app/application/new-version?currentVersionCode=11000&id=1796118737042604035 +2025-06-12 15:56:02.617 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:02.617 Request.swift adaptHandler [Line 38] Debug: ["app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034", "appId": "80_JsWgHTvEdZf5dAe5owyr"] +2025-06-12 15:56:02.764 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"当前已经是最新版本","code":20006,"data":null} +2025-06-12 15:56:02.827 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/app/application/new-version?currentVersionCode=11000&id=1796118737042604035 +2025-06-12 15:56:02.827 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:02.827 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"当前已经是最新版本","code":20006,"data":null} +2025-06-12 15:56:02.828 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/uc/token +2025-06-12 15:56:02.828 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:02.828 Request.swift adaptHandler [Line 38] Debug: ["app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034", "appId": "80_JsWgHTvEdZf5dAe5owyr"] +2025-06-12 15:56:02.878 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"账号已登录","code":20000,"data":{"id":"1796118737042604035","avatar":"https://u-oss.thisiot.com/images/2025_01_14/1879019986452283393.jpg","userName":"22","createTime":"2024-05-30 17:57","regIp":null,"loginIp":null,"phone":"134*****445","token":"b67f9914e1904771b62b31306e9b5034","status":"1","roleId":null,"roleName":null,"companyId":null,"companyName":null,"menuVersion":null,"gender":"","vip":false,"verify":false}} +2025-06-12 15:56:02.879 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/uc/token +2025-06-12 15:56:02.879 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:02.879 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"账号已登录","code":20000,"data":{"id":"1796118737042604035","avatar":"https://u-oss.thisiot.com/images/2025_01_14/1879019986452283393.jpg","userName":"22","createTime":"2024-05-30 17:57","regIp":null,"loginIp":null,"phone":"134*****445","token":"b67f9914e1904771b62b31306e9b5034","status":"1","roleId":null,"roleName":null,"companyId":null,"companyName":null,"menuVersion":null,"gender":"","vip":false,"verify":false}} +2025-06-12 15:56:02.880 BMNetwork.swift fetchUserInfo(completionHandler:) [Line 105] Verbose: success +2025-06-12 15:56:02.880 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/uc/user-info +2025-06-12 15:56:02.881 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:02.881 Request.swift adaptHandler [Line 38] Debug: ["app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034", "appId": "80_JsWgHTvEdZf5dAe5owyr"] +2025-06-12 15:56:02.931 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"获取用户信息成功.","code":20000,"data":{"id":"1796118737063575553","userId":"1796118737042604035","registerIp":"119.123.72.209","birthday":"1993-01-01 00:00","qq":null,"weChat":null,"sign":null,"age":32,"tall":184,"weight":56000,"deleted":"0","gender":"","createTime":"2024-05-30 17:57","updateTime":"2024-05-30 17:57"}} +2025-06-12 15:56:02.932 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/uc/user-info +2025-06-12 15:56:02.932 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:02.933 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"获取用户信息成功.","code":20000,"data":{"id":"1796118737063575553","userId":"1796118737042604035","registerIp":"119.123.72.209","birthday":"1993-01-01 00:00","qq":null,"weChat":null,"sign":null,"age":32,"tall":184,"weight":56000,"deleted":"0","gender":"","createTime":"2024-05-30 17:57","updateTime":"2024-05-30 17:57"}} +Animation Duration: 0.42807793617248535 +2025-06-12 15:56:03.045 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMSportViewController,0x000000010d20a800 +2025-06-12 15:56:03.045 BaseView.swift deinit [Line 32] Verbose: deinit BMSportTabView +2025-06-12 15:56:03.045 BaseView.swift deinit [Line 32] Verbose: deinit BMOutIndoorTabView +2025-06-12 15:56:03.046 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMDeviceViewController,0x000000010d208f00 +2025-06-12 15:56:03.047 BaseView.swift deinit [Line 32] Verbose: deinit BMConnectDeviceView +2025-06-12 15:56:03.047 BaseView.swift deinit [Line 32] Verbose: deinit BMAddSheetView +2025-06-12 15:56:03.048 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMDiscoveryViewController,0x000000010d208a00 +2025-06-12 15:56:03.048 BaseView.swift deinit [Line 32] Verbose: deinit BMDiscoveryTabView +2025-06-12 15:56:03.048 BaseView.swift deinit [Line 32] Verbose: deinit BMCurrentWeatherView +2025-06-12 15:56:03.048 BaseView.swift deinit [Line 32] Verbose: deinit BMTemperatureLabel +2025-06-12 15:56:03.048 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMMyViewController,0x000000010d20a300 +2025-06-12 15:56:03.048 BaseView.swift deinit [Line 32] Verbose: deinit BMUserInfoView +2025-06-12 15:56:03.048 BaseView.swift deinit [Line 32] Verbose: deinit BMVerticalLabel +2025-06-12 15:56:03.048 BaseView.swift deinit [Line 32] Verbose: deinit BMVerticalLabel +2025-06-12 15:56:03.048 BaseView.swift deinit [Line 32] Verbose: deinit BMVerticalLabel +2025-06-12 15:56:03.049 BaseView.swift deinit [Line 32] Verbose: deinit BMTabBarButton +2025-06-12 15:56:03.049 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMHealthViewController,0x000000010d208500 +2025-06-12 15:56:03.049 BaseView.swift deinit [Line 32] Verbose: deinit BMHealthDataView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMSleepView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMVerticalLabel +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMVerticalLabel +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMVerticalLabel +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMPhysicalTrainingView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMPhysicalItemView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMPhysicalItemView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMPhysicalItemView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMTodayGoalItemView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMGoalItemView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMGoalItemView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMGoalItemView +2025-06-12 15:56:03.050 BaseView.swift deinit [Line 32] Verbose: deinit BMAddSheetView +2025-06-12 15:56:03.051 BaseView.swift deinit [Line 32] Verbose: deinit BMDeviceStateView +Animation Duration: 0.6489520072937012 +2025-06-12 15:56:06.754 BMHealthViewController.swift viewDidLoad() [Line 92] Verbose: 去绑定设备 +2025-06-12 15:56:06.755 BaseView.swift deinit [Line 32] Verbose: deinit BaseView +2025-06-12 15:56:07.291 UBManager.swift startScan(_:) [Line 224] Bluetooth: 开始扫描 +2025-06-12 15:56:07.298 UBIOTManager.swift startScan(_:) [Line 69] Verbose: 开始扫描 [] +2025-06-12 15:56:07.298 [IOTBluetooth-116]: 开始扫描蓝牙设备... +2025-06-12 15:56:07.312 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/dev/device/bt/list +2025-06-12 15:56:07.313 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:07.313 Request.swift adaptHandler [Line 38] Debug: ["appId": "80_JsWgHTvEdZf5dAe5owyr", "app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034"] +2025-06-12 15:56:07.514 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"获取设备列表成功.","code":20000,"data":[{"id":"1834629381672730627","productId":"1802518141592993793","deviceId":"2811060100AA","nickName":"FD230","avatar":null,"companyId":"1745742088258519041","version":null,"state":"0","managerId":"1796118737042604035","battery":null,"si":null,"importRecordId":"1834629381626593282","createTime":"2024-09-14 00:25","updateTime":"2024-09-14 00:25","locationMode":null,"position":null,"address":null,"location":null,"firstUser":null,"secondUser":null,"image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png"}]} +2025-06-12 15:56:07.515 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/dev/device/bt/list +2025-06-12 15:56:07.515 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:07.515 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"获取设备列表成功.","code":20000,"data":[{"id":"1834629381672730627","productId":"1802518141592993793","deviceId":"2811060100AA","nickName":"FD230","avatar":null,"companyId":"1745742088258519041","version":null,"state":"0","managerId":"1796118737042604035","battery":null,"si":null,"importRecordId":"1834629381626593282","createTime":"2024-09-14 00:25","updateTime":"2024-09-14 00:25","locationMode":null,"position":null,"address":null,"location":null,"firstUser":null,"secondUser":null,"image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png"}]} +2025-06-12 15:56:07.544 UBIOTManager.swift startScan(_:) [Line 83] Bluetooth: find WATCH Soar 009B B4F1FA9B-6584-6DBD-972A-E8574D274C37 28:11:06:01:00:9B +2025-06-12 15:56:07.545 BMNearbyDeivceViewController.swift startScan() [Line 161] Verbose: find WATCH Soar 009B, 28:11:06:01:00:9B +2025-06-12 15:56:07.545 UBIOTManager.swift startScan(_:) [Line 77] Bluetooth: update WATCH Soar 009B B4F1FA9B-6584-6DBD-972A-E8574D274C37 28:11:06:01:00:9B +2025-06-12 15:56:08.220 UBIOTManager.swift startScan(_:) [Line 83] Bluetooth: find WATCH Soar 0086 21F9DA4A-6B0A-4C9E-64E9-40CBB4689B13 28:11:06:01:00:86 +2025-06-12 15:56:08.221 BMNearbyDeivceViewController.swift startScan() [Line 161] Verbose: find WATCH Soar 0086, 28:11:06:01:00:86 +2025-06-12 15:56:09.231 UBIOTManager.swift startScan(_:) [Line 77] Bluetooth: update WATCH Soar 0086 21F9DA4A-6B0A-4C9E-64E9-40CBB4689B13 28:11:06:01:00:86 +2025-06-12 15:56:09.646 UBIOTManager.swift startScan(_:) [Line 83] Bluetooth: find KUMI U6 0065 C9B10E30-30A6-60CB-47D6-58735684935B FD:24:20:00:00:65 +2025-06-12 15:56:09.647 BMNearbyDeivceViewController.swift startScan() [Line 161] Verbose: find KUMI U6 0065, FD:24:20:00:00:65 +2025-06-12 15:56:09.648 UBIOTManager.swift startScan(_:) [Line 77] Bluetooth: update KUMI U6 0065 C9B10E30-30A6-60CB-47D6-58735684935B FD:24:20:00:00:65 +2025-06-12 15:56:09.882 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/dev/bind?mac=28:11:06:01:00:86 +2025-06-12 15:56:09.884 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:09.884 Request.swift adaptHandler [Line 38] Debug: ["Content-Type": "application/x-www-form-urlencoded; charset=utf-8", "sob-token": "b67f9914e1904771b62b31306e9b5034", "appId": "80_JsWgHTvEdZf5dAe5owyr", "app-id": "80_JsWgHTvEdZf5dAe5owyr"] +Animation Duration: 2.5712878704071045 +2025-06-12 15:56:10.054 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"设备绑定蓝牙成功.","code":20000,"data":"HS"} +2025-06-12 15:56:10.055 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/dev/bind?mac=28:11:06:01:00:86 +2025-06-12 15:56:10.056 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:10.056 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"设备绑定蓝牙成功.","code":20000,"data":"HS"} +2025-06-12 15:56:10.072 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/dev/product/profile?deviceId=28:11:06:01:00:86 +2025-06-12 15:56:10.073 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:10.074 Request.swift adaptHandler [Line 38] Debug: ["sob-token": "b67f9914e1904771b62b31306e9b5034", "app-id": "80_JsWgHTvEdZf5dAe5owyr", "appId": "80_JsWgHTvEdZf5dAe5owyr"] +2025-06-12 15:56:10.133 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"获取设备所属产品成功.","code":20000,"data":{"id":"1802518141592993793","companyId":"1745742088258519041","name":"FD230","image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png","os":"Rtos","screen":"300x300","screenType":"0","ram":"","rom":"","cpu":"","protocolId":"1737094811635343362","description":"FD240/241","chatEnable":"1","videoCallEnable":"1","deleted":"0","createTime":"2024-06-17 09:46","updateTime":"2024-06-17 09:46","companyName":null,"protocolLabel":null,"cid":"HS","cidId":"1907358139050725378"}} +2025-06-12 15:56:10.133 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/dev/product/profile?deviceId=28:11:06:01:00:86 +2025-06-12 15:56:10.134 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:10.134 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"获取设备所属产品成功.","code":20000,"data":{"id":"1802518141592993793","companyId":"1745742088258519041","name":"FD230","image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png","os":"Rtos","screen":"300x300","screenType":"0","ram":"","rom":"","cpu":"","protocolId":"1737094811635343362","description":"FD240/241","chatEnable":"1","videoCallEnable":"1","deleted":"0","createTime":"2024-06-17 09:46","updateTime":"2024-06-17 09:46","companyName":null,"protocolLabel":null,"cid":"HS","cidId":"1907358139050725378"}} +2025-06-12 15:56:10.134 BMConnectDeivceViewController.swift connect() [Line 72] Verbose: 1745742088258519041 HS +2025-06-12 15:56:10.134 UBIOTManager.swift connect(_:completion:) [Line 115] Bluetooth: WATCH Soar 0086 正在连接... +2025-06-12 15:56:10.599 UBIOTManager.swift startScan(_:) [Line 83] Bluetooth: find WATCH Soar 0111 8636CDAD-5277-D948-BE46-A445B34B6459 28:11:06:01:01:11 +2025-06-12 15:56:10.601 BMNearbyDeivceViewController.swift startScan() [Line 161] Verbose: find WATCH Soar 0111, 28:11:06:01:01:11 +2025-06-12 15:56:10.601 UBIOTManager.swift startScan(_:) [Line 77] Bluetooth: update WATCH Soar 0111 8636CDAD-5277-D948-BE46-A445B34B6459 28:11:06:01:01:11 +2025-06-12 15:56:10.751 [IOTBluetooth-236]: 已连接 WATCH Soar 0086 +2025-06-12 15:56:12.293 [IOTBluetooth-334]: [receive] 2AE2 5772000103722811060100860000050500010001 +2025-06-12 15:56:12.294 [IOTBluetooth-074]: 57 72 00 01 03 72 28 11 06 01 00 86 00 00 05 05 00 01 00 01 +2025-06-12 15:56:12.313 [IOTBluetooth-408]: {"tp":1,"pn":"iphone","mac":[20,209,158,71,129,27]} +2025-06-12 15:56:12.314 [IOTBluetooth-156]: 2AE4 Write: 73021001000000330000000100000033007b227470223a312c22706e223a226970686f6e65222c226d6163223a5b32302c3230392c3135382c37312c3132392c32375d7daf Bytes(69) +2025-06-12 15:56:12.382 [IOTBluetooth-334]: [receive] 2AE5 720210010000000100000001000000010001ff +2025-06-12 15:56:12.382 [IOTBluetooth-069]: total = 1,receive = 1 +2025-06-12 15:56:12.392 [IOTBluetooth-116]: IBResponse(code: 1000,isSuccess: true, massage:手表未与任何手机绑定, value:1) +2025-06-12 15:56:12.392 [IOTBluetooth-131]: 等待手表同意连接 +2025-06-12 15:56:12.397 [IOTBluetooth-326]: didUpdateValueFor error Error Domain=CBATTErrorDomain Code=2 "Reading is not permitted." UserInfo={NSLocalizedDescription=Reading is not permitted.} +tcp_input [C8.1.1:2] flags=[R.] seq=0, ack=4027962016, win=0 state=SYN_SENT rcv_nxt=0, snd_una=4027962015 +2025-06-12 15:56:12.473 [IOTBluetooth-334]: [receive] 2AE7 0000 +nw_endpoint_flow_failed_with_error [C8.1.1 2406:d440:30c:8301:4c26:77fc:2c14:ef94.80 in_progress channel-flow (satisfied (Path is satisfied), viable, interface: pdp_ip0[nr_sa_sub6], ipv4, ipv6, dns, expensive, uses cell)] already failing, returning +2025-06-12 15:56:12.534 [IOTBluetooth-334]: [receive] 1001 +2025-06-12 15:56:12.624 [IOTBluetooth-345]: 2AE4 write success +2025-06-12 15:56:12.625 [IOTBluetooth-334]: [receive] 2AE5 720210010000000100000001000000010001ff +2025-06-12 15:56:12.625 [IOTBluetooth-069]: total = 1,receive = 1 +error in connection_block_invoke_2: Connection invalid +2025-06-12 15:56:14.903 [IOTBluetooth-334]: [receive] 2AE5 720511010000000100000001000000010001ff +2025-06-12 15:56:14.903 [IOTBluetooth-069]: total = 1,receive = 1 +2025-06-12 15:56:14.903 [IOTBluetooth-016]: 收到确认配对消息: 确认配对 +2025-06-12 15:56:14.904 [IOTBluetooth-101]: 通知消息 +nw_path_necp_check_for_updates Failed to copy updated result (22) +tcp_input [C13.1.1:3] flags=[R] seq=327350647, ack=2076414319, win=0 state=LAST_ACK rcv_nxt=327350647, snd_una=1255190175 +tcp_input [C13.1.1:3] flags=[R] seq=327350647, ack=2076414319, win=0 state=CLOSED rcv_nxt=327350647, snd_una=1255190175 +tcp_input [C13.1.1:3] flags=[R] seq=327350647, ack=2076414319, win=0 state=CLOSED rcv_nxt=327350647, snd_una=1255190175 +2025-06-12 15:56:17.050 UBIOTManager.swift startScan(_:) [Line 83] Bluetooth: find WATCH Soar 0072 CD05098D-B96E-5F63-C4AC-13C5753DA4B4 28:11:06:01:00:72 +2025-06-12 15:56:17.052 BMNearbyDeivceViewController.swift startScan() [Line 161] Verbose: find WATCH Soar 0072, 28:11:06:01:00:72 +tcp_input [C14.1.1:3] flags=[R] seq=678742307, ack=1853057773, win=0 state=LAST_ACK rcv_nxt=678742307, snd_una=3602976754 +tcp_input [C14.1.1:3] flags=[R] seq=678742307, ack=1853057773, win=0 state=CLOSED rcv_nxt=678742307, snd_una=3602976754 +2025-06-12 15:56:17.902 [IOTBluetooth-334]: [receive] 2AE5 72051001000000070000000100000007000114d19e47811b99 +2025-06-12 15:56:17.902 [IOTBluetooth-069]: total = 7,receive = 7 +2025-06-12 15:56:17.908 [IOTBluetooth-036]: 收到配对成功消息 [20, 209, 158, 71, 129, 27] +2025-06-12 15:56:17.915 [IOTBluetooth-417]: {"minute":56,"hour":15,"week":4,"second":17,"day":12,"year":25,"month":6,"time":1749714977} +2025-06-12 15:56:17.916 [IOTBluetooth-156]: 2AE4 Write: 730202010000005b000000010000005b007b226d696e757465223a35362c22686f7572223a31352c227765656b223a342c227365636f6e64223a31372c22646179223a31322c2279656172223a32352c226d6f6e7468223a362c2274696d65223a313734393731343937377d23 Bytes(109) +2025-06-12 15:56:17.916 [IOTBluetooth-101]: 通知消息 +2025-06-12 15:56:17.993 [IOTBluetooth-345]: 2AE4 write success +2025-06-12 15:56:18.262 [IOTBluetooth-334]: [receive] 2AE5 720202010000000100000001000000010001ff +2025-06-12 15:56:18.263 [IOTBluetooth-069]: total = 1,receive = 1 +2025-06-12 15:56:18.263 [IOTBluetooth-067]: IBResponse(code: 1000,isSuccess: true, massage:操作成功, items:[]) +2025-06-12 15:56:18.264 [IOTBluetooth-062]: 1 +2025-06-12 15:56:18.264 [IOTBluetooth-156]: 1002 Write: 730901010000000100000001000000010001ff Bytes(19) +2025-06-12 15:56:18.265 UBIOTManager.swift connect(_:completion:) [Line 128] Bluetooth: 已连接 WATCH Soar 0086 28:11:06:01:00:86 +2025-06-12 15:56:18.288 BMConnectDeivceViewController.swift blueConnect() [Line 101] Verbose: 连接成功 true +2025-06-12 15:56:18.289 UBOfflineChecker.swift enableOfflineCheck() [Line 53] Bluetooth: 启动掉线检测... +2025-06-12 15:56:18.297 [IOTBluetooth-137]: 停止扫描蓝牙设备... +2025-06-12 15:56:18.298 [IOTBluetooth-062]: 0 +2025-06-12 15:56:18.299 [IOTBluetooth-156]: 2AE3 Write: 73014601000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:18.299 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/dev/device/nickname/28:11:06:01:00:86?nickname=WATCH Soar 0086 +2025-06-12 15:56:18.299 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:18.300 Request.swift adaptHandler [Line 38] Debug: ["sob-token": "b67f9914e1904771b62b31306e9b5034", "app-id": "80_JsWgHTvEdZf5dAe5owyr", "appId": "80_JsWgHTvEdZf5dAe5owyr", "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"] +2025-06-12 15:56:18.304 UBManager.swift stopScan() [Line 242] Bluetooth: 扫描结束 +API MISUSE: can only accept this command while in the powered on state +2025-06-12 15:56:18.305 [IOTBluetooth-137]: 停止扫描蓝牙设备... +2025-06-12 15:56:18.305 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMNearbyDeivceViewController,0x0000000129130f00 +2025-06-12 15:56:18.306 BaseView.swift deinit [Line 32] Verbose: deinit BaseView +2025-06-12 15:56:18.306 BaseView.swift deinit [Line 32] Verbose: deinit BaseView +2025-06-12 15:56:18.306 BaseView.swift deinit [Line 32] Verbose: deinit BaseView +2025-06-12 15:56:18.307 BaseView.swift deinit [Line 32] Verbose: deinit BaseView +2025-06-12 15:56:18.311 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMConnectDeivceViewController,0x0000000129132d00 +2025-06-12 15:56:18.315 BaseView.swift deinit [Line 32] Verbose: deinit BMConnectingAnimationView +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +2025-06-12 15:56:18.387 [IOTBluetooth-345]: 1002 write success +2025-06-12 15:56:18.393 UBBluetooth.swift centralManagerDidUpdateState(_:) [Line 137] Debug: poweredOn +2025-06-12 15:56:18.427 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:18.428 [IOTBluetooth-334]: [receive] 1001 3133 +2025-06-12 15:56:18.428 [IOTBluetooth-074]: 31 33 +2025-06-12 15:56:18.428 [IOTBluetooth-334]: [receive] 2AE5 720146010000000000000001000000000000 +2025-06-12 15:56:18.428 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:18.430 BMHealthViewController.swift refresh() [Line 273] Verbose: [] 操作成功 true +2025-06-12 15:56:18.531 [IOTBluetooth-417]: {"minute":56,"hour":15,"year":25,"day":12,"month":6,"week":4,"second":18,"time":1749714978} +2025-06-12 15:56:18.531 [IOTBluetooth-156]: 2AE4 Write: 730202010000005b000000010000005b007b226d696e757465223a35362c22686f7572223a31352c2279656172223a32352c22646179223a31322c226d6f6e7468223a362c227765656b223a342c227365636f6e64223a31382c2274696d65223a313734393731343937387d21 Bytes(109) +2025-06-12 15:56:18.540 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"更新设备昵称成功.","code":20000,"data":null} +2025-06-12 15:56:18.540 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/dev/device/nickname/28:11:06:01:00:86?nickname=WATCH%20Soar%200086 +2025-06-12 15:56:18.540 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:18.540 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"更新设备昵称成功.","code":20000,"data":null} +2025-06-12 15:56:18.623 [IOTBluetooth-345]: 2AE4 write success +2025-06-12 15:56:18.623 [IOTBluetooth-334]: [receive] 2AE5 720202010000000100000001000000010001ff +2025-06-12 15:56:18.624 [IOTBluetooth-069]: total = 1,receive = 1 +2025-06-12 15:56:18.624 BMHealthViewController.swift refresh() [Line 222] Verbose: 发送时间至手表完成 +tcp_input [C16.1.1:3] flags=[R] seq=633817133, ack=2347131405, win=0 state=LAST_ACK rcv_nxt=633817133, snd_una=373135052 +tcp_input [C16.1.1:3] flags=[R] seq=633817133, ack=2347131405, win=0 state=CLOSED rcv_nxt=633817133, snd_una=373135052 +2025-06-12 15:56:18.726 [IOTBluetooth-062]: 0 +2025-06-12 15:56:18.726 [IOTBluetooth-156]: 2AE3 Write: 73014401000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:18.773 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:18.773 [IOTBluetooth-334]: [receive] 2AE5 720144010000000000000001000000000000 +2025-06-12 15:56:18.773 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:18.774 BMHealthViewController.swift refresh() [Line 259] Verbose: [] 操作成功 true +2025-06-12 15:56:18.876 [IOTBluetooth-062]: 0 +2025-06-12 15:56:18.876 [IOTBluetooth-156]: 2AE3 Write: 73014701000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:18.923 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:18.923 [IOTBluetooth-334]: [receive] 2AE5 720147010000000000000001000000000000 +2025-06-12 15:56:18.924 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:18.926 BMHealthViewController.swift refresh() [Line 238] Verbose: [] 操作成功 true +2025-06-12 15:56:19.062 [IOTBluetooth-062]: 0 +2025-06-12 15:56:19.063 [IOTBluetooth-156]: 2AE3 Write: 73014301000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:19.068 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/dev/product/profile?deviceId=28:11:06:01:00:86 +2025-06-12 15:56:19.069 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:19.070 Request.swift adaptHandler [Line 38] Debug: ["sob-token": "b67f9914e1904771b62b31306e9b5034", "app-id": "80_JsWgHTvEdZf5dAe5owyr", "appId": "80_JsWgHTvEdZf5dAe5owyr"] +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +CUICatalog: Invalid asset name supplied: '' +2025-06-12 15:56:19.147 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"获取设备所属产品成功.","code":20000,"data":{"id":"1802518141592993793","companyId":"1745742088258519041","name":"FD230","image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png","os":"Rtos","screen":"300x300","screenType":"0","ram":"","rom":"","cpu":"","protocolId":"1737094811635343362","description":"FD240/241","chatEnable":"1","videoCallEnable":"1","deleted":"0","createTime":"2024-06-17 09:46","updateTime":"2024-06-17 09:46","companyName":null,"protocolLabel":null,"cid":"HS","cidId":"1907358139050725378"}} +2025-06-12 15:56:19.148 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/dev/product/profile?deviceId=28:11:06:01:00:86 +2025-06-12 15:56:19.148 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:19.149 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"获取设备所属产品成功.","code":20000,"data":{"id":"1802518141592993793","companyId":"1745742088258519041","name":"FD230","image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png","os":"Rtos","screen":"300x300","screenType":"0","ram":"","rom":"","cpu":"","protocolId":"1737094811635343362","description":"FD240/241","chatEnable":"1","videoCallEnable":"1","deleted":"0","createTime":"2024-06-17 09:46","updateTime":"2024-06-17 09:46","companyName":null,"protocolLabel":null,"cid":"HS","cidId":"1907358139050725378"}} +2025-06-12 15:56:19.162 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:19.164 [IOTBluetooth-334]: [receive] 2AE5 720143010000000000000001000000000000 +2025-06-12 15:56:19.164 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:19.266 [IOTBluetooth-062]: 0 +2025-06-12 15:56:19.267 [IOTBluetooth-156]: 2AE3 Write: 73014001000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:19.373 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:19.373 [IOTBluetooth-334]: [receive] 2AE5 720140010000000000000001000000000000 +2025-06-12 15:56:19.373 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:19.475 [IOTBluetooth-062]: 0 +2025-06-12 15:56:19.475 [IOTBluetooth-156]: 2AE3 Write: 73014101000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:19.553 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:19.612 [IOTBluetooth-334]: [receive] 2AE5 720141010000000000000001000000000000 +2025-06-12 15:56:19.613 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:19.715 [IOTBluetooth-156]: 2AE3 Write: 73012b010000000000000001000000000000 Bytes(18) +2025-06-12 15:56:19.762 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:19.765 [IOTBluetooth-334]: [receive] 2AE5 72012b01000000070000000100000007008813000001010162 +2025-06-12 15:56:19.765 [IOTBluetooth-069]: total = 7,receive = 7 +2025-06-12 15:56:19.765 [IOTBluetooth-369]: IBTargetStep(value: 5000, ring:1, vibrate: 1, notice:1) +2025-06-12 15:56:19.897 BMSyncManager.swift syncTrainRecord() [Line 46] Verbose: 同步训练记录,dateID 0 +Animation Duration: 2.86102294921875e-06 +2025-06-12 15:56:19.898 [IOTBluetooth-062]: 0 +2025-06-12 15:56:19.898 [IOTBluetooth-156]: 2AE3 Write: 73014901000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:20.003 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:20.004 [IOTBluetooth-334]: [receive] 2AE5 720149010000000b000000010000000b007b2272656373223a5b5d7d25 +2025-06-12 15:56:20.004 [IOTBluetooth-069]: total = 11,receive = 11 +2025-06-12 15:56:20.017 BMSyncManager.swift syncHeartRate() [Line 98] Verbose: 同步心率历史记录,dateID 0 +2025-06-12 15:56:20.017 [IOTBluetooth-062]: 0 +2025-06-12 15:56:20.018 [IOTBluetooth-156]: 2AE3 Write: 73014001000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:20.093 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:20.093 [IOTBluetooth-334]: [receive] 2AE5 720140010000000000000001000000000000 +2025-06-12 15:56:20.093 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:20.094 BMSyncManager.swift syncBloodOxygen() [Line 132] Verbose: 同步血氧历史记录,dateID 0 +2025-06-12 15:56:20.094 [IOTBluetooth-062]: 0 +2025-06-12 15:56:20.094 [IOTBluetooth-156]: 2AE3 Write: 73014101000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:20.214 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:20.215 [IOTBluetooth-334]: [receive] 2AE5 720141010000000000000001000000000000 +2025-06-12 15:56:20.215 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:20.215 BMSyncManager.swift syncStep() [Line 166] Verbose: 同步步数历史记录,dateID 0 +2025-06-12 15:56:20.216 [IOTBluetooth-062]: 0 +2025-06-12 15:56:20.216 [IOTBluetooth-156]: 2AE3 Write: 73014301000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:20.335 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:20.336 [IOTBluetooth-334]: [receive] 2AE5 720143010000000000000001000000000000 +2025-06-12 15:56:20.336 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:20.337 BMSyncManager.swift syncSleepRecord() [Line 199] Verbose: 同步睡眠历史记录,dateID 0 +2025-06-12 15:56:20.338 [IOTBluetooth-062]: 0 +2025-06-12 15:56:20.338 [IOTBluetooth-156]: 2AE3 Write: 73014b01000000010000000100000001000000 Bytes(19) +2025-06-12 15:56:20.424 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:20.424 [IOTBluetooth-334]: [receive] 2AE5 72014b010000000000000001000000000000 +2025-06-12 15:56:20.425 [IOTBluetooth-069]: total = 0,receive = 0 +2025-06-12 15:56:20.457 BMHealthViewController.swift onRefreshDone() [Line 426] Verbose: 刷新完成 +tcp_input [C17.1.1:3] flags=[R] seq=987054189, ack=3414956835, win=0 state=LAST_ACK rcv_nxt=987054189, snd_una=2488913448 +tcp_input [C17.1.1:3] flags=[R] seq=987054189, ack=3414956835, win=0 state=CLOSED rcv_nxt=987054189, snd_una=2488913448 +2025-06-12 15:56:23.045 BaseView.swift deinit [Line 32] Verbose: deinit BMFlatTabView +2025-06-12 15:56:26.075 BMWatchViewController.swift viewDidLoad() [Line 58] Verbose: [0, 5] +2025-06-12 15:56:26.613 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/dev/product/profile?deviceId=28:11:06:01:00:86 +2025-06-12 15:56:26.614 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:26.614 Request.swift adaptHandler [Line 38] Debug: ["appId": "80_JsWgHTvEdZf5dAe5owyr", "app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034"] +2025-06-12 15:56:26.621 [IOTBluetooth-156]: 2AE3 Write: 730103010000000000000001000000000000 Bytes(18) +2025-06-12 15:56:26.694 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 15:56:26.695 [IOTBluetooth-334]: [receive] 2AE5 72010301000000490000000100000049007b22636f6465223a312c226d616a6f72223a312c226d6964223a332c226d696e6f72223a3131342c226d616341646472657373223a2232383a31313a30363a30313a30303a3836227de6 +2025-06-12 15:56:26.695 [IOTBluetooth-069]: total = 73,receive = 73 +2025-06-12 15:56:26.710 [IOTBluetooth-312]: {"macAddress":"28:11:06:01:00:86","code":1,"mid":3,"major":1,"minor":114} +2025-06-12 15:56:26.723 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/ota/task?sourceVersion=1.3.114&deviceId=28:11:06:01:00:86 +2025-06-12 15:56:26.723 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 15:56:26.724 Request.swift adaptHandler [Line 38] Debug: ["appId": "80_JsWgHTvEdZf5dAe5owyr", "app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034"] +2025-06-12 15:56:26.817 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"获取设备所属产品成功.","code":20000,"data":{"id":"1802518141592993793","companyId":"1745742088258519041","name":"FD230","image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png","os":"Rtos","screen":"300x300","screenType":"0","ram":"","rom":"","cpu":"","protocolId":"1737094811635343362","description":"FD240/241","chatEnable":"1","videoCallEnable":"1","deleted":"0","createTime":"2024-06-17 09:46","updateTime":"2024-06-17 09:46","companyName":null,"protocolLabel":null,"cid":"HS","cidId":"1907358139050725378"}} +2025-06-12 15:56:26.817 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/dev/product/profile?deviceId=28:11:06:01:00:86 +2025-06-12 15:56:26.817 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:26.817 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"获取设备所属产品成功.","code":20000,"data":{"id":"1802518141592993793","companyId":"1745742088258519041","name":"FD230","image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png","os":"Rtos","screen":"300x300","screenType":"0","ram":"","rom":"","cpu":"","protocolId":"1737094811635343362","description":"FD240/241","chatEnable":"1","videoCallEnable":"1","deleted":"0","createTime":"2024-06-17 09:46","updateTime":"2024-06-17 09:46","companyName":null,"protocolLabel":null,"cid":"HS","cidId":"1907358139050725378"}} +2025-06-12 15:56:26.919 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"已是最新版本.","code":20006,"data":null} +2025-06-12 15:56:26.919 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/ota/task?sourceVersion=1.3.114&deviceId=28:11:06:01:00:86 +2025-06-12 15:56:26.920 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 15:56:26.920 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"已是最新版本.","code":20006,"data":null} +2025-06-12 15:56:26.920 BMActivityView.swift disposeTimer() [Line 85] Verbose: 销毁定时器 +Animation Duration: 1.2159347534179688e-05 +Animation Duration: 0.2958400249481201 +2025-06-12 15:56:46.922 BMActivityView.swift disposeTimer() [Line 85] Verbose: 销毁定时器 +2025-06-12 16:00:48.990 BaseViewController.swift deinit [Line 140] Verbose: 销毁 BMUpgradeViewController,0x000000011225c000 +2025-06-12 16:00:48.993 BaseView.swift deinit [Line 32] Verbose: deinit BMProgressView +2025-06-12 16:00:49.504 BMWatchViewController.swift viewDidLoad() [Line 58] Verbose: [0, 5] +2025-06-12 16:00:50.038 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/dev/product/profile?deviceId=28:11:06:01:00:86 +2025-06-12 16:00:50.039 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 16:00:50.040 Request.swift adaptHandler [Line 38] Debug: ["app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034", "appId": "80_JsWgHTvEdZf5dAe5owyr"] +2025-06-12 16:00:50.041 [IOTBluetooth-156]: 2AE3 Write: 730103010000000000000001000000000000 Bytes(18) +2025-06-12 16:00:50.130 [IOTBluetooth-345]: 2AE3 write success +2025-06-12 16:00:50.131 [IOTBluetooth-334]: [receive] 2AE5 72010301000000490000000100000049007b22636f6465223a312c226d616a6f72223a312c226d6964223a332c226d696e6f72223a3131342c226d616341646472657373223a2232383a31313a30363a30313a30303a3836227de6 +2025-06-12 16:00:50.131 [IOTBluetooth-069]: total = 73,receive = 73 +2025-06-12 16:00:50.132 [IOTBluetooth-312]: {"code":1,"major":1,"mid":3,"minor":114,"macAddress":"28:11:06:01:00:86"} +2025-06-12 16:00:50.134 BaseRequest.swift blendURL() [Line 252] Verbose: https://app.api.thisiot.com/ota/task?deviceId=28:11:06:01:00:86&sourceVersion=1.3.114 +2025-06-12 16:00:50.135 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 16:00:50.135 Request.swift adaptHandler [Line 38] Debug: ["appId": "80_JsWgHTvEdZf5dAe5owyr", "app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034"] +2025-06-12 16:00:50.225 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"获取设备所属产品成功.","code":20000,"data":{"id":"1802518141592993793","companyId":"1745742088258519041","name":"FD230","image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png","os":"Rtos","screen":"300x300","screenType":"0","ram":"","rom":"","cpu":"","protocolId":"1737094811635343362","description":"FD240/241","chatEnable":"1","videoCallEnable":"1","deleted":"0","createTime":"2024-06-17 09:46","updateTime":"2024-06-17 09:46","companyName":null,"protocolLabel":null,"cid":"HS","cidId":"1907358139050725378"}} +2025-06-12 16:00:50.226 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/dev/product/profile?deviceId=28:11:06:01:00:86 +2025-06-12 16:00:50.226 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 16:00:50.226 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"获取设备所属产品成功.","code":20000,"data":{"id":"1802518141592993793","companyId":"1745742088258519041","name":"FD230","image":"https://u-oss.thisiot.com/images/2025_05_27/1927278471850143746.png","os":"Rtos","screen":"300x300","screenType":"0","ram":"","rom":"","cpu":"","protocolId":"1737094811635343362","description":"FD240/241","chatEnable":"1","videoCallEnable":"1","deleted":"0","createTime":"2024-06-17 09:46","updateTime":"2024-06-17 09:46","companyName":null,"protocolLabel":null,"cid":"HS","cidId":"1907358139050725378"}} +2025-06-12 16:00:50.356 Request.swift commonHandler(_:) [Line 91] Debug: {"success":true,"msg":"发现新版本.","code":20007,"data":{"updateId":"1927292450102480897","sourceVersion":"1.3.114","targetVersion":"1.3.115","updateType":"0","description":"ota_all_V1.3.112_20250303_151823_2_V1.3.118_20250527_162643\nota_all_V1.3.112_20250303_151823_2_V1.3.118_20250528_150518\nota_V1.3.112_20250303_151823_2_V1.3.118_20250528_171332\n升级包大小:4.63MB\n1,优化来电震动","packageId":"1927291942210015233","downloadFileVo":{"url":"http://r-oss.thisiot.com/device-ota/2025_05_28/1927658283940884482.fwpkg?Expires=1749718850&OSSAccessKeyId=LTAI5tJa2arDBmqSUsSTQJ1T&Signature=ykU6ZeQ24TJsm0qxNiUyfudnsrU%3D","md5":"8c82b0d7aebca6a643e9205df8f38b75","fileName":"ota_V1.3.112_20250303_151823_2_V1.3.118_20250528_171332.fwpkg","size":4862400}}} +2025-06-12 16:00:50.357 BaseRequest.swift responseHandler [Line 216] Network: URL => https://app.api.thisiot.com/ota/task?deviceId=28:11:06:01:00:86&sourceVersion=1.3.114 +2025-06-12 16:00:50.357 BaseRequest.swift responseHandler [Line 217] Network: Body => +2025-06-12 16:00:50.357 BaseRequest.swift responseHandler [Line 220] Network: response => {"success":true,"msg":"发现新版本.","code":20007,"data":{"updateId":"1927292450102480897","sourceVersion":"1.3.114","targetVersion":"1.3.115","updateType":"0","description":"ota_all_V1.3.112_20250303_151823_2_V1.3.118_20250527_162643\nota_all_V1.3.112_20250303_151823_2_V1.3.118_20250528_150518\nota_V1.3.112_20250303_151823_2_V1.3.118_20250528_171332\n升级包大小:4.63MB\n1,优化来电震动","packageId":"1927291942210015233","downloadFileVo":{"url":"http://r-oss.thisiot.com/device-ota/2025_05_28/1927658283940884482.fwpkg?Expires=1749718850&OSSAccessKeyId=LTAI5tJa2arDBmqSUsSTQJ1T&Signature=ykU6ZeQ24TJsm0qxNiUyfudnsrU%3D","md5":"8c82b0d7aebca6a643e9205df8f38b75","fileName":"ota_V1.3.112_20250303_151823_2_V1.3.118_20250528_171332.fwpkg","size":4862400}}} +2025-06-12 16:00:50.357 BMActivityView.swift disposeTimer() [Line 85] Verbose: 销毁定时器 +Animation Duration: 3.0994415283203125e-06 +Animation Duration: 0.3205571174621582 +2025-06-12 16:01:10.359 BMActivityView.swift disposeTimer() [Line 85] Verbose: 销毁定时器 +2025-06-12 16:01:13.352 BMUpgradeViewController.swift onDownload() [Line 120] Verbose: http://r-oss.thisiot.com/device-ota/2025_05_28/1927658283940884482.fwpkg?Expires=1749718850&OSSAccessKeyId=LTAI5tJa2arDBmqSUsSTQJ1T&Signature=ykU6ZeQ24TJsm0qxNiUyfudnsrU%3D +2025-06-12 16:01:13.353 BaseRequest.swift blendURL() [Line 252] Verbose: https://r-oss.thisiot.com/device-ota/2025_05_28/1927658283940884482.fwpkg?Expires=1749718850&OSSAccessKeyId=LTAI5tJa2arDBmqSUsSTQJ1T&Signature=ykU6ZeQ24TJsm0qxNiUyfudnsrU%3D +2025-06-12 16:01:13.356 Request.swift adaptHandler [Line 37] Verbose: 适配请求 +2025-06-12 16:01:13.356 Request.swift adaptHandler [Line 38] Debug: ["appId": "80_JsWgHTvEdZf5dAe5owyr", "app-id": "80_JsWgHTvEdZf5dAe5owyr", "sob-token": "b67f9914e1904771b62b31306e9b5034"] +2025-06-12 16:01:13.785 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.019531712734452124 +2025-06-12 16:01:13.794 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.03637935998683778 +2025-06-12 16:01:13.800 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.049857477788746295 +2025-06-12 16:01:13.804 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.06670512504113195 +2025-06-12 16:01:13.817 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.08018324284304047 +2025-06-12 16:01:13.838 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.09703089009542613 +2025-06-12 16:01:13.855 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.11050900789733464 +2025-06-12 16:01:13.857 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.13261270154656138 +2025-06-12 16:01:13.860 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.16293846660085554 +2025-06-12 16:01:13.872 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.1797861138532412 +2025-06-12 16:01:13.878 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.2235899967094439 +2025-06-12 16:01:13.883 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.24043764396182954 +2025-06-12 16:01:13.899 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.2539157617637381 +2025-06-12 16:01:13.900 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.28761105626850936 +2025-06-12 16:01:13.903 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.31119776242184927 +2025-06-12 16:01:13.908 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.33478446857518923 +2025-06-12 16:01:13.938 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.3482625863770977 +2025-06-12 16:01:13.945 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.3752188219809148 +2025-06-12 16:01:13.948 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.3920664692333004 +2025-06-12 16:01:13.949 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.41228364593616323 +2025-06-12 16:01:13.954 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.44260941099045736 +2025-06-12 16:01:13.959 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.45945705824284305 +2025-06-12 16:01:13.978 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.4796742349457058 +2025-06-12 16:01:13.981 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.5179845343863113 +2025-06-12 16:01:14.012 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.5379351760447516 +2025-06-12 16:01:14.039 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.5682609410990458 +2025-06-12 16:01:14.044 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.5884781178019085 +2025-06-12 16:01:14.045 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.6060949325435999 +2025-06-12 16:01:14.054 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.629815728858177 +2025-06-12 16:01:14.061 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.6445286278381046 +2025-06-12 16:01:14.066 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.6613762750904902 +2025-06-12 16:01:14.069 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.678223922342876 +2025-06-12 16:01:14.073 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.6950715695952616 +2025-06-12 16:01:14.074 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.7186582757486015 +2025-06-12 16:01:14.106 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.7456145113524185 +2025-06-12 16:01:14.112 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.7658316880552813 +2025-06-12 16:01:14.114 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.7927879236590983 +2025-06-12 16:01:14.118 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.8356630470549523 +2025-06-12 16:01:14.133 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.8491411648568609 +2025-06-12 16:01:14.139 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.8626192826587693 +2025-06-12 16:01:14.141 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.8963145771635407 +2025-06-12 16:01:14.143 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.9222721289897993 +2025-06-12 16:01:14.173 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.9458588351431392 +2025-06-12 16:01:14.175 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.9728150707469563 +2025-06-12 16:01:14.177 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 0.9896627179993419 +2025-06-12 16:01:14.179 BMUpgradeViewController.swift onDownload() [Line 128] Verbose: 1.0 +2025-06-12 16:01:14.194 BMUpgradeViewController.swift onDownload() [Line 140] Verbose: file:///private/var/mobile/Containers/Data/Application/F55E56C9-1AB7-4ABB-BBC2-81DBAC09CF0D/tmp/ota_V1.3.112_20250303_151823_2_V1.3.118_20250528_171332.fwpkg +nw_resolver_start_query_timer_block_invoke [C22.1] Query fired: did not receive all answers in time for r-oss.thisiot.com:443 +2025-06-12 16:01:43.423 [IOTBluetooth-076]: deinit IBFileSender +2025-06-12 16:01:43.423 BMUpgradeViewController.swift onUpgrade() [Line 155] Verbose: 更新固件 +2025-06-12 16:01:43.426 BMUpgradeViewController.swift onUpgrade() [Line 153] Verbose: 当前有文件正在传输中... false \ No newline at end of file diff --git "a/Doc/\346\234\200\346\226\260/.~\346\211\213\350\241\250AI\345\215\217\350\256\256.docx" "b/Doc/\346\234\200\346\226\260/.~\346\211\213\350\241\250AI\345\215\217\350\256\256.docx" deleted file mode 100644 index ab7a7ee..0000000 Binary files "a/Doc/\346\234\200\346\226\260/.~\346\211\213\350\241\250AI\345\215\217\350\256\256.docx" and /dev/null differ diff --git a/IOTBluetooth/IOTBluetooth/Example/LogViewController.swift b/IOTBluetooth/IOTBluetooth/Example/LogViewController.swift index 2d8b114..9049aee 100644 --- a/IOTBluetooth/IOTBluetooth/Example/LogViewController.swift +++ b/IOTBluetooth/IOTBluetooth/Example/LogViewController.swift @@ -14,6 +14,7 @@ class LogViewController: BaseViewController { override func viewDidLoad() { title = "蓝牙日志" + self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "save", style: .done, target: self, action: #selector(shareAction)) } override func viewDidAppear(_ animated: Bool) { @@ -23,5 +24,36 @@ class LogViewController: BaseViewController { let range = NSMakeRange(textView.text.count - 1, 1) textView.scrollRangeToVisible(range) } + + +@objc func shareAction() { + let formatter = DateFormatter() + formatter.dateFormat = "yyyyMMddHHmmss" + let name = formatter.string(from: Date()) + + let filePath = "\(NSHomeDirectory())/Documents/StarburstSdk_\(name).txt" + let url = URL(fileURLWithPath: filePath) + let data = self.textView.text.data(using:.utf8) + do { + try data?.write(to: url, options:.atomic) + print(filePath) + self.saveFile(withFilePath: filePath) + } catch { + print(error) + } } +func saveFile(withFilePath filePath: String) { + let fUrl = URL(fileURLWithPath: filePath) + let vc = UIDocumentPickerViewController(url: fUrl, in:.exportToService) + vc.delegate = self + vc.modalPresentationStyle = .overFullScreen + self.present(vc, animated: true, completion: nil) +} +} + +extension LogViewController:UIDocumentPickerDelegate{ + func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { + controller.dismiss(animated: true, completion: nil) + } +} diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate b/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate index 536aa95..686232b 100644 Binary files a/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate and b/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBAbility.swift b/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBAbility.swift index ea679e0..900356c 100644 --- a/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBAbility.swift +++ b/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBAbility.swift @@ -576,6 +576,9 @@ public extension IBAbility { /// 发送socket数据 /// - Parameter value:Data internal static let sendSocketData = IBAbility.rideCode.id(0x04).parser(IBGeneralParser.self).checker(IBDataChecker.self) + /// 发送socket数据结束 + /// - Parameter value:Data + internal static let sendSocketFinishData = IBAbility.rideCode.id(0xff).parser(IBGeneralParser.self).checker(IBDataChecker.self) /// 发送socket关闭成功 /// - Parameter value:Data internal static let sendSocketClose = IBAbility.rideCode.id(0x05).parser(IBGeneralParser.self).checker(IBDataChecker.self) diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBFileSender.swift b/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBFileSender.swift index 7ec3852..9b07f7e 100644 --- a/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBFileSender.swift +++ b/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBFileSender.swift @@ -240,7 +240,9 @@ public extension IBFileSender{ func response(_ handler: @escaping IBCompletionHandler) -> Self { if Self.all.count > 1{ handler(.response.code(.failure).message("当前有文件正在传输中...")) - self.remove() + self.revokeFileSend { result in + + } return self } @@ -252,21 +254,30 @@ public extension IBFileSender{ /// 撤销当前的文件传输 func revokeFileSend(_ handler: @escaping IBCompletionHandler){ + var sender:IBFileSender? for item in Self.all{ item.cancelSend = true + if item !== self { + sender = item + } + item.remove() + } + guard let sender = sender else { + handler(.response.code(.success)) + return } var type = IBFile.mp3 - if self.otaInfo != nil { + if sender.otaInfo != nil { type = .ota } - else if self.mp3Info != nil{ + else if sender.mp3Info != nil{ type = .mp3 } - else if self.dialInfo != nil{ + else if sender.dialInfo != nil{ type = .dial } - else if self.appInfo != nil{ + else if sender.appInfo != nil{ type = .app } else{ @@ -277,9 +288,8 @@ public extension IBFileSender{ .ability(.revokeFileSend) .parameters([.file(type)]) .response { result in - handler(result) - self.remove() } + handler(.response.code(.success)) } } diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBSender.swift b/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBSender.swift index 39d5c55..4c40ab6 100644 --- a/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBSender.swift +++ b/IOTBluetooth/IOTBluetooth/IOTBluetooth/IBSender.swift @@ -81,11 +81,14 @@ public class IBSender { var bytes: [UInt8] = [0x73, ability.type.rawValue, ability.id] bytes = bytes + packageCount.byte4 + dataTotalLength.byte4 + index.byte4 + dataLength.byte2 - bytes = bytes + list[0] + [LRC.calculateLRC(list[0])] + bytes = bytes + list[0] newList.append(bytes) newList.append(contentsOf: list[1...list.count - 1]) + var last = newList.last! + [LRC.calculateLRC(totalData)] + newList[newList.count - 1] = last + return newList } else{ @@ -116,7 +119,7 @@ public class IBSender { let data = listData.data var list = [[UInt8]]() var index = 0 - let seg = 494 + let seg = ability.type == .rideCode ? 494:495 // let seg = 492 while index < data.count { if index < data.count - seg { diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/Example/Example.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist b/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/Example/Example.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist index 8154a1f..6bffb2d 100644 --- a/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/Example/Example.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/Example/Example.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ Example.xcscheme_^#shared#^_ orderHint - 3 + 6 diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/MixSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate b/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/MixSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate index d65fc50..ec3cb4b 100644 Binary files a/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/MixSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/MixSdk.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/MixSdk/MixSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist b/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/MixSdk/MixSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist index 8583fb9..60ded6e 100644 --- a/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/MixSdk/MixSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/MixSdk/MixSdk.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ MixSdk.xcscheme_^#shared#^_ orderHint - 1 + 0 diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist b/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist index fa4c272..15bbee4 100644 --- a/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/IOTBluetooth/IOTBluetooth/IOTBluetooth/MixSdk/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist @@ -12,22 +12,22 @@ IQKeyboardManagerSwift.xcscheme_^#shared#^_ orderHint - 4 + 3 Pods-Example.xcscheme_^#shared#^_ orderHint - 1 + 7 SnapKit-SnapKit_Privacy.xcscheme_^#shared#^_ orderHint - 0 + 4 SnapKit.xcscheme_^#shared#^_ orderHint - 6 + 1 Toast-Swift.xcscheme_^#shared#^_ diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/Models/IBWatchInfoH5.swift b/IOTBluetooth/IOTBluetooth/IOTBluetooth/Models/IBWatchInfoH5.swift index d761747..7de1b64 100644 --- a/IOTBluetooth/IOTBluetooth/IOTBluetooth/Models/IBWatchInfoH5.swift +++ b/IOTBluetooth/IOTBluetooth/IOTBluetooth/Models/IBWatchInfoH5.swift @@ -13,7 +13,7 @@ public class IBWatchInfoH5:Codable { /// 消费者账号 public var consumerIdentity:String = "" /// 消费者账号类型,0:品牌商注册账号,1:聚合平台注册账号 - public var consumerType:String = "" + public var consumerType:Int = 0 /// 设备序列号,从表端获取,需要品牌商提前将序列号在聚合平台注册 public var deviceSn:String = "" /// H5页面主题, 模式:light(浅色)(默认)/dark(深色) diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/RideCode/IBRideCodeManager.swift b/IOTBluetooth/IOTBluetooth/IOTBluetooth/RideCode/IBRideCodeManager.swift index de8acdb..dfa24a8 100644 --- a/IOTBluetooth/IOTBluetooth/IOTBluetooth/RideCode/IBRideCodeManager.swift +++ b/IOTBluetooth/IOTBluetooth/IOTBluetooth/RideCode/IBRideCodeManager.swift @@ -11,6 +11,18 @@ class IBRideCodeManager{ var socket:RideCodeSocket? func recieve(data:Data){ + if data.count < 18 { + return + } + let pkgTotal = data[3...6].int +// let dataTotal = data[7...10].int +// let pkgIndex = data[11...14].int +// let pkgLen = data[15...16].int + if(pkgTotal > 1){ + Logger.log("分包接收结束") + sendDataRecieveFinish2Ble() + } + if data.bytes[2] == 0x02{ let dataPacket = IBGeneralParser.dataPacket(data) guard let host = String(data: Data(dataPacket), encoding: .utf8) else{ @@ -39,7 +51,8 @@ class IBRideCodeManager{ } else if data.bytes[2] == 0xff{ let dataPacket = IBGeneralParser.dataPacket(data) - Logger.log("需要重传",Data(dataPacket).int) + let index = Data(dataPacket).int + Logger.log("需要重传",index) } } } @@ -129,6 +142,16 @@ extension IBRideCodeManager{ Logger.log(result.description) } } + func sendDataRecieveFinish2Ble(){ + let data = Data([0x00,]) + IBSender() + .deinitTimer() + .ability(.sendSocketFinishData) + .parameters([.data(data)]) + .response { result in + Logger.log(result.description) + } + } func sendClose2Ble(){ let list:[UInt8] = [ 0x01,