Index: trunk/Ohana/src/libautocode/Makefile
===================================================================
--- trunk/Ohana/src/libautocode/Makefile	(revision 5242)
+++ trunk/Ohana/src/libautocode/Makefile	(revision 5273)
@@ -48,5 +48,7 @@
 $(SRC)/smpdata.$(ARCH).o \
 $(SRC)/spectrum.$(ARCH).o \
-$(SRC)/spectrum-ascii.$(ARCH).o
+$(SRC)/spectrum-ascii.$(ARCH).o \
+$(SRC)/Stars.$(ARCH).o \
+$(SRC)/AddstarClientOptions.$(ARCH).o
 
 LIBINC = \
@@ -76,5 +78,7 @@
 $(INC)/smpdata.h \
 $(INC)/spectrum.h \
-$(INC)/spectrum-ascii.h
+$(INC)/spectrum-ascii.h \
+$(INC)/Stars.h \
+$(INC)/AddstarClientOptions.h
 
 objects: $(LIBOBJ)
@@ -82,4 +86,6 @@
 install: $(DESTINC)/autocode.h $(DESTLIB)/libautocode.a
 	@echo done install
+
+test: $(DESTINC)/autocode.h
 
 autocode: $(INC)/autocode.h $(LIB)/libautocode.$(ARCH).a 
Index: trunk/Ohana/src/libautocode/def/AddstarClientOptions.d
===================================================================
--- trunk/Ohana/src/libautocode/def/AddstarClientOptions.d	(revision 5273)
+++ trunk/Ohana/src/libautocode/def/AddstarClientOptions.d	(revision 5273)
@@ -0,0 +1,18 @@
+STRUCT  AddstarClientOptions
+EXTNAME OPTIONS
+TYPE    BINTABLE
+SIZE    52
+
+FIELD  	  mode,             MODE,                 int,            data source mode
+FIELD  	  existing_regions, EXISTING_REGIONS,     int,            use only existing regions
+FIELD  	  only_match,       ONLY_MATCH,           int,            only update matched stars
+FIELD  	  skip_missed,      SKIP_MISSED,          int,            .
+FIELD  	  replace,          REPLACE,              int,            .
+FIELD  	  closest,          CLOSEST,              int,            .
+FIELD  	  nosort,           NOSORT,               int,            .
+FIELD  	  update,           UPDATE,               int,            .
+FIELD  	  only_images,      ONLY_IMAGES,          int,            .
+FIELD  	  calibrate,        CALIBRATE,            int,            .
+FIELD  	  mosaic,           MOSAIC,               int,            does this image require a mosaic coordinate system?
+FIELD  	  photcode,         PHOTCODE,             int,     	  photocode of input data
+FIELD  	  timeref,          TIMEREF,              e_time,  	  time/date of input data (REFLIST only?)
Index: trunk/Ohana/src/libautocode/def/Stars.d
===================================================================
--- trunk/Ohana/src/libautocode/def/Stars.d	(revision 5273)
+++ trunk/Ohana/src/libautocode/def/Stars.d	(revision 5273)
@@ -0,0 +1,22 @@
+STRUCT  Stars
+EXTNAME STARS
+TYPE    BINTABLE
+SIZE    112
+
+FIELD     X,                X,            	  double,         x coordinate on image
+FIELD     Y,                Y,            	  double,         y coordinate on image
+FIELD     R,                R,            	  double,         ra coordinate on sky
+FIELD     D,                D,            	  double,         dec coordinate on sky
+FIELD     M,                M,            	  double,         instrumental mag
+FIELD     dM,               DM,           	  double,         error on mag
+FIELD     sky,              SKY,          	  double,         local sky counts
+FIELD     fx,               FX,           	  double,         object FWHM x-dir
+FIELD     fy,               FY,           	  double,         object FWHM y-dir
+FIELD     df,               DF,           	  double,         object position angle
+FIELD     Mgal,             MGAL,         	  double,         alternative (galaxy) magnitude
+FIELD     Map,              MAP,          	  double,         alternative (aperture) magnitude
+FIELD     found,            FOUND,        	  int,            found in database catalog?
+FIELD     t,                T,            	  e_time,         date/time of exposure (UNIX)
+FIELD     code,             CODE,         	  short,          .
+FIELD     dophot,           DOPHOT,       	  char,           dophot type code
+FIELD     dummy,            DUMMY,         	  char[5],        .
Index: trunk/Ohana/src/libautocode/def/autocode.c
===================================================================
--- trunk/Ohana/src/libautocode/def/autocode.c	(revision 5242)
+++ trunk/Ohana/src/libautocode/def/autocode.c	(revision 5273)
@@ -73,2 +73,52 @@
   return (TRUE);
 }
+
+int Send_$STRUCT (int device, $STRUCT *data, int Ndata, int copy) {
+
+  int Nbytes;
+  $STRUCT *tmpdata;
+
+  Nbytes = Ndata * sizeof ($STRUCT);
+
+  if (copy) {
+    ALLOCATE (tmpdata, $STRUCT, Ndata);
+    memcpy (tmpdata, data, Nbytes);
+  } else {
+    tmpdata = data;
+  }
+
+  fits_convert_$STRUCT (tmpdata, sizeof ($STRUCT), Ndata);
+
+  SendCommand (device, 16, "NVALUE: %6d", Ndata);
+  SendCommand (device, 16, "NBYTES: %6d", Nbytes);
+  write (device, tmpdata, Nbytes);
+  
+  /* perform handshaking? */
+
+  return (TRUE);
+}
+
+int Recv_$STRUCT (int device, $STRUCT **data, int *Ndata) {
+
+  int ndata;
+  IOBuffer message;
+  $STRUCT *tmpdata;
+
+  ExpectCommand (device, 16, 1.0, &message);
+  sscanf (message.buffer, "%*s %d", &ndata);
+  FreeIOBuffer (&message);
+  
+  /* what is reasonable for timeout? */
+  ExpectMessage (device, 1.0, &message);
+  
+  tmpdata = ($STRUCT *) message.buffer;
+  fits_convert_$STRUCT (tmpdata, sizeof ($STRUCT), *Ndata);
+
+  /* double-check data length? */
+  /* perform handshaking? */
+
+  *Ndata = ndata;
+  *data = tmpdata;
+
+  return (TRUE);
+}
Index: trunk/Ohana/src/libautocode/def/autocode.h
===================================================================
--- trunk/Ohana/src/libautocode/def/autocode.h	(revision 5242)
+++ trunk/Ohana/src/libautocode/def/autocode.h	(revision 5273)
@@ -6,2 +6,4 @@
 int      fits_table_mkheader_$STRUCT (Header *header);
 int      fits_convert_$STRUCT ($STRUCT *data, int size, int nitems);
+int Send_$STRUCT (int device, $STRUCT *data, int Ndata, int copy);
+int Recv_$STRUCT (int device, $STRUCT **data, int *Ndata);
