Exemplo n.º 1
0
static rfid_status	icdrec_hf_reader_select_target(struct rfid_device * thiz, rfid_target * target)
{

	rfid_status status= RFID_ESUCCESS ;
#if 1
	HF_READER_NEW_REQ_PACKAGE(req,0);
	GET_SZ_BUILT(req) = icdrec_hf_reader_build_package(HF_READER_CMD_ANTICOLLISION,NULL,0,GET_PTR(req),GET_LEN(req));
	RFID_HEXDUMP(GET_PTR(req),GET_LEN(req),"pkg",0);
	HF_READER_NEW_RESP_PACKAGE(res,1+MIFARE_MAX_UID_LEN);
	status = icdrec_hf_reader_transceive_bytes(thiz,GET_PTR(req),GET_SZ_BUILT(req),GET_PTR(res),GET_LEN(res),&GET_SZ_RES(res),2);
	uint8_t uid_len;
	switch (status) {
	case RFID_ESUCCESS:
	case RFID_EACK:
//		hdr = (ihr_header_response*)GET_PTR(res);
		uid_len = GET_PTR(res)[sizeof(ihr_header_response)];
		if(uid_len && target){
			memcpy(target->uid,GET_PTR(res)+sizeof(ihr_header_response),uid_len);
			target->uid_len = uid_len;
			if(uid_len==4){
				target->type= MIFARE_CLASSIC_1K;
			}else	if(uid_len==7){
				target->type= MIFARE_DESFIRE_EV1;
			}
		}
		break;
#if 1
	case RFID_EIO:
		RFATAL("IO error\n");
		break;
	case RFID_ENAK:
		RFATAL("NAK error\n");
		break;
	case RFID_ETIMEOUT:
		RFATAL("Time out\n");
		break;
	case RFID_ERESP:
		RFATAL("Failed responding\n");
		break;
#endif
	default:
		RFATAL("Unknown error\n");
		break;
	}
	CLEAR_WARNING(req);
	return  status;
#else
	status = icdrec_hf_reader_generic_command(thiz,HF_READER_CMD_ANTICOLLISION,NULL,0,1+10);
#endif
}
Exemplo n.º 2
0
/*static */rfid_status	icdrec_hf_reader_generic_command(struct rfid_device * thiz, uint8_t cmd,uint8_t * pmeta,size_t metalen,size_t resp_metalen)
{
	if(!thiz || thiz->state != RFID_READER_AVAILABLE) {
		return RFID_EINARG;
	}
	rfid_status status= RFID_ESUCCESS ;
	//TODO: Test

	HF_READER_NEW_REQ_PACKAGE(req,metalen);
	GET_SZ_BUILT(req) = icdrec_hf_reader_build_package(cmd,pmeta,metalen,GET_PTR(req),GET_LEN(req));
	RDBG(" CMD: 0x%X\n",cmd);
	RFID_HEXDUMP(GET_PTR(req),GET_LEN(req),"pkg",0);
	HF_READER_NEW_RESP_PACKAGE(res,resp_metalen);
	status = icdrec_hf_reader_transceive_bytes(thiz,GET_PTR(req),GET_SZ_BUILT(req),GET_PTR(res),GET_LEN(res),&GET_SZ_RES(res),20);
	switch (status) {
	case RFID_ESUCCESS:
	case RFID_EACK:
		RDBG("Success\n");
		break;
#if 1
	case RFID_EIO:
		RFATAL("IO error\n");
		break;
	case RFID_ENAK:
		RFATAL("NAK error\n");
		break;
	case RFID_ETIMEOUT:
		RFATAL("Time out\n");
		break;
	case RFID_ERESP:
		RFATAL("Failed responding\n");
		break;

#endif
	default:
		RFATAL("Unknown error\n");
		break;
	}
	CLEAR_WARNING(req);
	return  status;
}
Exemplo n.º 3
0
SRVR_STMT_HDL::SRVR_STMT_HDL(long inDialogueId)
{
	FUNCTION_ENTRY("SRVR_STMT_HDL::SRVR_STMT_HDL",("inDialogueId=%ld)",inDialogueId));

	cursorName[0] = '\0';
	previousCursorName[0] = '\0';
	stmtName[0] = '\0';
	paramCount = 0;
	columnCount = 0;
	SqlQueryStatementType = INVALID_SQL_QUERY_STMT_TYPE;
	stmtType = EXTERNAL_STMT;
	inputDescVarBuffer = NULL;
	outputDescVarBuffer = NULL;
	inputDescVarBufferLen = 0;
	outputDescVarBufferLen = 0;
	endOfData = FALSE;

	// The following were added for SPJRS support
	isSPJRS = FALSE;
	RSIndex = 0;
	RSMax = 0;

	currentMethod = UNKNOWN_METHOD;
	asyncThread = NULL;
	queryTimeoutThread = NULL;
	threadStatus = SQL_SUCCESS;
	threadId = 0;
	threadReturnCode = SQL_SUCCESS;

	sqlAsyncEnable = SQL_ASYNC_ENABLE_OFF;
	queryTimeout = 0;
	sqlString.dataValue._buffer = NULL;
	sqlString.dataValue._length = 0;
	inputRowCnt = 0;
	maxRowCnt = 0;
	sqlStmtType = TYPE_UNKNOWN;
	freeResourceOpt = SQL_CLOSE;
	inputValueList._length = 0;
	inputValueList._buffer = NULL;

	estimatedCost = 0;
	rowsAffected = 0;
	inputDescList._length = 0;
	inputDescList._buffer = NULL;
	outputDescList._length = 0;
	outputDescList._buffer = NULL;
	CLEAR_WARNING(sqlWarning);
	CLEAR_ERROR(sqlError);
	outputValueList._length = 0;
	outputValueList._buffer = NULL;
	outputValueVarBuffer = NULL;
	inputValueVarBuffer = NULL;
	clientLCID = srvrGlobal->clientLCID;
	rowCount._length = 0;
	rowCount._buffer = NULL;
	isReadFromModule = FALSE;
	moduleName[0] = '\0';
	inputDescName[0] = '\0';
	outputDescName[0] = '\0';
	isClosed = TRUE;
	IPD = NULL;
	IRD = NULL;
	useDefaultDesc = FALSE;
	dialogueId = inDialogueId;
	nowaitRetcode = SQL_SUCCESS;
	holdability = CLOSE_CURSORS_AT_COMMIT;
	fetchQuadEntries = 0;
	fetchRowsetSize = 0;
	fetchQuadField = NULL;
	batchQuadEntries = 0;
	batchRowsetSize = 0;
	batchQuadField = NULL;
	inputDescParamOffset = 0;
	batchMaxRowsetSize = 0;
	stmtInitForNowait = FALSE;
	FUNCTION_RETURN_VOID((NULL));
}