表盘:新增星期数字的数据类型
authorCaisking <3449750381@qq.com>
Wed, 16 Oct 2024 02:52:40 +0000 (10:52 +0800)
committerCaisking <3449750381@qq.com>
Wed, 16 Oct 2024 02:52:40 +0000 (10:52 +0800)
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeekNum.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelWeekNum.cpp [new file with mode: 0644]
code/sdk/drivers/peripheral/cywee/src/main_dml.c
tools/dial_converter_tool/dial_lzma/101/sport.lzma
tools/dial_converter_tool/instance/101/sport.xml

index 1f01c5f..313eded 100644 (file)
@@ -177,6 +177,7 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelMinUnits.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelHourMin.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelTimeStr.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelWeekNum.cpp
 
     #exception handling
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/heart_blood/CheckAbnormalView.cpp
index bdc2af6..e1d0a56 100644 (file)
@@ -3,49 +3,50 @@
 #ifndef DIAL_DATA_BASE_H
 #define DIAL_DATA_BASE_H
 
-enum class DialDataType
-{
-    DATA_TYPE_FLOAT_BASE = 0,
-    DATA_TYPE_STEPS,          // 运动步数
-    DATA_TYPE_HEART_RATE,     // 心率
-    DATA_TYPE_CALORIE,        // 运动卡路里
-    DATA_TYPE_TEMPERATURE,    // 温度
-    DATA_TYPE_PM25,           // PM2.5
-    DATA_TYPE_PRESSURE,       // 压力
-    DATA_TYPE_AILTITUDE,      // 海拔
-    DATA_TYPE_POWER,          // 电量
-    DATA_TYPE_CLOCK_ANGLE_H,  // 时针角度
-    DATA_TYPE_CLOCK_ANGLE_M,  // 分针角度
-    DATA_TYPE_CLOCK_ANGLE_S,  // 秒针角度
-    DATA_TYPE_CLOCK_ANGLE_MS, // 毫秒针角度
-    DATA_TYPE_TIME_SECOND,    // 秒
-    DATA_TYPE_TIME_MINUTE,    // 分钟
-    DATA_TYPE_TIME_HOUR,      // 小时
-    DATA_TYPE_TIME_DATE,      // 日期
-    DATA_TYPE_TIME_WEEK,      // 星期
-    DATA_TYPE_TIME_MONTH,     // 月份
-    DATA_TYPE_TIME_YEAR,      // 年份
-    /* ------------------------------- 在下面增加新数据类型 ------------------------------- */
-    DATA_TYPE_CHARGE,        // 充电状态
-    DATA_TYPE_DIALPATH,      // 表盘路径
-    DATA_TYPE_SPO2,          // 血氧
-    DATA_TYPE_DISTANCE,      // 运动距离
-    DATA_TYPE_WEATHER,       // 天气
-    DATA_TYPE_POWER_STANDBY, // 备用电量数据类型
-    DATA_TYPE_HOUR_TENS,     // 小时(十位)
-    DATA_TYPE_HOUR_UNITS,    // 小时(单位)
-    DATA_TYPE_MINUTE_TENS,   // 分钟(十位)
-    DATA_TYPE_MINUTE_UNITS,  // 分钟(单位)
+enum class DialDataType {
+  DATA_TYPE_FLOAT_BASE = 0,
+  DATA_TYPE_STEPS,          // 运动步数
+  DATA_TYPE_HEART_RATE,     // 心率
+  DATA_TYPE_CALORIE,        // 运动卡路里
+  DATA_TYPE_TEMPERATURE,    // 温度
+  DATA_TYPE_PM25,           // PM2.5
+  DATA_TYPE_PRESSURE,       // 压力
+  DATA_TYPE_AILTITUDE,      // 海拔
+  DATA_TYPE_POWER,          // 电量
+  DATA_TYPE_CLOCK_ANGLE_H,  // 时针角度
+  DATA_TYPE_CLOCK_ANGLE_M,  // 分针角度
+  DATA_TYPE_CLOCK_ANGLE_S,  // 秒针角度
+  DATA_TYPE_CLOCK_ANGLE_MS, // 毫秒针角度
+  DATA_TYPE_TIME_SECOND,    // 秒
+  DATA_TYPE_TIME_MINUTE,    // 分钟
+  DATA_TYPE_TIME_HOUR,      // 小时
+  DATA_TYPE_TIME_DATE,      // 日期
+  DATA_TYPE_TIME_WEEK,      // 星期
+  DATA_TYPE_TIME_MONTH,     // 月份
+  DATA_TYPE_TIME_YEAR,      // 年份
+  /* ------------------------------- 在下面增加新数据类型
+     ------------------------------- */
+  DATA_TYPE_CHARGE,        // 充电状态
+  DATA_TYPE_DIALPATH,      // 表盘路径
+  DATA_TYPE_SPO2,          // 血氧
+  DATA_TYPE_DISTANCE,      // 运动距离
+  DATA_TYPE_WEATHER,       // 天气
+  DATA_TYPE_POWER_STANDBY, // 备用电量数据类型
+  DATA_TYPE_HOUR_TENS,     // 小时(十位)
+  DATA_TYPE_HOUR_UNITS,    // 小时(单位)
+  DATA_TYPE_MINUTE_TENS,   // 分钟(十位)
+  DATA_TYPE_MINUTE_UNITS,  // 分钟(单位)
+  DATA_TYPE_WEEK_NUM,      // 星期(数字)
 
-    DATA_TYPE_MULTI_FLOAT_BASE = 0x2fff, // 多个浮点数据类型基值
-    DATA_TYPE_HOUR_MIN,                  // 时分
+  DATA_TYPE_MULTI_FLOAT_BASE = 0x2fff, // 多个浮点数据类型基值
+  DATA_TYPE_HOUR_MIN,                  // 时分
 
-    DATA_TYPE_TEXT_BASE = 0x4fff, // 文本数据类型基值
-    DATA_TYPE_WEEK_STR,           // 星期(string)
-    DATA_TYPE_DATE_STR,           // 日期(string)
-    DATA_TYPE_WEATHER_STR,        // 天气(string)
-    DATA_TYPE_TIMESTR_STR,        // 时间(string)
+  DATA_TYPE_TEXT_BASE = 0x4fff, // 文本数据类型基值
+  DATA_TYPE_WEEK_STR,           // 星期(string)
+  DATA_TYPE_DATE_STR,           // 日期(string)
+  DATA_TYPE_WEATHER_STR,        // 天气(string)
+  DATA_TYPE_TIMESTR_STR,        // 时间(string)
 
-    DATA_TYPE_MAX = 0x7fff, // 数据类型的最大值
+  DATA_TYPE_MAX = 0x7fff, // 数据类型的最大值
 };
 #endif
diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeekNum.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeekNum.h
new file mode 100644 (file)
index 0000000..4ce7996
--- /dev/null
@@ -0,0 +1,31 @@
+/***
+ * @Date: 2024-08-03 17:35:36
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-07 11:50:10
+ * @FilePath:
+ * /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeekNum.h
+ */
+
+#ifndef DIAL_MODEL_WeekNum_H
+#define DIAL_MODEL_WeekNum_H
+
+#include "DialBaseModel.h"
+#include <cstdint>
+#include <string>
+
+namespace OHOS {
+class DialModelWeekNum : public DialBaseModel {
+public:
+  DialModelWeekNum() {}
+  virtual ~DialModelWeekNum() {}
+  static DialModelWeekNum *GetInstance() {
+    static DialModelWeekNum instance;
+    return &instance;
+  }
+  bool GetDialFloatData(DialDataType &type, float &out) override;
+
+private:
+  float dialWeekNum_;
+};
+} // namespace OHOS
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelWeekNum.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelWeekNum.cpp
new file mode 100644 (file)
index 0000000..e61797e
--- /dev/null
@@ -0,0 +1,33 @@
+#include "DialModelWeekNum.h"
+#include "RegisterDialModel.h"
+#include "sys/time.h"
+#include "wearable_log.h"
+#include <ctime>
+#include <string>
+#include <time.h>
+
+REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_WEEK_NUM,
+                   OHOS::DialModelWeekNum::GetInstance());
+
+namespace OHOS {
+
+bool DialModelWeekNum::GetDialFloatData(DialDataType &type, float &out) {
+
+  (void)type;
+
+  struct tm local_time = {0};
+  time_t seconds = time(nullptr);
+
+  if (localtime_r(&seconds, &local_time) == nullptr) {
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "get localtime error!");
+    return false;
+  }
+
+  // 获取当前星期几,tm_wday 的范围是 0 (周日) 到 6 (周六),
+  // 将其转换为 1 到 7
+  dialWeekNum_ = local_time.tm_wday;  // 1-7
+  out = static_cast<float>(dialWeekNum_); // 将其转换为 float 类型
+  return true;
+}
+
+} // namespace OHOS
\ No newline at end of file
index 7146f7b..175cb86 100644 (file)
@@ -297,39 +297,41 @@ uint8_t get_now_stand_count(void)
 {
     return get_stand_count()+stand_falg;
 }
-void stand_history_save(void)
-{
+void stand_history_save(void) {
+    CWM_OS_dbgPrintf("stand_history is saving\n");
     CWM_OS_saveData_STAND_history(&stand_falg,sizeof(int));
 }
 
 void step_history_save(void)
 {
-    int data=get_step_data();
+    int data = get_step_data();
+    CWM_OS_dbgPrintf("step_history is saving\n");
     CWM_OS_saveData_history(&data,&history_step_,sizeof(int),CYWEE_SAVE_DATA_STEP);
 }
 
 
 void calories_history_save(void)
 {
-
     int data= get_calories_data();
-    float history_calories=(float)data;
+    float history_calories = (float)data;
+    CWM_OS_dbgPrintf("history_calories is saving\n");
     CWM_OS_saveData_history(&history_calories,&history_calories_,sizeof(float),CYWEE_SAVE_DATA_CALORIES);
 }
 
 void distances_history_save(void)
 {
     int data= get_distance_data();
-    float history_distances_now=(float)data/1000.0;
+    float history_distances_now = (float)data / 1000.0;
+    CWM_OS_dbgPrintf("history_distances is saving\n");
     CWM_OS_saveData_history(&history_distances_now,&history_distances_,sizeof(float),CYWEE_SAVE_DATA_DISTANCE);
 }
 
 void fat_history_save(void)
 {
-     
     int data= get_fat_time_data();
     uint16_t temp_data=0;
-    temp_data=data/60;
+    temp_data = data / 60;
+    CWM_OS_dbgPrintf("history_fat is saving\n");
     CWM_OS_saveData_history(&temp_data,&history_fat_,sizeof(uint16_t),CYWEE_SAVE_DATA_FAT);
 }
 
index a8647cc..656fea0 100644 (file)
Binary files a/tools/dial_converter_tool/dial_lzma/101/sport.lzma and b/tools/dial_converter_tool/dial_lzma/101/sport.lzma differ
index 4c18bfb..1353dc9 100644 (file)
@@ -3,7 +3,9 @@
     <static_img id="back_ground" position="0 0" img_name="./instance/101/MAIN_FACE_IMAGE.png"></static_img>\r
 \r
     <!-- 显示一周七天的选项图像,周期性更新 -->\r
-    <option_img position="207 132" img_names="./instance/101/week/SUNDAY_IMAGE_PATH.png,./instance/101/week/MONDAY_IMAGE_PATH.png,./instance/101/week/TUESDAY_IMAGE_PATH.png,./instance/101/week/WEDNESDAY_IMAGE_PATH.png,./instance/101/week/THURSDAY_IMAGE_PATH.png,./instance/101/week/FIRDAY_IMAGE_PATH.png,./instance/101/week/SATURDAY_IMAGE_PATH.png" bind_data="17" period="10"></option_img>\r
+    <option_img position="202 132" img_names="./instance/101/week/SUNDAY_IMAGE_PATH.png,./instance/101/week/MONDAY_IMAGE_PATH.png,./instance/101/week/TUESDAY_IMAGE_PATH.png,./instance/101/week/WEDNESDAY_IMAGE_PATH.png,./instance/101/week/THURSDAY_IMAGE_PATH.png,./instance/101/week/FIRDAY_IMAGE_PATH.png,./instance/101/week/SATURDAY_IMAGE_PATH.png" bind_data="17" period="10"></option_img>\r
+    <!-- 星期label -->\r
+    <label id="week_label" color="0xFFFFFFFF" font="HarmonyOS_Sans_SC_Regular.ttf" break_mode="ellipsis" rect="210 126 100 35" text="%.0f" font_size="25" align="center" bind_data="30" period="10"></label>\r
 \r
     <!-- 步数显示标签,动态更新步数 -->\r
     <label id="step_label" color="0xFFFFFFFF" font="HarmonyOS_Sans_SC_Regular.ttf" break_mode="ellipsis" rect="80 230 100 35" text="%.0f" font_size="25" align="center" bind_data="1" period="10"></label>\r