#ifdef JS_ENABLE
#include "product_adapter.h"
#endif
+#include "bleEvent.h"
namespace OHOS
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Power is Charging!");
DialModelCharge::GetInstance()->UpdateChargeStuaut(1);
}
+ /*开机读取天气历史数据*/
+ read_jsonHistory_weather();
}
void NativeLauncher::InitAllNativeSlices(void)
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-15 12:11:30\r
+ * @LastEditTime: 2024-08-17 16:20:42\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherReportView.h\r
*/\r
#ifndef WEATHER_REPORT_VIEW_H\r
UILabelExt *WindSpeed_Number{nullptr}; //\r
UILabelExt *Humidity{nullptr}; // 湿度\r
UILabelExt *Humidity_Number{nullptr}; //\r
+\r
+ UIImageView *PullUpImage{nullptr}; // 上拉图片\r
+ \r
UIImageAnimatorView *UVImageAnimatorView{nullptr}; // 紫外线动画\r
UIImageAnimatorView *WindSpeedImageAnimatorView{nullptr}; // 风速动画\r
UIImageAnimatorView *HumidityImageAnimatorView{nullptr}; // 湿度动画\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-30 09:14:38
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-23 14:51:03
+ * @LastEditTime: 2024-08-17 16:03:36
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherView.h
*/
#ifndef WEATHER_VIEW_H
namespace OHOS
{
+#define IS_USE_IMAGEANIMATOR 0
static constexpr const char *WeatherBackground = "/user/res/weather/WEATHER_BACKGROUND.bin"; // 天气背景
class WeatherView : public AppGroupView
{
UILabelExt *showWeatherDescriptionLabel{nullptr}; // 显示天气描述
UILabelExt *showWeatherAreaLabel{nullptr}; // 显示天气地区
UILabelExt *showMaxandMinTemperatureLabel{nullptr}; // 显示最高与最低气温
- UIImageAnimatorView *PullUpAnimatorView{nullptr}; // 上拉动画
+#if IS_USE_IMAGEANIMATOR
+ UIImageAnimatorView *PullUpAnimatorView{nullptr}; // 上拉动画
const char **PullUpPathsArray{nullptr};
+#else
+
+ UIImageView *PullUpImage{nullptr}; // 上拉图片
+#endif
bool viewInitStatus{false};
};
} // namespace OHOS
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-01-29 15:37:44\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-19 10:46:16\r
+ * @LastEditTime: 2024-08-17 16:27:56\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/FutureWeatherView.cpp\r
*/\r
#include "weather/include/FutureWeatherView.h"\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::FutureWeatherList is nullptr");\r
return false;\r
}\r
- FutureWeatherList->SetPosition(68, 130, 330, 400);\r
+ FutureWeatherList->SetPosition(68, 130, 330, 300);\r
FutureWeatherList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
FutureWeatherList->SetThrowDrag(true);\r
- // FutureWeatherList->SetAutoSize(true);\r
FutureWeatherList->SetReboundSize(30);\r
- FutureWeatherList->SetMaxScrollDistance(500);\r
- FutureWeatherList->SetScrollBlankSize(85);\r
+ FutureWeatherList->SetMaxScrollDistance(1000);\r
+ FutureWeatherList->SetScrollBlankSize(30);\r
+ FutureWeatherList->SetDragACCLevel(5);\r
+ FutureWeatherList->SetSwipeACCLevel(800);\r
WeatherModel::GetInstance().InitFutureWeatherItem();\r
FutureWeatherList->SetAdapter(futureWeatherListAdapter);\r
- FutureWeatherList->RefreshList();\r
FutureWeatherList->SetIntercept(true);\r
Add(FutureWeatherList);\r
viewInitStatus = true;\r
delete Humidity_Number;\r
Humidity_Number = nullptr;\r
\r
+ delete PullUpImage;\r
+ PullUpImage = nullptr;\r
+\r
UVImageAnimatorView->Stop();\r
delete UVImageAnimatorView;\r
UVImageAnimatorView = nullptr;\r
HumidityImageAnimatorView->SetRepeat(true);\r
HumidityImageAnimatorView->Start();\r
}\r
+ /* -------------------------------------------------------------------------- */\r
+ PullUpImage = new UIImageView();\r
+ if (PullUpImage == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherView::new PullUpImage fail!");\r
+ return false;\r
+ }\r
+ PullUpImage->SetPosition(213, 400, 40, 40);\r
+ PullUpImage->SetAutoEnable(false);\r
+ PullUpImage->SetResizeMode(UIImageView::CONTAIN);\r
+ PullUpImage->SetSrc("/user/res/Sleep/up.bin");\r
/* ----------------------------------- Add ---------------------------------- */\r
Add(UVImageAnimatorView);\r
Add(WindSpeedImageAnimatorView);\r
Add(HumidityImageAnimatorView);\r
+ Add(PullUpImage);\r
viewInitStatus = true;\r
\r
return true;\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherReportView::InitPage fail");\r
return false;\r
}\r
- //UpdateWeatherReportViewData();\r
+ // UpdateWeatherReportViewData();\r
SetDraggable(true);\r
SetTouchable(true);\r
return true;\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-12 11:44:04
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-23 14:44:07
+ * @LastEditTime: 2024-08-17 16:08:22
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherView.cpp
*/
#include "weather/include/WeatherView.h"
static constexpr int16_t MAXANDMIN_TEMPERATURE_LABEL_TEXT_FONT = 20;
static constexpr int16_t MAXANDMIN_TEMPERATURE_LABEL_LINE_HEIGHT = 23;
+#if IS_USE_IMAGEANIMATOR
static constexpr int16_t PULLUP_ANIMATOR_VIEW_X = 213;
static constexpr int16_t PULLUP_ANIMATOR_VIEW_Y = 400;
static constexpr int16_t PULLUP_ANIMATOR_VIEW_W = 40;
static constexpr int16_t PULLUP_ANIMATOR_VIEW_TIME = 100;
ImageAnimatorInfo PullUpimageAnimatorInfo[PULLUP_ANIMATOR_VIEW_NUM_FRAMES];
static constexpr const char *PullUpPaths = "/user/res/weather/PullUp/PullUp_";
+#else
+ /*上拉图片*/
+ static constexpr int16_t PULLUP_IMAGE_X = 213;
+ static constexpr int16_t PULLUP_IMAGE_Y = 400;
+ static constexpr int16_t PULLUP_IMAGE_W = 40;
+ static constexpr int16_t PULLUP_IMAGE_H = 40;
+#endif
static WeatherView *g_pWeatherView{nullptr};
WeatherView::WeatherView()
delete showMaxandMinTemperatureLabel;
showMaxandMinTemperatureLabel = nullptr;
}
+#if IS_USE_IMAGEANIMATOR
if (PullUpAnimatorView != nullptr)
{
PullUpAnimatorView->Stop();
delete PullUpAnimatorView;
PullUpAnimatorView = nullptr;
}
-
FreeImagePathsArray(PullUpPathsArray, PULLUP_ANIMATOR_VIEW_NUM_FRAMES);
+#else
+ if (PullUpImage != nullptr)
+ {
+ delete PullUpImage;
+ PullUpImage = nullptr;
+ }
+#endif
}
}
return false;
}
showMaxandMinTemperatureLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));
- /* -------------------------------------------------------------------------- */
+/* -------------------------------------------------------------------------- */
+#if IS_USE_IMAGEANIMATOR
PullUpPathsArray = CreateImagePathsArray(PullUpPaths, "bin", PULLUP_ANIMATOR_VIEW_NUM_FRAMES);
if (PullUpAnimatorView == nullptr)
{
PullUpAnimatorView->SetRepeat(true);
PullUpAnimatorView->Start();
}
+#else
+ PullUpImage = new UIImageView();
+ if (PullUpImage == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherView::new PullUpImage fail!");
+ return false;
+ }
+ PullUpImage->SetPosition(PULLUP_IMAGE_X, PULLUP_IMAGE_Y, PULLUP_IMAGE_W, PULLUP_IMAGE_H);
+ PullUpImage->SetAutoEnable(false);
+ PullUpImage->SetResizeMode(UIImageView::CONTAIN);
+ PullUpImage->SetSrc("/user/res/Sleep/up.bin");
+#endif
/* -------------------------------- 将组件添加到根视图 ------------------------------- */
Add(WeatherBackGroundImg);
Add(showWeatherImage);
Add(showWeatherDescriptionLabel);
Add(showWeatherAreaLabel);
Add(showMaxandMinTemperatureLabel);
+#if IS_USE_IMAGEANIMATOR
Add(PullUpAnimatorView);
+#else
+ Add(PullUpImage);
+#endif
viewInitStatus = true;
return true;
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherView::InitPage fail");
return false;
}
- //UpdateWeatherViewData();
+ // UpdateWeatherViewData();
SetDraggable(true);
SetTouchable(true);
return true;
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherView::UpdateWeatherViewData fail!!");
}
- //DumpWeatherInfo(); // 输出天气信息到日志
+ // DumpWeatherInfo(); // 输出天气信息到日志
return success;
}
\r
uint8_t jsonCheck_weather(uint8_t *buf,uint8_t *check)//json 格式解析 天气数据\r
{\r
- uint8_t flag = 0;\r
- // flag = 2;\r
- // memcpy(check,&flag,1);\r
- // return 0;\r
uint8_t *json;\r
json = buf;\r
// printf("jsonCheck_weather:len: json:%f jsonlen:%d\r\n",0.011,strlen((char *)json));\r
- #if 0\r
- FILE *fp=fopen("user/weather.json","wb+");\r
+ FILE *fp=fopen("/user/userdata/weather.json","wb+");\r
+ if(fp != NULL)\r
+ {\r
printf("jsonCheck_weather len %d",strlen((char *)buf)+1);\r
//fwrite((void*)buf,1,strlen((char *)buf)+1,fp);\r
fputs((char *)buf,fp);\r
fclose(fp);\r
- #endif\r
+ }\r
+ return parse_jsonCheck_weather(buf,check);\r
+}\r
+\r
+uint8_t parse_jsonCheck_weather(uint8_t *buf,uint8_t *check)//json 格式解析 天气数据\r
+{\r
+ uint8_t flag = 0;\r
+ // flag = 2;\r
+ // memcpy(check,&flag,1);\r
+ // return 0;\r
+ uint8_t *json;\r
+ json = buf;\r
+ // printf("jsonCheck_weather:len: json:%f jsonlen:%d\r\n",0.011,strlen((char *)json));\r
cJSON* root = cJSON_Parse((const char *)json);\r
if (root == NULL) {\r
printf("天气 JSON解析错误\n");\r
*check = 1;\r
return 1;\r
}\r
+/*读取天气历史数据*/\r
+uint8_t read_jsonHistory_weather(void)\r
+{\r
+ uint8_t *buf = NULL;\r
+ FILE *fp=fopen("/user/userdata/weather.json","rb");\r
+ if(fp == NULL)\r
+ {\r
+ printf("read_jsonHistory_weather:fopen error\r\n");\r
+ return 0;\r
+ }\r
+ fseek(fp, 0, SEEK_END);\r
+ long size = ftell(fp);\r
+ fseek(fp, 0, SEEK_SET);\r
+ if (size == 0)\r
+ {\r
+ fclose(fp);\r
+ return 0;\r
+ }\r
+ // printf("file size = %d\r\n",size);\r
+ buf = (uint8_t*)malloc(size + 1);\r
+ if(buf == NULL)\r
+ {\r
+ fclose(fp);\r
+ return 0;\r
+ }\r
+ char *str = fgets((char *)buf,size + 1,fp);\r
+ if(str!=NULL)\r
+ {\r
+ // printf("file str = %s\r\n",str);\r
+ }\r
+\r
+ fclose(fp);\r
+ \r
+ uint8_t check = 0;\r
+ parse_jsonCheck_weather(buf,&check);\r
+ free(buf);\r
+ \r
+ return 1;\r
+}\r
\r
uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析 天气数据\r
{\r
bool get_ctkd_flag(void);
+uint8_t parse_jsonCheck_weather(uint8_t *buf,uint8_t *check);//json 格式解析 天气数据
+uint8_t read_jsonHistory_weather(void);
///////////////////////////自定义文件传输协议/////////////////////////////
#define OTA_FILE_MSG_CMD 0x0601
#define OTA_FILE_DATA_CMD 0x0602