开发 YX-K4-232 EM读卡器 急!!!万分感谢+十分感激!!!
说明是VB\VC的示例,实在看不明白,相关开发说明网址www.yxcard.com
希望老大们能有帮我写一个C#完整的示例,多谢!!!!!!!!!!!!!!
//以下是开发说明VC的示例:
五、读卡器测试程序编写说明-------VC的编程的主要步骤:
1、 首先建立基于对话框的MFC程序vcdll,然后在对话框上加入编辑框控件单选按钮控件静态控件和按钮。
2、 在VC++6的project-->addtoproject-->components and control-->registered ActiveX control 中串口通信选择控件Microsoft Communication Control Version 6.0。
3、 控件Microsoft Communication Control Version 6.0的需要的设置如下:
CommPort=1 ; 选择串口1
InputMode=1-Binary ; 选择串口的输入模式为二进制
InputLen=13 ; 选择从串口的读入字符串长度为13
InBufferSize=1024 ; 选择串口的输入缓冲区为1024
OutBufferSize=1024 ; 选择串口的输出缓冲区为1024
Rthreshold=13 ; 选择串口引起触发的输入长度为13
Settings=9600,n,8,1 ; 选择串口的的输入格式:波特率为9600,无校验,长度8,停止位1
4、 为了检查串口输入的数据是否正确,调用了动态连接库generaldll.dll,在程序vcdll的文件vcdll.h加入所用动态连接库的函数声明extern "C" _declspec(dllimport) short _stdcall k4chg( short *w, short q,short *p ),然后在project-->setting -->link中的项目Object/module中加入DataTest.dll的导入库generaldll.lib的路径;
5、 编辑框输出的就是卡号;两个单选按钮用于选择Com1和Com2;
按钮“清除”用于清楚编辑框中的内容,按钮“退出”用于退出程序。
6、本程序显示从串口输入的卡号;
问题点数:100、回复次数:8Top
1 楼blogkevin(中土)回复于 2005-05-12 16:58:03 得分 20
upTop
2 楼skyeenet(我不要当跑龙套的)回复于 2005-05-12 17:04:50 得分 20
提示一下:
C# 访问com口
1) 搜索一个叫 rs232 的 class 你可以直接用的
2) 使用 api 访问Top
3 楼lijipan(多空)回复于 2005-05-12 17:26:29 得分 20
说得很清楚啊,你什么地方不明白?Top
4 楼baichangle(baichangle)回复于 2005-05-13 08:11:43 得分 0
希望老大们能有帮我写一个C#完整的示例,多谢!Top
5 楼jinbingg(bing)回复于 2005-05-13 09:28:56 得分 40
//************************************************************
if (this.axMSComm1.PortOpen ) {this.axMSComm1.PortOpen =false;}
this.axMSComm1.InBufferCount =0;
this.axMSComm1.OutBufferCount =0;
this.axMSComm1.Dispose();
this.myCommCls=null;
//*************************************************************
private void checkBox2_CheckedChanged(object sender, System.EventArgs e)
{
if (this.checkBox2.Checked )
{
this.checkBox2.Text="4放开";
this.myCommCls.Crl4Close(this.axMSComm1 );
}
else
{
this.checkBox2.Text ="4吸合";
this.myCommCls.Crl4Open(this.axMSComm1);
}
}
private void checkBox3_CheckedChanged(object sender, System.EventArgs e)
{
if (this.checkBox3.Checked )
{
this.checkBox3.Text="5放开";
this.myCommCls.Crl5Close(this.axMSComm1 );
}
else
{
this.checkBox3.Text ="5吸合";
this.myCommCls.Crl5Open(this.axMSComm1);
}
}
private void checkBox4_CheckedChanged(object sender, System.EventArgs e)
{
if (this.checkBox4.Checked )
{
this.checkBox4.Text="6放开";
this.myCommCls.Crl6Close(this.axMSComm1 );
}
else
{
this.checkBox4.Text ="6吸合";
this.myCommCls.Crl6Open(this.axMSComm1);
}
}
//************************************事件***********************************************
private void myCommCls_ConnectState(object Sender,GLComm.ConnectStateArgs e )
{
lblC.Text = e.Connected.ToString(); //当前连接状态
lblD.Text = e.Descript ; //状态描述信息
}
private void myCommCls_PassCircle(object Sender,GLComm.PassCircleArgs e)
{
lblD.Text = "经过线圈"+e.CircleNum.ToString(); //读出经过线圈号
}
private void myCommCls_ReceiveInput(object Sender,GLComm.ReceiveInputArgs e)
{
lblD.Text = "接收到输入状态"+e.InputNum.ToString(); //读出接收到输入状态号
}
Top
6 楼baichangle(baichangle)回复于 2005-05-13 10:20:38 得分 0
axMSComm1?
前面是不是订意了什么东东,或引用了什么东东,小弟比较笨,还请写明,多谢!
Top
7 楼baichangle(baichangle)回复于 2005-05-13 10:43:10 得分 0
myCommCls?Top
8 楼baichangle(baichangle)回复于 2005-05-16 15:57:09 得分 0
里面有说明,希望能帮我写一个API调用的示例,多谢了,我试了几次API,但未成功.
不过好几天,也没人回,好郁闷哪!不会永远都挂在这了吧!
?????????????????????????????????????????????????????????????????????????Top




