射频IC卡就餐机和后台管理微机的通信设计

技术分类: 通信  | 2007-01-30
来源:电子查询网 | 梁昌明 李一森

    3.3 通信程序实现

    每次通信时,首先在主机的init事件中初始化通信控件olecontrol1,初始化设置为:

    thisform.olecontrol1.CommPort=1 //选择串行口com1
    thisform.olecontrol1.PortOpen=1 //打开串行口com1
    thisform.olecontrol1.InputMode=0 //接收的数据按文本方式
    thisform.olecontrol1.RTSEnable=1 //允许使用rts线,用于rs-232/485转换器的发送控制和供电
    thisform.olecontrol1.InputLen=1 //每次读取接收缓冲区的一个字符
    thisform.olecontrol1.OutbufferCount=0 //清除发送缓冲区
    thisform.olecontro

l1.InbufferCount=0 //清除接收缓冲区

    定时控件timer1作为超时定时器, 在Timer1的OnTimer事件中,(假定共有两台就餐机)如果微机向就餐机#1发送的数据正确,那么,延时后,向下一个就餐机发送数据,直到最后一个就餐机,然后提示发送完毕;如果微机向就餐机发送的数据错误,那么,延时后,再发一次。如果连续三次发送都发生了错误,那么,给出错误的就餐机号,并且向下一个就餐机发送数据。定时器的初始化为:

    timer1.Interval=50  *定时时间间隔为50ms
    timer1.ensbled=.f.先关超时定时器1

    在Command1的Click 事件中通过调用外部过程program2向就餐机发送地址(即机号),和要求就餐机向主机传送就餐数据的命令。Program2的程序为:

    procedure programe2
    *发送机号
    表单js.olecontrol1.RThreshold=0
    表单js.olecontrol1.Settings="2400,m,8,1"
    jh2=chr(jh2)
    表单js.olecontrol1.OutPut=jh2
    *发送命令
    表单js.olecontrol1.Settings="2400,s,8,1"
    表单js.olecontrol1.OutPut="E"
    表单js.olecontrol1.InbufferCount=0
    表单js.olecontrol1.OutbufferCount=0
    表单js.olecontrol1.RThreshold=1
       表单js.timer1.enabled=.t.
       return

     具体为:首先在发送数据之前设置OLECONTROLL的Rthreshold为0,禁止对发送事件产生ONCOMM事件,防止主机接收自己的数据。在发送一个字节的机号时,设settings表单js.olecontrol1.Settings="2400,m,8,1"

    即校验位为mark:‘1’,代表地址字节,以校验位作为识别地址的标志。在发送完机号后,设置settings为:

    表单js.olecontrol1.Settings="2400,s,8,1"
      
    即校验位为space:‘0’,表示发送的一个字节E是要求就餐机开始向主机传送就餐数据的命令。主机向就餐机发送数据的方法是应用通信控件的OUTPUT函数,即为表单js.olecontrol

0
0
(请您对文章做出评价)
1】【2】【3
加载中

对文章的评论

更多评论

剩余字数:  

相关在线研讨会

我要参加

同Keithley大师一起实践MIMO射频测试

时间:2009-01-08  14:00:00--16:00:00
简介:在本次研讨会中,我们将详细介绍Keithley MIMO测试平台,并以IEEE 802.11n,IEEE 802.16e为具体实例,为您展示Signal Meister和Keithley MIMO… 马上参会

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会