summaryrefslogtreecommitdiffstats
path: root/src/procedures.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/procedures.c')
-rw-r--r--src/procedures.c197
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.