WIP: fsm_journal_init (&glogos, "start fsm_init()") in fsm/dispatch
This commit is contained in:
parent
5aa8c84ade
commit
e5e674b194
|
@ -47,21 +47,21 @@ typedef struct data_list {int value; struct data_list *suiv;} data_list ;
|
||||||
typedef struct disp_list {int value; struct disp_list *suiv;} disp_list ;
|
typedef struct disp_list {int value; struct disp_list *suiv;} disp_list ;
|
||||||
|
|
||||||
// --------------------------------------------------------------- WIP ------
|
// --------------------------------------------------------------- WIP ------
|
||||||
void fsm_get_time();
|
void fsm_get_time(char *message);
|
||||||
// --------------------------------------------------------------- WIP ------
|
// --------------------------------------------------------------- WIP ------
|
||||||
typedef struct unit {int event; struct unit *prev; struct unit *next;} unit;
|
typedef struct unit {int event; struct unit *prev; struct unit *next;} unit;
|
||||||
typedef struct {unit *first; unit *last;} journal; // structure d'accès au journal
|
typedef struct {unit *first; unit *last;} journal; // structure d'accès au journal
|
||||||
|
|
||||||
void fsm_journal_init (journal *jj); // initialise
|
void fsm_journal_init (journal *jj, char *message); // initialise
|
||||||
void fsm_journal_clear (journal *jj); // vide tout le journal
|
void fsm_journal_clear (journal *jj, char *message); // vide tout le journal
|
||||||
int fsm_journal_push_back (journal *jj, int event); // ajoute un évènement en fin de journal
|
int fsm_journal_push_back (journal *jj, int event, char *message); // ajoute un évènement en fin de journal
|
||||||
int fsm_journal_push_front (journal *jj, int event); // ajoute un évènement en début de journal
|
int fsm_journal_push_front (journal *jj, int event, char *message); // ajoute un évènement en début de journal
|
||||||
int fsm_journal_pop_back (journal *jj); // retire un évènement en fin de journal
|
int fsm_journal_pop_back (journal *jj, char *message); // retire un évènement en fin de journal
|
||||||
int fsm_journal_pop_front (journal *jj); // retire un évènement en début de journal
|
int fsm_journal_pop_front (journal *jj, char *message); // retire un évènement en début de journal
|
||||||
int fsm_journal_length (journal jj); // nombre d'évènements dans le journal
|
int fsm_journal_length (journal jj, char *message); // nombre d'évènements dans le journal
|
||||||
void fsm_journal_seek (journal jj, int event); // recherche un évènement dans le journal
|
void fsm_journal_seek (journal jj, int event, char *message); // recherche un évènement dans le journal
|
||||||
void fsm_journal_view (journal jj); // affiche tout le journal
|
void fsm_journal_view (journal jj, char *message); // affiche tout le journal
|
||||||
void fsm_journal_test();
|
void fsm_journal_test(char *message);
|
||||||
// --------------------------------------------------------------- WIP ------
|
// --------------------------------------------------------------- WIP ------
|
||||||
// ref: sudo cat /var/log/messages
|
// ref: sudo cat /var/log/messages
|
||||||
// --------------------------------------------------------------- WIP ------
|
// --------------------------------------------------------------- WIP ------
|
||||||
|
|
|
@ -54,13 +54,19 @@
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* F S M I N I T */
|
/* F S M I N I T */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
// --------------------------------------------------------------- WIP ------
|
||||||
|
journal glogos; // gg_logs, should be, but 'glogos' is funny 2024-09-11
|
||||||
|
|
||||||
void fsm_init()
|
void fsm_init()
|
||||||
{
|
{
|
||||||
fsm_measures_list_init();
|
fsm_journal_init (&glogos, "start fsm_init()");
|
||||||
fsm_results_list_init();
|
|
||||||
fsm_displayable_list_init();
|
fsm_measures_list_init(); fsm_journal_push_front (&glogos, 1, "measures");
|
||||||
fsm_preferences_init();
|
fsm_results_list_init(); fsm_journal_push_front (&glogos, 2, "results");
|
||||||
|
fsm_displayable_list_init(); fsm_journal_push_front (&glogos, 3, "display");
|
||||||
|
fsm_preferences_init(); fsm_journal_push_front (&glogos, 4, "prefer");
|
||||||
|
|
||||||
|
fsm_journal_length (glogos, "end fsm_init()");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -36,28 +36,29 @@
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
void fsm_get_time()
|
void fsm_get_time (char *message)
|
||||||
{
|
{
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
gettimeofday(&tv, NULL);
|
gettimeofday(&tv, NULL);
|
||||||
printf(" Seconds since Jan. 1, 1970: %ld\n", tv.tv_sec);
|
printf(" Seconds since Jan. 1, 1970: %ld %s\n", tv.tv_sec, message);
|
||||||
|
/*
|
||||||
time_t current_time = time(NULL);
|
time_t current_time = time(NULL);
|
||||||
// Check if the time retrieval was successful
|
// Check if the time retrieval was successful
|
||||||
if (current_time == ((time_t)-1)) printf("Error getting current time.\n");
|
if (current_time == ((time_t)-1)) printf("Error getting current time.\n");
|
||||||
// Convert to local time format and print
|
// Convert to local time format and print
|
||||||
printf(" Current timestamp: %ld\n", current_time);
|
printf(" Current timestamp: %ld %s\n", current_time, message);
|
||||||
printf(" Current time: %s", ctime(¤t_time));
|
printf(" Current time: %s", ctime(¤t_time));
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void fsm_journal_init (journal *jj)
|
void fsm_journal_init (journal *jj, char *message)
|
||||||
{
|
{
|
||||||
jj->first = NULL;
|
jj->first = NULL;
|
||||||
jj->last = NULL;
|
jj->last = NULL;
|
||||||
fsm_get_time();
|
fsm_get_time (message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fsm_journal_clear (journal *jj)
|
void fsm_journal_clear (journal *jj, char *message)
|
||||||
{
|
{
|
||||||
unit *tmp;
|
unit *tmp;
|
||||||
unit *a_unit = jj->first;
|
unit *a_unit = jj->first;
|
||||||
|
@ -71,7 +72,7 @@ void fsm_journal_clear (journal *jj)
|
||||||
jj->last = NULL;
|
jj->last = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int fsm_journal_push_back (journal *jj, int event)
|
int fsm_journal_push_back (journal *jj, int event, char *message)
|
||||||
{
|
{
|
||||||
unit *new_unit = malloc (sizeof(unit));
|
unit *new_unit = malloc (sizeof(unit));
|
||||||
if (! new_unit) exit (EXIT_FAILURE);
|
if (! new_unit) exit (EXIT_FAILURE);
|
||||||
|
@ -84,7 +85,7 @@ int fsm_journal_push_back (journal *jj, int event)
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
int fsm_journal_push_front (journal *jj, int event)
|
int fsm_journal_push_front (journal *jj, int event, char *message)
|
||||||
{
|
{
|
||||||
unit *new_unit = malloc(sizeof(unit));
|
unit *new_unit = malloc(sizeof(unit));
|
||||||
if (! new_unit) exit (EXIT_FAILURE);
|
if (! new_unit) exit (EXIT_FAILURE);
|
||||||
|
@ -97,7 +98,7 @@ int fsm_journal_push_front (journal *jj, int event)
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
int fsm_journal_pop_back (journal *jj)
|
int fsm_journal_pop_back (journal *jj, char *message)
|
||||||
{
|
{
|
||||||
int event;
|
int event;
|
||||||
unit *tmp = jj->last;
|
unit *tmp = jj->last;
|
||||||
|
@ -110,7 +111,7 @@ int fsm_journal_pop_back (journal *jj)
|
||||||
return event; // retourne l'évènement retiré du journal.
|
return event; // retourne l'évènement retiré du journal.
|
||||||
}
|
}
|
||||||
|
|
||||||
int fsm_journal_pop_front (journal *jj)
|
int fsm_journal_pop_front (journal *jj, char *message)
|
||||||
{
|
{
|
||||||
int event;
|
int event;
|
||||||
unit *tmp = jj->first;
|
unit *tmp = jj->first;
|
||||||
|
@ -123,7 +124,7 @@ int fsm_journal_pop_front (journal *jj)
|
||||||
return event; // retourne l'évènement retiré du journal.
|
return event; // retourne l'évènement retiré du journal.
|
||||||
}
|
}
|
||||||
|
|
||||||
int fsm_journal_length (journal jj)
|
int fsm_journal_length (journal jj, char *message)
|
||||||
{
|
{
|
||||||
unit *a_unit = jj.first;
|
unit *a_unit = jj.first;
|
||||||
int nb = 0;
|
int nb = 0;
|
||||||
|
@ -132,10 +133,12 @@ int fsm_journal_length (journal jj)
|
||||||
nb ++;
|
nb ++;
|
||||||
a_unit = a_unit->next;
|
a_unit = a_unit->next;
|
||||||
}
|
}
|
||||||
|
printf (" fsm_journal_length (n = %d) %s\n", nb, "");
|
||||||
|
fsm_get_time (message);
|
||||||
return nb;
|
return nb;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fsm_journal_seek (journal jj, int event)
|
void fsm_journal_seek (journal jj, int event, char *message)
|
||||||
{
|
{
|
||||||
unit *a_unit = jj.first;
|
unit *a_unit = jj.first;
|
||||||
int nb = 0;
|
int nb = 0;
|
||||||
|
@ -146,12 +149,12 @@ void fsm_journal_seek (journal jj, int event)
|
||||||
}
|
}
|
||||||
if (nb > 0) printf ("> event %d found %d times in journal\n", event, nb);
|
if (nb > 0) printf ("> event %d found %d times in journal\n", event, nb);
|
||||||
else printf ("> event %d not found in journal\n", event);
|
else printf ("> event %d not found in journal\n", event);
|
||||||
fsm_get_time();
|
fsm_get_time (message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fsm_journal_view (journal jj)
|
void fsm_journal_view (journal jj, char *message)
|
||||||
{
|
{
|
||||||
printf ("view journal (n = %d)\n", fsm_journal_length (jj));
|
printf ("view journal (n = %d)\n", fsm_journal_length (jj, message));
|
||||||
unit *a_unit = jj.first;
|
unit *a_unit = jj.first;
|
||||||
while (a_unit)
|
while (a_unit)
|
||||||
{
|
{
|
||||||
|
@ -161,35 +164,35 @@ void fsm_journal_view (journal jj)
|
||||||
puts ("------");
|
puts ("------");
|
||||||
}
|
}
|
||||||
|
|
||||||
void fsm_journal_test()
|
void fsm_journal_test(char *message) // call: widget/dispatch
|
||||||
{
|
{
|
||||||
journal exemple;
|
journal exemple;
|
||||||
|
|
||||||
fsm_journal_init (&exemple);
|
fsm_journal_init (&exemple, message);
|
||||||
|
|
||||||
printf ("push front > %d\n", fsm_journal_push_front (&exemple, 10));
|
printf ("push front > %d\n", fsm_journal_push_front (&exemple, 10, ""));
|
||||||
printf ("push back > %d\n", fsm_journal_push_back (&exemple, 100));
|
printf ("push back > %d\n", fsm_journal_push_back (&exemple, 100, ""));
|
||||||
printf ("push back > %d\n", fsm_journal_push_back (&exemple, 1000));
|
printf ("push back > %d\n", fsm_journal_push_back (&exemple, 1000, ""));
|
||||||
printf ("push front > %d\n", fsm_journal_push_front (&exemple, 1));
|
printf ("push front > %d\n", fsm_journal_push_front (&exemple, 1, ""));
|
||||||
|
|
||||||
fsm_journal_view (exemple);
|
fsm_journal_view (exemple, "");
|
||||||
fsm_journal_seek (exemple, 2);
|
fsm_journal_seek (exemple, 2, "");
|
||||||
|
|
||||||
printf ("pop back > %d\n", fsm_journal_pop_back (&exemple));
|
printf ("pop back > %d\n", fsm_journal_pop_back (&exemple, ""));
|
||||||
printf ("pop back > %d\n", fsm_journal_pop_back (&exemple));
|
printf ("pop back > %d\n", fsm_journal_pop_back (&exemple, ""));
|
||||||
printf ("pop back > %d\n", fsm_journal_pop_back (&exemple));
|
printf ("pop back > %d\n", fsm_journal_pop_back (&exemple, ""));
|
||||||
printf ("push back > %d\n", fsm_journal_push_back (&exemple, 2));
|
printf ("push back > %d\n", fsm_journal_push_back (&exemple, 2, ""));
|
||||||
|
|
||||||
fsm_journal_view (exemple);
|
fsm_journal_view (exemple, "");
|
||||||
|
|
||||||
printf ("push back > %d\n", fsm_journal_push_back (&exemple, 3));
|
printf ("push back > %d\n", fsm_journal_push_back (&exemple, 3, ""));
|
||||||
printf ("push front > %d\n", fsm_journal_push_front (&exemple, 0));
|
printf ("push front > %d\n", fsm_journal_push_front (&exemple, 0, ""));
|
||||||
|
|
||||||
fsm_journal_view (exemple);
|
fsm_journal_view (exemple, "");
|
||||||
fsm_journal_seek (exemple, 2);
|
fsm_journal_seek (exemple, 2, "");
|
||||||
|
|
||||||
printf ("clear list\n"); fsm_journal_clear (&exemple);
|
printf ("clear list\n"); fsm_journal_clear (&exemple, "");
|
||||||
|
|
||||||
fsm_journal_view (exemple);
|
fsm_journal_view (exemple, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -132,9 +132,10 @@
|
||||||
|
|
||||||
int main (int argc, char **argv)
|
int main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
fsm_init (); // fsm = finite state machine (see : src/fsm/dispatch.c)
|
fsm_init (); // def: src/fsm/dispatch.c fsm = finite state machine
|
||||||
|
|
||||||
GtkApplication *app = gtk_application_new ("org.gem-graph", G_APPLICATION_DEFAULT_FLAGS);
|
GtkApplication *app = gtk_application_new ("org.gem-graph",
|
||||||
|
G_APPLICATION_DEFAULT_FLAGS);
|
||||||
g_signal_connect (app, "startup", G_CALLBACK (on_windows_startup), NULL);
|
g_signal_connect (app, "startup", G_CALLBACK (on_windows_startup), NULL);
|
||||||
g_signal_connect (app, "activate", G_CALLBACK (on_windows_activation), NULL);
|
g_signal_connect (app, "activate", G_CALLBACK (on_windows_activation), NULL);
|
||||||
// ! WARNING ! 'on_windows_activation()'
|
// ! WARNING ! 'on_windows_activation()'
|
||||||
|
|
|
@ -92,7 +92,7 @@ void on_windows_activation (GtkApplication *app)
|
||||||
widget_design_text_window (main_window, text_window);
|
widget_design_text_window (main_window, text_window);
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
util_trigger_test(); // then go to util/tests.c and change if (0) to if (1)...
|
util_trigger_test(); // then go to util/tests.c and change if (0) to if (1)...
|
||||||
fsm_journal_test();
|
if (0) fsm_journal_test("<> fsm_journal_test() in widget / dispatch");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue