Changeset 5273 for trunk/Ohana/src/libautocode/def/autocode.c
- Timestamp:
- Oct 11, 2005, 8:11:57 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/libautocode/def/autocode.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libautocode/def/autocode.c
r4864 r5273 73 73 return (TRUE); 74 74 } 75 76 int 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 101 int 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.
