--- a/svghmi/svghmi.c Fri Aug 23 14:01:31 2019 +0200
+++ b/svghmi/svghmi.c Mon Aug 26 08:54:02 2019 +0200
@@ -39,39 +39,9 @@
}
}
-/* TODO : deduplicate that code with plc_debug.c */
+#define __Unpack_desc_type hmi_tree_item_t
-#define __Unpack_case_t(TYPENAME) \
- case TYPENAME##_ENUM :\
- *flags = ((__IEC_##TYPENAME##_t *)varp)->flags;\
- forced_value_p = *real_value_p = &((__IEC_##TYPENAME##_t *)varp)->value;\
- break;
-
-#define __Unpack_case_p(TYPENAME)\
- case TYPENAME##_O_ENUM :\
- *flags = __IEC_OUTPUT_FLAG;\
- case TYPENAME##_P_ENUM :\
- *flags |= ((__IEC_##TYPENAME##_p *)varp)->flags;\
- *real_value_p = ((__IEC_##TYPENAME##_p *)varp)->value;\
- forced_value_p = &((__IEC_##TYPENAME##_p *)varp)->fvalue;\
- break;
-
-static void* UnpackVar(hmi_tree_item_t *dsc, void **real_value_p, char *flags)
-{
- void *varp = dsc->ptr;
- void *forced_value_p = NULL;
- *flags = 0;
- /* find data to copy*/
- switch(dsc->type){
- __ANY(__Unpack_case_t)
- __ANY(__Unpack_case_p)
- default:
- break;
- }
- if (*flags & __IEC_FORCE_FLAG)
- return forced_value_p;
- return *real_value_p;
-}
+%(var_access_code)s
void write_iterator(hmi_tree_item_t *dsc)
{