annotate Renderer/Test/aquarium.cc @ 863:c26aa4e52258

get serial id
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Jun 2010 10:44:58 +0900
parents e39f320c4411
children 58b4fb8ad77c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
858
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdio.h>
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <string.h>
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include "SceneGraphRoot.h"
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "lindaapi.h"
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #include "aquarium.h"
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
863
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
7 #define GET_SERIAL_ID 65535
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
8
859
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
9 linda_t aquarium::linda_addr = { "localhost", 10000 };
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
10 int aquarium::linda;
863
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
11 int aquarium::serial_id;
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
12
859
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
13 const char *usr_help_str = "Usage: ./aquarium -linda LINDA_SERVER_NAME\n";
858
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 void TMend(TaskManager *manager);
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 extern void task_initialize();
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 extern int init(TaskManager *manager, int argc, char *argv[]);
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 extern Application *
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 application() {
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 return new aquarium();
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 }
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
859
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
23 void init_network() {
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
24 aquarium::linda_connect();
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
25
863
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
26
859
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
27 }
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
28
858
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 MainLoopPtr
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 aquarium::init(Viewer *sgroot, int screen_w, int screen_h)
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 {
859
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
32 init_network();
858
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 return sgroot;
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 }
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
859
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
36 void
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
37 aquarium::linda_connect() {
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
38 init_linda(); // セレクタの初期化
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
39 linda = open_linda_java(linda_addr.hostname, linda_addr.port);
863
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
40 // serial_id の取得
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
41 int seq = psx_in(linda, GET_SERIAL_ID);
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
42 unsigned char *data = NULL;
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
43 do {
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
44 psx_sync_n();
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
45 data = psx_reply(seq);
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
46 } while (data == NULL);
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
47 serial_id = atoi((char *)data + LINDA_HEADER_SIZE);
c26aa4e52258 get serial id
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 859
diff changeset
48 printf("Get serial_id: %d\n", serial_id);
859
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
49 }
858
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 int
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 TMmain(TaskManager *manager, int argc, char *argv[])
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 {
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 task_initialize();
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 manager->set_TMend(TMend);
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 for (int i = 0; i < argc; i++) {
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 if (strcmp(argv[i],"-linda") == 0 && i + 1 <= argc) {
859
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
59 aquarium::linda_addr.hostname = argv[i+1];
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
60 } else if (strcmp(argv[i],"-port") == 0 && i + 1 <= argc) {
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
61 aquarium::linda_addr.port = atoi(argv[i+1]);
e39f320c4411 linda connection init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 858
diff changeset
62 }
858
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 }
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 return init(manager, argc, argv);
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 }
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 void
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 TMend(TaskManager *manager)
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 {
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 printf("aquarium end\n");
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 }
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
fdc24fbeaedc Renderer/Test/aquarium init
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 /* end */