Changeset 5998
- Timestamp:
- Jan 15, 2006, 9:06:04 AM (21 years ago)
- Location:
- trunk/Ohana/src/relphot
- Files:
-
- 2 edited
-
include/relphot.h (modified) (3 diffs)
-
src/plotstuff.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/relphot/include/relphot.h
r4865 r5998 1 1 # include <ohana.h> 2 2 # include <dvo.h> 3 # include <kapa.h> 3 4 # include <signal.h> 4 5 … … 6 7 # define GRID_V2 7 8 9 # if (0) 8 10 typedef struct { 9 11 double xmin, xmax, ymin, ymax; … … 11 13 double lweight, size; 12 14 } Graphdata; 15 # endif 13 16 14 17 typedef struct { -
trunk/Ohana/src/relphot/src/plotstuff.c
r4796 r5998 21 21 int open_graph (int N) { 22 22 23 # ifdef ANSI 24 # define F_SETFL 4 25 # define O_NONBLOCK 0200000 26 # define AF_UNIX 1 27 # define SOCK_STREAM 1 28 #define ENOENT 2 /* No such file or directory */ 29 # endif /* ANSI */ 23 int fd; 30 24 31 int InitSocket, status, addreslen; 32 struct sockaddr_un Address; 33 char temp[100]; 34 char socket_name[100]; 35 36 active = N; 37 sprintf (socket_name, "/tmp/kapa%d", N); 38 sprintf (temp, "rm -f %s", socket_name); 39 system (temp); 40 41 strcpy (Address.sun_path, socket_name); 42 Address.sun_family = AF_UNIX; 43 InitSocket = socket (AF_UNIX, SOCK_STREAM, 0); 44 status = bind (InitSocket, (struct sockaddr *) &Address, sizeof (Address)); 45 status = listen (InitSocket, 1); 46 47 sprintf (temp, "kapa %s &", socket_name); 48 # ifndef DEBUG 49 system (temp); 50 # else 51 fprintf (stderr, "start kapa, press return: %s\n", temp); 52 fscanf (stdin, "%d", &i); 53 # endif 54 55 addreslen = sizeof (Address); 56 Xgraph[N] = accept (InitSocket, (struct sockaddr *) &Address, &addreslen); 25 Xgraph[N] = KiiOpen ("kapa", NULL); 57 26 if (Xgraph[N] < 0) { 58 27 fprintf (stderr, "error starting kapa\n"); 59 28 return (FALSE); 60 29 } 61 else { 62 return (TRUE); 63 } 64 30 return (TRUE); 65 31 } 66 32 67 33 void DonePlotting (Graphdata *graphmode, int N) { 68 char buffer[65], buffer2[65];69 34 70 35 if (Xgraph[N] == 0) return; 71 36 72 write (Xgraph[N], "DBOX", 4); 73 sprintf (buffer, "%f %f %f %f", graphmode[0].xmin, graphmode[0].xmax, graphmode[0].ymin, graphmode[0].ymax); 74 sprintf (buffer2, "NBYTES: %6d", (int) strlen (buffer)); 75 write (Xgraph[N], buffer2, 16); 76 write (Xgraph[N], buffer, strlen (buffer)); 77 78 sprintf (buffer, "%s %s %s", "2222", "2222", "2222"); 79 sprintf (buffer2, "NBYTES: %6d", (int) strlen (buffer)); 80 write (Xgraph[N], buffer2, 16); 81 write (Xgraph[N], buffer, strlen (buffer)); 37 KapaBox (Xgraph[N], graphmode); 38 return; 82 39 } 83 40 84 41 void JpegPlot (Graphdata *graphmode, int N, char *filename) { 85 42 86 char buffer[65];87 88 43 if (Xgraph[N] == 0) return; 89 44 90 write (Xgraph[N], "PNGF", 4); 91 sprintf (buffer, "LEN: %11d", (int) strlen (filename)); 92 write (Xgraph[N], buffer, 16); 93 write (Xgraph[N], filename, strlen (filename)); 94 read (Xgraph[N], buffer, 4); 45 KapaPNG (Xgraph[N], filename); 46 return; 95 47 } 96 48 97 49 void PSPlot (Graphdata *graphmode, int N, char *filename) { 98 50 99 char buffer[65];100 101 51 if (Xgraph[N] == 0) return; 102 52 103 write (Xgraph[N], "PSIT", 4); 104 sprintf (buffer, "LEN: %11d", (int) strlen (filename)); 105 write (Xgraph[N], buffer, 16); 106 write (Xgraph[N], filename, strlen (filename)); 107 read (Xgraph[N], buffer, 4); 53 KiiPS (Xgraph[N], FALSE, FALSE, filename); 54 return; 108 55 } 109 56 … … 113 60 char buffer[128], buffer2[128]; 114 61 115 active = N;116 62 if (Npts < 1) return; 117 63 118 64 if (Xgraph[N] < 1) if (!open_graph(N)) return; 119 65 120 /* test Xgraph[N], flush junk from pipe */ 121 signal (SIGPIPE, XDead); 122 fcntl (Xgraph[N], F_SETFL, O_NONBLOCK); 123 for (i = 0; (read (Xgraph[N], buffer, 64) > 0) && (i < 20); i++); 124 fcntl (Xgraph[N], F_SETFL, !O_NONBLOCK); 66 KapaClear (Xgraph[N], TRUE); 67 68 KiiSendCommand (Xgraph[N], 4, "PLOT"); 125 69 126 write (Xgraph[N], "ERAS", 4); 127 128 /* tell kapa to look for the incoming image */ 129 status = write (Xgraph[N], "PLOT", 4); 70 /* send Xgraph the plot details */ 71 KiiSendMessage (Xgraph[N], "%8d %8d %d %d %d %d %d %f %f", 72 Npts, graphmode[0].style, 73 graphmode[0].ptype, graphmode[0].ltype, 74 graphmode[0].etype, graphmode[0].ebar, graphmode[0].color, 75 graphmode[0].lweight, graphmode[0].size); 76 KiiSendMessage (Xgraph[N], "%g %g %g %g", 77 graphmode[0].xmin, graphmode[0].xmax, 78 graphmode[0].ymin, graphmode[0].ymax); 130 79 131 /* send Xgraph[N] the plot details */ 132 sprintf (buffer, "%8d %8d %d %d %d %d %f %f", 133 Npts, graphmode[0].style, 134 graphmode[0].ptype, graphmode[0].ltype, 135 graphmode[0].etype, graphmode[0].color, 136 graphmode[0].lweight, graphmode[0].size); 137 sprintf (buffer2, "NBYTES: %6d", (int) strlen (buffer)); 138 write (Xgraph[N], buffer2, 16); 139 write (Xgraph[N], buffer, strlen (buffer)); 140 141 sprintf (buffer, "%f %f %f %f", 142 graphmode[0].xmin, graphmode[0].xmax, 143 graphmode[0].ymin, graphmode[0].ymax); 144 sprintf (buffer2, "NBYTES: %6d", (int) strlen (buffer)); 145 write (Xgraph[N], buffer2, 16); 146 write (Xgraph[N], buffer, strlen (buffer)); 147 80 return; 148 81 } 149 82 150 83 void PlotLabel (char *string, int N) { 151 84 152 char buffer[32];153 154 85 if (Xgraph[N] == 0) return; 155 86 156 write (Xgraph[N], "LABL", 4); 157 sprintf (buffer, " %6d %6d", (int) strlen (string), 2); 158 write (Xgraph[N], buffer, 16); 159 write (Xgraph[N], string, strlen (string)); 87 KapaSendLabel (Xgraph[N], string, 2); 160 88 } 161 89 … … 165 93 int i, Nbytes; 166 94 167 active = N;168 95 if (Npts < 1) return; 169 96 … … 176 103 write (Xgraph[N], values, Nbytes); 177 104 free (values); 178 105 return; 179 106 } 180 107
Note:
See TracChangeset
for help on using the changeset viewer.
