コード例 #1
0
ファイル: ICCard.cs プロジェクト: wwkkww1983/ZiChang_PlatForm
 /// <summary>
 /// IC卡初始化
 /// </summary>
 /// <param name="iCom"></param>
 /// <param name="iBaudRate"></param>
 /// <param name="strPassWordA"></param>
 /// <param name="strPassWordB"></param>
 /// <returns>1:初始化成功 0:初始化失败</returns>
 public int Initialize(int iCom, int iBaudRate, string strPassWordA, string strPassWordB)
 {
     try
     {
         _iCom         = iCom;
         _iBaudRate    = iBaudRate;
         _strPassWordA = strPassWordA;
         _strPassWordB = strPassWordB;
         _iPonter      = RWCard.rf_init(iCom, iBaudRate);
         if (_iPonter.ToInt32() != -130)  //初始化成功
         {
             tmTrick.Interval = 500;
             return(1);
         }
         else //初始化失败
         {
             return(0);
         }
     }
     catch (Exception ex)
     {
         Log.WriteLog("IC卡读写控件-初始化", ex);
         return(0);
     }
 }
コード例 #2
0
ファイル: ICCard.cs プロジェクト: wwkkww1983/ZiChang_PlatForm
        void  ReadBlockDataEvent(object sender, EventArgs e)
        {
            try
            {
                ulong uFactoryCode = 0;
                _strReadBlockData = "";
                RWCard.rf_card(_iPonter, 0, ref uFactoryCode);
                if (uFactoryCode != 0)
                {
                    if ((_FactoryCode == string.Empty) || (uFactoryCode.ToString() != _FactoryCode))
                    {
                        tmTrick.Stop();
                        int iSec = _iBlock / 4;
                        RWCard.rf_load_key_hex(_iPonter, 0, Convert.ToInt16(iSec), _strPassWordA); //加载A密码
                        RWCard.rf_load_key_hex(_iPonter, 4, Convert.ToInt16(iSec), _strPassWordB); //加载B密码
                        int i = RWCard.rf_authentication(_iPonter, 0, Convert.ToInt16(iSec));      //验证密码
                        if (i == 0)
                        {
                            byte[] bytData = new byte[32];
                            i = RWCard.rf_read_hex(_iPonter, Convert.ToInt16(_iBlock), bytData);//读取_iBlock块区中的数据

                            if (i == 0)
                            {
                                _strReadBlockData = DecConverString(bytData);
                                _FactoryCode      = uFactoryCode.ToString();
                                _iValid           = 1; //读取成功
                                SetUIValue(sender, e);
                            }
                            else
                            {
                                _iValid = 0;  //读取失败
                            }
                        }
                        else
                        {
                            _iValid = -1; //密码验证失败
                        }
                    }
                }
                else
                {
                    _iValid = -2; //未寻到卡
                }
                tmTrick.Start();
            }
            catch (Exception ex)
            {
                Log.WriteLog("IC卡读写控件-读卡", ex);
            }
        }
コード例 #3
0
ファイル: ICCard.cs プロジェクト: wwkkww1983/ZiChang_PlatForm
 /// <summary>
 /// 关闭读卡器串口
 /// </summary>
 public void Close()
 {
     try
     {
         RWCard.rf_exit(_iPonter);
         tmTrick.Stop();
         tmTrick.Close();
         tmTrick.Dispose();
         SetUIValue = null;
     }
     catch (Exception ex)
     {
         Log.WriteLog("IC卡读写控件-关闭串口", ex);
     }
 }
コード例 #4
0
ファイル: ICCard.cs プロジェクト: wwkkww1983/ZiChang_PlatForm
 /// <summary>
 /// 写数据 1:写入成功 0:写入失败 -1:密码验证失败 -2:未寻到卡
 /// </summary>
 /// <param name="iBlock">要写的块号</param>
 /// <param name="strBlockData">要写的数据</param>
 /// <returns></returns>
 public int WriteBlockData(int iBlock, string strBlockData)
 {
     try
     {
         _iBlock            = iBlock;
         _strWriteBlockData = strBlockData;
         ulong uFactoryCode = 0;
         RWCard.rf_card(_iPonter, 0, ref uFactoryCode);
         if (uFactoryCode != 0)
         {
             tmTrick.Stop();
             int iSec = _iBlock / 4;
             RWCard.rf_load_key_hex(_iPonter, 0, Convert.ToInt16(iSec), _strPassWordA);
             RWCard.rf_load_key_hex(_iPonter, 4, Convert.ToInt16(iSec), _strPassWordB);
             int i = RWCard.rf_authentication(_iPonter, 0, Convert.ToInt16(iSec));
             if (i == 0)
             {
                 i = RWCard.rf_write_hex(_iPonter, Convert.ToInt16(_iBlock), _strWriteBlockData);//往_iBlock块区中写入数据
                 Thread.Sleep(10);
                 if (i == 0)
                 {
                     RWCard.rf_beep(_iPonter, 20);
                     _iValid = 1; //写成功
                 }
                 else //写失败
                 {
                     _iValid = 0;
                 }
             }
             else
             {
                 _iValid = -1;//密码验证失败
             }
         }
         else
         {
             _iValid = -2;
         }
         //转到读卡状态
         tmTrick.Start();
         return(_iValid);
     }
     catch (Exception ex)
     {
         Log.WriteLog("IC卡读写控件-写卡", ex);
         return(0);
     }
 }
コード例 #5
0
ファイル: ICCard.cs プロジェクト: wwkkww1983/ZiChang_PlatForm
 /// <summary>
 /// 蜂鸣
 /// </summary>
 public void Beep()
 {
     RWCard.rf_beep(_iPonter, 20);
 }