private void Init() { try { var readerPort = "COM7"; byte[] comName = new byte[readerPort.Length + 1]; comName = StringUtility.string2bytes(readerPort); sConnectMode = UHFConstants.RF_CONNECT_MODE.RF_CONNECT_MODE_LOCAL_UART; if (InitRFID() != 0) { //tipMsg.Text = "初始化RFID库失败!"; return; } if (UHFNative.openCom(comName, 115200) == 0) { if (getModuleBaseInfo() != 0) { UHFNative.closeCom(); LogHelper.WriteLog("获取模块信息失败!"); } else { //byte DR = 0, M = 0, TRext = 0, Sel = 0, Session = 0, Target = 0, Q = 7; //if (UHFNative.setQuery(DR, M, TRext, Sel, Session, Target, Q) == 0) //{ int maskFlag = 0; // 清除掉过滤信息 UHFNative.resetInventoryFilter(); // 启动盘点,发送盘点指令 // if (UHFNative.startInventory((byte)1, (byte)maskFlag) == 0) //{ //设置读取EPC和tid UHFNative.setInventoryArea((byte)1, (byte)0, (byte)6); UHFNative.startInventory((byte)1, (byte)maskFlag); LogHelper.WriteLog("串口打开成功"); // } // } } } } catch (Exception ex) { LogHelper.WriteLog("初始化端口出错", ex); } }
/// <summary> /// 初始化RFID库文件 /// </summary> /// <returns></returns> private int InitRFID() { gRFModuleInformation = ((int)mRFModule << 8); // 初始化回调函数 if (sRfidCallbackFunc == null) { sRfidCallbackFunc = new UHFNative.rfidCallbackFunc(rfidCallbackFunc); } // 初始化RFID库 if (UHFNative.initRFID(sRfidCallbackFunc, null) == 0) { // 模块类型 UHFNative.setRFModuleType(mRFModule); // 本地连接模式 UHFNative.setRFConnectMode(sConnectMode); return(0); } return(-1); }
private int getModuleBaseInfo() { string strTmp = ""; string strSn = "", strBoardSn = ""; byte[] snData = new byte[56], boardSnData = new byte[64]; int snLen = snData.Length, boardSnLen = boardSnData.Length; // 停止盘点 UHFNative.stopInventory(); if (mRFModule == UHFConstants.RF_MODULE_TYPE.RF_MODULE_TYPE_RM70XX) { // RM70xx版本,先获取板子的序列号 if (UHFNative.getBoardSerialNumber(ref boardSnData[0], ref boardSnLen) == 0) { strBoardSn = StringUtility.bytes2string(boardSnData, 0, boardSnLen); } else { // tipMsg.Text = "设备连接失败!"; return(-1); } } // 获取模块序列号 if (UHFNative.getModuleSerialNumber(ref snData[0], ref snLen) == 0) { byte[] version = new byte[56]; int versionLen = version.Length; // 获取软件版本号 if (UHFNative.getModuleSoftVersion(ref version[0], ref versionLen) == 0) { string strVersion = StringUtility.bytes2string(version, 0, versionLen); strSn = StringUtility.bytes2string(snData, 0, snLen); if (mRFModule == UHFConstants.RF_MODULE_TYPE.RF_MODULE_TYPE_RM70XX) { strTmp = String.Format(@"设备连接成功!RM70XX序列号:{0}, 设备序列号:{1},软件版本:{2}", strBoardSn, strSn, strVersion); } else { strTmp = String.Format(@"设备连接成功!设备序列号:{0},软件版本:{1}", strSn, strVersion); } if (UHFNative.getAntennaPortNum(out sAntennaPortNum) != 0) { // 多口模块 } // 加载RM8011的功率信息 if (strSn.IndexOf("RM", 0) == 0) { // 棋连模块 // RM-26dBm int moduleType = Int32.Parse(strSn.Substring(3, 2)); gRFModuleInformation |= moduleType; //loadPowerLevel(); // cmbRM8011PowerLevelAntentSetting.Visible = true; } else { gRFModuleInformation |= (int)UHFConstants.RF_MODULE_TYPE.RF_MODULE_TYPE_R2000; if (sAntennaPortNum > 1) { /*enum { * RFID_RESPONSE_MODE_COMPACT = 0x00000001, * RFID_RESPONSE_MODE_NORMAL = 0x00000003, * RFID_RESPONSE_MODE_EXTENDED = 0x00000007 * };*/ UHFNative.setResponseDataMode(0x07); } } // tipMsg.Text = strTmp; gDeviceConnectStatus = true; if (sConnectMode == UHFConstants.RF_CONNECT_MODE.RF_CONNECT_MODE_LOCAL_UART) { // 串口模式 // btnComConnect.Text = "断 开"; } else if (sConnectMode == UHFConstants.RF_CONNECT_MODE.RF_CONNECT_MODE_USB) { // btnConnectUSB.Text = "断开"; } else { // 网络模式 // btnNetConnect.Text = "断 开"; } // 加载tab页面 // InitTabControls(); return(0); } } else { if (mRFModule == UHFConstants.RF_MODULE_TYPE.RF_MODULE_TYPE_RM70XX) { strTmp = String.Format(@"RM70XX连接成功,RF设备连接失败, RM70XX序列号:{0}!", strBoardSn); // tipMsg.Text = strTmp; gRFModuleInformation |= (int)UHFConstants.RF_MODULE_TYPE.RF_MODULE_TYPE_RM70XX; // InitTabControls(); // 网络模式 gDeviceConnectStatus = true; if (sConnectMode == UHFConstants.RF_CONNECT_MODE.RF_CONNECT_MODE_LOCAL_UART) { // 串口模式 // btnComConnect.Text = "断 开"; } else if (sConnectMode == UHFConstants.RF_CONNECT_MODE.RF_CONNECT_MODE_USB) { // btnConnectUSB.Text = "断开"; } else { // 网络模式 // btnNetConnect.Text = "断 开"; } return(0); } else { // tipMsg.Text = "设备连接失败!"; } } return(-1); }