00001 #ifndef __DECLARATIONS_H_INCLUDED__
00002 #define __DECLARATIONS_H_INCLUDED__
00003
00004 #include "PlatformSW.h"
00005
00006
00007
00009 #define NQ_MAX_PACKET_SIZE 1472
00010
00012 #define NQ_DEFAULT_PACKETQUEUE_SIZE 10
00013
00014
00015
00016
00023
00028
00029 #define ERR_PL_NONE 0
00031 #define ERR_PL_LOCK 1
00033 #define ERR_PL_FULL 2
00035 #define ERR_PL_NOTFOUND 3
00037 #define ERR_PL_INDEXNOTSET 4
00038
00042
00047
00048 #define ERR_PQ_NONE 0
00050 #define ERR_PQ_LOCK 1
00052 #define ERR_PQ_FULL 2
00054 #define ERR_PQ_NOTFOUND 3
00056 #define ERR_PQ_BADPARAM 4
00057
00058
00059
00060
00062
00063
00065 #define ERR_RWQ_NONE 0
00067 #define ERR_RWQ_LOCK 1
00069 #define ERR_RWQ_FULL 2
00071 #define ERR_RWQ_NOTFOUND 3
00072
00073
00074
00075
00076 #define ERR_NQ_BASE 0
00077 #define ERR_NQ_NUMERRORS 28
00078
00079
00080
00081
00083 #define ERR_NQ_NONE (ERR_NQ_BASE+0)
00085 #define ERR_NQ_ALREADY (ERR_NQ_BASE+1)
00087 #define ERR_NQ_BADPOOL (ERR_NQ_BASE+2)
00089 #define ERR_NQ_BADIP (ERR_NQ_BASE+3)
00091 #define ERR_NQ_SOCREATE (ERR_NQ_BASE+4)
00093 #define ERR_NQ_SOBIND (ERR_NQ_BASE+5)
00095 #define ERR_NQ_ADDPEER (ERR_NQ_BASE+6)
00097 #define ERR_NQ_SONONBLOCK (ERR_NQ_BASE+7)
00099 #define ERR_NQ_SEMCREATESEND (ERR_NQ_BASE+8)
00101 #define ERR_NQ_SEMCREATERECV (ERR_NQ_BASE+9)
00103 #define ERR_NQ_THRDCREATESEND (ERR_NQ_BASE+10)
00105 #define ERR_NQ_THRDCREATERECV (ERR_NQ_BASE+11)
00107 #define ERR_NQ_THRDCLEANUP (ERR_NQ_BASE+12)
00109 #define ERR_NQ_SOCLOSE (ERR_NQ_BASE+13)
00111 #define ERR_NQ_SEMCLEANUP (ERR_NQ_BASE+14)
00113 #define ERR_NQ_MSGINVALID (ERR_NQ_BASE+15)
00115 #define ERR_NQ_SENDQUEUEFULL (ERR_NQ_BASE+16)
00117 #define ERR_NQ_SENDQUEUE (ERR_NQ_BASE+17)
00119 #define ERR_NQ_SEMNOTIFY (ERR_NQ_BASE+18)
00121 #define ERR_NQ_EMPTY (ERR_NQ_BASE+19)
00123 #define ERR_NQ_RECVQUEUE (ERR_NQ_BASE+20)
00125 #define ERR_NQ_TIMEOUT (ERR_NQ_BASE+21)
00127 #define ERR_NQ_SEMCREATE (ERR_NQ_BASE+22)
00129 #define ERR_NQ_RESPTROUBLE (ERR_NQ_BASE+23)
00131 #define ERR_NQ_SEMDELETE (ERR_NQ_BASE+24)
00133 #define ERR_NQ_INVALIDPEER (ERR_NQ_BASE+25)
00135 #define ERR_NQ_ACKQUEUE (ERR_NQ_BASE+26)
00137 #define ERR_NQ_RESPWAITQUEUE (ERR_NQ_BASE+27)
00138
00142
00143
00148
00149
00154 #define NQ_PT_NONE 0x00
00155 #define NQ_PT_REQUEST 0x01
00156 #define NQ_PT_RESPONSE 0x02
00157 #define NQ_PT_TELEGRAM 0x03
00158
00165
00166
00167 #define NQ_LT_NONE 0x00
00169 #define NQ_LT_GET 0x01
00171 #define NQ_LT_PUT 0x02
00173 #define NQ_LT_CALL 0x03
00175 #define NQ_LT_TRAP 0x04
00177 #define NQ_LT_UPDATE 0x05
00178
00180
00181 #define NQ_PACKET_SPECIAL_BITS_VALID_MASK 0xFFFC
00182 #define NQ_PACKET_SPECIAL_BITS_DEFAULT_VALUE 0x0000
00183 #define NQ_PACKET_BIT_WANT_ACK 0x0002
00184 #define NQ_PACKET_BIT_IS_ACKPACKET 0x0001
00185
00186 #define NQ_MIN_VARTYPE 1
00187 #define NQ_MAX_VARTYPE (NQ_VARTYPE_TEXT)
00188
00197
00198 #define NQ_VARTYPE_BINARY (NQ_MIN_VARTYPE)
00200 #define NQ_VARTYPE_FLOAT (NQ_MIN_VARTYPE+1)
00202 #define NQ_VARTYPE_DOUBLE (NQ_MIN_VARTYPE+2)
00204 #define NQ_VARTYPE_INT8 (NQ_MIN_VARTYPE+3)
00206 #define NQ_VARTYPE_UINT8 (NQ_MIN_VARTYPE+4)
00208 #define NQ_VARTYPE_INT16 (NQ_MIN_VARTYPE+5)
00210 #define NQ_VARTYPE_UINT16 (NQ_MIN_VARTYPE+6)
00212 #define NQ_VARTYPE_INT32 (NQ_MIN_VARTYPE+7)
00214 #define NQ_VARTYPE_UINT32 (NQ_MIN_VARTYPE+8)
00216 #define NQ_VARTYPE_TEXT (NQ_MIN_VARTYPE+9)
00217
00219 #define NQ_MAX_PACKETPAYLOAD_SIZE (NQ_MAX_PACKET_SIZE-NQ_SIZE_MESSAGE_FILL_STUFF-NQ_SIZE_PACKET_FILL_STUFF)
00220
00222 #define NQ_MIN_SIZE_DATA (16)
00223
00225 #define NQ_MIN_SIZE_DATA_NET (12)
00226
00229 #define NQ_MAX_NUM_ENTRIES (NQ_MAX_PACKETPAYLOAD_SIZE / NQ_MIN_SIZE_DATA_NET)
00230
00232 #define NQ_SIZE_ADD_LINKEDLIST (4*NQ_MAX_NUM_ENTRIES)
00233
00234
00235 #define NQ_SENDQUEUE_SIZE 10
00236 #define NQ_RECVQUEUE_SIZE 10
00237 #define NQ_ACKQUEUE_SIZE 10
00238 #define NQ_NUM_CNQMESSAGEBUFFERS 40
00239
00240 #define NQ_SEND_SEMAPHORE_TIMEOUT_MS 500
00241 #define NQ_SEND_SELECT_TIMEOUT_MS 200
00242 #define NQ_RECV_SELECT_TIMEOUT_MS 100
00243
00244 #define NQ_SEND_THREAD_PRIORITY SW_THREAD_PRIORITY_BELOW_NORMAL
00245
00246 #define NQ_RECV_THREAD_PRIORITY SW_THREAD_PRIORITY_NORMAL
00247
00248
00249 #define NQ_SIZE_MESSAGE_FILL_STUFF 16
00250
00251
00252 #define NQ_SIZE_PACKET_FILL_STUFF 10
00253
00254
00255 #define NQ_PACKET_MAGIC_TOP 0xA51C
00256 #define NQ_PACKET_MAGIC_TAIL 0xC15A
00257 #define NQ_PACKET_VERSIONS_SUPPORTED 0x0001
00258
00259 #define NQ_NO_SEMAPHORE NULL
00260
00261
00262 #define NQ_RESPONSEWAITQUEUE_MAX_SIZE 10
00263
00264
00265 #define NQ_PEERLIST_MAX_SIZE 10
00266
00269
00270
00271 typedef struct
00272 {
00273 INT32 tv_sec;
00274 INT32 tv_usec;
00275 } NQ_TIMEVAL;
00276
00277
00279 typedef struct
00280 {
00286 UINT32 RcvInvalidPeerAddress;
00287
00289 UINT32 RcvSocketErrors;
00290 UINT32 RcvNoBuffersLeft;
00292 UINT32 RcvNoDataReceived;
00294 UINT32 RcvSelectErrors;
00295
00297 UINT32 RcvDroppedPacketsBadChecksum;
00299 UINT32 RcvNumTelegrams;
00301 UINT32 RcvNumRequests;
00303 UINT32 RcvNumResponses;
00304 UINT32 RcvNumPacketsWantAck;
00305 UINT32 RcvAckPackets;
00309 UINT32 RcvPacketsMissedByIndex;
00310
00313 UINT32 RcvResponsesWithSemaphore;
00314
00316 UINT32 RcvResponsesWithoutSemaphore;
00317
00319 UINT32 RcvDroppedPacketsQueueFull;
00321 UINT32 RcvQueueErrors;
00322
00330 UINT32 SntTelegrams;
00331 UINT32 SntRequests;
00332 UINT32 SntResponses;
00333 UINT32 SntAckPackets;
00334
00335 UINT32 SntSocketErrors;
00336 UINT32 SntEncodingErrors;
00337
00338 UINT32 SntQueueErrors;
00339 UINT32 SntQueueFull;
00342 UINT32 BlockingCallResponseTimeout;
00343 UINT32 BlockingCallResponseReceivedOnTime;
00344 UINT32 BlockingCallRequestSent;
00345
00346 UINT32 AckTimeout;
00347
00349 NQ_TIMEVAL StartTime;
00350
00351 } NQ_STATISTICS;
00352
00354 typedef struct
00355 {
00356 UINT16 requestid;
00357 HANDLE semaphore_to_signal;
00358 } NQ_WAITFORRESPONSE;
00359
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00395
00396
00397
00399
00400
00401
00402
00403
00404
00405 #endif //__DECLARATIONS_H_INCLUDED__