00001
00003 #ifndef _das2_packet_h_
00004 #define _das2_packet_h_
00005
00006 #include <das2/plane.h>
00007
00009 #define MAXPLANES 100
00010
00011
00115 typedef struct packet_descriptor {
00116 Descriptor base;
00117
00118 int id;
00119
00120 size_t uPlanes;
00121 PlaneDesc* planes[MAXPLANES];
00122
00123
00124
00125 bool bSentHdr;
00126
00134 void* pUser;
00135 } PktDesc;
00136
00137
00143 PktDesc* new_PktDesc(void);
00144
00156 PktDesc* new_PktDesc_xml(DasBuf* pBuf, Descriptor* pParent, int nPktId);
00157
00163 void del_PktDesc(PktDesc* pThis);
00164
00176 bool PktDesc_equalFormat(const PktDesc* pPd1, const PktDesc* pPd2);
00177
00186 int PktDesc_getId(const PktDesc* pThis);
00187
00194 size_t PktDesc_recBytes(const PktDesc* pThis);
00195
00196
00202 size_t PktDesc_getNPlanes(const PktDesc* pThis);
00203
00211 size_t PktDesc_getNPlanesOfType(const PktDesc* pThis, plane_type_t pt);
00212
00244 int PktDesc_addPlane(PktDesc* pThis, PlaneDesc* pPlane);
00245
00246
00259 ErrorCode PktDesc_copyPlanes(PktDesc* pThis, const PktDesc* pOther);
00260
00273 bool PktDesc_validate(PktDesc* pThis );
00274
00292 plane_type_t PktDesc_getPlaneType(const PktDesc* pThis, int iPlane);
00293
00294
00300 PlaneDesc* PktDesc_getPlane(PktDesc* pThis, int iplane);
00301
00307 PlaneDesc* PktDesc_getPlaneByName(PktDesc* pThis, const char* name);
00308
00326 int PktDesc_getPlaneNum(const PktDesc* pThis, plane_type_t ptype, int iRelIndex);
00327
00335 int PktDesc_getPlaneNumByName(
00336 PktDesc* pThis, const char* name, plane_type_t planeType
00337 );
00338
00342 PlaneDesc* PktDesc_getXPlane(PktDesc* pThis);
00343
00352 ErrorCode PktDesc_encode(const PktDesc* pThis, DasBuf* pBuf);
00353
00365 ErrorCode PktDesc_encodeData(const PktDesc* pThis, DasBuf* pBuf);
00366
00374 ErrorCode PktDesc_decodeData(PktDesc* pThis, DasBuf* pBuf);
00375
00389 ErrorCode PktDesc_setValue(PktDesc* pThis, size_t uPlane, size_t uItem, double val);
00390
00404 ErrorCode PktDesc_setValues(PktDesc* pThis, size_t uPlane, double* pVals);
00405
00406
00407 #endif