IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 11, 2005, 8:11:57 AM (21 years ago)
Author:
eugene
Message:

moving IOBuffer and CommOps to libohana, adding AddstarClientOptions and Stars to libautocode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libautocode/def/autocode.c

    r4864 r5273  
    7373  return (TRUE);
    7474}
     75
     76int Send_$STRUCT (int device, $STRUCT *data, int Ndata, int copy) {
     77
     78  int Nbytes;
     79  $STRUCT *tmpdata;
     80
     81  Nbytes = Ndata * sizeof ($STRUCT);
     82
     83  if (copy) {
     84    ALLOCATE (tmpdata, $STRUCT, Ndata);
     85    memcpy (tmpdata, data, Nbytes);
     86  } else {
     87    tmpdata = data;
     88  }
     89
     90  fits_convert_$STRUCT (tmpdata, sizeof ($STRUCT), Ndata);
     91
     92  SendCommand (device, 16, "NVALUE: %6d", Ndata);
     93  SendCommand (device, 16, "NBYTES: %6d", Nbytes);
     94  write (device, tmpdata, Nbytes);
     95 
     96  /* perform handshaking? */
     97
     98  return (TRUE);
     99}
     100
     101int Recv_$STRUCT (int device, $STRUCT **data, int *Ndata) {
     102
     103  int ndata;
     104  IOBuffer message;
     105  $STRUCT *tmpdata;
     106
     107  ExpectCommand (device, 16, 1.0, &message);
     108  sscanf (message.buffer, "%*s %d", &ndata);
     109  FreeIOBuffer (&message);
     110 
     111  /* what is reasonable for timeout? */
     112  ExpectMessage (device, 1.0, &message);
     113 
     114  tmpdata = ($STRUCT *) message.buffer;
     115  fits_convert_$STRUCT (tmpdata, sizeof ($STRUCT), *Ndata);
     116
     117  /* double-check data length? */
     118  /* perform handshaking? */
     119
     120  *Ndata = ndata;
     121  *data = tmpdata;
     122
     123  return (TRUE);
     124}
Note: See TracChangeset for help on using the changeset viewer.