Got it working

This commit is contained in:
Will Bradley 2024-01-16 22:21:28 -08:00
parent 5510bfe499
commit 0a83f936b5
Signed by: will
GPG Key ID: 1159B930701263F3
3 changed files with 42 additions and 27 deletions

View File

@ -778,7 +778,7 @@ link_directories(
set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -ftree-vrp -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -fshort-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fstack-usage -fno-exceptions -fno-non-call-exceptions) set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -ftree-vrp -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -fshort-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fstack-usage -fno-exceptions -fno-non-call-exceptions)
set(WARNING_FLAGS -Wall -Wextra -Warray-bounds=2 -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-nonliteral -Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-expansion-to-defined -Wreturn-type -Werror=return-type -Werror) set(WARNING_FLAGS -Wall -Wextra -Warray-bounds=2 -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-nonliteral -Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-expansion-to-defined -Wreturn-type -Werror=return-type -Werror)
set(DEBUG_FLAGS -Og -g3) set(DEBUG_FLAGS -Og -g3)
set(RELEASE_FLAGS -Os) set(DEBUG_FLAGS -Os)
set(CXX_FLAGS -fno-rtti) set(CXX_FLAGS -fno-rtti)
set(ASM_FLAGS -x assembler-with-cpp) set(ASM_FLAGS -x assembler-with-cpp)
add_definitions(-DCONFIG_GPIO_AS_PINRESET) add_definitions(-DCONFIG_GPIO_AS_PINRESET)
@ -847,7 +847,7 @@ add_subdirectory(displayapp/fonts)
target_compile_options(infinitime_fonts PUBLIC target_compile_options(infinitime_fonts PUBLIC
${COMMON_FLAGS} ${COMMON_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -861,7 +861,7 @@ target_include_directories(nrf-sdk SYSTEM PUBLIC ${INCLUDES_FROM_LIBS})
target_compile_options(nrf-sdk PRIVATE target_compile_options(nrf-sdk PRIVATE
${COMMON_FLAGS} ${COMMON_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
-O3 -O3
@ -874,7 +874,7 @@ target_include_directories(nimble SYSTEM PUBLIC ${INCLUDES_FROM_LIBS})
target_compile_options(nimble PRIVATE target_compile_options(nimble PRIVATE
${COMMON_FLAGS} ${COMMON_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -886,7 +886,7 @@ target_include_directories(lvgl SYSTEM PUBLIC ${INCLUDES_FROM_LIBS})
target_compile_options(lvgl PRIVATE target_compile_options(lvgl PRIVATE
${COMMON_FLAGS} ${COMMON_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -898,7 +898,7 @@ target_include_directories(littlefs SYSTEM PUBLIC ${INCLUDES_FROM_LIBS})
target_compile_options(littlefs PRIVATE target_compile_options(littlefs PRIVATE
${COMMON_FLAGS} ${COMMON_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -910,7 +910,7 @@ target_include_directories(sunset SYSTEM PUBLIC ${INCLUDES_FROM_LIBS})
target_compile_options(sunset PRIVATE target_compile_options(sunset PRIVATE
${COMMON_FLAGS} ${COMMON_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -926,7 +926,7 @@ target_compile_options(${EXECUTABLE_NAME} PUBLIC
${COMMON_FLAGS} ${COMMON_FLAGS}
${WARNING_FLAGS} ${WARNING_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -961,7 +961,7 @@ target_compile_options(${EXECUTABLE_MCUBOOT_NAME} PUBLIC
${COMMON_FLAGS} ${COMMON_FLAGS}
${WARNING_FLAGS} ${WARNING_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -1004,7 +1004,7 @@ target_compile_options(${EXECUTABLE_RECOVERY_NAME} PUBLIC
${COMMON_FLAGS} ${COMMON_FLAGS}
${WARNING_FLAGS} ${WARNING_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -1036,7 +1036,7 @@ target_compile_options(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PUBLIC
${COMMON_FLAGS} ${COMMON_FLAGS}
${WARNING_FLAGS} ${WARNING_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -1075,7 +1075,7 @@ target_compile_options(${EXECUTABLE_RECOVERYLOADER_NAME} PUBLIC
${COMMON_FLAGS} ${COMMON_FLAGS}
${WARNING_FLAGS} ${WARNING_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )
@ -1110,7 +1110,7 @@ target_compile_options(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PUBLIC
${COMMON_FLAGS} ${COMMON_FLAGS}
${WARNING_FLAGS} ${WARNING_FLAGS}
$<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}> $<$<CONFIG:DEBUG>: ${DEBUG_FLAGS}>
$<$<CONFIG:RELEASE>: ${RELEASE_FLAGS}> $<$<CONFIG:RELEASE>: ${DEBUG_FLAGS}>
$<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CXX>: ${CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}> $<$<COMPILE_LANGUAGE:ASM>: ${ASM_FLAGS}>
) )

View File

@ -56,10 +56,19 @@ namespace {
pt = CoordinateRelocate(LV_HOR_RES/2-45, i*30); pt = CoordinateRelocate(LV_HOR_RES/2-45, i*30);
lv_obj_set_style_local_text_font(koku, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &noto_serif_cjk_15); lv_obj_set_style_local_text_font(koku, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &noto_serif_cjk_15);
} }
lv_obj_align(koku, NULL, LV_ALIGN_CENTER, LV_HOR_RES/2-pt.x-10, LV_HOR_RES/2-pt.y); lv_obj_align(koku, NULL, LV_ALIGN_CENTER, LV_HOR_RES/2-pt.x, LV_HOR_RES/2-pt.y);
lv_obj_set_style_local_text_color(koku, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); lv_obj_set_style_local_text_color(koku, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE);
} }
void drawTime(lv_obj_t * obj, uint8_t hour, uint8_t minute, lv_color_t color, uint8_t x, uint8_t y) {
lv_label_set_align(obj, LV_LABEL_ALIGN_CENTER);
lv_label_set_text_fmt(obj, "%2d:%02d", hour, minute);
lv_obj_set_pos(obj, 0, 0);
lv_obj_align(obj, NULL, LV_ALIGN_CENTER, x, y);
lv_obj_set_style_local_text_color(obj, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, color);
lv_obj_set_style_local_text_font(obj, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20);
}
} }
WatchFaceAnalog::WatchFaceAnalog(Controllers::DateTime& dateTimeController, WatchFaceAnalog::WatchFaceAnalog(Controllers::DateTime& dateTimeController,
@ -81,7 +90,7 @@ WatchFaceAnalog::WatchFaceAnalog(Controllers::DateTime& dateTimeController,
location = settingsController.GetLocation(); location = settingsController.GetLocation();
// begin sundial watch face // begin Japanese watch face
if (settingsController.GetClockType() == Controllers::Settings::ClockType::Fuzzy) { if (settingsController.GetClockType() == Controllers::Settings::ClockType::Fuzzy) {
major_scales = lv_linemeter_create(lv_scr_act(), nullptr); major_scales = lv_linemeter_create(lv_scr_act(), nullptr);
lv_linemeter_set_scale(major_scales, 360, 13); lv_linemeter_set_scale(major_scales, 360, 13);
@ -89,20 +98,27 @@ WatchFaceAnalog::WatchFaceAnalog(Controllers::DateTime& dateTimeController,
lv_obj_set_size(major_scales, 240, 240); lv_obj_set_size(major_scales, 240, 240);
lv_obj_align(major_scales, nullptr, LV_ALIGN_CENTER, 0, 0); lv_obj_align(major_scales, nullptr, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_style_local_bg_opa(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); lv_obj_set_style_local_bg_opa(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
lv_obj_set_style_local_scale_width(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 60); lv_obj_set_style_local_scale_width(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 50);
lv_obj_set_style_local_scale_end_line_width(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 1); lv_obj_set_style_local_scale_end_line_width(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, 1);
lv_obj_set_style_local_scale_end_color(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); lv_obj_set_style_local_scale_end_color(major_scales, LV_LINEMETER_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE);
axis = lv_arc_create(lv_scr_act(), NULL); axis = lv_arc_create(lv_scr_act(), NULL);
lv_obj_set_size(axis, 40, 40); lv_obj_set_size(axis, 70, 70);
lv_arc_set_bg_angles(axis, 0, 360); lv_arc_set_bg_angles(axis, 0, 360);
lv_arc_set_end_angle(axis, 360); lv_arc_set_end_angle(axis, 360);
lv_obj_align(axis, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_align(axis, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_style_local_line_width(axis, LV_ARC_PART_INDIC, LV_STATE_DEFAULT, 40);
lv_obj_set_style_local_line_color(axis, LV_ARC_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_WHITE); lv_obj_set_style_local_line_color(axis, LV_ARC_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_WHITE);
const char* kokuZodiac[] = {"","","","","","","","","","","",""}; const char* kokuZodiac[] = {"","","","","","","","","","","",""};
const char* kokuNums[] = {"","","","","",""}; const char* kokuNums[] = {"","","","","",""};
// abusing existing objs as text labels for this purpose
// one = lv_label_create(lv_scr_act(), nullptr);
twelve = lv_label_create(lv_scr_act(), nullptr);
// minor_scales = lv_label_create(lv_scr_act(), nullptr);
// large_scales = lv_label_create(lv_scr_act(), nullptr);
for (int i=0;i<12;i++) { for (int i=0;i<12;i++) {
printKoku(kokuZodiac[i], i, true); printKoku(kokuZodiac[i], i, true);
printKoku(kokuNums[i%6], i, false); printKoku(kokuNums[i%6], i, false);
@ -240,13 +256,13 @@ void WatchFaceAnalog::drawWatchFaceWadokei(){
minutesNighttime = (1440 - minutesDaytime); minutesNighttime = (1440 - minutesDaytime);
minutesBeforeSunset = minutesSunset - (hour * 60 + minute); // i.e.zero degrees minutesBeforeSunset = minutesSunset - (hour * 60 + minute); // i.e.zero degrees
HourLength = 40; // wadokei hand length HourLength = 70; // wadokei hand length
int16_t oldHourAngle; int16_t oldHourAngle=0;
auto const angle = (hour * 15 + minute / 2)+180; //24-hr rotation with 0/24 at the bottom auto const angle = ((hour * 15 + minute / 2)+180)%360; //24-hr rotation with 0/24 at the bottom
if(minutesBeforeSunset > 0 && minutesBeforeSunset < minutesDaytime) { // day (after sunrise) if(minutesBeforeSunset > 0 && minutesBeforeSunset < minutesDaytime) { // day (after sunrise)
oldHourAngle = 180.0 * minutesBeforeSunset / minutesDaytime + 90; // oldHourAngle = 180.0 * minutesBeforeSunset / minutesDaytime + 90;
} else { // night (before sunrise or after sunset) } else { // night (before sunrise or after sunset)
// lv_style_set_line_color(&hour_line_style, LV_STATE_DEFAULT, DARK_GRAY); // lv_style_set_line_color(&hour_line_style, LV_STATE_DEFAULT, DARK_GRAY);
// lv_style_set_line_color(&hour_line_style_trace, LV_STATE_DEFAULT, DARK_GRAY); // lv_style_set_line_color(&hour_line_style_trace, LV_STATE_DEFAULT, DARK_GRAY);
@ -256,9 +272,9 @@ void WatchFaceAnalog::drawWatchFaceWadokei(){
// lv_obj_set_style_local_text_color(twelve, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, DARK_GRAY); // lv_obj_set_style_local_text_color(twelve, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, DARK_GRAY);
if(minutesBeforeSunset > minutesDaytime) { // before sunrise if(minutesBeforeSunset > minutesDaytime) { // before sunrise
oldHourAngle = 180.0 * (minutesBeforeSunset - minutesDaytime) / minutesNighttime + 90; // oldHourAngle = 180.0 * (minutesBeforeSunset - minutesDaytime) / minutesNighttime + 90;
} else { // after sunset } else { // after sunset
oldHourAngle = 180 + 180.0 * minutesBeforeSunset / minutesNighttime + 90; // oldHourAngle = 180 + 180.0 * minutesBeforeSunset / minutesNighttime + 90;
} }
} }
NRF_LOG_INFO("oa: %d, a: %d, la: %f, lo: %f, be: %d", NRF_LOG_INFO("oa: %d, a: %d, la: %f, lo: %f, be: %d",
@ -280,10 +296,8 @@ void WatchFaceAnalog::drawWatchFaceWadokei(){
lv_line_set_points(hour_body, hour_point, 2); lv_line_set_points(hour_body, hour_point, 2);
// lv_line_set_points(hour_body_trace, hour_point_trace, 2); // lv_line_set_points(hour_body_trace, hour_point_trace, 2);
lv_label_set_align(twelve, LV_LABEL_ALIGN_CENTER); drawTime(twelve, hour, minute, LV_COLOR_BLACK, 0, 0);
lv_label_set_text_fmt(twelve, "%2d:%02d", hour, minute); lv_obj_move_foreground(twelve);
lv_obj_set_pos(twelve, 0, 0);
lv_obj_set_style_local_text_color(twelve, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
} }
} }

View File

@ -71,6 +71,7 @@ namespace Pinetime {
lv_style_t minute_line_style; lv_style_t minute_line_style;
lv_style_t minute_line_style_trace; lv_style_t minute_line_style_trace;
lv_style_t second_line_style; lv_style_t second_line_style;
lv_style_t axis_style;
lv_obj_t* label_date_day; lv_obj_t* label_date_day;
lv_obj_t* plugIcon; lv_obj_t* plugIcon;