00001 00002 /* 00003 *************************************************************************** 00004 * Copyright 2007,2008 Impinj, Inc. 00005 * 00006 * Licensed under the Apache License, Version 2.0 (the "License"); 00007 * you may not use this file except in compliance with the License. 00008 * You may obtain a copy of the License at 00009 * 00010 * http://www.apache.org/licenses/LICENSE-2.0 00011 * 00012 * Unless required by applicable law or agreed to in writing, software 00013 * distributed under the License is distributed on an "AS IS" BASIS, 00014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 * See the License for the specific language governing permissions and 00016 * limitations under the License. 00017 * 00018 *************************************************************************** 00019 */ 00020 00032 /* Forward type declarations */ 00033 struct LLRP_SConnection; 00034 typedef struct LLRP_SConnection LLRP_tSConnection; 00035 00036 00064 struct LLRP_SConnection 00065 { 00067 int fd; 00068 00070 const char * pConnectErrorStr; 00071 00073 const LLRP_tSTypeRegistry * pTypeRegistry; 00074 00077 LLRP_tSMessage * pInputQueue; 00078 00080 unsigned int nBufferSize; 00081 00083 struct 00084 { 00086 unsigned char * pBuffer; 00087 00089 unsigned int nBuffer; 00090 00094 int bFrameValid; 00095 00097 LLRP_tSFrameExtract FrameExtract; 00098 00100 LLRP_tSErrorDetails ErrorDetails; 00101 } Recv; 00102 00104 struct 00105 { 00107 unsigned char * pBuffer; 00108 00110 unsigned int nBuffer; 00111 00113 LLRP_tSErrorDetails ErrorDetails; 00114 } Send; 00115 }; 00116 00117 00118 00119 00120 /* 00121 * ltkc_connection.c 00122 */ 00123 extern LLRP_tSConnection * 00124 LLRP_Conn_construct ( 00125 const LLRP_tSTypeRegistry * pTypeRegistry, 00126 unsigned int nBufferSize); 00127 00128 extern void 00129 LLRP_Conn_destruct ( 00130 LLRP_tSConnection * pConn); 00131 00132 extern int 00133 LLRP_Conn_openConnectionToReader ( 00134 LLRP_tSConnection * pConn, 00135 const char * pReaderHostName); 00136 00137 extern int 00138 LLRP_Conn_closeConnectionToReader ( 00139 LLRP_tSConnection * pConn); 00140 00141 extern const char * 00142 LLRP_Conn_getConnectError ( 00143 LLRP_tSConnection * pConn); 00144 00145 extern LLRP_tSMessage * 00146 LLRP_Conn_transact ( 00147 LLRP_tSConnection * pConn, 00148 LLRP_tSMessage * pSendMessage, 00149 int nMaxMS); 00150 00151 extern const LLRP_tSErrorDetails * 00152 LLRP_Conn_getTransactError ( 00153 LLRP_tSConnection * pConn); 00154 00155 extern LLRP_tResultCode 00156 LLRP_Conn_sendMessage ( 00157 LLRP_tSConnection * pConn, 00158 LLRP_tSMessage * pMessage); 00159 00160 extern const LLRP_tSErrorDetails * 00161 LLRP_Conn_getSendError ( 00162 LLRP_tSConnection * pConn); 00163 00164 extern LLRP_tSMessage * 00165 LLRP_Conn_recvMessage ( 00166 LLRP_tSConnection * pConn, 00167 int nMaxMS); 00168 00169 extern LLRP_tSMessage * 00170 LLRP_Conn_recvResponse ( 00171 LLRP_tSConnection * pConn, 00172 int nMaxMS, 00173 const LLRP_tSTypeDescriptor * pResponseType, 00174 llrp_u32_t ResponseMessageID); 00175 00176 extern const LLRP_tSErrorDetails * 00177 LLRP_Conn_getRecvError ( 00178 LLRP_tSConnection * pConn); 00179