Statistics
| Revision:

root / branches / simulator / projects / simulator / simulator / core / main.c @ 1045

History | View | Annotate | Download (1.4 KB)

1 988 bcoltin
/**
2 988 bcoltin
 * @file main.c
3 988 bcoltin
 * @author Colony Project
4 988 bcoltin
 * @brief Initializes the program.
5 988 bcoltin
 *
6 988 bcoltin
 * Contains only the main function, which
7 988 bcoltin
 * initializes the program.
8 988 bcoltin
 **/
9 988 bcoltin
10 981 bneuman
#include <stdlib.h>
11 988 bcoltin
#include <stdio.h>
12 1006 bcoltin
#include <gtk/gtk.h>
13 1006 bcoltin
#include <glib.h>
14 1006 bcoltin
#include <signal.h>
15 973 bcoltin
16 988 bcoltin
#include "gtk_gui.h"
17 988 bcoltin
#include "robot.h"
18 1045 bpoole
#include "world.h"
19 981 bneuman
20 973 bcoltin
int main(int argc, char** argv)
21 973 bcoltin
{
22 988 bcoltin
        if (robots_initialize())
23 988 bcoltin
                return -1;
24 981 bneuman
25 988 bcoltin
        if(argc<=1){
26 988 bcoltin
                printf("Usage: simulator <robot execetuable>\n");
27 988 bcoltin
                exit(-1);
28 988 bcoltin
        }
29 1006 bcoltin
30 1045 bpoole
        load_world("../../test/world.txt", 100);
31 1039 bneuman
32 1045 bpoole
33 988 bcoltin
        robot_create(argv[1]);
34 1039 bneuman
        robot_create(argv[1]);
35 1039 bneuman
        robot_create(argv[1]);
36 1039 bneuman
        robot_create(argv[1]);
37 1039 bneuman
        robot_create(argv[1]);
38 1039 bneuman
        robot_create(argv[1]);
39 1039 bneuman
        robot_create(argv[1]);
40 1039 bneuman
        robot_create(argv[1]);
41 1039 bneuman
        robot_create(argv[1]);
42 1039 bneuman
        robot_create(argv[1]);
43 1039 bneuman
        robot_create(argv[1]);
44 1039 bneuman
        robot_create(argv[1]);
45 1039 bneuman
        robot_create(argv[1]);
46 1039 bneuman
        robot_create(argv[1]);
47 1039 bneuman
        robot_create(argv[1]);
48 1039 bneuman
        robot_create(argv[1]);
49 1039 bneuman
        robot_create(argv[1]);
50 1039 bneuman
        robot_create(argv[1]);
51 1039 bneuman
        robot_create(argv[1]);
52 1045 bpoole
        robot_create(argv[1]);
53 981 bneuman
54 1039 bneuman
55 1006 bcoltin
        sigset_t set;
56 1006 bcoltin
        //TODO: errors
57 1006 bcoltin
        sigemptyset(&set);
58 1006 bcoltin
        sigaddset(&set, SIGCHLD);
59 1006 bcoltin
        pthread_sigmask(SIG_BLOCK, &set, NULL);
60 1006 bcoltin
        g_thread_init(NULL);
61 1006 bcoltin
        gdk_threads_init();
62 1006 bcoltin
        g_thread_create(robot_event_loop, NULL, TRUE, NULL);
63 1006 bcoltin
64 1006 bcoltin
        //TODO: better thread to put this in?
65 1006 bcoltin
        sigemptyset(&set);
66 1006 bcoltin
        sigaddset(&set, SIGCHLD);
67 1006 bcoltin
        pthread_sigmask(SIG_UNBLOCK, &set, NULL);
68 1006 bcoltin
69 988 bcoltin
        gtk_gui_run(argc, argv);
70 986 bneuman
71 988 bcoltin
        return 0;
72 973 bcoltin
}