|
|
|
@ -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:
|
|
|
|
|
case ID_NUM_KEY1 ... ID_NUM_KEY0:
|
|
|
|
|
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:
|
|
|
|
|
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);
|
|
|
|
|
#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)
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
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);
|
|
|
|
|