📄 xcrfapi.h
字号:
// XCRFAPI.h : main header file for the XCRFAPI DLL
//
#if !defined(AFX_XCRFAPI_H__1C2DB340_4DD9_4F55_B382_FAB3F77F3E1A__INCLUDED_)
#define AFX_XCRFAPI_H__1C2DB340_4DD9_4F55_B382_FAB3F77F3E1A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
// ************* 返回错误信息定义 *****************************//
#define FUCCESS_RETURN 1 // 操作成功返回
#define ERROR_NODATA_RETURN 0 // 没有数据返回,接收数据长度不足
#define ERROR_HANDLE_VALUE -1 // 错误的端口句柄
#define ERROR_USERDATA_LEN -2 // 用户数据长度错
#define ERROR_USERDATA_ADDRESS -3 // 用户数据地址错
#define ERROR_RECEIVEDATA_LEN -4 // 接收数据长度不符
#define ERROR_SENDDATA_FAIL -5 // 数据格式错误 0X3F
#define ERROR_SENDCOMMOND_FAIL -6 // 发送命令失败
#define ERROR_READWRITE_FAIL -7 // 读写数据失败
#define ERROR_IDENTIFY_FAIL -8 // 识别标签ID失败 0X3A
#define ERROR_NOKNOWTAG_FAIL -9 // 未指定有效的标签类型 0X3A
#define ERROR_PORT_OPENED -10 // 端口已经打开,句柄非INVALID_HANDLE_VALUE
#define ERROR_CONFIG_LOST -11 // 配置文件未找到或读取失败,主要参数无法初始化
#define ERROR_CONNECT_FAIL -12 // 连接失败
#define ERROR_OPENPORT_FAIL -13 // 打开端口失败
#define ERROR_CLOSEPORT_FAIL -14 // 关闭端口失败
#define ERROR_PARAMETER_LEN -15 // 查询/设定参数数据长度超出
#define ERROR_PARAMETER_FAIL -16 // 查询/设定参数失败
#define ERROR_READERCLASS_ERROR -17 // 读写器类型无效
#define ERROR_OTHER_FAIL -20 // 其它错误失败
//-------------attlee20060815-----------------------
#define ERROR_Reader_01H 1001 // 读写器FPGA/DSP软件版本错误
#define ERROR_Reader_02H 1002 // 读写器基带板硬件版本号错误
#define ERROR_Reader_03H 1003 // 读写器射频板硬件版本号错误
#define ERROR_Reader_04H 1004 // 读写器系统参数表错误
#define ERROR_Reader_05H 1005 // 读写器FPGA自检错误
#define ERROR_Reader_06H 1006 // 读写器射频板自检错误
#define ERROR_Reader_07H 1007 // 读写器以太网检测错误
#define ERROR_Reader_08H 1008 // 读写器实时时钟错误
#define ERROR_Reader_09H 1009 // 读写器外部存储器检测错误
#define ERROR_Reader_11H 1010 // 读写器操作密码错误
#define ERROR_Reader_12H 1011 // 错误的天线号
#define ERROR_Reader_13H 1012 // 当前读写器处于测试模式
#define ERROR_Reader_14H 1013 // 读写器内部flash失败
#define ERROR_Reader_15H 1014 // 当前读写器正执行标签操作
#define ERROR_Reader_16H 1015 // 读写器运行错误(如某些意外导致操作终止)
#define ERROR_CommandData_20H 2001 // 接收指令或数据不完整
#define ERROR_CommandData_21H 2002 // 接收指令或数据的CRC校验错误
#define ERROR_CommandData_22H 2003 // 指令类型当前读写器型号不支持
#define ERROR_CommandData_23H 2004 // 当前型号读写器不支持该标签协议
#define ERROR_CommandData_24H 2005 // 指令参数错误
#define ERROR_CommandData_25H 2006 // 指令侦数据结构错误
#define ERROR_CommandData_26H 2007 // 不支持的指令类型
#define ERROR_EPCTag_60H 3001 // 标签无响应或不存在
#define ERROR_EPCTag_61H 3002 // 操作存储区不存在
#define ERROR_EPCTag_62H 3003 // 标签操作地址溢出
#define ERROR_EPCTag_63H 3004 // 操作存储区被锁定
#define ERROR_EPCTag_64H 3005 // 标签存取密码错误
#define ERROR_EPCTag_65H 3006 // 标签灭活密码错误
#define ERROR_EPCTag_66H 3007 // 操作未完成,被上位机终止(如关功放)
#define ERROR_EPCTag_67H 3008 // 对未初始化标签做读/写/锁数据区操作
#define ERROR_EPCTag_68H 3009 // 未初始化标签
#define ERROR_EPCTag_69H 3010 // 标签返回未知类型错误
#define ERROR_ISO6BTag_90H 4001 // 标签无响应或射频范围内无标签
#define ERROR_ISO6BTag_91H 4002 // 该指令不支持
#define ERROR_ISO6BTag_92H 4003 // 该指令位被识别,如格式错误
#define ERROR_ISO6BTag_93H 4004 // 该选项不支持
#define ERROR_ISO6BTag_94H 4005 // 未知错误
#define ERROR_ISO6BTag_95H 4006 // 无法存取特定的块
#define ERROR_ISO6BTag_96H 4007 // 块已锁定,无法再次锁定
#define ERROR_ISO6BTag_97H 4008 // 块已经锁定,内容无法改变
#define ERROR_ISO6BTag_98H 4009 // 块编程失败
#define ERROR_ISO6BTag_99H 4010 // 块锁定失败
#define ERROR_ISO6BTag_9AH 4011 // 操作未完成,被上位机终止(如关功放)
#define ERROR_ISO6BTag_9BH 4012 // 操作因干扰等原因未能完成
#define ERROR_ISO6BTag_9CH 4013 // CRC错误
/////////////////////////////////////////////////////////////////////////////
// CXCRFAPIApp
// See XCRFAPI.cpp for the implementation of this class
//
class CXCRFAPIApp : public CWinApp
{
public:
CXCRFAPIApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CXCRFAPIApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
//{{AFX_MSG(CXCRFAPIApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#define DllExport _declspec(dllexport)
/*************************************************************
功能: Open函数用来打开串口或创建网络连接。
参数: hCom:保存打开的端口句柄;
lsCfgFile:设备配置参数文件(SYSIT.CFG)
CfgItemName:设备配置参数文件(SYSIT.CFG)中读写器网络端口设置项目的名称,
默认设置为XC600A SCANER。
返回值:打开端口失败返回0
端口打开成功返回1
配置文件未找到或读取失败返回2
端口已经打开返回3
***********************************************************************/
extern "C" DllExport int __stdcall XCOpen(HANDLE &hCom,LPCTSTR lsCfgFile,LPCTSTR lsCfgItem);
/*******************************************************/
// 功能:数用来断开网络连接,释放句柄
// 入口参数:无
// 返回:关闭端口失败返回0,成功返回1。端口已经关闭返回3*/
//
//
//
// yang xian feng 2004-7-5
/*******************************************************/
extern "C" DllExport int __stdcall XCClose(HANDLE &hCom);
/*******************************************************/
// 注意:读写器暂时还不支持!!!!
// 功能:XCReset函数用来对读写器进行复位操作,重新初始化读写器控制程序。
// 入口参数:hCom:通讯端口句柄(串口/网口);
// 返回参数:0: 失败
// 其它:成功
//
//
//
// yang xian feng 2004-7-5
/*******************************************************/
extern "C" DllExport int __stdcall XCReset(HANDLE hCom);
/*******************************************************/
// 功能: XCIdentify函数用来向读写器发送扫描覆盖范围内的所有电子标签的指令。
// 入口参数:hCom: 通讯端口句柄(串口/网口);
// ucAntenna:天线号
// ucAffirm:读取方式(0x00:单次,0x01:连续)
// 返回: 指令发送失败返回0
// 指令发送成功返回非零
//
// yang xian feng 2004-8-27
/*******************************************************/
extern "C" DllExport int __stdcall XCIdentify (HANDLE hCom,\
unsigned char ucAntenna,\
unsigned char ucAffirm\
);
/*******************************************************/
// 功能: XCReport函数用来接收读写器识别到的标签ID编号。。
// 入口参数:hCom:通讯端口句柄(串口/网口);
// pdata:指向返回ID号的指针;
//
// 返回: 指令发送失败返回0
//
// 1: 成功
// 其他: 失败
// yang xian feng 2004-7-5
/*******************************************************/
extern "C" DllExport int __stdcall XCReport (HANDLE hCom, unsigned char *pData );
/*******************************************************/
// 功能: XCDirectRead函数用来直接读取扫描覆盖范围内的所有电子标签的指令。
// 入口参数:hCom: 通讯端口句柄(串口/网口);
// ucAntenna:天线号
// ucAffirm:读取方式
// 返回: 句柄无效返回 ERROR_HANDLE_VALUE
// 指令发送失败,数据错返回0
// 指令发送成功返回非零
//
// jiang pei wang 2007-5-12
/*******************************************************/
extern "C" DllExport int __stdcall XCDirectRead (HANDLE hCom, unsigned char ucAntenna,\
unsigned char ucAffirm);
/*******************************************************/
// 功能: XCDirectReport函数用来接收读写器直接读取到到的所有标签ID编号。。
// 入口参数:hCom:通讯端口句柄(串口/网口);
// pdata:指向返回ID号的指针;
//
// 返回:
// 1: 成功
// 其他: 失败
//
// jiang pei wang 2007-5-12
/*******************************************************/
extern "C" DllExport int __stdcall XCDirectReport (HANDLE hCom, unsigned char *pData );
/*******************************************************/
// 功能: XCReadUserData函数用来读出指定标签内存单元数据。
//
// 入口参数:hCom: 通讯端口句柄(串口/网口);
// ucAntenna: 天线端口号;
// ucStartAdd: 用户数据起始地址;(8-223)
// ucUserDataSize:读取长度
// pTagID: 标签ID号;
// pValue: 返回读到数据的指针(用户数据)
// 返回: 0://接收数据错
// 1:成功
// 3:读标签ID失败
// 2:其他错
//
// yang xian feng 2004-8-23
//修改记录 提出返回值正返判定xcIsError
// 同时代码格式调整
// 返回值: 1: 成功
// < 0: xcrf-800以前的错误;
// > 16 并且 < 48: xcrf-800及以后产品的错误
// 47: 为不知名的,尚未定义的错误
//修改人 junline 2006-3-15
/*******************************************************/
extern "C" DllExport int __stdcall XCReadUserData ( HANDLE hCom
, unsigned char ucAntenna
, unsigned char ucStartAdd
, unsigned char ucUserDataSize
, unsigned char *pTagID
, unsigned char *pValue);
/**************************************************************
功能:XCReadUserDataOnce函数用来读出指定标签内存单元数据。(<64字节)
原形:unsigned char __stdcall XCReadUserDataOnce (HANDLE hCom,
unsigned char ucAntenna,
unsigned char ucStartAdd,
unsigned char ucUserDataSize,
unsigned char *pTagID,
unsigned char *pValue);
参数: hCom: 调用XCOpen成功后获得的通道端口句柄。;
ucAntenna: 天线端口号;
ucStartAdd: 用户数据起始地址;(8-223)
ucUserDataSize: 指定读数据的长度;
pTagID: 标签ID号;
pValue: 返回读到数据的指针(用户数据)
返回值:
0:接收数据错
1:成功
3:读标签ID失败
2:其他错
*********************************************************************/
extern "C" DllExport int __stdcall XCReadUserDataOnce (HANDLE hCom,
unsigned char ucAntenna,
unsigned char ucStartAdd,
unsigned char ucUserDataSize,
unsigned char *pTagID,
unsigned char *pValue);
/*******************************************************/
// 功能: XCWriteUserData函数用来向指定标签内存单元写入数据。
//
// hCom:通讯端口句柄(串口/网口);
// ucAntenna:天线端口号
// ucStartAdd:写入起始地址.
// pTagID:标签ID号;
// pValue: 写入的数据;
// ucLength:写入数据长度
// 返回: 0:接收数据错
// 1:写标签数据成功
// 3:写标签ID失败
// 2:其他错
//
// jiang pei wang 2007-10-18
/*******************************************************/
extern "C" DllExport int __stdcall XCWriteUserData (HANDLE hCom,
unsigned char ucAntenna,
unsigned char ucStartAdd,
unsigned char *pTagID,
unsigned char *pValue,
unsigned char ucLength);
/*******************************************************/
// 功能: XCWriteUserDataOnce函数用来向指定标签内存单元写入数据。(<=32字节)
//
// hCom:通讯端口句柄(串口/网口);
// ucAntenna:天线端口号;
// ucStartAdd:写入起始地址.
// pTagID:标签ID号;
// ucValue: 写入的数据;
// ucLength:写入数据长度
// 返回: 0:接收数据错
// 1:写标签数据成功
// 3:写标签ID失败
// 2:其他错
//
// jiang pei wang 2007-11-30
/*******************************************************/
extern "C" DllExport int __stdcall XCWriteUserDataOnce (HANDLE hCom,
unsigned char ucAntenna,
unsigned char ucStartAdd,
unsigned char *pTagID,
unsigned char *pValue,
unsigned char ucLength);
/*******************************************************/
// 功能: XCPowerOn函数用来向读写器发送"打开功放"指令,测试线路通讯状态和检测天线是否连接。
//
// 入口参数:hCom: 通讯端口句柄(串口/网口)
// ucAntenna: 天线端口号
// 返回: 0 : 失败
// 1 : 成功
// 3 : 天线没有连接
// 2 : 其他错
//
// yang xian feng 2004-7-15
/*******************************************************/
extern "C" DllExport int __stdcall XCPowerOn(HANDLE hCom,unsigned char ucAntenna);
/*******************************************************/
// 功能: XCPowerOff函数用来停止读写器扫描标签工作。(关功放)
// 入口参数:hCom:通讯端口句柄(串口/网口)
// 返回: 接收数据错0,指令发送成功返回1,其他错返回2 */
// yang xian feng 2004-7-5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -