From 4b8c0d3039f0b977be7081c26ea8ffc542d1ceda Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Mon, 17 Jun 2024 16:20:11 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0Rtc=E6=89=93=E5=8D=B0AT?= =?utf8?q?=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../brandy/brandy_standard/service_init.c | 5 + .../wearable/fd230app/CMakeLists.txt | 2 + .../nativeui/rtcservice/include/rtc_at_cmd.h | 32 +++++ .../nativeui/rtcservice/src/rtc_at_cmd.cpp | 110 ++++++++++++++++++ .../include/service/graphic_service_wrapper.h | 9 ++ .../service/src/graphic_service_wrapper.cpp | 17 +++ 6 files changed, 175 insertions(+) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/rtcservice/include/rtc_at_cmd.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/rtc_at_cmd.cpp diff --git a/code/sdk/application/brandy/brandy_standard/service_init.c b/code/sdk/application/brandy/brandy_standard/service_init.c index 953c74f7d..d6ce281ce 100755 --- a/code/sdk/application/brandy/brandy_standard/service_init.c +++ b/code/sdk/application/brandy/brandy_standard/service_init.c @@ -165,6 +165,11 @@ static void register_at_service(void) at_cmd_add_moudle(mmc5603_table, mmc5603_cmd_count); #endif +#ifdef SUPPORT_AT_RTCTEST + uint32_t rtc_cmd_count; + at_cmd_table_t *rtc_table = get_rtc_cmd_table(&rtc_cmd_count); + at_cmd_add_moudle(rtc_table, rtc_cmd_count); +#endif } #ifdef CONFIG_OTA_UPDATE_SUPPORT diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 82e41e5fe..89b3f49ed 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -456,6 +456,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarmclockmanage/src/AlarmClockManage.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rtcservice/src/RtcService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rtcservice/src/rtc_at_cmd.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uiservice/src/ui_service.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/src/UISampleView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/src/UISamplePresenter.cpp @@ -724,6 +725,7 @@ set(MAIN_COMPONENT set(PUBLIC_DEFINES SUPPORT_NATIVE_UI + SUPPORT_AT_RTCTEST ) set(PRIVATE_DEFINES diff --git a/code/sdk/application/wearable/fd230app/nativeui/rtcservice/include/rtc_at_cmd.h b/code/sdk/application/wearable/fd230app/nativeui/rtcservice/include/rtc_at_cmd.h new file mode 100644 index 000000000..fee640855 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/rtcservice/include/rtc_at_cmd.h @@ -0,0 +1,32 @@ +/*** + * @Date: 2024-06-17 15:17:33 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-17 15:19:22 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/rtcservice/include/rtc_at_cmd.h + */ + +#ifndef RTCTEST_AT_CMD_H +#define RTCTEST_AT_CMD_H + +#include +#include +#include "errcode.h" +#include "soc_osal.h" +#include "at_cmd_api.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" +{ +#endif /* __cplusplus */ +#endif /* __cplusplus */ + + at_cmd_table_t *get_rtc_cmd_table(uint32_t *cmd_count); + +#ifdef __cplusplus +#if __cplusplus +} +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/rtc_at_cmd.cpp b/code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/rtc_at_cmd.cpp new file mode 100644 index 000000000..ccd97e36b --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/rtc_at_cmd.cpp @@ -0,0 +1,110 @@ +#ifdef __cplusplus +#if __cplusplus +extern "C" +{ +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#include "at_cmd_api.h" +#include "pm_control.h" +#include "debug_print.h" +#include "RtcService.h" +#include "string.h" +#include "rtc_at_cmd.h" +#include "graphic_service_wrapper.h" + +#define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0])) +#define RTCTEST_MAX_ARGC 8 +#define RTCTEST_MAX_ARGV_LEN 64 + +#define RTCTEST_SUCCESS 0 +#define RTCTEST_FAILED (-1) + + // bool is_rtc_print_enabled = true; + static int ConvertCmdToParam(uint8_t *para, uint32_t paraLen, + uint8_t argv[RTCTEST_MAX_ARGC][RTCTEST_MAX_ARGV_LEN], uint32_t *argc) + { + uint32_t pos = 0; + *argc = 0; + + for (uint32_t i = 0; i < paraLen; i++) + { + if ((para[i] == ' ' || para[i] == '\n') && pos != 0) + { + argv[*argc][pos] = '\0'; + *argc += 1; + pos = 0; + if (*argc >= RTCTEST_MAX_ARGC) + { + return RTCTEST_FAILED; + } + } + else + { + argv[*argc][pos] = para[i]; + pos++; + if (pos >= RTCTEST_MAX_ARGV_LEN) + { + return RTCTEST_FAILED; + } + } + } + if (pos != 0) + { + *argc += 1; + } + + return RTCTEST_SUCCESS; + } + + static uint32_t rtc_do_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd) + { + UNUSED(strCommonCmd); + uint8_t argv[RTCTEST_MAX_ARGC][RTCTEST_MAX_ARGV_LEN] = {0}; + uint32_t argc = 0; + + int ret = ConvertCmdToParam(para, paraLen, argv, &argc); + if (ret != RTCTEST_SUCCESS) + { + PRINT("RTCTESTTEST ATCMD Convert Command Failed\n"); + return ERRCODE_FAIL; + } + + if (argc != 1) + { + PRINT("RTCTESTTEST ATCMD Set Parameter Failed\n"); + return ERRCODE_FAIL; + } + char *mode = (char *)argv[0]; + + PRINT("RTCTESTTEST ATCMD %s\n", mode); + + if (strcmp(mode, "enable") == 0) + { + printf("rtc cmd enable\r\n"); + set_printf(true); + } + else if (strcmp(mode, "disable") == 0) + { + printf("rtc cmd disable\r\n"); + set_printf(false); + } + return ERRCODE_SUCC; + } + + static const at_cmd_table_t g_rtc_cmd[] = { + {(char *)"AT^RTCTEST", rtc_do_test, (char *)"enable"}, + {(char *)"AT^RTCTEST", rtc_do_test, (char *)"disable"}, + }; + + at_cmd_table_t *get_rtc_cmd_table(uint32_t *cmd_count) + { + *cmd_count = ARRAY_COUNT(g_rtc_cmd); + return (at_cmd_table_t *)g_rtc_cmd; + } + +#ifdef __cplusplus +#if __cplusplus +} +#endif /* __cplusplus */ +#endif /* __cplusplus */ \ No newline at end of file diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h index dcc86f2fb..89e10f2cf 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-05-30 15:59:37 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-17 16:06:42 + * @FilePath: /XTS_FD230/FD230/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h + */ /* * Copyright (c) 2022 CompanyNameMagicTag. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -74,6 +80,9 @@ void GpuResetStart(void); * @brief GPU Reset end. */ void GpuResetEnd(void); + +void set_printf(bool set); + #ifdef __cplusplus }; #endif diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp index 0c16ee228..01019f3ec 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp @@ -51,14 +51,31 @@ static OHOS::ImageInfo* g_ota_imgInfo = nullptr; #endif +// 全局变量,用于标记刷新操作是否执行 +bool refresh_executed = false; +bool printf_set = false; + +void set_printf(bool set) +{ + printf("set_printf %d\r\n",set); + printf_set = set; +} + static void UikitRTCCallBack(uintptr_t data) { (void)(data); if (!g_initialized || !g_isScreenOn) { return; } + if(printf_set) + { + printf("[refresh_executed is %d g_rtcHandle is %d g_timeInterval is %d ]\r\n",refresh_executed,g_rtcHandle,g_timeInterval); + } uapi_rtc_start(g_rtcHandle, g_timeInterval, UikitRTCCallBack, 0); GraphicService::GetInstance()->UpdateGraphicEvent(); + + // 标记刷新操作已执行 + refresh_executed = true; } void SetFrequenceInner(int freq) -- 2.17.1