コード例 #1
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);
     }
 }