00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef CHIPCARD_CLIENT_CLIENTLCC_H
00015 #define CHIPCARD_CLIENT_CLIENTLCC_H
00016
00017 #define LC_CLIENT_LCC_NAME "lcc"
00018
00019
00020 #include <chipcard/client/client.h>
00021
00022
00027
00028
00029 typedef int (*LC_CLIENTLCC_HANDLE_REQUEST_FN)(LC_CLIENT *cl,
00030 uint32_t rid,
00031 const char *name,
00032 GWEN_DB_NODE *dbRequest);
00033
00034
00035 CHIPCARD_API
00036 LC_CLIENT *LC_ClientLcc_new(const char *programName,
00037 const char *programVersion);
00038
00039
00040
00041 CHIPCARD_API
00042 int LC_ClientLcc_DeleteRequest(LC_CLIENT *cl, uint32_t rqid);
00043
00044
00045
00046
00047 CHIPCARD_API
00048 LC_CARD *LC_ClientLcc_PeekNextCard(LC_CLIENT *cl);
00049
00050 CHIPCARD_API
00051 LC_CARD *LC_ClientLcc_GetNextCard(LC_CLIENT *cl);
00052
00053 CHIPCARD_API
00054 LC_CLIENT_RESULT LC_ClientLcc_WaitForNextCard(LC_CLIENT *cl,
00055 LC_CARD **pCard,
00056 int timeout);
00057
00058
00059
00060
00061
00062
00064 CHIPCARD_API
00065 uint32_t LC_ClientLcc_SendStartWait(LC_CLIENT *cl,
00066 uint32_t rflags,
00067 uint32_t rmask);
00068
00069 CHIPCARD_API
00070 LC_CLIENT_RESULT
00071 LC_ClientLcc_CheckStartWait(LC_CLIENT *cl,
00072 uint32_t rid);
00073
00074 CHIPCARD_API
00075 LC_CLIENT_RESULT LC_ClientLcc_StartWait(LC_CLIENT *cl,
00076 uint32_t rflags,
00077 uint32_t rmask);
00083
00084
00085
00087 CHIPCARD_API
00088 uint32_t LC_ClientLcc_SendStopWait(LC_CLIENT *cl);
00089
00090
00091 CHIPCARD_API
00092 LC_CLIENT_RESULT
00093 LC_ClientLcc_CheckStopWait(LC_CLIENT *cl,
00094 uint32_t rid);
00095
00096 CHIPCARD_API
00097 LC_CLIENT_RESULT LC_ClientLcc_StopWait(LC_CLIENT *cl);
00102
00103
00104
00106 CHIPCARD_API
00107 uint32_t LC_ClientLcc_SendTakeCard(LC_CLIENT *cl, LC_CARD *cd);
00108
00109 CHIPCARD_API
00110 LC_CLIENT_RESULT
00111 LC_ClientLcc_CheckTakeCard(LC_CLIENT *cl,
00112 uint32_t rid);
00113
00114 CHIPCARD_API
00115 LC_CLIENT_RESULT LC_ClientLcc_TakeCard(LC_CLIENT *cl, LC_CARD *cd);
00120
00121
00122
00124 CHIPCARD_API
00125 uint32_t LC_ClientLcc_SendReleaseCard(LC_CLIENT *cl, LC_CARD *cd);
00126
00127 CHIPCARD_API
00128 LC_CLIENT_RESULT
00129 LC_ClientLcc_CheckReleaseCard(LC_CLIENT *cl,
00130 uint32_t rid);
00131
00132 CHIPCARD_API
00133 LC_CLIENT_RESULT LC_ClientLcc_ReleaseCard(LC_CLIENT *cl, LC_CARD *cd);
00138
00139
00140
00143 CHIPCARD_API
00144 uint32_t LC_ClientLcc_SendCommandCard(LC_CLIENT *cl,
00145 LC_CARD *cd,
00146 const char *apdu,
00147 unsigned int len,
00148 LC_CLIENT_CMDTARGET t);
00149
00150 CHIPCARD_API
00151 LC_CLIENT_RESULT
00152 LC_ClientLcc_CheckCommandCard(LC_CLIENT *cl,
00153 uint32_t rid,
00154 GWEN_BUFFER *data);
00155
00156 CHIPCARD_API
00157 LC_CLIENT_RESULT LC_ClientLcc_CommandCard(LC_CLIENT *cl,
00158 LC_CARD *card,
00159 const char *apdu,
00160 unsigned int len,
00161 GWEN_BUFFER *rbuf,
00162 LC_CLIENT_CMDTARGET t,
00163 int timeout);
00168
00169
00170
00173 CHIPCARD_API
00174 uint32_t LC_ClientLcc_SendSetNotify(LC_CLIENT *cl,
00175 uint32_t flags);
00176
00177 CHIPCARD_API
00178 LC_CLIENT_RESULT LC_ClientLcc_CheckSetNotify(LC_CLIENT *cl,
00179 uint32_t rid);
00180
00181 CHIPCARD_API
00182 LC_CLIENT_RESULT LC_ClientLcc_SetNotify(LC_CLIENT *cl,
00183 uint32_t flags);
00184
00185
00186
00196
00197 CHIPCARD_API
00198 uint32_t LC_ClientLcc_SendLockReader(LC_CLIENT *cl,
00199 uint32_t serverId,
00200 uint32_t readerId);
00201
00202 CHIPCARD_API
00203 LC_CLIENT_RESULT LC_ClientLcc_CheckLockReader(LC_CLIENT *cl,
00204 uint32_t rid,
00205 uint32_t *lockId);
00206
00207 CHIPCARD_API
00208 LC_CLIENT_RESULT LC_ClientLcc_LockReader(LC_CLIENT *cl,
00209 uint32_t serverId,
00210 uint32_t readerId,
00211 uint32_t *lockId);
00212
00213
00214 CHIPCARD_API
00215 uint32_t LC_ClientLcc_SendUnlockReader(LC_CLIENT *cl,
00216 uint32_t serverId,
00217 uint32_t readerId,
00218 uint32_t lockId);
00219
00220 CHIPCARD_API
00221 LC_CLIENT_RESULT LC_ClientLcc_CheckUnlockReader(LC_CLIENT *cl,
00222 uint32_t rid);
00223
00224 CHIPCARD_API
00225 LC_CLIENT_RESULT LC_ClientLcc_UnlockReader(LC_CLIENT *cl,
00226 uint32_t serverId,
00227 uint32_t readerId,
00228 uint32_t lockId);
00229
00230
00231 CHIPCARD_API
00232 uint32_t LC_ClientLcc_SendReaderCommand(LC_CLIENT *cl,
00233 uint32_t serverId,
00234 uint32_t readerId,
00235 uint32_t lockId,
00236 GWEN_DB_NODE *dbData);
00237
00238 CHIPCARD_API
00239 LC_CLIENT_RESULT LC_ClientLcc_CheckReaderCommand(LC_CLIENT *cl,
00240 uint32_t rid,
00241 GWEN_DB_NODE *dbCmdResp);
00242
00243 CHIPCARD_API
00244 LC_CLIENT_RESULT LC_ClientLcc_ReaderCommand(LC_CLIENT *cl,
00245 uint32_t serverId,
00246 uint32_t readerId,
00247 uint32_t lockId,
00248 GWEN_DB_NODE *dbData,
00249 GWEN_DB_NODE *dbCmdResp);
00250
00251
00257
00258
00259
00261 CHIPCARD_API
00262 uint32_t LC_ClientLcc_SendSetNotify(LC_CLIENT *cl,
00263 uint32_t flags);
00264
00265 CHIPCARD_API
00266 LC_CLIENT_RESULT LC_ClientLcc_CheckSetNotify(LC_CLIENT *cl,
00267 uint32_t rid);
00268
00269 CHIPCARD_API
00270 LC_CLIENT_RESULT LC_ClientLcc_SetNotify(LC_CLIENT *cl,
00271 uint32_t flags);
00272
00273
00277 CHIPCARD_API
00278 int LC_ClientLcc_Work(LC_CLIENT *cl, int maxmsg);
00279
00280 CHIPCARD_API
00281 LC_CLIENT_RESULT LC_ClientLcc_Work_Wait(LC_CLIENT *cl, int timeout);
00282
00283
00284
00290 #endif
00291