label->SetStyle(STYLE_LINE_HEIGHT, labelConfig.lineHeigh); // 字体行高\r
label->SetText(labelConfig.text); // 内容\r
label->SetLineBreakMode(labelConfig.lineBreakMode); // 断行模式。\r
- label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_TOP);\r
label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelConfig.fontSize);\r
return label;\r
}\r
}\r
SystemAboutTheWatchScrollView->Add(FirmwareVersionTitle);\r
/* -------------------------------------------------------------------------- */\r
+ char version_buf[128]={0};\r
+ uint32_t version_len=128;\r
+ uapi_get_buildversion((uint8_t*)version_buf,version_len);\r
Config = {\r
.left = 37,\r
- .top = 361,\r
+ .top = 341,\r
.width = 400,\r
.height = 30,\r
.fontSize = 26,\r
.lineHeigh = 30,\r
- .text = "V1.0",\r
- .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS,\r
+ .text = (char*)version_buf,\r
+ .lineBreakMode = UILabel::LINE_BREAK_WRAP,\r
};\r
FirmwareVersion = InitLabel(Config);\r
if (FirmwareVersion == nullptr)\r
/* -------------------------------------------------------------------------- */\r
uint8_t btaddr[64]={0};\r
uint32_t len = 64;\r
- uapi_get_btaddr((uint8_t*)btaddr,&len);\r
-\r
+ errcode_t ret = uapi_get_btaddr((uint8_t*)btaddr,&len);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"get btaddr %s , ret 0x%X\n",btaddr,ret);\r
Config = {\r
.left = 37,\r
.top = 651,\r
BluetoothAddress->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x87));\r
SystemAboutTheWatchScrollView->Add(BluetoothAddress);\r
/* -------------------------------------------------------------------------- */\r
- // Config = {\r
- // .left = 173,\r
- // .top = 740,\r
- // .width = 120,\r
- // .height = 35,\r
- // .fontSize = 30,\r
- // .lineHeigh = 35,\r
- // .text = "局域网地址",\r
- // .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
- // };\r
- // LANAddressTitle = InitLabel(Config);\r
- // if (LANAddressTitle == nullptr)\r
- // {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::LANAddressTitle new fail!");\r
- // return nullptr;\r
- // }\r
- // SystemAboutTheWatchScrollView->Add(LANAddressTitle);\r
- // /* -------------------------------------------------------------------------- */\r
- // Config = {\r
- // .left = 37,\r
- // .top = 796,\r
- // .width = 400,\r
- // .height = 30,\r
- // .fontSize = 26,\r
- // .lineHeigh = 30,\r
- // .text = "D4:FF:E3:12:00:A4",\r
- // .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS,\r
- // };\r
- // LANAddress = InitLabel(Config);\r
- // if (LANAddress == nullptr)\r
- // {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::LANAddress new fail!");\r
- // return nullptr;\r
- // }\r
- // LANAddress->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x87));\r
- // SystemAboutTheWatchScrollView->Add(LANAddress);\r
+ Config = {\r
+ .left = 173,\r
+ .top = 740,\r
+ .width = 120,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .text = "蓝牙名称",\r
+ .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+ };\r
+ LANAddressTitle = InitLabel(Config);\r
+ if (LANAddressTitle == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::LANAddressTitle new fail!");\r
+ return nullptr;\r
+ }\r
+ SystemAboutTheWatchScrollView->Add(LANAddressTitle);\r
+ /* -------------------------------------------------------------------------- */\r
+ \r
+ uint8_t ble_name[20] = {0};\r
+ uint32_t ble_name_len ;\r
+ ret = uapi_get_btname(ble_name, &ble_name_len);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"get btname %s ,ret 0x%X\n",ble_name,ret);\r
+ \r
+ Config = {\r
+ .left = 37,\r
+ .top = 796,\r
+ .width = 400,\r
+ .height = 30,\r
+ .fontSize = 26,\r
+ .lineHeigh = 30,\r
+ .text = (char*)ble_name,\r
+ .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS,\r
+ };\r
+ LANAddress = InitLabel(Config);\r
+ if (LANAddress == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::BTNAME new fail!");\r
+ return nullptr;\r
+ }\r
+ LANAddress->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x87));\r
+ SystemAboutTheWatchScrollView->Add(LANAddress);\r
/* -------------------------------------------------------------------------- */\r
Config = {\r
.left = 173,\r
#include "bts_le_gap.h"
+
+
+extern void wstp_spp_cmd_server_create(const char *spp_uuid, const char *name, uint8_t name_len);
+extern void wstp_spp_cmd_server_accept(uint32_t server_id);
+extern errcode_t enable_bt_stack(void);
+extern errcode_t disable_bt_stack(void);
+extern errcode_t enable_ble(void);
+extern errcode_t bluetooth_set_local_addr(unsigned char *mac, unsigned int len);
+extern errcode_t bluetooth_get_local_addr(unsigned char *mac, unsigned int len);
+extern errcode_t bluetooth_set_local_name(const unsigned char *localName, unsigned char length);
+extern errcode_t bluetooth_get_local_name(unsigned char *localName, unsigned char *length);
+errcode_t uapi_get_btname(uint8_t *buf_btname, uint32_t *len_btname)
+{
+ if(buf_btname == NULL || len_btname == NULL)
+ {
+ return ERRCODE_FAIL;
+ }
+ memset(buf_btname,0,*len_btname);
+
+ errcode_t res = bluetooth_get_local_name((unsigned char*)buf_btname, (unsigned char*)len_btname);
+ if (res == 0) {
+ char str[256] = "^btname:";
+ strcat_s(str, strlen(str) + strlen((char*)buf_btname), (char*)buf_btname);
+ printf("%s\r\n", &str[0]);
+ printf("name: %s, length: %d\n", buf_btname, *len_btname);
+ return ERRCODE_SUCC;
+ } else {
+ printf("bluetooth_get_local_name ret = 0x%X\n",res);
+ return ERRCODE_FAIL;
+ }
+
+}
+errcode_t uapi_get_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr)
+{
+ if (buf_btaddr == NULL || len_btaddr == NULL) {
+ return ERRCODE_FAIL;
+ }
+ errcode_t res;
+ #define BT_MAC_LEN 6
+ unsigned int len = BT_MAC_LEN;
+ unsigned char addr[BT_MAC_LEN] = {0};
+ srand(time(0));
+ res = bluetooth_get_local_addr(&addr[0], len);
+ if (res == 0) {
+ char str[64] = {0};
+ strcat_s(str, strlen(str) + strlen((char*)addr), (char*)addr);
+ printf("%s\r\n", &str[0]);
+ printf("local_addr : ******%02x%02x%02x\n", addr[3], addr[4], addr[5]);
+
+ memset((void*)buf_btaddr,0,*len_btaddr);
+ sprintf_s((char*)buf_btaddr, *len_btaddr, "%02X:%02X:%02X:%02X:%02X:%02X",addr[0], addr[1],addr[2],addr[3],addr[4],addr[5]);
+ *len_btaddr = strlen(str);
+
+ } else {
+ printf("bluetooth_get_local_addr err 0x%X\r\n",res);
+ return ERRCODE_FAIL;
+ }
+
+
+ return ERRCODE_SUCC;
+}
+errcode_t init_btaddr_btname(void)
+{
+ bd_addr_t addr_info;
+ errcode_t res;
+
+
+// #if defined(SW_UART_DEBUG) || defined(SW_RTT_DEBUG)
+// btsrv_set_log_type_level(BTSRV_LOG_UART_INFO);
+// #endif
+// btsrv_at_cmd_gap_register_callbacks();
+// #ifdef SUPPORT_BREDR
+// wstp_a2dp_src_register_callbacks();
+// wstp_a2dp_snk_register_callbacks();
+// wstp_avrcp_register_callbacks();
+// #endif
+
+
+ res = enable_bt_stack();
+ if (res != 0) {
+ printf("bt enable fail ret 0x%X\r\n",res);
+ return ERRCODE_FAIL;
+ } else {
+ printf("bt enable ok\r\n");
+ }
+
+
+ #if 1
+
+
+
+ #define BT_MAC_LEN 6
+ unsigned int len = BT_MAC_LEN;
+ unsigned char addr[BT_MAC_LEN] = {0};
+ srand(time(0));
+ res = bluetooth_get_local_addr(&addr[0], len);
+ if (res == 0) {
+ char str[64] = "^PHYNUM:MACBT,";
+ strcat_s(str, strlen(str) + strlen((char*)addr), (char*)addr);
+ printf("%s\r\n", &str[0]);
+ printf("local_addr : ******%02x%02x%02x\n", addr[3], addr[4], addr[5]);
+ } else {
+ printf("bluetooth_get_local_addr err 0x%X\r\n",res);
+ // return ERRCODE_FAIL;
+ }
+
+ //默认是:281106856959
+ addr[3] = rand() % 0xFF;
+ addr[4] = rand() % 0xFF;
+ addr[5] = rand() % 0xFF;
+ res = bluetooth_set_local_addr(addr, (uint8_t)6);
+ if (res == 0) {
+ printf("bluetooth_set_local_addr OK\r\n");
+ } else {
+ printf("bluetooth_set_local_addr fail\r\n");
+ // return ERRCODE_FAIL;
+ }
+
+ unsigned char namelen = 248;
+ unsigned char name[248] = {0};
+ res = bluetooth_get_local_name(name, &namelen);
+ if (res == 0) {
+ char str[256] = "^btname:";
+ strcat_s(str, strlen(str) + strlen((char*)name), (char*)name);
+ printf("%s\r\n", &str[0]);
+ printf("name: %s, length: %d\n", name, namelen);
+ // return ERRCODE_SUCC;
+ } else {
+ printf("bluetooth_get_local_name ret = 0x%X\n",res);
+ // return ERRCODE_FAIL;
+ }
+ if(strcmp((const char*)name,"WatchSoar")==0)
+ {
+ memset(name,0,sizeof(name));
+ sprintf((char*)name,"WatchSoar_%02X%02X",addr[4],addr[5]);
+ unsigned char btname_len = strlen((const char*)name)+1;
+ res = bluetooth_set_local_name(name,btname_len);
+ printf("set new bt name %s , ret 0x%X\n",name,res);
+ }else{
+ printf("current bt name %s\n",name);
+ }
+#else
+ res = gap_ble_get_local_addr(&addr_info);
+
+ if ( addr_info.addr[0] == 0x59 &&
+ addr_info.addr[1] == 0x69 &&
+ addr_info.addr[2] == 0x85 &&
+ addr_info.addr[3] == 0x06 &&
+ addr_info.addr[4] == 0x11 &&
+ addr_info.addr[5] == 0x28 )
+ {
+ addr_info.addr[0] = rand() % 0xFF;
+ addr_info.addr[4] = rand() % 0xFF;
+ addr_info.addr[5] = rand() % 0xFF;
+ addr_info.type = 6;
+ res = gap_ble_set_local_addr(&addr_info);
+
+ printf("init new bt addr %02x:%02x:%02x:%02x:%02x:%02x ret 0x%X\n",
+ addr_info.addr[5], addr_info.addr[4], addr_info.addr[3],
+ addr_info.addr[2], addr_info.addr[1], addr_info.addr[0],res);
+ }else{
+ printf("current bt addr %02x:%02x:%02x:%02x:%02x:%02x\n",
+ addr_info.addr[5], addr_info.addr[4], addr_info.addr[3],
+ addr_info.addr[2], addr_info.addr[1], addr_info.addr[0]);
+ }
+
+ uint8_t ble_name[20] = {0};
+ uint8_t ble_name_len = 20;
+ res = gap_ble_get_local_name(ble_name, &ble_name_len);
+
+ if(strcmp((const char*)ble_name,"WatchSoar")==0)
+ {
+ memset(ble_name,0,sizeof(ble_name));
+ sprintf((char*)ble_name,"WatchSoar_%02X%02X",addr_info.addr[4],addr_info.addr[5]);
+ ble_name_len = strlen((const char*)ble_name)+1;
+ res = gap_ble_set_local_name(ble_name,ble_name_len);
+ printf("set new bt name %s , ret 0x%X\n",ble_name,res);
+ }else{
+ printf("current bt name %s\n",ble_name);
+ }
+#endif
+ char uuid[] = "1101";
+ char sppname[] = "COM1";
+ uint8_t name_len = strlen((const char*)sppname) + 1;
+ uint8_t server_id = 0;
+
+ /* 创建spp */
+ printf( "create spp server uuid=%s name=%s name_len=%d\n", uuid, sppname, name_len);
+ BtSppServerCreate(uuid, sppname, name_len);
+ BtSppServerAccept(server_id);
+
+ return ERRCODE_SUCC;
+
+}
+errcode_t disable_bt_service(void)
+{
+
+ errcode_t res = disable_bt_stack();
+ if (res != 0) {
+ printf("bt disable fail\r\n");
+ return ERRCODE_FAIL;
+ } else {
+ printf("bt disable ok\r\n");
+ return ERRCODE_SUCC;
+ }
+ return ERRCODE_SUCC;
+}
+
+
+#include "build_version.h"
+#define VER_STR_MAX 128
+errcode_t uapi_get_buildversion(uint8_t *para, uint32_t para_len)
+{
+ if (para == NULL || para_len == 0 )
+ return ERRCODE_FAIL;
+
+ char str[VER_STR_MAX];
+#if !(defined BUILD_TIME)
+// #warning no BUILD_TIME
+ (void)sprintf_s(str, VER_STR_MAX, "\r\nVersion:%s \r\n",
+ get_version_string());
+
+#else
+ (void)sprintf_s(str, VER_STR_MAX, "\r\nVersion:%s %s\r\n",
+ get_version_string(), BUILD_TIME);
+
+#endif
+ printf(str);
+ memset(para,0,para_len);
+ memcpy_s(para,para_len,str,strlen(str));
+ return ERRCODE_SUCC;
+
+}
+
+#if 0
+
errcode_t uapi_get_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr)
{
if (buf_btaddr == NULL || len_btaddr == NULL) {
}
+
+#endif
#if 0
#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG 0x57000014