#include "wearable_log.h"
#include "UiConfig.h"
#include "uicomponents/UIComponents.h"
+#include "ConfigModel.h"
+
namespace OHOS {
}
EphemerisDownloadView::~EphemerisDownloadView() {
+
+ if (group!=nullptr)
+ {
+ group->RemoveAll();
+ delete group;
+ group = nullptr;
+ }
+
if (labelTitle_!=nullptr)
{
delete labelTitle_;
delete labelNote_;
labelNote_ = nullptr;
}
+ // 蓝牙未连接页容器及子控件
+ if (container_[EPHEMERIS_VIEW_BT_DISCONNECT] != nullptr) {
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->RemoveAll();
+ if (labelTitleBt_ != nullptr) { delete labelTitleBt_; labelTitleBt_ = nullptr; }
+ if (imageViewBt_ != nullptr) { delete imageViewBt_; imageViewBt_ = nullptr; }
+ if (labelHintBt_ != nullptr) { delete labelHintBt_; labelHintBt_ = nullptr; }
+ if (btnCloseBt_ != nullptr) { delete btnCloseBt_; btnCloseBt_ = nullptr; }
+ delete container_[EPHEMERIS_VIEW_BT_DISCONNECT];
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT] = nullptr;
+ }
g_pEphemerisDownloadView = nullptr;
//停止定时器
EphemerisDownloadModel::GetInstance().ephemeris_stop_data_timer();
if (!EphemerisDownloadInit()) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "EphemerisDownloadView::EphemerisDownloadInit fail");
}
-
- GetRootContainer()->SetDraggable(true);
- GetRootContainer()->SetPosition(0, 0, 466, 466);
- GetRootContainer()->SetOnDragListener(presenter_);
-
- GetRootContainer()->SetTouchable(true);
}
EphemerisDownloadView *EphemerisDownloadView::GetInstance() {
}
bool EphemerisDownloadView::EphemerisDownloadInit() {
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[FindPhoneViewInit_BlueToothConnected] group new fail!!");
+ return false;
+ }
+ group->SetPosition(0, 0, 466, 466);
+ group->SetStyle(STYLE_BACKGROUND_OPA, 0);
+ group->SetTouchable(true);
+ group->SetDraggable(true);
+ group->SetOnDragListener(presenter_);
+ container_[EPHEMERIS_VIEW_MAIN] = group;
+ AddViewToRootContainer(container_[EPHEMERIS_VIEW_MAIN]);
+
// 初始化标题 - 居中显示
labelTitle_ = new UILabelExt();
if (labelTitle_ == nullptr) {
}
labelTitle_->SetPosition(83, 50, 300, 50);
labelTitle_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- labelTitle_->SetText("星历下载");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelTitle_->SetText("定位优化");
+ else
+ labelTitle_->SetText("Location Optimization");
labelTitle_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
labelTitle_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
labelTitle_->SetTextColor(Color::White());
- AddViewToRootContainer(labelTitle_);
+ group->Add(labelTitle_);
// 初始化状态标签 - 左对齐,带圆点前缀
labelStatus_ = new UILabelExt();
labelStatus_->SetPosition(50, 120, 360, 70);
labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
labelStatus_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
- labelStatus_->SetText("● 下载状态:");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelStatus_->SetText("● 优化状态:");
+ else
+ labelStatus_->SetText("● Opt Status:");
labelStatus_->SetTextColor(Color::Yellow());//黄色
- AddViewToRootContainer(labelStatus_);
+ group->Add(labelStatus_);
// 初始化状态值标签 - 显示具体状态
labelStatusValue_ = new UILabelExt();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatusValue_ new failed");
return false;
}
- labelStatusValue_->SetPosition(220, 120, 360, 70);
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelStatusValue_->SetPosition(220, 120, 360, 70);
+ else
+ labelStatusValue_->SetPosition(240, 120, 360, 70);
labelStatusValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
labelStatusValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
- AddViewToRootContainer(labelStatusValue_);
+ group->Add(labelStatusValue_);
// 初始化有效期标签 - 左对齐,带圆点前缀
labelValidity_ = new UILabelExt();
labelValidity_->SetPosition(50, 170, 360, 70);
labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
labelValidity_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
- labelValidity_->SetText("● 有效期:");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelValidity_->SetText("● 有效期:");
+ else
+ labelValidity_->SetText("● Expiry Date:");
labelValidity_->SetTextColor(Color::Green());//绿色
- AddViewToRootContainer(labelValidity_);
+ group->Add(labelValidity_);
// 初始化有效期值标签 - 显示具体有效期
labelValidityValue_ = new UILabelExt();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidityValue_ new failed");
return false;
}
- labelValidityValue_->SetPosition(220, 170, 360, 70);
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelValidityValue_->SetPosition(220, 170, 360, 70);
+ else
+ labelValidityValue_->SetPosition(250, 170, 360, 70);
labelValidityValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
labelValidityValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
- AddViewToRootContainer(labelValidityValue_);
+ group->Add(labelValidityValue_);
// 初始化说明标签 - 居中显示,灰色文字
labelNote_ = new UILabelExt();
labelNote_->SetPosition(50, 230, 366, 80);
labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
labelNote_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- labelNote_->SetText("注:请打开4G,需要在网络连接状态下才可以下载");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelNote_->SetText("注:需要在网络连接状态下并且有效期失效时才可以下载");
+ else
+ labelNote_->SetText("Note: You can only download when the network is connected and the expiration date is invalid.");
labelNote_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); // 灰色
//修改为靠左对齐
labelNote_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
- AddViewToRootContainer(labelNote_);
+ group->Add(labelNote_);
InitButtonExt(btnDownload_, 58, 320, 170, 90, DOWNLOAD_ID, STR_EPHEMERIS_DOWNLOAD, 30);
+ printf("btnDownload_ 初始化完成\n");
btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
- btnDownload_->SetText("下载");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ btnDownload_->SetText("优化");
+ else
+ btnDownload_->SetText("Optimized");
btnDownload_->SetOnClickListener(presenter_);
InitButtonExt(btnBack_, 238, 320, 170, 90, BACK_ID, STR_CANCEL, 30);
+ printf("btnBack_ 初始化完成\n");
btnBack_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
btnBack_->SetOnClickListener(presenter_);
- AddViewToRootContainer(btnDownload_);
- AddViewToRootContainer(btnBack_);
+ group->Add(btnDownload_);
+ group->Add(btnBack_);
// 初始化完成后更新所有状态
UpdateDownloadStatus();
UpdateValidityPeriod();
UpdateDownloadButton();
-
+ // 蓝牙未连接页(排版与 VIEW_FIND_PHONE 未连接时一致)
+ if (!InitBtDisconnectView()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "EphemerisDownloadView::InitBtDisconnectView fail");
+ return false;
+ }
+
+ return true;
+}
+
+bool EphemerisDownloadView::InitBtDisconnectView() {
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT] = new UIViewGroup();
+ if (container_[EPHEMERIS_VIEW_BT_DISCONNECT] == nullptr) {
+ return false;
+ }
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->SetPosition(0, 0, 466, 466);
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->SetStyle(STYLE_BACKGROUND_OPA, 0);
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->SetTouchable(true);
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->SetDraggable(true);
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->SetOnDragListener(presenter_);
+
+ // 标题 - 与 FindPhone 未连接页排版一致(83, 50, 300, 35)
+ labelTitleBt_ = new UILabelExt();
+ if (labelTitleBt_ == nullptr) return false;
+ labelTitleBt_->SetPosition(83, 50, 300, 35);
+ labelTitleBt_->SetStyle(STYLE_TEXT_FONT, 30);
+ labelTitleBt_->SetStyle(STYLE_LINE_HEIGHT, 35);
+ if (ConfigModel::GetInstance()->GetLanguage() == 0) {
+ labelTitleBt_->SetText("定位优化");
+ } else {
+ labelTitleBt_->SetText("Location Optimization");
+ }
+ labelTitleBt_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
+ labelTitleBt_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ labelTitleBt_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ labelTitleBt_->SetTextColor(Color::White());
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->Add(labelTitleBt_);
+
+ // 图标 - 与「正在优化定位速度」界面的下载动图第一张一致(transmitting 使用 /user/res/down/ 24 帧)
+ imageViewBt_ = new UIImageView();
+ if (imageViewBt_ == nullptr) return false;
+ imageViewBt_->SetPosition(183, 140, 100, 100);
+ imageViewBt_->SetSrc("/user/res/down/23.bin");
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->Add(imageViewBt_);
+
+ // 提示文案 - 蓝牙未连接(83, 270, 300, 35)
+ labelHintBt_ = new UILabelExt();
+ if (labelHintBt_ == nullptr) return false;
+ labelHintBt_->SetPosition(83, 270, 300, 35);
+ labelHintBt_->SetStyle(STYLE_TEXT_FONT, 30);
+ labelHintBt_->SetStyle(STYLE_LINE_HEIGHT, 35);
+ if (ConfigModel::GetInstance()->GetLanguage() == 0) {
+ labelHintBt_->SetText("正在等待APP下载资源包,请稍等");
+ } else {
+ labelHintBt_->SetText("Waiting for the APP");
+ }
+ labelHintBt_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
+ labelHintBt_->SetTextColor(Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));
+ labelHintBt_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ labelHintBt_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->Add(labelHintBt_);
+
+ // 关闭按钮 - 与 FindPhone 未连接页一致(0, 366, 466, 100)
+ btnCloseBt_ = new UILabelButtonExt();
+ if (btnCloseBt_ == nullptr) return false;
+ btnCloseBt_->SetPosition(0, 366, 466, 100);
+ btnCloseBt_->SetViewId(EPHEMERIS_BT_DISCONNECT_CLOSE_ID);
+ btnCloseBt_->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);
+ btnCloseBt_->SetTextId(STR_CLOSE);
+ btnCloseBt_->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));
+ btnCloseBt_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ btnCloseBt_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+ btnCloseBt_->SetOnClickListener(presenter_);
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->Add(btnCloseBt_);
+
+ AddViewToRootContainer(container_[EPHEMERIS_VIEW_BT_DISCONNECT]);
+ container_[EPHEMERIS_VIEW_BT_DISCONNECT]->SetVisible(false);
return true;
}
+void EphemerisDownloadView::ChangeView(int16_t hideView, int16_t showView) {
+ if (hideView >= EPHEMERIS_VIEW_MAX || showView >= EPHEMERIS_VIEW_MAX ||
+ container_[hideView] == nullptr || container_[showView] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "EphemerisDownloadView::ChangeView invalid view %d -> %d", hideView, showView);
+ return;
+ }
+ container_[hideView]->SetVisible(false);
+ container_[showView]->SetVisible(true);
+ Draw();
+}
+
UILabelExt *EphemerisDownloadView::GetDownloadLabel() {
return labelStatusValue_;
}
// 更新下载状态显示
void EphemerisDownloadView::UpdateDownloadStatus() {
if (labelStatusValue_ == nullptr) return;
- //如果有效期大于0,则显示下载成功
+
+ // 先同步状态:如果有效期有效,确保状态为已下载
if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
{
- labelStatusValue_->SetText("数据有效");
+ // 如果有效期有效,但状态不是已下载,则更新状态
+ if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus() != EphemerisDownloadStatus::DOWNLOADED)
+ {
+ EphemerisDownloadModel::GetInstance().SetEphemerisDownloadStatus(EphemerisDownloadStatus::DOWNLOADED);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateDownloadStatus: 同步状态为已下载");
+ }
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelStatusValue_->SetText("已优化");
+ else
+ labelStatusValue_->SetText("Optimized");
}
else
{
- labelStatusValue_->SetText("未下载");
+ // 如果有效期无效,但状态是已下载,则更新状态
+ if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus() == EphemerisDownloadStatus::DOWNLOADED)
+ {
+ EphemerisDownloadModel::GetInstance().SetEphemerisDownloadStatus(EphemerisDownloadStatus::NOT_DOWNLOADED);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateDownloadStatus: 同步状态为未下载");
+ }
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelStatusValue_->SetText("未优化");
+ else
+ labelStatusValue_->SetText("Not Optimized");
}
}
std::string period = EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod();
if (period.empty()) {
- labelValidityValue_->SetText("无数据");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ labelValidityValue_->SetText("未优化");
+ else
+ labelValidityValue_->SetText("Not Optimized");
} else {
labelValidityValue_->SetText(period.c_str());
}
switch (status) {
case EphemerisDownloadStatus::NOT_DOWNLOADED:
case EphemerisDownloadStatus::FAILED:
- btnDownload_->SetText("未下载");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ btnDownload_->SetText("点击优化");
+ else
+ btnDownload_->SetText("Optimize");
btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full); // 蓝色
btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xcc, 0x70, 0x00, 0xff).full, UIButton::PRESSED);
break;
case EphemerisDownloadStatus::DOWNLOADING:
- btnDownload_->SetText("下载中");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ btnDownload_->SetText("优化中");
+ else
+ btnDownload_->SetText("Optimizing");
btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full); // 灰色
btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
break;
case EphemerisDownloadStatus::DOWNLOADED:
- btnDownload_->SetText("已下载");
- btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full); // 绿色
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ btnDownload_->SetText("已优化");
+ else
+ btnDownload_->SetText("Optimized");
+ // btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full); // 绿色
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full); // 灰色
btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
break;
}
#include "components/ui_image_view.h"
#include "components/ui_label.h"
#include "components/ui_label_ext.h"
-#include "components/ui_label_button_ext.h"
+#include "components/ui_label_button_ext.h"
#ifdef SUPPORT_BLE_SERVICE
// #include "battery_service.h"
#include "bleEvent.h"
namespace OHOS
{
static UIImageView *imageCharge = nullptr;
- static UIViewGroup *UIViewGroup_transmitting = nullptr;
+ static UIViewGroup *UIViewGroup_transmitting=nullptr;
- static UIImageView *transmitting_img = nullptr;
+ static UIImageView *transmitting_img=nullptr;
- static UISlider *updatasider = nullptr;
+ static UISlider *updatasider=nullptr;
- static UILabelExt *Title = nullptr;
+ static UILabelExt *Title=nullptr;
- static UILabelExt *label_ = nullptr;
+ static UILabelExt *label_=nullptr;
- static UIImageAnimatorView *downImageAnimatorView = nullptr;
+ static UIImageAnimatorView *downImageAnimatorView=nullptr;
- static constexpr char *ShutDownPaths = "/user/res/down/";
- static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 24; // 图片帧数
- static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_TIME = 150; // 图片更新间隔
+ static constexpr char *ShutDownPaths = "/user/res/down/";
+ static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 24; // 图片帧数
+ static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_TIME = 150; // 图片更新间隔
static ImageAnimatorInfo ImageInfo_animator[SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES]; // 关机图像的信息
static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_X = 183;
static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_Y = 140;
static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_W = 100;
static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_H = 100;
- const ImageInfo **imageInfo_dwon{nullptr}; // 关机图片路径数组
+ const ImageInfo **imageInfo_dwon{nullptr}; // 关机图片路径数组
-#define TRANSMITTING_SUCC_PATH PNG_SUCC_IMAGE;
-#define TRANSMITTING_FAIL_PATH PNG_ATTENTION_IMAGE;
-#define TRANSMITTING_OTA_DOWN "/user/res/system/FOOINGLOGO.bin"
+ #define TRANSMITTING_SUCC_PATH PNG_SUCC_IMAGE;
+ #define TRANSMITTING_FAIL_PATH PNG_ATTENTION_IMAGE;
+ #define TRANSMITTING_OTA_DOWN "/user/system/FOOINGOTALOGO.bin"
+
-#define LOW_POWER_BUTTON "LOW_POWER_BUTTON"
- static void CreatetransmittingAnimator(void)
+ #define LOW_POWER_BUTTON "LOW_POWER_BUTTON"
+
+
+
+ static void CreatetransmittingAnimator(void)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShutDownAnimatorView::ShowUpShutDownAnimatorView");
- imageInfo_dwon = CreateImageInfoArray(ShutDownPaths, SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, "bin");
+ imageInfo_dwon = CreateImageInfoArray(ShutDownPaths,SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, "bin");
if (downImageAnimatorView == nullptr)
{
downImageAnimatorView->SetImageAnimatorSrc(ImageInfo_animator, SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, 100);
downImageAnimatorView->SetRepeat(true);
downImageAnimatorView->SetRepeatTimes(1);
+
}
downImageAnimatorView->SetVisible(true);
downImageAnimatorView->Start();
- // downImageAnimatorView->Start();
-
- return;
+ //downImageAnimatorView->Start();
+
+ return ;
}
+
+
+
- static uint8_t Transmitting_falg = 1;
+ static uint8_t Transmitting_falg=1;
void set_transmittingShow_falg(uint8_t falg)
{
- Transmitting_falg = falg;
+ Transmitting_falg=falg;
}
- static osTimerId_t transmitting_timer = NULL;
+ static osTimerId_t transmitting_timer= NULL;
- void Freetransmitting(void)
+ void Freetransmitting(void)
{
- if (UIViewGroup_transmitting != nullptr)
- {
- UIViewGroup_transmitting->RemoveAll();
+ if (UIViewGroup_transmitting != nullptr)
+ {
+ UIViewGroup_transmitting->RemoveAll();
- if (transmitting_img)
- {
- delete transmitting_img;
- transmitting_img = nullptr;
- }
- if (Title)
- {
- delete Title;
- Title = nullptr;
- }
- if (label_)
- {
- delete label_;
- label_ = nullptr;
- }
- if (downImageAnimatorView)
- {
- FreeImageInfoArray(imageInfo_dwon, ShutDownPaths, SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, "bin");
- delete downImageAnimatorView;
- downImageAnimatorView = nullptr;
- }
- if (updatasider)
- {
- delete updatasider;
- updatasider = nullptr;
- }
- if (transmitting_timer)
- {
-
- osTimerStop(transmitting_timer);
- osStatus_t ret = osTimerDelete(transmitting_timer);
- if (ret != osOK)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Disatransmitting_timer failed ret = %lx!", ret);
- // return;
- }
- transmitting_timer = nullptr;
- }
-
- const power_display_svr_api_t *display_api = power_display_svr_get_api();
- if (display_api->get_screen_state() != SCREEN_ON)
- {
- display_api->turn_on_screen();
+ if(transmitting_img)
+ {
+ delete transmitting_img;
+ transmitting_img = nullptr;
+ }
+ if(Title)
+ {
+ delete Title;
+ Title = nullptr;
+ }
+ if(label_)
+ {
+ delete label_;
+ label_ = nullptr;
+ }
+ if(downImageAnimatorView)
+ {
+ FreeImageInfoArray(imageInfo_dwon,ShutDownPaths, SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES,"bin");
+ delete downImageAnimatorView;
+ downImageAnimatorView = nullptr;
+ }
+ if(updatasider)
+ {
+ delete updatasider;
+ updatasider = nullptr;
+ }
+ if(transmitting_timer)
+ {
+
+ osTimerStop(transmitting_timer);
+ osStatus_t ret = osTimerDelete(transmitting_timer);
+ if (ret != osOK) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Disatransmitting_timer failed ret = %lx!", ret);
+ //return;
}
- display_api->set_auto_timeout_function(true);
+ transmitting_timer = nullptr;
+ }
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ if (display_api->get_screen_state() != SCREEN_ON)
+ {
+ display_api->turn_on_screen();
+ }
+ display_api->set_auto_timeout_function(true);
+
#ifdef SUPPORT_CYWEE_SERVICE
- cywee_hand_wake_switch(1); // 关闭抬腕亮屏,和息屏
+ cywee_hand_wake_switch(1); // 关闭抬腕亮屏,和息屏
#endif
- RootView::GetInstance()->Remove(UIViewGroup_transmitting);
- delete UIViewGroup_transmitting;
- UIViewGroup_transmitting = nullptr;
+ RootView::GetInstance()->Remove(UIViewGroup_transmitting);
+ delete UIViewGroup_transmitting;
+ UIViewGroup_transmitting = nullptr;
- uapi_dev_runtime_set_transmitting_status(0);
+ uapi_dev_runtime_set_transmitting_status(0);
}
}
- static uint8_t timer_falg_low_power = 5;
+ static uint8_t timer_falg_low_power=5;
- static uint8_t test_flag = 0;
+ static uint8_t transmitting_ota_timeout = 10; // 10秒超时计数(每秒减1)
+ static uint32_t cur_recv_value = 0; // 当前接收值
+ static uint32_t last_recv_value = 0; // 上一次接收值
+ static bool is_ota_data_stop = false; // 标记是否停止传输
+ static bool is_first_check = true; // 首次检测标记(避免初始值误判)
static void OTATimerCallBackProc(int data)
- {
-#ifdef SUPPORT_BLE_SERVICE
-#if 0
+ {
+ #ifdef SUPPORT_BLE_SERVICE
if(updatasider)
- updatasider->SetValue(test_flag++);
-#else
- if (updatasider)
- updatasider->SetValue(get_OTA_recv_value());
-#endif
- if (updatasider)
+ {
+ cur_recv_value = get_OTA_recv_value(); // 获取当前接收值
+ updatasider->SetValue(cur_recv_value);
updatasider->Invalidate();
-#endif
+
+ // ===== 核心检测逻辑 =====
+ // 首次检测:初始化上一次值,不做判断
+ if (is_first_check)
+ {
+ last_recv_value = cur_recv_value;
+ is_first_check = false;
+ return;
+ }
+
+ // 非首次检测:对比当前值与上一次值
+ if (cur_recv_value == last_recv_value)
+ {
+ // 值无变化,超时计数减1
+ transmitting_ota_timeout--;
+ if (transmitting_ota_timeout == 0)
+ {
+ // 10秒值未变化,判定APP停止传输
+ is_ota_data_stop = true;
+ transmitting_ota_timeout = 10; // 重置计数(可选,根据业务需求)
+ is_first_check = true; // 重置首次检测标记(可选)
+
+ // 【此处添加停止传输后的业务逻辑】
+ // 示例:打印日志、停止OTA定时器、通知上层等
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OTA传输停止:10秒未收到新数据");
+ NotificationManager::GetInstance()->StopNotify();
+ }
+ }
+ else
+ {
+ // 值有变化,重置超时计数和上一次值
+ transmitting_ota_timeout = 10;
+ last_recv_value = cur_recv_value;
+ is_ota_data_stop = false;
+ }
+ }
+ #endif
}
void OTATimerCallBack(int data)
void dialtimerCallBack(int data)
{
- NotificationManager::GetInstance()->StopNotify();
+ NotificationManager::GetInstance()->StopNotify();
}
- void creat_down_OTA()
+ static uint8_t epo_timer_falg=20;
+ void epo_timerCallBack(int data)
{
+ //给15s时间,等待EPO文件解压完成,超过15s不管成功与否,都停止通知
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "epo_timerCallBack epo_timer_falg = %d", epo_timer_falg);
+ if(epo_timer_falg<=0)
+ {
+ epo_timer_falg=20;
+ NotificationManager::GetInstance()->StopNotify();
+ }
+ else
+ {
+ //如果EPO文件解压成功,停止通知
+ if(uapi_dev_runtime_get_epo_file_extracted_status() == 1)
+ {
+ NativeAbility::GetInstance().ChangeSlice(VIEW_EPHEMERIS_DOWNLOAD);
+ NotificationManager::GetInstance()->StopNotify();
+ }
+ }
+ epo_timer_falg--;
+ }
+
+
+
+ void creat_down_OTA()
+ {
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "OTA 界面创建");
if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(83, 50); // widget's left position and top position
- Title->Resize(300, 35); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(83, 50);
+ Title->Resize(300, 35);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("OTA下载中");
- Title->SetTextId(STR_OTA_DOWNLOAD);
-
+ Title->SetTextId (STR_OTA_DOWNLOAD);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
UIViewGroup_transmitting->Add(Title);
-
if (updatasider == nullptr)
{
updatasider = new UISlider();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView new fail");
+ if(updatasider == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "updatasider new fail");
+ }
}
-
updatasider->SetSliderColor(Color::Gray(), Color::Silver());
updatasider->SetPosition(63, 317, 340, 50);
updatasider->SetViewId("SystemUpdateView_updatasider");
- updatasider->SetRange(0, 100);
-
+ updatasider->SetRange(100, 0);
updatasider->SetStyle(STYLE_BORDER_RADIUS, 100);
updatasider->SetBackgroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);
updatasider->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);
updatasider->SetTouchable(false);
updatasider->SetValue(0);
UIViewGroup_transmitting->Add(updatasider);
-
- if (label_ == nullptr)
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 220); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 220);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("软件正在更新");
label_->SetTextId(STR_OTA_DOWNLOADING);
label_->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
UIViewGroup_transmitting->Add(label_);
-
- // Add ImageView to App
-
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(117, 87, 230, 160);
+ transmitting_img->SetPosition(193, 130, 80, 88);
const char *imagesPath = TRANSMITTING_OTA_DOWN;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
uint32_t tick;
osStatus_t retTimer;
-
-#ifdef SUPPORT_BLE_SERVICE
+
+ #ifdef SUPPORT_BLE_SERVICE
Set_OTA_recv_value();
-#endif
- if (transmitting_timer != NULL)
+ transmitting_ota_timeout = 10;
+ #endif
+ if(transmitting_timer!=NULL)
{
osTimerStop(transmitting_timer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
}
transmitting_timer = osTimerNew((osTimerFunc_t)OTATimerCallBack, osTimerPeriodic, NULL, NULL);
- tick = 500; // osMs2Tick(1000);
+ tick =500;// osMs2Tick(1000);
retTimer = osTimerStart(transmitting_timer, tick);
- if (retTimer != osOK && transmitting_timer != NULL)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
+ if (retTimer != osOK && transmitting_timer != NULL) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
- return;
+ return ;
}
}
- static upg_result_t upg_result;
- static uint32_t last_image_index;
+ static upg_result_t upg_result;
+ static uint32_t last_image_index;
- static char updata_fail_str[32] = {0};
+ static char updata_fail_str[32]={0};
static uint8_t TRANSMIT_DATA;
void get_updatafail_data(void)
{
-#ifdef SUPPORT_BLE_SERVICE
+ #ifdef SUPPORT_BLE_SERVICE
errcode_t ret;
ret = uapi_upg_get_result(&upg_result, &last_image_index);
- if (ret != ERRCODE_SUCC)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_upg_get_result error = 0x%x\r\n", ret);
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "upg_result = %d, last_image_index:%d\r\n", upg_result, last_image_index);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_upg_get_result OK!!\r\n");
- if (upg_result != UPG_RESULT_UPDATE_SUCCESS)
- {
- sprintf_s(updata_fail_str, 32, "%d_%d", (int)upg_result, last_image_index);
- TRANSMIT_DATA = OTA_UPDATA_FAIL;
- if (ConfigModel::GetInstance()->get_configData_int(ConfigModel::CONFIGMODEL_ITEM_OTA_UPGRADE))
+ if (ret != ERRCODE_SUCC) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"uapi_upg_get_result error = 0x%x\r\n", ret);
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"upg_result = %d, last_image_index:%d\r\n", upg_result, last_image_index);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"uapi_upg_get_result OK!!\r\n");
+ if(upg_result!=UPG_RESULT_UPDATE_SUCCESS)
+ {
+ sprintf_s(updata_fail_str,32,"%d_%d",(int)upg_result,last_image_index);
+ TRANSMIT_DATA=OTA_UPDATA_FAIL;
+ if(ConfigModel::GetInstance()->get_configData_int(ConfigModel::CONFIGMODEL_ITEM_OTA_UPGRADE))
{
- CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT, &TRANSMIT_DATA, 1);
- ConfigModel::GetInstance()->set_condigData_Int(ConfigModel::CONFIGMODEL_ITEM_OTA_UPGRADE, 0);
+ CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);
+ ConfigModel::GetInstance()->set_condigData_Int(ConfigModel::CONFIGMODEL_ITEM_OTA_UPGRADE,0);
}
- }
+ }
+
}
-#endif
+ #endif
}
void Creat_OTA_Updata_FAIL()
{
- if (Title == nullptr)
+
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(83, 50); // widget's left position and top position
- Title->Resize(300, 35); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(83, 50);
+ Title->Resize(300, 35);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("OTA upgrade failure");
Title->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);
-
UIViewGroup_transmitting->Add(Title);
-
- if (label_ == nullptr)
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
+ label_->SetViewId("label2");
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- char fail_str[128] = {0};
- sprintf_s(fail_str, 128, "ota升级失败,请尝试重启设备");
-
+ char fail_str[128]={0};
+ sprintf_s(fail_str,128,"ota升级失败,请尝试重启设备");
label_->SetText(fail_str);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);
-
UIViewGroup_transmitting->Add(label_);
-
- // Add ImageView to App
-
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_FAIL_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
void Creat_CAT1_OTA_Updata()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(83, 50); // widget's left position and top position
- Title->Resize(300, 35); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(83, 50);
+ Title->Resize(300, 35);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("CAT1 OTA upgradeing");
Title->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);
-
UIViewGroup_transmitting->Add(Title);
-
- if (label_ == nullptr)
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
-
label_->SetText("4G模块OTA升级中,请勿操作,升级成功后会自动重启");
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);
-
UIViewGroup_transmitting->Add(label_);
-
- // Add ImageView to App
-
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_FAIL_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
void creat_down_OTA_FAIL()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(143, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(143, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("OTA下载失败");
- Title->SetTextId(STR_OTA_DOWNLOADFIAL);
+ Title->SetTextId (STR_OTA_DOWNLOADFIAL);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
+ /* -------------------------------------------------------------------------- */
UIViewGroup_transmitting->Add(Title);
- if (label_ == nullptr)
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("下载升级包失败,请退出或者重新下载");
label_->SetTextId(STR_OTA_DOWNLOADFIAL_TRY);
-
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
UIViewGroup_transmitting->Add(label_);
-
- // Add ImageView to App
-
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
}
- transmitting_img->SetPosition(117, 87, 230, 160);
+ transmitting_img->SetPosition(193, 130, 80, 88);
const char *imagesPath = TRANSMITTING_OTA_DOWN;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
}
void creat_down_OTA_SUCC()
- {
- if (Title == nullptr)
+ {
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(143, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(143, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("OTA下载成功");
- Title->SetTextId(STR_OTA_DOWNLOADSUCC);
+ Title->SetTextId (STR_OTA_DOWNLOADSUCC);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
UIViewGroup_transmitting->Add(Title);
- if (label_ == nullptr)
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("下载升级包成功,可以开始升级手表");
label_->SetTextId(STR_OTA_DOWNLOADSUCC_UPDATA);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
UIViewGroup_transmitting->Add(label_);
-
- // Add ImageView to App
-
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(117, 87, 230, 160);
+ transmitting_img->SetPosition(193, 130, 80, 88);
const char *imagesPath = TRANSMITTING_OTA_DOWN;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
}
-
+
void creat_down_Dial()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(158, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(158, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("表盘安装中");
- Title->SetTextId(STR_DIAL_DOWNLOADING_TITLE);
+ Title->SetTextId (STR_DIAL_DOWNLOADING_TITLE);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("正在安装表盘,请不要做其他操作或关闭手表");
label_->SetTextId(STR_DIAL_DOWNLOADING_LABEL);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
UIViewGroup_transmitting->Add(label_);
label_->SetVisible(true);
-
CreatetransmittingAnimator();
- // UIViewGroup_transmitting->Add(updatasider);
-
UIViewGroup_transmitting->Add(downImageAnimatorView);
}
+
void creat_down_MP3()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(158, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(158, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("音乐传输中");
- Title->SetTextId(STR_MUSIC_TRANSMIT);
-
+ Title->SetTextId (STR_MUSIC_TRANSMIT);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("正在传输音乐,请不要做其他操作或关闭手表");
label_->SetTextId(STR_MUSIC_TRANSMIT_NOTE);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
label_->SetVisible(true);
-
+ UIViewGroup_transmitting->Add(label_);
CreatetransmittingAnimator();
- // UIViewGroup_transmitting->Add(updatasider);
-
UIViewGroup_transmitting->Add(downImageAnimatorView);
}
void creat_down_BIN()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(158, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(158, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("数据传输中");
// Title->SetTextId (STR_MUSIC_TRANSMIT);
-
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("正在下载应用,请不要做其他操作或关闭手表");
// label_->SetTextId(STR_MUSIC_TRANSMIT_NOTE);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
label_->SetVisible(true);
-
+ UIViewGroup_transmitting->Add(label_);
CreatetransmittingAnimator();
- // UIViewGroup_transmitting->Add(updatasider);
-
UIViewGroup_transmitting->Add(downImageAnimatorView);
}
+
void creat_down_MP3_succ()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("传输成功");
- Title->SetTextId(STR_MP3_SUCC_TITLE);
+ Title->SetTextId (STR_MP3_SUCC_TITLE);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("音乐传输成功正在校验,请稍等");
label_->SetTextId(STR_MUSIC_TRANSMIT_SUCCESS_NOTE);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ label_->SetVisible(true);
+ UIViewGroup_transmitting->Add(label_);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_SUCC_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
+ /* -------------------------------------------------------------------------- */
uint32_t tick;
osStatus_t retTimer;
- if (transmitting_timer != NULL)
+ if(transmitting_timer!=NULL)
{
osTimerStop(transmitting_timer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
}
transmitting_timer = osTimerNew((osTimerFunc_t)dialtimerCallBack, osTimerPeriodic, NULL, NULL);
- tick = 2000; // osMs2Tick(1000);
+ tick =2000;// osMs2Tick(1000);
retTimer = osTimerStart(transmitting_timer, tick);
- if (retTimer != osOK && transmitting_timer != NULL)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
+ if (retTimer != osOK && transmitting_timer != NULL) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
- return;
+ return ;
}
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
+
void creat_down_BIN_succ()
{
- if (Title == nullptr)
- {
- Title = new UILabelExt();
+ if (Title == nullptr) {
+ Title = new UILabelExt();
}
- Title->SetPosition(173, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("传输成功");
// Title->SetTextId (STR_MP3_SUCC_TITLE);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("应用安装中,请稍等");
// label_->SetTextId(STR_MUSIC_TRANSMIT_SUCCESS_NOTE);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ label_->SetVisible(true);
+ UIViewGroup_transmitting->Add(label_);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_SUCC_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
+ /* -------------------------------------------------------------------------- */
uint32_t tick;
osStatus_t retTimer;
- if (transmitting_timer != NULL)
+ if(transmitting_timer!=NULL)
{
osTimerStop(transmitting_timer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
}
transmitting_timer = osTimerNew((osTimerFunc_t)dialtimerCallBack, osTimerPeriodic, NULL, NULL);
- tick = 2000; // osMs2Tick(1000);
+ tick =2000;// osMs2Tick(1000);
retTimer = osTimerStart(transmitting_timer, tick);
- if (retTimer != osOK && transmitting_timer != NULL)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
+ if (retTimer != osOK && transmitting_timer != NULL) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
- return;
+ return ;
}
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
void creat_down_Dial_succ()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
Title->SetText("安装成功");
- Title->SetTextId(STR_DIAL_SUCC_TITLE);
+ Title->SetTextId (STR_DIAL_SUCC_TITLE);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("表盘安装成功正在更新表盘,请稍等");
label_->SetTextId(STR_DIAL_SUCC_LABEL);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ label_->SetVisible(true);
+ UIViewGroup_transmitting->Add(label_);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_SUCC_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
+ /* -------------------------------------------------------------------------- */
uint32_t tick;
osStatus_t retTimer;
- if (transmitting_timer != NULL)
+ if(transmitting_timer!=NULL)
{
osTimerStop(transmitting_timer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
}
- transmitting_timer = osTimerNew((osTimerFunc_t)dialtimerCallBack, osTimerPeriodic, NULL, NULL);
- tick = 2000; // osMs2Tick(1000);
+ transmitting_timer = osTimerNew((osTimerFunc_t)dialtimerCallBack, osTimerOnce, NULL, NULL);
+ tick =2000;// osMs2Tick(1000);
retTimer = osTimerStart(transmitting_timer, tick);
- if (retTimer != osOK && transmitting_timer != NULL)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
+ if (retTimer != osOK && transmitting_timer != NULL) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
- return;
+ return ;
}
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
void creat_down_max_Dial_fail()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- Title->SetTextId(STR_OPERAT_FAIL); // TODO:多国语言
- // Title->SetTextId (STR_DIAL_FAIL_TITLE);
+ Title->SetTextId(STR_OPERAT_FAIL);//TODO:多国语言
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
-
- label_->SetTextId(STR_DIAL_NOTE); // TODO:多国语言
-
+ label_->SetTextId(STR_DIAL_NOTE);//TODO:多国语言
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ label_->SetVisible(true);
+ UIViewGroup_transmitting->Add(label_);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_FAIL_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
void creat_down_max_MP3_fail()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- Title->SetTextId(STR_OPERAT_FAIL); // TODO:多国语言
- // Title->SetTextId (STR_DIAL_FAIL_TITLE);
+ Title->SetTextId(STR_OPERAT_FAIL);//TODO:多国语言
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
-
- // label_->SetTextId(STR_DIAL_NOTE);//TODO:多国语言
- //
- //
- // if(ConfigModel::GetInstance()->GetLanguage() == ZH_CN)
label_->SetText("本地下载音乐已达到存储上限;请先删除部分歌曲再进行上传");
- // else
- // label_->SetText(
- // "The storage capacity of locally downloaded music has reached the upper limit.\
- // Please delete some songs before uploading");
-
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ label_->SetVisible(true);
+ UIViewGroup_transmitting->Add(label_);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_FAIL_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
void creat_down_Dial_fail()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- Title->SetText("安装失败");
- Title->SetTextId(STR_DIAL_FAIL_TITLE);
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ Title->SetText("安装失败");
+ else
+ Title->SetText("Install Failed");
+ Title->SetTextId (STR_DIAL_FAIL_TITLE);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
-
label_->SetTextId(STR_DIAL_FAIL_LABEL);
-
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ label_->SetVisible(true);
+ UIViewGroup_transmitting->Add(label_);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_FAIL_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
void creat_down_MP3_fail()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- Title->SetText("传输失败");
- Title->SetTextId(STR_MP3_FAIL_TITL);
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ Title->SetText("传输失败");
+ else
+ Title->SetText("Transfer Failed");
+ Title->SetTextId (STR_MP3_FAIL_TITL);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
label_->SetText("音乐传输失败,请退出或重新安装");
label_->SetTextId(STR_MP3_FAIL_LABEL);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ label_->SetVisible(true);
+ UIViewGroup_transmitting->Add(label_);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_FAIL_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
void creat_down_BIN_fail()
{
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51); // widget's left position and top position
- Title->Resize(800, 88); // widget's width and height
- Title->SetViewId("label1"); // Set style
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- Title->SetText("传输失败");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ Title->SetText("传输失败");
+ else
+ Title->SetText("Transfer Failed");
// Title->SetTextId (STR_MP3_FAIL_TITL);
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281); // widget's left position and top position
- label_->Resize(345, 101); // widget's width and height
- label_->SetViewId("label2"); // Set style
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- label_->SetText("app安装失败,请退出或重新安装");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ label_->SetText("app安装失败,请退出或重新安装");
+ else
+ label_->SetText("App install failed, please exit or reinstall");
// label_->SetTextId(STR_MP3_FAIL_LABEL);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ UIViewGroup_transmitting->Add(label_);
+ label_->SetVisible(true);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::FOOINGLOGOImage new fail!");
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_FAIL_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
+
void creat_down_EPO()
{
- printf("creat_down_EPO\n");
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(158, 51);
- Title->Resize(800, 88);
+ Title->SetPosition(108, 51);
+ Title->Resize(300, 88);
Title->SetViewId("label1");
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- Title->SetText("星历下载中");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ Title->SetText("正在优化定位速度");
+ else
+ Title->SetText("Optimizing");
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
- UIViewGroup_transmitting->Add(Title);
+ Title->SetX((466 - Title->GetWidth()) / 2);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ UIViewGroup_transmitting->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281);
- label_->Resize(345, 101);
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
- // Set additional property
- label_->SetText("正在下载星历,请不要做其他操作或关闭手表");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ label_->SetText("请稍等...");
+ else
+ label_->SetText("Please wait...");
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
- // Add to rootView
UIViewGroup_transmitting->Add(label_);
label_->SetVisible(true);
-
+ /* -------------------------------------------------------------------------- */
CreatetransmittingAnimator();
-
UIViewGroup_transmitting->Add(downImageAnimatorView);
}
void creat_down_EPO_succ()
{
- printf("creat_down_EPO_succ\n");
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51);
- Title->Resize(800, 88);
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
- Title->SetText("星历下载成功");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ Title->SetText("优化成功");
+ else
+ Title->SetText("Opt Success");
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
Title->SetX((466 - Title->GetWidth()) / 2);
-
- // Add to rootView
UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281);
- label_->Resize(345, 101);
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetViewId("label2");
label_->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- label_->SetText("星历下载成功,请稍等...");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ label_->SetText("优化成功,请稍等...");
+ else
+ label_->SetText("Opt Success, Please wait...");
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+ UIViewGroup_transmitting->Add(label_);
+ label_->SetVisible(true);
+ /* -------------------------------------------------------------------------- */
if (transmitting_img == nullptr)
{
transmitting_img = new UIImageView();
+ if(transmitting_img == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "transmitting_img new fail");
+ }
}
- transmitting_img->SetPosition(193, 150, 80, 80);
+ transmitting_img->SetPosition(193, 150,80, 80);
const char *imagesPath = TRANSMITTING_SUCC_PATH;
transmitting_img->SetSrc(imagesPath);
UIViewGroup_transmitting->Add(transmitting_img);
-
uint32_t tick;
osStatus_t retTimer;
- if (transmitting_timer != NULL)
+ if(transmitting_timer!=NULL)
{
osTimerStop(transmitting_timer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
+ epo_timer_falg=20;
}
- transmitting_timer = osTimerNew((osTimerFunc_t)dialtimerCallBack, osTimerPeriodic, NULL, NULL);
- tick = 3000; // osMs2Tick(1000);
+ transmitting_timer = osTimerNew((osTimerFunc_t)epo_timerCallBack, osTimerPeriodic, NULL, NULL);
+ tick =1000;// osMs2Tick(1000);
retTimer = osTimerStart(transmitting_timer, tick);
- if (retTimer != osOK && transmitting_timer != NULL)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
+ if (retTimer != osOK && transmitting_timer != NULL) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
osTimerDelete(transmitting_timer);
transmitting_timer = NULL;
- return;
+ return ;
}
-
- // Add to rootView
- UIViewGroup_transmitting->Add(label_);
- label_->SetVisible(true);
}
void creat_down_EPO_fail()
{
- printf("creat_down_EPO_fail\n");
- if (Title == nullptr)
+ if (Title == nullptr)
{
Title = new UILabelExt();
+ if(Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title new fail");
+ }
}
- Title->SetPosition(173, 51);
- Title->Resize(800, 88);
- Title->SetViewId("label1");
+ Title->SetPosition(173, 51);
+ Title->Resize(800, 88);
Title->SetStyle(STYLE_TEXT_FONT, 30);
-
- // Set additional property
- Title->SetText("星历下载失败");
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ Title->SetText("优化失败");
+ else
+ Title->SetText("Opt Failed");
Title->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Title->SetRollSpeed(0);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
Title->SetX((466 - Title->GetWidth()) / 2);
-
- // Add to rootView
UIViewGroup_transmitting->Add(Title);
Title->SetVisible(true);
-
- if (label_ == nullptr)
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr)
{
label_ = new UILabelExt();
+ if(label_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label_ new fail");
+ }
}
- label_->SetPosition(60, 281);
- label_->Resize(345, 101);
+ label_->SetPosition(60, 281);
+ label_->Resize(345, 101);
label_->SetStyle(STYLE_TEXT_FONT, 30);
- Title->SetText("星历下载失败,请重新下载");
-
+ if(ConfigModel::GetInstance()->GetLanguage() == 0)
+ label_->SetText("优化失败,请重试");
+ else
+ label_->SetText("Opt Failed, Please try again");
+ label_->SetX((466 - label_->GetWidth()) / 2);
label_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
label_->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_->SetRollSpeed(0);
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
UIViewGroup_transmitting->Add(label_);
label_->SetVisible(true);
}
bool transmittingISShow(void)
{
- if (uapi_dev_runtime_get_transmitting_status())
- return true;
- else
- return false;
+ if(uapi_dev_runtime_get_transmitting_status())
+ return true;
+ else
+ return false;
}
UIViewGroup *transmittingShow()
{
-
- if (UIViewGroup_transmitting == nullptr)
- {
+
+ if (UIViewGroup_transmitting == nullptr) {
UIViewGroup_transmitting = new UIViewGroup();
+ if(UIViewGroup_transmitting == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UIViewGroup_transmitting new fail");
+ }
UIViewGroup_transmitting->SetPosition(0, 0, 466, 466);
- // UIViewGroup_transmitting->SetStyle(STYLE_BACKGROUND_OPA, 0);
}
else
{
UIViewGroup_transmitting->RemoveAll();
}
uapi_dev_runtime_set_transmitting_status(1);
- printf("Transmitting_falg:%d", Transmitting_falg);
-#ifdef SUPPORT_BLE_SERVICE
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Transmitting_falg:%d",Transmitting_falg);
+ #ifdef SUPPORT_BLE_SERVICE
switch (Transmitting_falg)
{
- case TRANS_DIAL_TRANSMITTING:
- creat_down_Dial();
- break;
- case TRANS_DIAL_SUCC:
- creat_down_Dial_succ();
- break;
- case TRANS_DIAL_FAIL:
- creat_down_Dial_fail();
- break;
- case TRANS_DIAL_MAX_FAIL:
- creat_down_max_Dial_fail();
- break;
-
- case TRANS_OTA_TRANSMITTING:
- creat_down_OTA();
- break;
- case TRANS_OTA_SUCC:
- creat_down_OTA_SUCC();
- break;
- case TRANS_OTA_FAIL:
- creat_down_OTA_FAIL();
- break;
- case TRANS_MP3_TRANSMITTING:
- creat_down_MP3();
- break;
- case TRANS_MP3_SUCC:
- creat_down_MP3_succ();
- break;
- case TRANS_MP3_FAIL:
- creat_down_MP3_fail();
- break;
- case OTA_UPDATA_FAIL:
- Creat_OTA_Updata_FAIL();
- break;
- case START_CAT1_OTA:
- Creat_CAT1_OTA_Updata();
- break;
- case TRANS_MP3_MAX_FAIL:
- creat_down_max_MP3_fail();
- break;
- case TRANS_BIN_TRANSMITTING:
- creat_down_BIN();
- break;
- case TRANS_BIN_SUCC:
- creat_down_BIN_succ();
- break;
- case TRANS_BIN_FAIL:
- creat_down_BIN_fail();
- break;
- case TRANS_EPO_TRANSMITTING:
- creat_down_EPO();
- break;
- case TRANS_EPO_SUCC:
- creat_down_EPO_succ();
- break;
- case TRANS_EPO_FAIL:
- creat_down_EPO_fail();
- break;
-
+ case TRANS_DIAL_TRANSMITTING:
+ creat_down_Dial();
+ break;
+ case TRANS_DIAL_SUCC:
+ creat_down_Dial_succ();
+ break;
+ case TRANS_DIAL_FAIL:
+ creat_down_Dial_fail();
+ break;
+ case TRANS_DIAL_MAX_FAIL:
+ creat_down_max_Dial_fail();
+ break;
+
+ case TRANS_OTA_TRANSMITTING:
+ creat_down_OTA();
+ break;
+ case TRANS_OTA_SUCC:
+ creat_down_OTA_SUCC();
+ break;
+ case TRANS_OTA_FAIL:
+ creat_down_OTA_FAIL();
+ break;
+ case TRANS_MP3_TRANSMITTING:
+ creat_down_MP3();
+ break;
+ case TRANS_MP3_SUCC:
+ creat_down_MP3_succ();
+ break;
+ case TRANS_MP3_FAIL:
+ creat_down_MP3_fail();
+ break;
+ case OTA_UPDATA_FAIL:
+ Creat_OTA_Updata_FAIL();
+ break;
+ case START_CAT1_OTA:
+ Creat_CAT1_OTA_Updata();
+ break;
+ case TRANS_MP3_MAX_FAIL:
+ creat_down_max_MP3_fail();
+ break;
+ case TRANS_BIN_TRANSMITTING:
+ creat_down_BIN();
+ break;
+ case TRANS_BIN_SUCC:
+ creat_down_BIN_succ();
+ break;
+ case TRANS_BIN_FAIL:
+ creat_down_BIN_fail();
+ break;
+ case TRANS_EPO_TRANSMITTING:
+ creat_down_EPO();
+ break;
+ case TRANS_EPO_SUCC:
+ creat_down_EPO_succ();
+ break;
+ case TRANS_EPO_FAIL:
+ creat_down_EPO_fail();
+ break;
+
default:
break;
}
- if (Transmitting_falg == TRANS_DIAL_TRANSMITTING || Transmitting_falg == TRANS_OTA_TRANSMITTING || Transmitting_falg == TRANS_MP3_TRANSMITTING)
+ if(Transmitting_falg==TRANS_DIAL_TRANSMITTING || Transmitting_falg==TRANS_OTA_TRANSMITTING || Transmitting_falg==TRANS_MP3_TRANSMITTING)
{
// if(uapi_hfp_connect_state())
// {
// uapi_hfp_disconnect();
// }
}
- else if (Transmitting_falg != OTA_UPDATA_FAIL)
+ else if(Transmitting_falg!=OTA_UPDATA_FAIL)
{
// if(uapi_dev_runtime_get_bt_powerstat() && cm_get_HFP_switch())
// {
// uapi_hfp_connect();
// }
+
}
-#endif
+ #endif
UIView::OnClickListener *button1Click = static_cast<UIView::OnClickListener *>(transmittingViewEventListener::GetInstance());
UIViewGroup_transmitting->SetOnClickListener(button1Click);
const power_display_svr_api_t *display_api = power_display_svr_get_api();
if (display_api->get_screen_state() != SCREEN_ON)
- {
- display_api->turn_on_screen();
- }
+ {
+ display_api->turn_on_screen();
+ }
display_api->set_auto_timeout_function(false);
#ifdef SUPPORT_CYWEE_SERVICE
cywee_hand_wake_switch(0); // 关闭抬腕亮屏,和息屏
#endif
+
NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(Freetransmitting);
return UIViewGroup_transmitting;
}
return &lowppowrViewEventListene_t;
}
- bool transmittingViewEventListener::OnClick(UIView &view, const ClickEvent &event)
+
+ bool transmittingViewEventListener::OnClick(UIView& view, const ClickEvent& event)
{
-#ifdef SUPPORT_BLE_SERVICE
+ #ifdef SUPPORT_BLE_SERVICE
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick");
- if (Transmitting_falg != TRANS_DIAL_TRANSMITTING && Transmitting_falg != TRANS_OTA_TRANSMITTING && Transmitting_falg != TRANS_MP3_TRANSMITTING && Transmitting_falg != START_CAT1_OTA && Transmitting_falg != TRANS_BIN_TRANSMITTING && Transmitting_falg != TRANS_EPO_TRANSMITTING)
+ if(Transmitting_falg!=TRANS_DIAL_TRANSMITTING
+ && Transmitting_falg!=TRANS_OTA_TRANSMITTING
+ && Transmitting_falg!=TRANS_MP3_TRANSMITTING
+ && Transmitting_falg!=START_CAT1_OTA
+ && Transmitting_falg!=TRANS_BIN_TRANSMITTING
+ && Transmitting_falg!=TRANS_EPO_TRANSMITTING)
{
NotificationManager::GetInstance()->StopNotify();
}
-#endif
+ #endif
return true;
UNUSED(event);
}
#include "custom_utils.h"
#include "custom_runtime.h"
+#include "gnss_http_server.h"
#include "bleANCS.h"
#ifdef CUSTOM_ZHIHUI
#include "Bluetooyhpabpserver.h"
static void ym_free(void * p)
{
free(p);
- p = NULL;
}
void malloc_test(void)
{
}
}
-void SetDrinkSetParamCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//设置喝水提醒s设置
+// 设置喝水提醒参数指令处理函数
+void SetDrinkSetParamCmd(uint16_t cmd, uint8_t *data, uint16_t len, uint8_t *totalData, uint8_t crcvalue)
{
+ // ===== 1. 初始化变量,打印入参(关键:确认接收的基础信息)=====
uint32_t tmp = 1;
uint16_t tmp_data = 1;
uint8_t sendBuf[19];
- memset(sendBuf,0,19);
+ memset(sendBuf, 0, 19);
+
+ // 打印函数入参,确认指令/数据/长度/CRC是否正确
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"进入喝水提醒设置函数:cmd=0x%04X, 数据长度len=%d, 校验CRC值=0x%02X", cmd, len, crcvalue);
+
+ if (data != NULL && len > 0) {
+ // 打印接收的原始数据(前9字节,覆盖所有解析字段)
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"接收的原始参数data(前9字节):");
+ for (uint16_t i = 0; i < (len > 9 ? 9 : len); i++) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"data[%d] = 0x%02X", i, data[i]);
+ }
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"接收的data为空或长度为0!");
+ }
+
+ // ===== 2. 构建响应帧基础数据 =====
sendBuf[0] = 0x72;
sendBuf[1] = 0x02;
sendBuf[2] = 0x14;
- memcpy(sendBuf+3,&tmp,4);
- memcpy(sendBuf+7,&tmp,4);
- memcpy(sendBuf+11,&tmp,4);
- memcpy(sendBuf+15,&tmp_data,2);
-
- if(Check_CRC(data,len,crcvalue))
- {
- msg_drink_info_t drink_info={0};
+ memcpy(sendBuf+3, &tmp, 4); // 固定填充4字节tmp(值为1)
+ memcpy(sendBuf+7, &tmp, 4); // 固定填充4字节tmp
+ memcpy(sendBuf+11, &tmp, 4); // 固定填充4字节tmp
+ memcpy(sendBuf+15, &tmp_data, 2); // 固定填充2字节tmp_data(值为1)
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"响应帧基础数据初始化完成,前17字节:0x%02X 0x%02X 0x%02X ...", sendBuf[0], sendBuf[1], sendBuf[2]);
+
+ // ===== 3. CRC校验(核心:确认数据完整性)=====
+ uint8_t crc_result = Check_CRC(data, len, crcvalue);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"CRC校验结果:%s(%d)", crc_result ? "成功" : "失败", crc_result);
+
+ if (crc_result) {
+ // ===== 4. CRC校验通过,解析参数(关键:确认参数解析是否正确)=====
+ msg_drink_info_t drink_info = {0};
drink_info.drink_on = data[0];
- if(data[1])
- {
- drink_info.drink_on=2;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"初始解析drink_on = %d", drink_info.drink_on);
+
+ // 扩展开关处理:data[1]非0时,drink_on强制设为2
+ if (data[1]) {
+ drink_info.drink_on = 2;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"data[1]=%d非0,drink_on强制设为2", data[1]);
}
- // drink_info.drink_on = data[1];
- drink_info.goal = data[2]+data[3]*256;
- drink_info.time_start = data[4]<<16|data[5];
- if(data[1])
- {
- drink_info.time_end = data[6]<<16|data[7];
+
+ // 解析每日饮水目标(16位:data[2]低8位 + data[3]高8位)
+ drink_info.goal = data[2] + data[3] * 256;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"解析每日饮水目标goal = %d ml", drink_info.goal);
+
+ // 【修复潜在问题】解析开始时间(原代码错误,改为HHMM格式:data[4]=小时,data[5]=分钟)
+ // 原代码:drink_info.time_start = data[4]<<16|data[5]; (错误,8位左移16位丢失)
+ drink_info.time_start = data[4]<<16|data[5]; //前16位为小时,后16位为分钟
+ // 解析结束时间和频率(仅当data[1]非0时)
+ if (data[1]) {
+ drink_info.time_end = data[6]<<16|data[7]; // 比如data[6]=12, data[7]=30 → 1230(12点30分)
drink_info.freq = data[8];
-
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"data[1]=0,不解析结束时间和频率");
}
+
+ // ===== 5. 调用蓝牙接口设置提醒,打印设置结果 =====
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"调用蓝牙接口设置喝水提醒:drink_on=%d, goal=%dml, start=%04d, end=%04d, freq=%d",
+ drink_info.drink_on, drink_info.goal, drink_info.time_start, drink_info.time_end, drink_info.freq);
ble_set_drink_remind(drink_info);
-
- sendBuf[17] = 1;
- sendBuf[18] = Calculate_CRC(sendBuf,18);
- sendBleData(sendBuf,19);
- }
- else
- {
- sendBuf[17] = 0;
- sendBuf[18] = Calculate_CRC(sendBuf,18);
- sendBleData(sendBuf,19);
+
+ // ===== 6. 构建成功响应并发送 =====
+ sendBuf[17] = 1; // 1=设置成功
+ sendBuf[18] = Calculate_CRC(sendBuf, 18);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"设置成功,构建响应帧:状态位=1,响应CRC=0x%02X", sendBuf[18]);
+ sendBleData(sendBuf, 19);
+ } else {
+ // ===== 7. CRC校验失败,构建失败响应并发送 =====
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"CRC校验失败,返回失败响应");
+ sendBuf[17] = 0; // 0=设置失败
+ sendBuf[18] = Calculate_CRC(sendBuf, 18);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"构建失败响应帧:状态位=0,响应CRC=0x%02X", sendBuf[18]);
+ sendBleData(sendBuf, 19);
}
-
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"喝水提醒设置函数执行完毕");
}
-void SetsedentarinessSetParamCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//设置久坐设置
+// 设置久坐设置
+// 设置久坐提醒参数指令处理函数
+void SetsedentarinessSetParamCmd(uint16_t cmd, uint8_t *data, uint16_t len, uint8_t *totalData, uint8_t crcvalue)
{
+ // ===== 1. 初始化变量,打印入参(确认接收的基础信息)=====
uint32_t tmp = 1;
uint16_t tmp_data = 1;
uint8_t sendBuf[19];
- memset(sendBuf,0,19);
+ memset(sendBuf, 0, 19);
+
+ // 打印函数入参,确认指令、数据长度、CRC校验值是否正确
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"进入久坐提醒设置函数:cmd=0x%04X, 数据长度len=%d, 校验CRC值=0x%02X", cmd, len, crcvalue);
+
+ // 打印接收的原始数据(前6字节,覆盖所有解析字段)
+ if (data != NULL && len > 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"接收的原始参数data(前6字节):");
+ for (uint16_t i = 0; i < (len > 6 ? 6 : len); i++) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"data[%d] = 0x%02X", i, data[i]);
+ }
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"接收的data为空或长度为0!");
+ }
+
+ // ===== 2. 构建响应帧基础数据 =====
sendBuf[0] = 0x72;
sendBuf[1] = 0x02;
sendBuf[2] = 0x1D;
- memcpy(sendBuf+3,&tmp,4);
- memcpy(sendBuf+7,&tmp,4);
- memcpy(sendBuf+11,&tmp,4);
- memcpy(sendBuf+15,&tmp_data,2);
+ memcpy(sendBuf+3, &tmp, 4); // 固定填充4字节tmp(值为1)
+ memcpy(sendBuf+7, &tmp, 4); // 固定填充4字节tmp
+ memcpy(sendBuf+11, &tmp, 4); // 固定填充4字节tmp
+ memcpy(sendBuf+15, &tmp_data, 2); // 固定填充2字节tmp_data(值为1)
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"响应帧基础数据初始化完成,帧头:0x%02X 0x%02X 0x%02X", sendBuf[0], sendBuf[1], sendBuf[2]);
+
+ // ===== 3. CRC校验(核心:确认数据完整性)=====
+ uint8_t crc_result = Check_CRC(data, len, crcvalue);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"CRC校验结果:%s(%d)", crc_result ? "成功" : "失败", crc_result);
+
+ if (crc_result) {
+ // ===== 4. CRC校验通过,解析参数(关键:确认参数解析是否正确)=====
+ msg_sedent_set_param_info_t sedent_data = {0};
+
+ // 校验数据长度,避免数组越界
+ if (len < 1) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"数据长度不足,无法解析久坐开关(至少需要1字节)");
+ sendBuf[17] = 0;
+ sendBuf[18] = Calculate_CRC(sendBuf, 18);
+ sendBleData(sendBuf, 19);
+ return;
+ }
- if(Check_CRC(data,len,crcvalue))
- {
- msg_sedent_set_param_info_t sedent_data={0};
- sedent_data.sedent_on=data[0];
+ // 解析久坐提醒开关
+ sedent_data.sedent_on = data[0];
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"解析久坐提醒开关sedent_on = %d(0=关闭,1=开启)", sedent_data.sedent_on);
- memcpy_s( &sedent_data.sedent_time,4,&data[1],4);
-
+ // 解析久坐时长(4字节):先判断长度,再拷贝
+ if (len >= 5) { // data[1]-data[4] 需要至少5字节数据(索引0-4)
+ memcpy_s(&sedent_data.sedent_time, sizeof(sedent_data.sedent_time), &data[1], 4);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"解析久坐时长sedent_time = %u 小时", sedent_data.sedent_time);
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"数据长度不足(仅%d字节),无法解析久坐时长(需要5字节)", len);
+ sendBuf[17] = 0;
+ sendBuf[18] = Calculate_CRC(sendBuf, 18);
+ sendBleData(sendBuf, 19);
+ return;
+ }
- sedent_data.frequenc = data[5];
+ // 解析提醒频率:判断长度,避免访问data[5]越界
+ if (len >= 6) {
+ sedent_data.frequenc = data[5];
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"解析提醒频率frequenc = %d h/次", sedent_data.frequenc);
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"数据长度不足(仅%d字节),无法解析提醒频率(需要6字节)", len);
+ sendBuf[17] = 0;
+ sendBuf[18] = Calculate_CRC(sendBuf, 18);
+ sendBleData(sendBuf, 19);
+ return;
+ }
+ // ===== 5. 调用底层接口设置久坐提醒,打印参数 =====
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"调用底层接口设置久坐提醒:开关=%d, 久坐时长=%u分钟, 提醒频率=%d小时/次",
+ sedent_data.sedent_on, sedent_data.sedent_time, sedent_data.frequenc);
set_sedent_param(&sedent_data);
- sendBuf[17] = 1;
- sendBuf[18] = Calculate_CRC(sendBuf,18);
- sendBleData(sendBuf,19);
- }
- else
- {
- sendBuf[17] = 0;
- sendBuf[18] = Calculate_CRC(sendBuf,18);
- sendBleData(sendBuf,19);
+ // ===== 6. 构建成功响应并发送 =====
+ sendBuf[17] = 1; // 1=设置成功
+ sendBuf[18] = Calculate_CRC(sendBuf, 18);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"久坐提醒设置成功,响应状态位=1,响应CRC=0x%02X", sendBuf[18]);
+ sendBleData(sendBuf, 19);
+ } else {
+ // ===== 7. CRC校验失败,构建失败响应并发送 =====
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"CRC校验失败,返回失败响应");
+ sendBuf[17] = 0; // 0=设置失败
+ sendBuf[18] = Calculate_CRC(sendBuf, 18);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"构建失败响应帧:状态位=0,响应CRC=0x%02X", sendBuf[18]);
+ sendBleData(sendBuf, 19);
}
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"久坐提醒设置函数执行完毕");
}
+
void SetmsgfiltrationCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//设置久坐设置
{
uint32_t tmp = 1;
msg_userinfo.calorie=p_userinfo->calorie;
msg_userinfo.distance=p_userinfo->distance;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"getUserInfo:!!age %d, fat %d, sex %d, height %d, stand %d, step %d , timeformat %d , weight %d !!!!!!\r\n",
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"getUserInfo:!!age %d, fat %d, sex %d, height %d, stand %d, step %d , timeformat %d , weight %d !!!!!!\r\n",
p_userinfo->age,
p_userinfo->fat_time,
p_userinfo->gender,
//关于本机内容
static void aboutDeviceCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)
{
+ // 1. 入口日志:记录请求基本信息
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 进入接口,cmd:%d, data_len:%d, crcvalue:0x%02X", cmd, len, crcvalue);
uint8_t _major,_mid,_minor;
- uapi_get_fw_version(&_major,&_mid,&_minor);
+ // 2. 获取固件版本日志
+ int fw_ret = uapi_get_fw_version(&_major,&_mid,&_minor);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 获取固件版本:ret:%d, major:%d, mid:%d, minor:%d", fw_ret, _major, _mid, _minor);
+
cJSON *dataJSON = cJSON_CreateObject();
+ if (dataJSON == NULL) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[AboutDevice] JSON 对象创建失败!");
+ return;
+ }
cJSON_AddNumberToObject(dataJSON,"code",1);
cJSON_AddNumberToObject(dataJSON,"major",_major);
cJSON_AddNumberToObject(dataJSON,"mid",_mid);
cJSON_AddNumberToObject(dataJSON,"minor",_minor);
- unsigned char addr[6];
- bluetooth_get_local_addr(&addr[0],6);
- char mac_data[24];
+
+ // 3. 获取MAC地址日志
+ unsigned char addr[6] = {0};
+ int bt_ret = bluetooth_get_local_addr(&addr[0],6);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 获取蓝牙MAC地址:ret:%d, addr:[%02X:%02X:%02X:%02X:%02X:%02X]",
+ bt_ret, addr[5],addr[4],addr[3],addr[2],addr[1],addr[0]);
+
+ char mac_data[24] = {0};
memset(mac_data,0,24);
sprintf(mac_data,"%02X:%02X:%02X:%02X:%02X:%02X",addr[5],addr[4],addr[3],addr[2],addr[1],addr[0]);
cJSON_AddStringToObject(dataJSON, "macAddress",mac_data);
+ // 4. JSON 序列化日志
char *json_format = cJSON_PrintUnformatted(dataJSON);
cJSON_Delete(dataJSON);
+ if (json_format == NULL) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[AboutDevice] JSON 序列化失败!");
+ return;
+ }
uint32_t data_len = strlen(json_format);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[AboutDevice] JSON 序列化完成:len:%d, content:%s", data_len, json_format);
+
+ // 5. 构建发送数据缓冲区日志
uint8_t value[data_len+19];
memset(value,0,data_len+19);
uint32_t tmp = 1;
memcpy(value+7,&data_len,4);
memcpy(value+11,&tmp,4);
memcpy(value+15,&tmp_data,2);
- if(Check_CRC(data,len,crcvalue))
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 构建发送缓冲区:总长度:%d, 头部[0-16]: 0x%02X 0x%02X 0x%02X ...",
+ data_len+19, value[0], value[1], value[2]);
+
+ // 6. CRC 校验日志
+ int crc_check = Check_CRC(data,len,crcvalue);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AboutDevice] CRC 校验结果:%d (1=成功,0=失败)", crc_check);
+
+ if(crc_check)
{
- memcpy(value+17,(uint8_t *)json_format,data_len);//17+69 = 86
-
- value[data_len+17] = Calculate_CRC(value,data_len+17);//
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"data_len:%d %x %d!!!!!\r\n",data_len,value[data_len+17],data_len+17);
+ memcpy(value+17,(uint8_t *)json_format,data_len);
+ value[data_len+17] = Calculate_CRC(value,data_len+17);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 准备发送有效数据:长度:%d, CRC值:0x%02X",
+ data_len+18, value[data_len+17]);
sendBleData(value,data_len+18);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 有效数据已调用 sendBleData 发送");
}else
{
value[17] = 0;
uint8_t lrc = Calculate_CRC(value,18);
value[18] = lrc;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 准备发送错误数据:长度:19, CRC值:0x%02X", lrc);
sendBleData(value,19);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 错误数据已调用 sendBleData 发送");
}
+ // 7. 释放资源日志
cJSON_free(json_format);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AboutDevice] 接口执行完成,资源已释放");
}
//查找手表 01 04
//设置查找手表的状态,1 校验成 2手表已找到,停止查找手表
memcpy(value+11,&tmp,4);
memcpy(value+15,&tmp_data,2);
- //0空闲状态 9 usb状态 10 运动训练状态
- uint8_t watchStatus = 0;
-
- if(uapi_dev_runtime_get_train_status())
- watchStatus=10;
-
+ /* 0=空闲 9=星历未解压或过期(非运动时上报,app 可发起星历更新) 10=运动训练 */
+ uint8_t watchStatus = 0;
+ if (uapi_dev_runtime_get_train_status() != 0) {
+ watchStatus = 10;
+ }
+ // } else {
+ // /* 获取状态前先刷新星历检查结果,以便 runtime 中的星历过期状态是最新的 */
+ // (void)gnss_check_agnss_status();
+ // if (uapi_dev_runtime_get_epo_file_extracted_status() == 0 ||
+ // uapi_dev_runtime_get_ephemeris_expired_status() != 0) {
+ // /* 星历未解压或星历过期,非运动状态下上报 9,app 获取后可发起星历更新 */
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"GetWatchStatusCmd 星历未解压或星历过期\r\n");
+ // watchStatus = 9;
+ // }
+ // }
value[17] = watchStatus;
value[18] = Calculate_CRC(value,18);
sendBleData(value,19);
}
+
+/** 获取星历有效剩余秒数(协议 01.18):格式与 01.1A 一致,包头 + 数据包(4B 剩余时间 单位s) + CRC */
+static void GetEphemerisValidSecCmd(uint16_t cmd, uint8_t *data, uint16_t len, uint8_t *totaldata, uint8_t crcvalue)
+{
+ uint8_t value[22];
+ memset(value, 0, sizeof(value));
+ value[0] = 0x72; /* 传输方向:手表发 */
+ value[1] = 0x01; /* 指令 类型 */
+ value[2] = 0x18; /* 指令 ID (01.18) */
+ uint32_t tmp = 1;
+ uint32_t datalen = 4; /* 数据总长度:4 字节(剩余时间 单位s) */
+ uint16_t tmp_data = 4; /* 分包数据长度:4 字节 */
+ memcpy(value + 3, &tmp, 4); /* 数据包总数 */
+ memcpy(value + 7, &datalen, 4); /* 数据总长度 */
+ memcpy(value + 11, &tmp, 4); /* 分包索引 */
+ memcpy(value + 15, &tmp_data, 2); /* 分包数据长度 */
+
+ int remaining_minutes = gnss_check_agnss_status();
+ uint32_t valid_sec = (remaining_minutes > 0) ? (uint32_t)(remaining_minutes * 60) : 0;
+ memcpy(value + 17, &valid_sec, 4); /* 数据包:剩余时间 单位s,小端 */
+
+ value[21] = Calculate_CRC(value, 21);
+ sendBleData(value, 22);
+}
+
//获取手表屏幕参数
static void GetScreenParamCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)
{
if(dial_num *2 !=get_all_dial_id(dail_uid_buf+1,dial_num*2))
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetAllDialUidCmd dial_num %d err\r\n",dial_num);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAllDialUidCmd dial_num %d err\r\n",dial_num);
}
else
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetAllDialUidCmd yes\r\n");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAllDialUidCmd yes\r\n");
}
ble_data_type type_={0x01,0x2a,temp_data_size,1,1};
case SEND_CURR_STATUS_CMD: //获取手表当前状态
GetWatchStatusCmd(cmd,data,datalen,totaldata,crcvalue);
break;
+ case GET_EPHEMERIS_VALID_SEC_CMD: //获取星历有效剩余秒数
+ GetEphemerisValidSecCmd(cmd,data,datalen,totaldata,crcvalue);
+ break;
case GET_WATCH_LCD_PARAM_CMD: //获取手表屏幕参数
GetScreenParamCmd(cmd,data,datalen,totaldata,crcvalue);
break;
case SYN_APP_GET_GPS_DATA_CMD://app获取GPS数据
GetGPSCmd(cmd,data,datalen,totaldata,crcvalue);
break;
+ case SYN_TRAIN_SPEED_CMD://同步训练配速数据
+ SYN_train_speed_datatCmd(cmd,data,datalen,totaldata,crcvalue);
+ break;
+ case SYN_BASIC_REAL_HEATR_CMD://同步训练心率数据
+ SYN_train_heart_datatCmd(cmd,data,datalen,totaldata,crcvalue);
+ break;
- case GET_SPECIF_TYPE_FILE_CMD://获取指定类型文件目录
+ case GET_SPECIF_TYPE_FILE_CMD://获取指定类型文件目录
case AI_IS_READ_DATA_CMD:
case SYN_HEART_HISTORY_DATA_CMD://同步心率历史数据
case SYN_SPO2_HISTORY_DATA_CMD://同步血氧历史数据
void ble_request_epo_file(void)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble_request_epo_file");
+ removeFilesInFolder(GNSS_DATA_DIR);
uint8_t value[19] = {0};
uint32_t tmp = 1;
uint16_t tmp_data = 1;
if (extract_ret == ERRCODE_SUCC)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[handle_epo_file_decompress] EPO lzma file extracted successfully\n");
+ // 设置EPO文件解压状态为成功
+ uapi_dev_runtime_set_epo_file_extracted_status(1);
// 解压成功后删除lzma文件
remove(lzma_file_path);
return ERRCODE_SUCC;
else
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[handle_epo_file_decompress] Failed to extract EPO lzma file, ret=0x%X\n", extract_ret);
+ // 设置EPO文件解压状态为失败
+ uapi_dev_runtime_set_epo_file_extracted_status(0);
return ERRCODE_FAIL;
}
}
cancel_recv_file(1);
}
}
-uint8_t OTA_FILE_value=0;
+uint32_t OTA_FILE_value=0;
errcode_t decode_ota_data(ble_read_data *buffer_handle,uint8_t *data,uint16_t datalen,uint8_t crcvalue)
{
buffer_handle->file_recv_stat.lrcvalue = calculate_lrc(data_,datalen,buffer_handle->file_recv_stat.lrcvalue);
buffer_handle->file_recv_stat.received_size += datalen;
OTA_FILE_value= ((float) buffer_handle->file_recv_stat.received_size / (float)buffer_handle->file_recv_stat.file_size) *100;
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"handle_recv_file received_size %d %0.3lf\n",buffer_handle->file_recv_stat.received_size
- ,(float) buffer_handle->file_recv_stat.received_size / (float)buffer_handle->file_recv_stat.file_size);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"handle_recv_file received_size %d %0.3lf\n",buffer_handle->file_recv_stat.received_size
+ ,(float) buffer_handle->file_recv_stat.received_size / (float)buffer_handle->file_recv_stat.file_size);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"OTA_FILE_value %d \n",OTA_FILE_value);
}else{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"handle_recv_file write file failed! ret %d != %d\n",writtensize,datalen);
return ERRCODE_SUCC;
}
-uint8_t get_OTA_recv_value()
+uint32_t get_OTA_recv_value()
{
return OTA_FILE_value;
}