我要写一个串口的读卡程序,需要编写一个串口的接口函数,具体要求是这样的接口函数:
InitCard(....)ReadCard(....)WriteCard(...)客户端函数通过调用上面的接口函数来实现对卡的读写,初始化等功能。我就需要实现以上的接口函数,因为以前并没有写过相关的内容,所以想请大家贴点代码来参考参考。我准备用ReadFile,WriteFile等API函数来实现,不使用控件或者其他的类。现在我有一些想法,想请大家来看看是否可行。1.比如ReadCard,传入需要读取的区块等内容,我的接口函数需要用WriteFile把这些内容以特定的格式来送入串口,然后,我是在写入后就读取串口数据呢?还是新开一个线程来读取串口数据呢? 
2.在WriteFile的时候,只是把命令写入了发送缓冲区,那么如何让这些数据立即发送出去呢?有没有相关的函数呢?

解决方案 »

  1.   

    cnComm,代码太长,详情请见:http://blog.csdn.net/wujian53/archive/2007/09/21/1794187.aspx
      

  2.   


    1、怎么发送和接收跟你的通信协议有关系;2、WriteFile 函数直接发送数据;3、新手先使用同步操作,也就是阻塞方式,这种方式简单易懂。
      

  3.   

    1.比如ReadCard,传入需要读取的区块等内容,我的接口函数需要用WriteFile把这些内容以特定的格式来送入串口,然后,我是在写入后就读取串口数据呢?还是新开一个线程来读取串口数据呢? 
    //最好新开一个线程读取,因为你无法确定读卡器何时会返回数据。
    2.在WriteFile的时候,只是把命令写入了发送缓冲区,那么如何让这些数据立即发送出去呢?有没有相关的函数呢? 
    //在API级别,只能将数据写入发送缓冲区,何时发送由windows底层控制,你不必关心。
      

  4.   

    你如果是购买现成的读写卡器和卡片,那么读写卡器的生产商应该会提供二次开发包,二次开发包一般都会提供诸如:打开及关闭端口(串口或USB),读卡写卡函数,以及一些其他相关函数,你直接使用就可以了.
      

  5.   

    串口api操作看这篇帖子http://vckbase.com/document/viewdoc/?id=11141.比如ReadCard,传入需要读取的区块等内容,我的接口函数需要用WriteFile把这些内容以特定的格式来送入串口,然后,我是在写入后就读取串口数据呢?还是新开一个线程来读取串口数据呢? 都可以达到目的,但是一般情况下,无法确认卡是否立即返回数据,所以建议用线程2.在WriteFile的时候,只是把命令写入了发送缓冲区,那么如何让这些数据立即发送出去呢?有没有相关的函数呢? 这个windows api函数WriteFile已经保证了数据发送,应用程序没有必要关心3.打开串口的时候,是用异步操作好呢?还是同步操作?看情况,如果是简单的数据握手,可以用同步操作,但如果是大量数据传输,或者无法确定通信时序的,一般都是用异步
      

  6.   

    用CSerialPort类~~~
    或者你参考一下他的代码~~
      

  7.   

    串口编程可以参见下面文章:
    http://www.joyvc.cn/NetworkAndCommunication/NetworkAndCommunicationGroup00141.html
      

  8.   

    1,开线程,一是不至于界面死掉,二是接受的数据不一定1次接收完
    2,WriteFile 函数直接发送数据
    3,一般都是异步,同步的很少
    LZ有邮箱吗?给你个代码参考下
      

  9.   

    http://www.joyvc.cn/NetworkAndCommunication/NetworkAndCommunicationGroup00141.html还行。
      

  10.   

    1.最好在线程中或用消息响应函数。
    2.write应该就发送出去了。