|
|
@ -204,44 +204,44 @@ static void disp_key_value() { |
|
|
|
sprintf_P(public_buf_m, PSTR("%s"), dtostrf(gCfgItems.pausePosZ, 1, 1, str_1)); |
|
|
|
break; |
|
|
|
case level_pos_x1: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[0][0]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[0][X_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_y1: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[0][1]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[0][Y_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_x2: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[1][0]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[1][X_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_y2: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[1][1]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[1][Y_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_x3: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[2][0]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[2][X_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_y3: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[2][1]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[2][Y_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_x4: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[3][0]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[3][X_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_y4: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[3][1]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[3][Y_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_x5: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[4][0]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[4][X_AXIS]); |
|
|
|
break; |
|
|
|
case level_pos_y5: |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.levelingPos[4][1]); |
|
|
|
sprintf_P(public_buf_m, PSTR("%d"), (int)gCfgItems.trammingPos[4][Y_AXIS]); |
|
|
|
break; |
|
|
|
#if HAS_BED_PROBE |
|
|
|
case x_offset: |
|
|
|
#if HAS_PROBE_XY_OFFSET |
|
|
|
sprintf_P(public_buf_m, PSTR("%s"), dtostrf(probe.offset.x, 1, 3, str_1)); |
|
|
|
sprintf_P(public_buf_m, PSTR("%s"), dtostrf(probe.offset.x, 1, 3, str_1)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case y_offset: |
|
|
|
#if HAS_PROBE_XY_OFFSET |
|
|
|
sprintf_P(public_buf_m, PSTR("%s"), dtostrf(probe.offset.y, 1, 3, str_1)); |
|
|
|
sprintf_P(public_buf_m, PSTR("%s"), dtostrf(probe.offset.y, 1, 3, str_1)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case z_offset: |
|
|
@ -295,194 +295,87 @@ static void disp_key_value() { |
|
|
|
} |
|
|
|
|
|
|
|
static void set_value_confirm() { |
|
|
|
#if HAS_TRINAMIC_CONFIG |
|
|
|
uint16_t current_mA; |
|
|
|
#endif |
|
|
|
switch (value) { |
|
|
|
case PrintAcceleration: |
|
|
|
planner.settings.acceleration = atof(key_value); |
|
|
|
break; |
|
|
|
case RetractAcceleration: |
|
|
|
planner.settings.retract_acceleration = atof(key_value); |
|
|
|
break; |
|
|
|
case TravelAcceleration: |
|
|
|
planner.settings.travel_acceleration = atof(key_value); |
|
|
|
break; |
|
|
|
case XAcceleration: |
|
|
|
planner.settings.max_acceleration_mm_per_s2[X_AXIS] = atof(key_value); |
|
|
|
break; |
|
|
|
case YAcceleration: |
|
|
|
planner.settings.max_acceleration_mm_per_s2[Y_AXIS] = atof(key_value); |
|
|
|
break; |
|
|
|
case ZAcceleration: |
|
|
|
planner.settings.max_acceleration_mm_per_s2[Z_AXIS] = atof(key_value); |
|
|
|
break; |
|
|
|
case E0Acceleration: |
|
|
|
planner.settings.max_acceleration_mm_per_s2[E_AXIS] = atof(key_value); |
|
|
|
break; |
|
|
|
case E1Acceleration: |
|
|
|
planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(1)] = atof(key_value); |
|
|
|
break; |
|
|
|
case XMaxFeedRate: |
|
|
|
planner.settings.max_feedrate_mm_s[X_AXIS] = atof(key_value); |
|
|
|
break; |
|
|
|
case YMaxFeedRate: |
|
|
|
planner.settings.max_feedrate_mm_s[Y_AXIS] = atof(key_value); |
|
|
|
break; |
|
|
|
case ZMaxFeedRate: |
|
|
|
planner.settings.max_feedrate_mm_s[Z_AXIS] = atof(key_value); |
|
|
|
break; |
|
|
|
case E0MaxFeedRate: |
|
|
|
planner.settings.max_feedrate_mm_s[E_AXIS] = atof(key_value); |
|
|
|
break; |
|
|
|
case E1MaxFeedRate: |
|
|
|
planner.settings.max_feedrate_mm_s[E_AXIS_N(1)] = atof(key_value); |
|
|
|
break; |
|
|
|
case XJerk: |
|
|
|
#if HAS_CLASSIC_JERK |
|
|
|
planner.max_jerk[X_AXIS] = atof(key_value); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case YJerk: |
|
|
|
#if HAS_CLASSIC_JERK |
|
|
|
planner.max_jerk[Y_AXIS] = atof(key_value); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case ZJerk: |
|
|
|
#if HAS_CLASSIC_JERK |
|
|
|
planner.max_jerk[Z_AXIS] = atof(key_value); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case EJerk: |
|
|
|
#if HAS_CLASSIC_JERK |
|
|
|
planner.max_jerk[E_AXIS] = atof(key_value); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case Xstep: |
|
|
|
planner.settings.axis_steps_per_mm[X_AXIS] = atof(key_value); |
|
|
|
planner.refresh_positioning(); |
|
|
|
break; |
|
|
|
case Ystep: |
|
|
|
planner.settings.axis_steps_per_mm[Y_AXIS] = atof(key_value); |
|
|
|
planner.refresh_positioning(); |
|
|
|
break; |
|
|
|
case Zstep: |
|
|
|
planner.settings.axis_steps_per_mm[Z_AXIS] = atof(key_value); |
|
|
|
planner.refresh_positioning(); |
|
|
|
break; |
|
|
|
case E0step: |
|
|
|
planner.settings.axis_steps_per_mm[E_AXIS] = atof(key_value); |
|
|
|
planner.refresh_positioning(); |
|
|
|
break; |
|
|
|
case E1step: |
|
|
|
planner.settings.axis_steps_per_mm[E_AXIS_N(1)] = atof(key_value); |
|
|
|
planner.refresh_positioning(); |
|
|
|
break; |
|
|
|
case PrintAcceleration: planner.settings.acceleration = atof(key_value); break; |
|
|
|
case RetractAcceleration: planner.settings.retract_acceleration = atof(key_value); break; |
|
|
|
case TravelAcceleration: planner.settings.travel_acceleration = atof(key_value); break; |
|
|
|
case XAcceleration: planner.settings.max_acceleration_mm_per_s2[X_AXIS] = atof(key_value); break; |
|
|
|
case YAcceleration: planner.settings.max_acceleration_mm_per_s2[Y_AXIS] = atof(key_value); break; |
|
|
|
case ZAcceleration: planner.settings.max_acceleration_mm_per_s2[Z_AXIS] = atof(key_value); break; |
|
|
|
case E0Acceleration: planner.settings.max_acceleration_mm_per_s2[E_AXIS] = atof(key_value); break; |
|
|
|
case E1Acceleration: planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(1)] = atof(key_value); break; |
|
|
|
case XMaxFeedRate: planner.settings.max_feedrate_mm_s[X_AXIS] = atof(key_value); break; |
|
|
|
case YMaxFeedRate: planner.settings.max_feedrate_mm_s[Y_AXIS] = atof(key_value); break; |
|
|
|
case ZMaxFeedRate: planner.settings.max_feedrate_mm_s[Z_AXIS] = atof(key_value); break; |
|
|
|
case E0MaxFeedRate: planner.settings.max_feedrate_mm_s[E_AXIS] = atof(key_value); break; |
|
|
|
case E1MaxFeedRate: planner.settings.max_feedrate_mm_s[E_AXIS_N(1)] = atof(key_value); break; |
|
|
|
case XJerk: TERN_(HAS_CLASSIC_JERK, planner.max_jerk[X_AXIS] = atof(key_value)); break; |
|
|
|
case YJerk: TERN_(HAS_CLASSIC_JERK, planner.max_jerk[Y_AXIS] = atof(key_value)); break; |
|
|
|
case ZJerk: TERN_(HAS_CLASSIC_JERK, planner.max_jerk[Z_AXIS] = atof(key_value)); break; |
|
|
|
case EJerk: TERN_(HAS_CLASSIC_JERK, planner.max_jerk[E_AXIS] = atof(key_value)); break; |
|
|
|
case Xstep: planner.settings.axis_steps_per_mm[X_AXIS] = atof(key_value); planner.refresh_positioning(); break; |
|
|
|
case Ystep: planner.settings.axis_steps_per_mm[Y_AXIS] = atof(key_value); planner.refresh_positioning(); break; |
|
|
|
case Zstep: planner.settings.axis_steps_per_mm[Z_AXIS] = atof(key_value); planner.refresh_positioning(); break; |
|
|
|
case E0step: planner.settings.axis_steps_per_mm[E_AXIS] = atof(key_value); planner.refresh_positioning(); break; |
|
|
|
case E1step: planner.settings.axis_steps_per_mm[E_AXIS_N(1)] = atof(key_value); planner.refresh_positioning(); break; |
|
|
|
case Xcurrent: |
|
|
|
#if AXIS_IS_TMC(X) |
|
|
|
current_mA = atoi(key_value); |
|
|
|
stepperX.rms_current(current_mA); |
|
|
|
stepperX.rms_current(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case Ycurrent: |
|
|
|
#if AXIS_IS_TMC(Y) |
|
|
|
current_mA = atoi(key_value); |
|
|
|
stepperY.rms_current(current_mA); |
|
|
|
stepperY.rms_current(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case Zcurrent: |
|
|
|
#if AXIS_IS_TMC(Z) |
|
|
|
current_mA = atoi(key_value); |
|
|
|
stepperZ.rms_current(current_mA); |
|
|
|
stepperZ.rms_current(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case E0current: |
|
|
|
#if AXIS_IS_TMC(E0) |
|
|
|
current_mA = atoi(key_value); |
|
|
|
stepperE0.rms_current(current_mA); |
|
|
|
stepperE0.rms_current(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case E1current: |
|
|
|
#if AXIS_IS_TMC(E1) |
|
|
|
current_mA = atoi(key_value); |
|
|
|
stepperE1.rms_current(current_mA); |
|
|
|
stepperE1.rms_current(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case pause_pos_x: |
|
|
|
gCfgItems.pausePosX = atof(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case pause_pos_y: |
|
|
|
gCfgItems.pausePosY = atof(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case pause_pos_z: |
|
|
|
gCfgItems.pausePosZ = atof(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_x1: |
|
|
|
gCfgItems.levelingPos[0][0] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_y1: |
|
|
|
gCfgItems.levelingPos[0][1] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_x2: |
|
|
|
gCfgItems.levelingPos[1][0] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_y2: |
|
|
|
gCfgItems.levelingPos[1][1] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_x3: |
|
|
|
gCfgItems.levelingPos[2][0] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_y3: |
|
|
|
gCfgItems.levelingPos[2][1] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_x4: |
|
|
|
gCfgItems.levelingPos[3][0] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_y4: |
|
|
|
gCfgItems.levelingPos[3][1] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_x5: |
|
|
|
gCfgItems.levelingPos[4][0] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case level_pos_y5: |
|
|
|
gCfgItems.levelingPos[4][1] = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case pause_pos_x: gCfgItems.pausePosX = atof(key_value); update_spi_flash(); break; |
|
|
|
case pause_pos_y: gCfgItems.pausePosY = atof(key_value); update_spi_flash(); break; |
|
|
|
case pause_pos_z: gCfgItems.pausePosZ = atof(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_x1: gCfgItems.trammingPos[0][X_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_y1: gCfgItems.trammingPos[0][Y_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_x2: gCfgItems.trammingPos[1][X_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_y2: gCfgItems.trammingPos[1][Y_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_x3: gCfgItems.trammingPos[2][X_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_y3: gCfgItems.trammingPos[2][Y_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_x4: gCfgItems.trammingPos[3][X_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_y4: gCfgItems.trammingPos[3][Y_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_x5: gCfgItems.trammingPos[4][X_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
case level_pos_y5: gCfgItems.trammingPos[4][Y_AXIS] = atoi(key_value); update_spi_flash(); break; |
|
|
|
#if HAS_BED_PROBE |
|
|
|
case x_offset: |
|
|
|
case x_offset: { |
|
|
|
#if HAS_PROBE_XY_OFFSET |
|
|
|
float x; |
|
|
|
x = atof(key_value); |
|
|
|
const float x = atof(key_value); |
|
|
|
if (WITHIN(x, -(X_BED_SIZE), X_BED_SIZE)) |
|
|
|
probe.offset.x = x; |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case y_offset: |
|
|
|
} break; |
|
|
|
case y_offset: { |
|
|
|
#if HAS_PROBE_XY_OFFSET |
|
|
|
float y; |
|
|
|
y = atof(key_value); |
|
|
|
const float y = atof(key_value); |
|
|
|
if (WITHIN(y, -(Y_BED_SIZE), Y_BED_SIZE)) |
|
|
|
probe.offset.y = y; |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case z_offset: |
|
|
|
float z; |
|
|
|
z = atof(key_value); |
|
|
|
} break; |
|
|
|
case z_offset: { |
|
|
|
const float z = atof(key_value); |
|
|
|
if (WITHIN(z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX)) |
|
|
|
probe.offset.z = z; |
|
|
|
break; |
|
|
|
} break; |
|
|
|
#endif |
|
|
|
case load_length: |
|
|
|
gCfgItems.filamentchange_load_length = atoi(key_value); |
|
|
@ -508,26 +401,10 @@ static void set_value_confirm() { |
|
|
|
gCfgItems.filament_limit_temp = atoi(key_value); |
|
|
|
update_spi_flash(); |
|
|
|
break; |
|
|
|
case x_sensitivity: |
|
|
|
#if X_SENSORLESS |
|
|
|
stepperX.homing_threshold(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case y_sensitivity: |
|
|
|
#if Y_SENSORLESS |
|
|
|
stepperY.homing_threshold(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case z_sensitivity: |
|
|
|
#if Z_SENSORLESS |
|
|
|
stepperZ.homing_threshold(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case z2_sensitivity: |
|
|
|
#if Z2_SENSORLESS |
|
|
|
stepperZ2.homing_threshold(atoi(key_value)); |
|
|
|
#endif |
|
|
|
break; |
|
|
|
case x_sensitivity: TERN_(X_SENSORLESS, stepperX.homing_threshold(atoi(key_value))); break; |
|
|
|
case y_sensitivity: TERN_(Y_SENSORLESS, stepperY.homing_threshold(atoi(key_value))); break; |
|
|
|
case z_sensitivity: TERN_(Z_SENSORLESS, stepperZ.homing_threshold(atoi(key_value))); break; |
|
|
|
case z2_sensitivity: TERN_(Z2_SENSORLESS, stepperZ2.homing_threshold(atoi(key_value))); break; |
|
|
|
} |
|
|
|
gcode.process_subcommands_now_P(PSTR("M500")); |
|
|
|
} |
|
|
@ -535,81 +412,9 @@ static void set_value_confirm() { |
|
|
|
static void event_handler(lv_obj_t *obj, lv_event_t event) { |
|
|
|
if (event != LV_EVENT_RELEASED) return; |
|
|
|
switch (obj->mks_obj_id) { |
|
|
|
case ID_NUM_KEY1: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'1'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY2: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'2'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY3: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'3'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY4: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'4'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY5: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'5'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY6: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'6'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY7: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'7'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY8: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'8'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY9: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'9'; |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
|
} |
|
|
|
break; |
|
|
|
case ID_NUM_KEY0: |
|
|
|
case ID_NUM_KEY1 ... ID_NUM_KEY0: |
|
|
|
if (cnt <= 10) { |
|
|
|
key_value[cnt] = (char)'0'; |
|
|
|
key_value[cnt] = (obj->mks_obj_id == ID_NUM_KEY0) ? (char)'0' : char('1' + obj->mks_obj_id - ID_NUM_KEY1); |
|
|
|
lv_label_set_text(labelValue, key_value); |
|
|
|
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0); |
|
|
|
cnt++; |
|
|
@ -662,55 +467,22 @@ void lv_draw_number_key() { |
|
|
|
buttonValue = lv_btn_create(scr, 92, 40, 296, 40, event_handler, ID_NUM_KEY1, &style_num_text); |
|
|
|
labelValue = lv_label_create_empty(buttonValue); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_1 = lv_btn_create(scr, 92, 90, 68, 40, event_handler, ID_NUM_KEY1, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_1 = lv_label_create_empty(NumberKey_1); |
|
|
|
lv_label_set_text(labelKey_1, machine_menu.key_1); |
|
|
|
lv_obj_align(labelKey_1, NumberKey_1, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_2 = lv_btn_create(scr, 168, 90, 68, 40, event_handler, ID_NUM_KEY2, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_2 = lv_label_create_empty(NumberKey_2); |
|
|
|
lv_label_set_text(labelKey_2, machine_menu.key_2); |
|
|
|
lv_obj_align(labelKey_2, NumberKey_2, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_3 = lv_btn_create(scr, 244, 90, 68, 40, event_handler, ID_NUM_KEY3, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_3 = lv_label_create_empty(NumberKey_3); |
|
|
|
lv_label_set_text(labelKey_3, machine_menu.key_3); |
|
|
|
lv_obj_align(labelKey_3, NumberKey_3, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_4 = lv_btn_create(scr, 92, 140, 68, 40, event_handler, ID_NUM_KEY4, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_4 = lv_label_create_empty(NumberKey_4); |
|
|
|
lv_label_set_text(labelKey_4, machine_menu.key_4); |
|
|
|
lv_obj_align(labelKey_4, NumberKey_4, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_5 = lv_btn_create(scr, 168, 140, 68, 40, event_handler, ID_NUM_KEY5, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_5 = lv_label_create_empty(NumberKey_5); |
|
|
|
lv_label_set_text(labelKey_5, machine_menu.key_5); |
|
|
|
lv_obj_align(labelKey_5, NumberKey_5, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_6 = lv_btn_create(scr, 244, 140, 68, 40, event_handler, ID_NUM_KEY6, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_6 = lv_label_create_empty(NumberKey_6); |
|
|
|
lv_label_set_text(labelKey_6, machine_menu.key_6); |
|
|
|
lv_obj_align(labelKey_6, NumberKey_6, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_7 = lv_btn_create(scr, 92, 190, 68, 40, event_handler, ID_NUM_KEY7, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_7 = lv_label_create_empty(NumberKey_7); |
|
|
|
lv_label_set_text(labelKey_7, machine_menu.key_7); |
|
|
|
lv_obj_align(labelKey_7, NumberKey_7, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_8 = lv_btn_create(scr, 168, 190, 68, 40, event_handler, ID_NUM_KEY8, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_8 = lv_label_create_empty(NumberKey_8); |
|
|
|
lv_label_set_text(labelKey_8, machine_menu.key_8); |
|
|
|
lv_obj_align(labelKey_8, NumberKey_8, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_9 = lv_btn_create(scr, 244, 190, 68, 40, event_handler, ID_NUM_KEY9, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_9 = lv_label_create_empty(NumberKey_9); |
|
|
|
lv_label_set_text(labelKey_9, machine_menu.key_9); |
|
|
|
lv_obj_align(labelKey_9, NumberKey_9, LV_ALIGN_CENTER, 0, 0); |
|
|
|
|
|
|
|
lv_obj_t *NumberKey_0 = lv_btn_create(scr, 92, 240, 68, 40, event_handler, ID_NUM_KEY0, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKey_0 = lv_label_create_empty(NumberKey_0); |
|
|
|
lv_label_set_text(labelKey_0, machine_menu.key_0); |
|
|
|
lv_obj_align(labelKey_0, NumberKey_0, LV_ALIGN_CENTER, 0, 0); |
|
|
|
#define DRAW_NUMBER_KEY(N,X,Y) \ |
|
|
|
lv_obj_t *NumberKey_##N = lv_btn_create(scr, X, Y, 68, 40, event_handler, ID_NUM_KEY##N, &style_num_key_pre); \ |
|
|
|
lv_obj_t *labelKey_##N = lv_label_create_empty(NumberKey_##N); \ |
|
|
|
lv_label_set_text(labelKey_##N, machine_menu.key_##N); \ |
|
|
|
lv_obj_align(labelKey_##N, NumberKey_##N, LV_ALIGN_CENTER, 0, 0) |
|
|
|
|
|
|
|
DRAW_NUMBER_KEY(1, 92, 90); |
|
|
|
DRAW_NUMBER_KEY(2, 168, 90); |
|
|
|
DRAW_NUMBER_KEY(3, 244, 90); |
|
|
|
DRAW_NUMBER_KEY(4, 92, 140); |
|
|
|
DRAW_NUMBER_KEY(5, 168, 140); |
|
|
|
DRAW_NUMBER_KEY(6, 244, 140); |
|
|
|
DRAW_NUMBER_KEY(7, 92, 190); |
|
|
|
DRAW_NUMBER_KEY(8, 168, 190); |
|
|
|
DRAW_NUMBER_KEY(9, 244, 190); |
|
|
|
DRAW_NUMBER_KEY(0, 92, 240); |
|
|
|
|
|
|
|
lv_obj_t *KeyBack = lv_btn_create(scr, 320, 90, 68, 40, event_handler, ID_NUM_BACK, &style_num_key_pre); |
|
|
|
lv_obj_t *labelKeyBack = lv_label_create_empty(KeyBack); |
|
|
|