示例#1
0
        private void button18_Click(object sender, EventArgs e)
        {
            //创建目录
            ApduMsg msg = CardReader.CreateFile(200, CPUFileType.MFDF, txtContent.Text.Length);

            DisplayLog(msg);
        }
示例#2
0
        /// <summary>
        /// 清空卡
        /// </summary>
        /// <param name="fileID"></param>
        /// <returns></returns>
        public static bool ClearCard()
        {
            try
            {
                cardReader.OpenReader(out string msgInf);

                //默认进行身份验证
                Auth();

                //先选择根目录
                cpuCard.SelectMF();

                ApduMsg msg = cpuCard.RemoveDF();

                //再退出到根目录
                cpuCard.SelectMF();
                if (msg.IsSuccess)
                {
                    return(true);
                }
                // cardReader.CloseReader();
            }
            catch (Exception ex)
            {
                return(false);
            }
            finally
            {
                // run.Close();
            }
            return(false);
        }
示例#3
0
        public void DisplayLog(ApduMsg apduMsg)
        {
            if (apduMsg != null)
            {
                string msg = "----------------------\r\n状态:{0}  信息:{1} 结果:{2} \r\n";


                txtLog.AppendText(string.Format(msg, apduMsg.Status, apduMsg.Msg, BitConverter.ToString(apduMsg.ResponseData)));
            }
        }
示例#4
0
        /// <summary>
        /// 删除文件
        /// </summary>
        /// <param name="fileID"></param>
        /// <returns></returns>
        public static bool DeleteFile(ushort fileID)
        {
            //默认进行身份验证
            Auth();
            ApduMsg msg = cpuCard.DeleteFile(fileID);

            if (msg.IsSuccess)
            {
                return(true);
            }
            return(false);
        }
示例#5
0
        /// <summary>
        /// 创建文件
        /// </summary>
        /// <param name="fileName">文件名称</param>
        /// <param name="content">文件内容</param>
        /// <param name="msg">错误消息</param>
        /// <returns></returns>
        public static bool CreateFile(ushort fileID, byte[] content, out string msg)
        {
            try
            {
                if (!cardReader.OpenReader(out msg))
                {
                    return(false);
                }

                //默认进行身份验证
                if (!Auth())
                {
                }

                //先选择根目录
                cpuCard.SelectMF();
                //创建文件夹(文件夹创建的时候大一点)
                cpuCard.CreateDFFile(fileID, content.Length + 100);

                //选择创建的文件夹
                cpuCard.SelectFileById(fileID);

                //cpuCard.RemoveDF();
                //cpuCard.SelectFileById(fileID);

                ApduMsg msgApd = cpuCard.CreateAndWriteContent(fixFileID, content);

                //先选择根目录
                cpuCard.SelectMF();

                if (!msgApd.IsSuccess)
                {
                    msg = msgApd.Msg;
                    return(false);
                }
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return(false);
            }
            finally
            {
                cardReader.CloseReader();
                //run.Close();
            }


            return(true);
        }
示例#6
0
        /// <summary>
        /// 创建文件
        /// </summary>
        /// <param name="fileName">文件名称</param>
        /// <param name="content">文件内容</param>
        /// <param name="msg">错误消息</param>
        /// <returns></returns>
        public static bool CreateFile(ushort fileID, string content, out string msg)
        {
            //默认进行身份验证
            Auth();

            msg = "";
            ApduMsg msgApd = cpuCard.CreateAndWriteContent(fileID, content);

            if (!msgApd.IsSuccess)
            {
                msg = msgApd.Msg;
                return(false);
            }

            return(true);
        }
示例#7
0
        /// <summary>
        /// 读取文件
        /// </summary>
        /// <param name="fileName">文件名称</param>
        /// <param name="content">文件内容</param>
        /// <param name="msg">错误消息</param>
        /// <returns></returns>
        public static bool ReadFile(ushort fileID, out byte[] data, out string contentOrMsg)
        {
            data = new byte[0];

            cardReader.OpenReader(out string msgInf);

            //默认进行身份验证
            Auth();
            try
            {
                //先选择根目录
                cpuCard.SelectMF();

                //选择创建的文件夹
                cpuCard.SelectFileById(fileID);

                //选择文件
                ApduMsg msg = cpuCard.SelectFileById(fixFileID);

                //文件不存在
                if (msg.Code == "6A-82")
                {
                    contentOrMsg = "文件不存在";
                    cpuCard.SelectMF();
                    return(false);
                }

                //读取

                bool res = cpuCard.ReadFile(fixFileID, out data, out contentOrMsg);

                //再退出到根目录
                cpuCard.SelectMF();
                return(res);
            }
            catch (Exception ex)
            {
                contentOrMsg = ex.Message;
                return(false);
            }
            finally
            {
                cardReader.CloseReader();
                // run.Close();
            }
        }
示例#8
0
        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            int max = Convert.ToInt32(textBox2.Text);

            DeCardReader deCardReader = new DeCardReader();
            CpuCard      CardReader   = new CpuCard(deCardReader);


            for (ushort i = 1; i <= max; i++)
            {
                ApduMsg m = CardReader.DeleteFile(i);


                textBox1.AppendText("删除文件:" + i + "\r\n");
            }
        }
示例#9
0
        /// <summary>
        /// 删除文件
        /// </summary>
        /// <param name="fileID"></param>
        /// <returns></returns>
        public static bool DeleteFile(ushort fileID)
        {
            try
            {
                cardReader.OpenReader(out string msgInf);

                //默认进行身份验证
                Auth();

                //先选择根目录
                cpuCard.SelectMF();

                //选择创建的文件夹
                ApduMsg msg = cpuCard.SelectFileById(fileID);

                if (msg.Code == "6A-82")
                {
                    return(true);
                }
                else
                {
                    ApduMsg ms2g = cpuCard.RemoveDF();
                    Console.WriteLine();
                }



                //再退出到根目录
                cpuCard.SelectMF();
                if (msg.IsSuccess)
                {
                    return(true);
                }
                // cardReader.CloseReader();
            }
            catch (Exception ex)
            {
                return(false);
            }
            finally
            {
                // run.Close();
            }
            return(false);
        }
示例#10
0
        private void button17_Click(object sender, EventArgs e)
        {
            CardReader.SelectFileName("1PAY.SYS.DDF01");
            CardReader.SelectFileName(ChangAnTongName);
            ApduMsg msg = CardReader.GetBalance(true);

            if (msg.IsSuccess)
            {
                byte[] data = msg.GetData();
                if (data.Length == 4)
                {
                    double Balance = ((data[0] << (8 * 3)) + (data[1] << (8 * 2)) + (data[2] << (8 * 1)) + data[3]) / 100.0;
                    labYue.Text = "公交卡余额为" + Balance;
                    return;
                }
            }
            labYue.Text = "读取失败";
        }
示例#11
0
        private void button20_Click(object sender, EventArgs e)
        {
            ApduMsg msg1 = CardReader.SelectDFFile(GetFileID());

            DisplayLog(msg1);
        }
示例#12
0
        private void button10_Click(object sender, EventArgs e)
        {
            ApduMsg msg = CardReader.WriteContent(GetFixFileID(), txtContent.Text);

            DisplayLog(msg);
        }
示例#13
0
        private void button4_Click(object sender, EventArgs e)
        {
            ApduMsg msg = CardReader.SelectMF();

            DisplayLog(msg);
        }
示例#14
0
        private void button5_Click(object sender, EventArgs e)
        {
            ApduMsg msg = CardReader.SelectFileName(txtFileName.Text);

            DisplayLog(msg);
        }
示例#15
0
        private void button23_Click(object sender, EventArgs e)
        {
            ApduMsg msg = CardReader.SelectFileById(GetFixFileID());

            DisplayLog(msg);
        }
示例#16
0
        private void button2_Click(object sender, EventArgs e)
        {
            ApduMsg msg = CardReader.Auth(txtPwd.Text);

            DisplayLog(msg);
        }
示例#17
0
        private void button6_Click(object sender, EventArgs e)
        {
            ApduMsg msg = CardReader.CreateFile(GetFixFileID(), CPUFileType.BinFile, txtContent.Text.Length);

            DisplayLog(msg);
        }
示例#18
0
        public static void DisplayApduMsg(ApduMsg msg)
        {
            string result = string.Format("{0} {1} {2}", msg.Status, msg.Msg, msg.ResponseData);

            AddLog(result);
        }
示例#19
0
        private void button8_Click(object sender, EventArgs e)
        {
            ApduMsg msg = CardReader.RemoveDF();

            DisplayLog(msg);
        }