From: SnickerSun Date: Tue, 5 Mar 2024 16:46:43 +0000 (+0800) Subject: 修改界面用蓝牙开关开启 spp服务,测试蓝牙ota成功。 X-Git-Tag: release_V1.2.70_20241020_135402~1274^2~26 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=7c828bcd9fd4c83adc22f72497bc5c5b441f11c2;p=mirrors%2FFD230.git 修改界面用蓝牙开关开启 spp服务,测试蓝牙ota成功。 --- diff --git a/autobuild.sh b/autobuild.sh index 213c4a28d..005950e8e 100644 --- a/autobuild.sh +++ b/autobuild.sh @@ -57,8 +57,8 @@ build_target() { cd $HOMEDIR/code/sdk/ - echo ./build.py -nhso $CLEAN -$RELEASE_BUILD $TARGET_PACK_NAME 2>&1 - ./build.py -nhso $CLEAN -$RELEASE_BUILD $TARGET_PACK_NAME 2>&1 + echo ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1 + ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1 ret_code=$? if [ $ret_code == 0 ] then diff --git a/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp index a96d6a5db..bb50991df 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp @@ -3,6 +3,7 @@ #include "graphic_math.h" #include "classicbluetooth/include/ClassicBlueToothPresenter.h" #include "classicbluetooth/include/ClassicBlueToothModel.h" +#include "custom_utils.h" namespace OHOS { // 当前Presenter属性实例化的内存指针 @@ -111,11 +112,11 @@ namespace OHOS { case UICheckBox::SELECTED: WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Enabled"); - + init_btaddr_btname(); break; case UICheckBox::UNSELECTED: WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Disabled"); - + disable_bt_service(); break; default: break; diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemAboutTheWatchView.cpp b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemAboutTheWatchView.cpp index 88f1040d5..0642e93dc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemAboutTheWatchView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemAboutTheWatchView.cpp @@ -74,7 +74,7 @@ namespace OHOS label->SetStyle(STYLE_LINE_HEIGHT, labelConfig.lineHeigh); // 字体行高 label->SetText(labelConfig.text); // 内容 label->SetLineBreakMode(labelConfig.lineBreakMode); // 断行模式。 - label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_TOP); label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelConfig.fontSize); return label; } @@ -185,15 +185,18 @@ namespace OHOS } SystemAboutTheWatchScrollView->Add(FirmwareVersionTitle); /* -------------------------------------------------------------------------- */ + char version_buf[128]={0}; + uint32_t version_len=128; + uapi_get_buildversion((uint8_t*)version_buf,version_len); Config = { .left = 37, - .top = 361, + .top = 341, .width = 400, .height = 30, .fontSize = 26, .lineHeigh = 30, - .text = "V1.0", - .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS, + .text = (char*)version_buf, + .lineBreakMode = UILabel::LINE_BREAK_WRAP, }; FirmwareVersion = InitLabel(Config); if (FirmwareVersion == nullptr) @@ -261,8 +264,8 @@ namespace OHOS /* -------------------------------------------------------------------------- */ uint8_t btaddr[64]={0}; uint32_t len = 64; - uapi_get_btaddr((uint8_t*)btaddr,&len); - + errcode_t ret = uapi_get_btaddr((uint8_t*)btaddr,&len); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"get btaddr %s , ret 0x%X\n",btaddr,ret); Config = { .left = 37, .top = 651, @@ -284,42 +287,48 @@ namespace OHOS BluetoothAddress->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x87)); SystemAboutTheWatchScrollView->Add(BluetoothAddress); /* -------------------------------------------------------------------------- */ - // Config = { - // .left = 173, - // .top = 740, - // .width = 120, - // .height = 35, - // .fontSize = 30, - // .lineHeigh = 35, - // .text = "局域网地址", - // .lineBreakMode = UILabel::LINE_BREAK_ADAPT, - // }; - // LANAddressTitle = InitLabel(Config); - // if (LANAddressTitle == nullptr) - // { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::LANAddressTitle new fail!"); - // return nullptr; - // } - // SystemAboutTheWatchScrollView->Add(LANAddressTitle); - // /* -------------------------------------------------------------------------- */ - // Config = { - // .left = 37, - // .top = 796, - // .width = 400, - // .height = 30, - // .fontSize = 26, - // .lineHeigh = 30, - // .text = "D4:FF:E3:12:00:A4", - // .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS, - // }; - // LANAddress = InitLabel(Config); - // if (LANAddress == nullptr) - // { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::LANAddress new fail!"); - // return nullptr; - // } - // LANAddress->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x87)); - // SystemAboutTheWatchScrollView->Add(LANAddress); + Config = { + .left = 173, + .top = 740, + .width = 120, + .height = 35, + .fontSize = 30, + .lineHeigh = 35, + .text = "蓝牙名称", + .lineBreakMode = UILabel::LINE_BREAK_ADAPT, + }; + LANAddressTitle = InitLabel(Config); + if (LANAddressTitle == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::LANAddressTitle new fail!"); + return nullptr; + } + SystemAboutTheWatchScrollView->Add(LANAddressTitle); + /* -------------------------------------------------------------------------- */ + + uint8_t ble_name[20] = {0}; + uint32_t ble_name_len ; + ret = uapi_get_btname(ble_name, &ble_name_len); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"get btname %s ,ret 0x%X\n",ble_name,ret); + + Config = { + .left = 37, + .top = 796, + .width = 400, + .height = 30, + .fontSize = 26, + .lineHeigh = 30, + .text = (char*)ble_name, + .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS, + }; + LANAddress = InitLabel(Config); + if (LANAddress == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::BTNAME new fail!"); + return nullptr; + } + LANAddress->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x87)); + SystemAboutTheWatchScrollView->Add(LANAddress); /* -------------------------------------------------------------------------- */ Config = { .left = 173, diff --git a/code/sdk/application/wstp/at_service/app/app_at_process.c b/code/sdk/application/wstp/at_service/app/app_at_process.c index 55db99d28..36d0ef55c 100755 --- a/code/sdk/application/wstp/at_service/app/app_at_process.c +++ b/code/sdk/application/wstp/at_service/app/app_at_process.c @@ -722,6 +722,7 @@ static uint32_t mcu_get_wstp_version(uint8_t *para, uint32_t para_len) (void)sprintf_s(str, VER_STR_MAX, "\r\nVersion:%s %s %s\r\n", get_version_string(), TARGET_NAME, BUILD_TIME); #else +#warning no BUILD_TIME (void)sprintf_s(str, VER_STR_MAX, "\r\nVersion:%s\r\n", get_version_string()); #endif wstp_print(str); diff --git a/code/sdk/build/config/target_config/brandy/fota/fota.cfg b/code/sdk/build/config/target_config/brandy/fota/fota.cfg index a282d98c5..6e3017a4f 100755 --- a/code/sdk/build/config/target_config/brandy/fota/fota.cfg +++ b/code/sdk/build/config/target_config/brandy/fota/fota.cfg @@ -239,7 +239,7 @@ ImageId=0x4B0F2D2D # 0x3C7896E1 - compressed image # 0x44494646 - diff image # other :原始镜像不处理 -DecompressFlag=0x3C7896E1 +DecompressFlag=0x44494646 # ReRncFlag:升级镜像加密标记 # 0x3C7896E1:加密 diff --git a/code/sdk/drivers/boards/brandy_evb/product/product.h b/code/sdk/drivers/boards/brandy_evb/product/product.h index 986eb405b..f537080f2 100755 --- a/code/sdk/drivers/boards/brandy_evb/product/product.h +++ b/code/sdk/drivers/boards/brandy_evb/product/product.h @@ -31,7 +31,7 @@ #endif #if (defined BRANDY_PRODUCT_EVB4) -#define APPLICATION_VERSION_STRING "B602" +#define APPLICATION_VERSION_STRING "V1.1" #include "product_evb4_standard.h" #endif diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index e6f4b320f..b76323585 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -357,6 +357,242 @@ void ScreenAlwaysOnCtr(uint8_t turnOnFlag) #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) { @@ -378,6 +614,8 @@ errcode_t uapi_get_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr) } + +#endif #if 0 #define PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG 0x57000014 diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.h b/code/sdk/drivers/peripheral/utils/custom_utils.h index 56d78e7a7..5118dd2f8 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.h +++ b/code/sdk/drivers/peripheral/utils/custom_utils.h @@ -39,6 +39,13 @@ char *uapi_get_CurrentDate(void); void ScreenAlwaysOnCtr(uint8_t turnOnFlag); errcode_t uapi_get_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr); +errcode_t uapi_get_btname(uint8_t *buf_btname, uint32_t *len_btname); + +errcode_t init_btaddr_btname(void); +errcode_t disable_bt_service(void); + + +errcode_t uapi_get_buildversion(uint8_t *para, uint32_t para_len); /** * @} */ diff --git a/code/sdk/middleware/chips/brandy/update/include/upg_common_porting.h b/code/sdk/middleware/chips/brandy/update/include/upg_common_porting.h index 3f2f50a08..a7ae146bf 100755 --- a/code/sdk/middleware/chips/brandy/update/include/upg_common_porting.h +++ b/code/sdk/middleware/chips/brandy/update/include/upg_common_porting.h @@ -15,15 +15,15 @@ extern "C" { #endif #endif -#if MEMORY_MINI +// #if MEMORY_MINI #define UPG_FILE_PATH "/user/" #define UPG_RES_INDEX_PATH "/user/res_index.bin" #define UPG_FILE_NAME "/user/update.fwpkg" -#else -#define UPG_FILE_PATH "/update/" -#define UPG_RES_INDEX_PATH "/update/res_index.bin" -#define UPG_FILE_NAME "/update/update.fwpkg" -#endif +// #else +// #define UPG_FILE_PATH "/update/" +// #define UPG_RES_INDEX_PATH "/update/res_index.bin" +// #define UPG_FILE_NAME "/update/update.fwpkg" +// #endif #define UPG_FLASH_SIZE (FLASH_MAX_END - FLASH_START) #define UPG_FLASH_PAGE_SIZE FLASH_PAGE_SIZE /* Bytes per sector */