Я создал программу, позволяющую управлять датчиками и исполнительными механизмами на языке Си.И теперь я пытаюсь создать пользовательский интерфейс для программы.
Итак, я создал программу, как показано ниже, псевдокод.
void on_main_window_destroy()
{
gtk_main_quit();
}
int create_main_window()
{
gtk_widget * main_window;
....
gtk_widget_show_all(main_window);
}
int get_gtk_user_interface();
{
if(login == false)
create_new_login_dialog();
if(login == true)
create_main_window();
return 0;
}
main(){
get_gtk_user_interface();
while(true){
run_sensor_thread();
run_actuator_thread();
run_network_thread();
....
while(gtk_events_pending())
gtk_main_iteration();
}
}
Однако она вводится вбесконечный цикл в соответствии с этим кодом, когда он входит в create_main_windows();
.Таким образом, от датчика к сети потоки не работают вообще.
Что я действительно хочу, так это то, что пользовательский интерфейс обрабатывается так же, как другие потоки без входа в бесконечный цикл.Таким образом, соответствующая ему функциональность обрабатывается, только когда происходит событие кнопки.