From 1baa8f7baa336ce7e78d4b8389a351526cb8c673 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期三, 25 十一月 2020 15:10:39 +0800 Subject: [PATCH] 蓝牙密码 --- lib/src/main/cpp/rtk_platform/platform.cpp | 61 ++++++++++++++++++++++++++++-- 1 files changed, 56 insertions(+), 5 deletions(-) diff --git a/lib/src/main/cpp/rtk_platform/platform.cpp b/lib/src/main/cpp/rtk_platform/platform.cpp index e3e0bb7..e9fe9d8 100644 --- a/lib/src/main/cpp/rtk_platform/platform.cpp +++ b/lib/src/main/cpp/rtk_platform/platform.cpp @@ -30,6 +30,8 @@ #define DEBUG(fmt, args...) LOGD("<platform> <%s>: " fmt, __func__, ##args) +using namespace std; + struct platformSocket { char domain_name[32]; int port; @@ -86,6 +88,10 @@ static struct gpsBrief gbf; static struct rtkBrief rbf; + +static bool btEnable = false, btConnected = false; +static char btAddr[64] = {0}; +static char *btPin = NULL; static void AddEvnet(uint32_t event, const uint8_t *data, int length); static struct event_t * FetchEvent(void); @@ -575,25 +581,47 @@ } } if (events & BLUETOOTH_STATUS_EVT) { - DEBUG("BLUETOOTH_STATUS_EVT %d", data[0]); + DEBUG("BLUETOOTH_STATUS_EVT"); + uint8_t sta; - if (data[0] == 3) { + if (length == 128) { + MA_SendBlueStatus((char *)data, (char *)data+64, 3); + sta = 3; + } else if (length == 64) { + MA_SendBlueStatus(NULL, (char *)data, 3); + sta = 3; + } else { + MA_SendBlueStatus(NULL, NULL, data[0]); + sta = data[0]; + } + + if (sta == 3) { // Connected + btConnected = true; ParseMcuInit(); ConfigRTKModuleLater(); PlayTTS("钃濈墮杩炴帴", NULL); - } else if (data[0] == 2) { + } else if (sta == 2) { // Disconnect + btConnected = false; PlayTTS("钃濈墮鏂紑", NULL); - } else if (data[0] == 1) { + } else if (sta == 1) { // Open - ConnectToBluetooth("00:1B:35:16:20:4A", "3800"); + btEnable = true; + + if (strlen(btAddr) > 0) { + ConnectToBluetooth(btAddr, NULL); + } +// ConnectToBluetooth("00:1B:35:16:20:4A", "5516"); +// ConnectToBluetooth("00:1B:35:16:20:4A", "3800");`` // ConnectToBluetooth("00:1D:43:9A:E0:79", "1900"); // ConnectToBluetooth("DESKTOP-IE9V7U8", "0000"); PlayTTS("钃濈墮鍚姩", NULL); } else { // Close + btEnable = false; + btConnected = false; PlayTTS("钃濈墮鍏抽棴", NULL); } } @@ -815,3 +843,26 @@ memcpy(defaultMcuRom.rom, rom, length); } } + +void SetRemoteBluetooth(const char *name, const char *addr) +{ + strcpy(btAddr, addr); + + if (btConnected) { + DisconnectBluetooth(); + } + + /*string csname = name; + if (csname != NULL) { + if (csname.find("AKS3A_TEST") != string::npos) { + btPin = "1111"; + } else if (csname.find("AKS3A_") != string::npos && csname.size() >= 8) { + int a = stoi(csname.substr(csname.size()-8, 4)); + int b = stoi(csname.substr(csname.size()-4, 4)); + } + }*/ + + if (btEnable) { + ConnectToBluetooth(addr, NULL); + } +} -- Gitblit v1.8.0