diff options
Diffstat (limited to 'src/procedures.c')
-rw-r--r-- | src/procedures.c | 197 |
1 files changed, 161 insertions, 36 deletions
diff --git a/src/procedures.c b/src/procedures.c index f4ce6f5..5bf686f 100644 --- a/src/procedures.c +++ b/src/procedures.c @@ -47,13 +47,18 @@ #define _PROC_BED_RAISE "RAISE_BED" #define _PROC_BED_HOME "HOME_BED" #define _PROC_HEAD_HOME "HOME_HEAD" -#define _PROC_MATERIAL_MOVE_0 "MOVE_MATERIAL_0" -#define _PROC_MATERIAL_MOVE_1 "MOVE_MATERIAL_1" +#define __PROC_MATERIAL_MOVE(x) "MOVE_MATERIAL_" #x +#define _PROC_MATERIAL_MOVE(x) "MOVE_MATERIAL_%u" +#define _PROC_MATERIAL_MOVE_0 __PROC_MATERIAL_MOVE(0) +#define _PROC_MATERIAL_MOVE_1 __PROC_MATERIAL_MOVE(0) #define _PROC_JERK_XY "JERK_XY" #define _PROC_JERK_Z "JERK_Z" #define _PROC_CURRENT_XY "XY_MAX_CURRENT" #define _PROC_CURRENT_Z "Z_MAX_CURRENT" #define _PROC_CURRENT_E "E_CURRENT" +#define _PROC_MATERIAL_UNLOAD "REMOVE_MATERIAL" +#define _PROC_MATERIAL_LOAD "INSERT_MATERIAL" +#define _PROC_MATERIAL_CHANGE "CHANGE_MATERIAL" #define _META_CURRENT "current" #define _META_TARGET "target" @@ -81,9 +86,6 @@ #define _PROC_MSG_PRINTER_CLEANED "PRINTER_CLEANED" -int EVENT_PROC_PROGRESS_PRINT = 0; -int EVENT_PROC_PROGRESS_FIRMWARE_UPDATE = 0; - static Eldbus_Proxy *__proxy = NULL; static void _container_basic_variant(Eldbus_Message_Iter *parent, int type, ...) @@ -168,7 +170,7 @@ static void _get_meta_progress(void *data, const void *key, Eldbus_Message_Iter } free(var_sig); - ecore_event_add(procedure->poll.event, NULL, NULL, procedure); + ecore_event_add(procedure->poll.event, progress, NULL, NULL); } static void _get_meta_cur_tar(void *data, const void *key, Eldbus_Message_Iter *var) @@ -198,7 +200,7 @@ static void _get_meta_cur_tar(void *data, const void *key, Eldbus_Message_Iter * } free(var_sig); - //ecore_event_add(); + ecore_event_add(procedure->poll.event, dial_data, NULL, NULL); } static void _on_start_print_ret(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) @@ -254,7 +256,7 @@ Eina_Bool _print_progress_cleanup(void *data, Elm_Object_Item *eoi EINA_UNUSED) return EINA_TRUE; } -void procedure_process_step(struct eulogium_data *eulogium, struct procedure_data *procedure) +void procedure_process_step(struct procedure_data *procedure, struct eulogium_data *eulogium) { Evas_Object *content = NULL; Elm_Object_Item *navi_item = NULL; @@ -269,7 +271,7 @@ void procedure_process_step(struct eulogium_data *eulogium, struct procedure_dat EINA_LOG_CRIT("%s", procedure->step_active->key); if (procedure->step_active->step == STEP_FIRMWARE_UPDATE_WRITING) { procedure_metadata_poll(procedure, EINA_TRUE); - content = ui_widget_progress(eulogium->navi, eulogium, procedure); + content = ui_widget_progress(eulogium->navi, procedure); page_state = PAGE_NORMAL; } if (procedure->step_active->step == STEP_PRINTING) { @@ -459,9 +461,31 @@ static struct procedure_step steps_hotend_active_set[] = { }, { NULL }, /* sentinel */ }; +static struct procedure_step steps_material_unload[] = { + { + .key = _STEP_SWITCHING, + .step = STEP_SWITCHING, + }, { NULL }, /* sentinel */ +}; + +static struct procedure_step steps_material_load[] = { + { + .key = _STEP_SWITCHING, + .step = STEP_SWITCHING, + }, { NULL }, /* sentinel */ +}; + +static struct procedure_step steps_material_change[] = { + { + .key = _STEP_SWITCHING, + .step = STEP_SWITCHING, + }, { NULL }, /* sentinel */ +}; + static struct procedure_data procedures[] = { [PROC_FIRMWARE_UPDATE] = { .key = _PROC_FIRMWARE_UPDATE, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_progress, .executable = EINA_FALSE, @@ -472,10 +496,12 @@ static struct procedure_data procedures[] = { .poll = { .in = 0.5, .timer = NULL, + .event = 0, }, }, [PROC_PRINT] = { .key = _PROC_PRINT, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_progress, .executable = EINA_FALSE, @@ -485,11 +511,13 @@ static struct procedure_data procedures[] = { .meta = NULL, /* struct print_data */ .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_BED_HEATUP] = { .key = _PROC_BED_HEATUP, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -499,11 +527,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_HOTEND_HEATUP_0] = { .key = _PROC_HOTEND_HEATUP_0, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -518,6 +548,7 @@ static struct procedure_data procedures[] = { }, [PROC_HOTEND_HEATUP_1] = { .key = _PROC_HOTEND_HEATUP_1, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -527,11 +558,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_HOTEND_ACTIVE_SET] = { .key = _PROC_HOTEND_ACTIVE_SET, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -541,11 +574,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_PRINT_SPEED] = { .key = _PROC_PRINT_SPEED, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -555,11 +590,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_FAN_SPEED] = { .key = _PROC_FAN_SPEED, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -569,11 +606,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_FLOW_RATE] = { .key = _PROC_FLOW_RATE, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -583,11 +622,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_RETRACTION_LENGTH] = { .key = _PROC_RETRACTION_LENGTH, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -597,11 +638,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_RETRACTION_SPEED] = { .key = _PROC_RETRACTION_SPEED, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -611,11 +654,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_RETRACTION_ZHOP] = { .key = _PROC_RETRACTION_ZHOP, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -625,11 +670,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_BED_LEVEL_AUTO] = { .key = _PROC_BED_LEVEL_AUTO, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -639,11 +686,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_BED_RAISE] = { .key = _PROC_BED_RAISE, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -653,11 +702,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_BED_HOME] = { .key = _PROC_BED_HOME, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -667,11 +718,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_BED_MOVE] = { .key = _PROC_BED_MOVE, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = NULL, .executable = EINA_FALSE, @@ -681,11 +734,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_HEAD_HOME] = { .key = _PROC_HEAD_HOME, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -695,11 +750,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_MATERIAL_MOVE_0] = { .key = _PROC_MATERIAL_MOVE_0, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = NULL, .executable = EINA_FALSE, @@ -709,11 +766,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_MATERIAL_MOVE_1] = { .key = _PROC_MATERIAL_MOVE_1, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = NULL, .executable = EINA_FALSE, @@ -723,11 +782,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_JERK_XY] = { .key = _PROC_JERK_XY, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -737,11 +798,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_JERK_Z] = { .key = _PROC_JERK_Z, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -751,11 +814,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_CURRENT_XY] = { .key = _PROC_CURRENT_XY, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -765,11 +830,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_CURRENT_Z] = { .key = _PROC_CURRENT_Z, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -779,11 +846,13 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, }, }, [PROC_CURRENT_E] = { .key = _PROC_CURRENT_E, + .wizard = EINA_FALSE, .status = PROC_READY, .parser = _get_meta_cur_tar, .executable = EINA_FALSE, @@ -793,19 +862,74 @@ static struct procedure_data procedures[] = { .meta = NULL, .poll = { .in = 0.0, - .timer = NULL + .timer = NULL, + .event = 0, + }, + }, + [PROC_MATERIAL_UNLOAD] = { + .key = _PROC_MATERIAL_UNLOAD, + .wizard = EINA_TRUE, + .status = PROC_READY, + .parser = _get_meta_progress, + .executable = EINA_FALSE, + .available = EINA_FALSE, + ._steps = steps_material_unload, + .step_active = NULL, + .meta = NULL, + .poll = { + .in = 0.0, + .timer = NULL, + .event = 0, + }, + }, + [PROC_MATERIAL_LOAD] = { + .key = _PROC_MATERIAL_LOAD, + .wizard = EINA_TRUE, + .status = PROC_READY, + .parser = _get_meta_progress, + .executable = EINA_FALSE, + .available = EINA_FALSE, + ._steps = steps_material_load, + .step_active = NULL, + .meta = NULL, + .poll = { + .in = 0.0, + .timer = NULL, + .event = 0, + }, + }, + [PROC_MATERIAL_CHANGE] = { + .key = _PROC_MATERIAL_CHANGE, + .wizard = EINA_TRUE, + .status = PROC_READY, + .parser = _get_meta_progress, + .executable = EINA_FALSE, + .available = EINA_FALSE, + ._steps = steps_material_change, + .step_active = NULL, + .meta = NULL, + .poll = { + .in = 0.0, + .timer = NULL, + .event = 0, }, }, }; -void procedure_meta_set(struct procedure_data *procedure, void *data) +void *procedure_meta_data_get(struct procedure_data *procedure) { - procedure->meta = data; + return procedure->meta; } -void *procedure_meta_get(struct procedure_data *procedure) +enum meta_type procedure_meta_type_get(struct procedure_data *procedure) { - return procedure->meta; + return procedure->type; +} + +void procedure_meta_set(struct procedure_data *procedure, enum meta_type type, void *data) +{ + procedure->type = type; + procedure->meta = data; } const struct procedure_step *procedure_step_get(const struct procedure_data *proc, const char *key) @@ -958,8 +1082,9 @@ struct procedure_data *procedures_init(Eldbus_Proxy *proxy) __proxy = proxy; - for (i = PROC_NONE; i < PROC_LAST; i++) + for (i = PROC_NONE; i < PROC_LAST; i++) { procedures[i].poll.event = ecore_event_type_new(); + } /* TODO: we probably should do something here to prepare all procedures and their meta data * so that we can do the getall here and drop the function altogether. |