串口ic读卡器源码-c#代码(2)续上
?private void button1_Click(object sender, System.EventArgs e)//輕松讀卡
? {
?? byte status;//存放返回值
?? byte myareano;//區號
?? byte authmode;//密碼類型,用A密碼或B密碼
?? byte myctrlword;//控制字
?? byte[] mypicckey = new byte[6];//密碼
?? byte[] mypiccserial = new byte[4];//卡序列號
?? byte[] mypiccdata = new byte[48]; //卡數據緩沖
?? //控制字指定,控制字的含義請查看本公司網站提供的動態庫說明
?? myctrlword = BLOCK0_EN + BLOCK1_EN + BLOCK2_EN + EXTERNKEY;
?? //指定區號
?? myareano = 8;//指定為第8區
?? //批定密碼模式
?? authmode = 1;//大于0表示用A密碼認證,推薦用A密碼認證
?? //指定密碼
?? mypicckey[0] = 0xff;
?? mypicckey[1] = 0xff;
?? mypicckey[2] = 0xff;
?? mypicckey[3] = 0xff;
?? mypicckey[4] = 0xff;
?? mypicckey[5] = 0xff;
?? status = piccreadex(myctrlword, mypiccserial, myareano, authmode, mypicckey, mypiccdata);
?? //在下面設定斷點,然后查看mypiccserial、mypiccdata,
?? //調用完 piccreadex函數可讀出卡序列號到 mypiccserial,讀出卡數據到mypiccdata,
?? //開發人員根據自己的需要處理mypiccserial、mypiccdata 中的數據了。
?? //處理返回函數
?? switch (status)
?? {
??? case 0:
???? MessageBox.Show("操作成功,數據已返回在mypiccdata數組中");
???? break;
???? //......
??? case 8:
???? MessageBox.Show("請將卡放在感應區");
???? break;
?? }
?? //返回解釋
?? /*
?? REQUEST 8//尋卡錯誤
?? READSERIAL 9//讀序列嗎錯誤
?? SELECTCARD 10//選卡錯誤
?? LOADKEY 11//裝載密碼錯誤
?? AUTHKEY 12//密碼認證錯誤
?? READ 13//讀卡錯誤
?? WRITE 14//寫卡錯誤
?? NONEDLL 21//沒有動態庫
?? DRIVERORDLL 22//動態庫或驅動程序異常
?? DRIVERNULL 23//驅動程序錯誤或尚未安裝
?? TIMEOUT 24//操作超時,一般是動態庫沒有反映
?? TXSIZE 25//發送字數不夠
?? TXCRC 26//發送的CRC錯
?? RXSIZE 27//接收的字數不夠
?? RXCRC 28//接收的CRC錯
?? */
? }
? private void button3_Click(object sender, System.EventArgs e)//讓設備發出聲音
? {
?? pcdbeep(50);
? }
? private void button2_Click(object sender, System.EventArgs e)//輕松寫卡
? {
?? byte i;
?? byte status;//存放返回值
?? byte myareano;//區號
?? byte authmode;//密碼類型,用A密碼或B密碼
?? byte myctrlword;//控制字
?? byte[] mypicckey = new byte[6];//密碼
?? byte[] mypiccserial = new byte[4];//卡序列號
?? byte[] mypiccdata = new byte[48]; //卡數據緩沖
?? //控制字指定,控制字的含義請查看本公司網站提供的動態庫說明
?? myctrlword = BLOCK0_EN + BLOCK1_EN + BLOCK2_EN + EXTERNKEY;
?? //指定區號
?? myareano = 8;//指定為第8區
?? //批定密碼模式
?? authmode = 1;//大于0表示用A密碼認證,推薦用A密碼認證
?? //指定密碼
?? mypicckey[0] = 0xff;
?? mypicckey[1] = 0xff;
?? mypicckey[2] = 0xff;
?? mypicckey[3] = 0xff;
?? mypicckey[4] = 0xff;
?? mypicckey[5] = 0xff;
?? //指定卡數據
?? for (i = 0; i < 48; i++)
?? {
??? mypiccdata[i] = i;
?? }
?? status = piccwriteex(myctrlword, mypiccserial, myareano, authmode, mypicckey, mypiccdata);
?? //在下面設定斷點,然后查看mypiccserial、mypiccdata,
?? //調用完 piccreadex函數可讀出卡序列號到 mypiccserial,讀出卡數據到mypiccdata,
?? //開發人員根據自己的需要處理mypiccserial、mypiccdata 中的數據了。
?? //處理返回函數
?? switch (status)
?? {
??? case 0:
???? MessageBox.Show("操作成功,mypiccdata數組中的數據已寫入卡中");
???? break;
???? //......
??? case 8:
???? MessageBox.Show("請將卡放在感應區");
???? break;
?? }
?? //返回解釋
?? /*
?? REQUEST 8//尋卡錯誤
?? READSERIAL 9//讀序列嗎錯誤
?? SELECTCARD 10//選卡錯誤
?? LOADKEY 11//裝載密碼錯誤
?? AUTHKEY 12//密碼認證錯誤
?? READ 13//讀卡錯誤
?? WRITE 14//寫卡錯誤
?? NONEDLL 21//沒有動態庫
?? DRIVERORDLL 22//動態庫或驅動程序異常
?? DRIVERNULL 23//驅動程序錯誤或尚未安裝
?? TIMEOUT 24//操作超時,一般是動態庫沒有反映
?? TXSIZE 25//發送字數不夠
?? TXCRC 26//發送的CRC錯
?? RXSIZE 27//接收的字數不夠
?? RXCRC 28//接收的CRC錯
?? */
? }
? private void button4_Click(object sender, System.EventArgs e)//修改單區密碼
? {
?? byte i;
?? byte status;//存放返回值
?? byte myareano;//區號
?? byte authmode;//密碼類型,用A密碼或B密碼
?? byte myctrlword;//控制字
?? byte[] piccoldkey = new byte[6];//舊密碼
?? byte[] mypiccserial = new byte[4];//卡序列號
?? byte[] piccnewkey = new byte[6]; //新密碼.
?? //控制字指定,控制字的含義請查看本公司網站提供的動態庫說明
?? myctrlword = 0;
?? //指定區號
?? myareano = 8;//指定為第8區
?? //批定密碼模式
?? authmode = 1;//大于0表示用A密碼認證,推薦用A密碼認證
?? //指定舊密碼
?? piccoldkey[0] = 0xff;
?? piccoldkey[1] = 0xff;
?? piccoldkey[2] = 0xff;
?? piccoldkey[3] = 0xff;
?? piccoldkey[4] = 0xff;
?? piccoldkey[5] = 0xff;
?? //指定新密碼,注意:指定新密碼時一定要記住,否則有可能找不回密碼,導致該卡報廢。
?? piccnewkey[0] = 0xff;
?? piccnewkey[1] = 0xff;
?? piccnewkey[2] = 0xff;
?? piccnewkey[3] = 0xff;
?? piccnewkey[4] = 0xff;
?? piccnewkey[5] = 0xff;
?? status = piccchangesinglekey(myctrlword, mypiccserial, myareano, authmode, piccoldkey, piccnewkey);
?? //在下面設定斷點,然后查看mypiccserial、mypiccdata,
?? //調用完 piccreadex函數可讀出卡序列號到 mypiccserial,讀出卡數據到mypiccdata,
?? //開發人員根據自己的需要處理mypiccserial、mypiccdata 中的數據了。
?? //處理返回函數
?? switch (status)
?? {
??? case 0:
???? MessageBox.Show("操作成功,密碼已被修改!");
???? break;
???? //......
??? case 8:
???? MessageBox.Show("請將卡放在感應區");
???? break;
?? }
?? //返回解釋
?? /*
?? REQUEST 8//尋卡錯誤
?? READSERIAL 9//讀序列嗎錯誤
?? SELECTCARD 10//選卡錯誤
?? LOADKEY 11//裝載密碼錯誤
?? AUTHKEY 12//密碼認證錯誤
?? READ 13//讀卡錯誤
?? WRITE 14//寫卡錯誤
?? NONEDLL 21//沒有動態庫
?? DRIVERORDLL 22//動態庫或驅動程序異常
?? DRIVERNULL 23//驅動程序錯誤或尚未安裝
?? TIMEOUT 24//操作超時,一般是動態庫沒有反映
?? TXSIZE 25//發送字數不夠
?? TXCRC 26//發送的CRC錯
?? RXSIZE 27//接收的字數不夠
?? RXCRC 28//接收的CRC錯
?? */
? }
? private void button5_Click(object sender, System.EventArgs e)//讀取設備編號,可做為軟件加密狗用,也可以根據此編號在公司網站上查詢保修期限
? {
?? byte[] devno = new byte[4];
?? if (pcdgetdevicenumber(devno) == 0)
?? {
??? MessageBox.Show(System.Convert.ToString(devno[0]) + "-" + System.Convert.ToString(devno[1]) + "-" +? System.Convert.ToString(devno[2]) + "-" +? System.Convert.ToString(devno[3]));
??? //ShowMessage(IntToStr(devno[0]) + "-" + IntToStr(devno[1]) + "-" + IntToStr(devno[2]) + "-" + IntToStr(devno[3]));
?? }
? }
? private void button6_Click(object sender, System.EventArgs e)
? {
?? string strls;
?? strls = textBox1.Text;
?? lcddispfull(strls);
? }
?}
}
轉載于:https://blog.51cto.com/reader/595014
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的串口ic读卡器源码-c#代码(2)续上的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Service(7)--
- 下一篇: css 样式设计学习记录(0)