#include "wearable_log.h"\r
#include "ConfigModel.h"\r
#include <UiConfig.h>\r
+#include "BluetoothModel.h"\r
+#include "custom_runtime.h"\r
+#include "ConfigModelC.h"\r
namespace OHOS\r
{\r
// 当前Presenter属性实例化的内存指针\r
bool ClassicBlueToothPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnChange");\r
+ bd_addr_t bdaddr={0};\r
switch (state)\r
{\r
case UICheckBox::SELECTED:\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Enabled");\r
start_custom_ble_service(); // 主动开启蓝牙\r
+ //开启完增加回连\r
+ \r
+ uapi_get_br_address(&bdaddr);\r
+ if( uapi_dev_runtime_get_bt_powerstat() && (cm_get_HFP_switch()||cm_get_A2DP_switch()))\r
+ {\r
+ if (false==bt_is_acl_connected(&bdaddr) && !(bdaddr.addr[0]==0 && bdaddr.addr[1]==0 && bdaddr.addr[2]==0 && bdaddr.addr[3]==0 \r
+ && bdaddr.addr[4]==0 && bdaddr.addr[5]==0))\r
+ {\r
+ int ret = gap_reconnect_media_device(&bdaddr);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " gap_reconnect_media_device ret = %u %02x %02x %02x ", ret,bdaddr.addr[5],bdaddr.addr[4],bdaddr.addr[3]);\r
+ }\r
+ else\r
+ {\r
+ \r
+ if(cm_get_A2DP_switch() || cm_get_HFP_switch())\r
+ uapi_a2dp_snk_connect();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_a2dp_snk_connect!!! \r\n");\r
+ }\r
+ \r
+ }\r
+ \r
\r
ConfigModel::GetInstance()->SetClassicBlueToothState(true);\r
break;\r
clearPaireFlag(0);\r
}\r
}\r
-uint8_t *savephonename;\r
+uint8_t *savephonename=NULL;\r
//确认配对指令\r
uint8_t first_bond = 0;//是否第一次绑定 第一次绑定保存配对mac地址\r
void comfirmPaire(uint8_t flag)\r
{\r
memcpy(str,(uint8_t *)pn->valuestring,datalen+1);\r
}\r
+ if(savephonename)\r
+ {\r
+ ym_free(savephonename);\r
+ savephonename=NULL;\r
+ }\r
savephonename = ym_malloc(sizeof(char)*datalen);\r
if(savephonename != NULL){\r
memcpy(savephonename,(uint8_t *)pn->valuestring,datalen+1);\r
memset(phone_tmp,0,6);\r
cJSON* root = cJSON_Parse((const char *)json);\r
uint8_t datalen = 0;\r
- uint8_t count = 0;\r
+ uint8_t count = 5;\r
if(root != NULL)\r
{\r
cJSON* mac = cJSON_GetObjectItem(root, "mac");\r
if (cJSON_IsNumber(macElement)) {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%d", macElement->valueint);\r
if (macElement->prev != NULL) {\r
- phone_tmp[count++] = macElement->valueint;\r
+ phone_tmp[count] = macElement->valueint;\r
+ count--;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,", ");\r
}\r
}\r
cJSON_Delete(dataJSON);\r
// 读取JSON文件\r
\r
- memcpy(value+18,addr->addr,6);\r
+ //memcpy(value+18,addr->addr,6);\r
+ value[18]=addr->addr[5];\r
+ value[19]=addr->addr[4];\r
+ value[20]=addr->addr[3]; \r
+ value[21]=addr->addr[2];\r
+ value[22]=addr->addr[1];\r
+ value[23]=addr->addr[0];\r
+\r
memcpy(parie_mac,addr->addr,6);\r
length = 18+6;\r
uint8_t crcvalue = Calculate_CRC(value,length);\r
uapi_get_br_address(&bdaddr);\r
if( uapi_dev_runtime_get_bt_powerstat() && (cm_get_HFP_switch()||cm_get_A2DP_switch()))\r
{\r
- if (false==bt_is_acl_connected(&bdaddr))\r
+ if (false==bt_is_acl_connected(&bdaddr) && !(bdaddr.addr[0]==0 && bdaddr.addr[1]==0 && bdaddr.addr[2]==0 && bdaddr.addr[3]==0 \r
+ && bdaddr.addr[4]==0 && bdaddr.addr[5]==0))\r
{\r
int ret = gap_reconnect_media_device(&bdaddr);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " gap_reconnect_media_device ret = %u", ret);\r
- } \r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " gap_reconnect_media_device ret = %u %02x %02x %02x ", ret,bdaddr.addr[5],bdaddr.addr[4],bdaddr.addr[3]);\r
+ }\r
+ else\r
+ {\r
+ \r
+ if(cm_get_A2DP_switch() || cm_get_HFP_switch())\r
+ uapi_a2dp_snk_connect();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_a2dp_snk_connect!!! \r\n");\r
+ }\r
+ \r
}\r
\r
\r
\r
if (check_dial_freespace(ble_dial_uid, file_size) == false)\r
{\r
+\r
+ TRANSMIT_DATA=TRANS_DIAL_FAIL;\r
+ CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
return ERRCODE_FAIL;\r
}\r
+ else\r
+ {\r
+ buffer_handle->file_recv_stat.file_name = filename;\r
+ buffer_handle->file_recv_stat.file_size = file_size;\r
+ buffer_handle->file_recv_stat.file_type = 3;//表盘\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," filetype = %d, file_name=%s, file_size=%d , dial_uid %04X ,dial_count %d, dial_filetype %d\n",\r
+ buffer_handle->file_recv_stat.file_type,\r
+ buffer_handle->file_recv_stat.file_name,\r
+ buffer_handle->file_recv_stat.file_size,\r
+ dialinfo.dial_uid,\r
+ dialinfo.dial_count,\r
+ dialinfo.file_type\r
\r
- buffer_handle->file_recv_stat.file_name = filename;\r
- buffer_handle->file_recv_stat.file_size = file_size;\r
- buffer_handle->file_recv_stat.file_type = 3;//表盘\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," filetype = %d, file_name=%s, file_size=%d , dial_uid %04X ,dial_count %d, dial_filetype %d\n",\r
- buffer_handle->file_recv_stat.file_type,\r
- buffer_handle->file_recv_stat.file_name,\r
- buffer_handle->file_recv_stat.file_size,\r
- dialinfo.dial_uid,\r
- dialinfo.dial_count,\r
- dialinfo.file_type\r
+ );\r
+ buffer_handle->file_recv_stat.received_size = 0;\r
+ buffer_handle->file_recv_stat.lrcvalue = 0;\r
+ buffer_handle->receive_file_flag = 1;\r
+ uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_HIGH);\r
\r
- );\r
- buffer_handle->file_recv_stat.received_size = 0;\r
- buffer_handle->file_recv_stat.lrcvalue = 0;\r
- buffer_handle->receive_file_flag = 1;\r
- uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_HIGH);\r
+ TRANSMIT_DATA=TRANS_DIAL_TRANSMITTING;\r
+ CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
+ return ERRCODE_SUCC;\r
+ }\r
\r
- return ERRCODE_SUCC;\r
+ \r
+\r
+ \r
\r
}\r
static errcode_t install_dial(void)\r
\r
\r
//安装完后删除表盘\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"remove %s\r\n",lzma_filepath);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"remove %s\r\n",lzma_filepath);\r
\r
if(0!=remove(lzma_filepath))\r
return ERRCODE_FAIL;\r
}\r
else\r
{\r
- TRANSMIT_DATA=TRANS_DIAL_TRANSMITTING;\r
- CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
+ \r
ble_reply_cmd(DIAL_FILE_RECV_CMD,1);\r
}\r
\r
{\r
ble_reply_cmd(SINGLE_DIAL_FILE_RECV_CMD,1);\r
} else {\r
- TRANSMIT_DATA=TRANS_DIAL_FAIL;\r
- CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
ble_reply_cmd(SINGLE_DIAL_FILE_RECV_CMD,2);\r
} \r
break;\r
//"/user/userdata/music"\r
char filepath[256]={0};\r
create_mp3_name(filepath,musicpath,ble_read_timer_p->file_recv_stat.file_name);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"filepath %s\r\n",filepath);\r
remove(filepath);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"filepath %s\r\n",filepath);\r
}\r