Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        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);
        }