DOS下使用FoxPro与Moden交互的问题

78 2002-11-04 05:26:06
我的问题是:1、为什么FREAD(NHANDLE,1)会提示串口号不能读写?
那么,如何才能拨号后读写串口呢?

&&调用方式: DialPhon Ccomport,CphonEno
&&入口参数说明:CComport:字符串 串口号 'Auto'自动查找,1-4
&&CPhoneNo 字符串 拨打的电话.
&&例:Ccomport='Auto'
&& Cphoneno='013980511193'
&&功能:通过MODEN或其它COM设备拨号(不能拨号的设备不会报错!!!)

PARAMETER CCOMPORT, CPHONENO
PRIVATE NHANDLE, CAUTOPORT, CCOMPORT
ccomport='Auto'
cphoneno='2261159'
IF CCOMPORT='Auto'
FOR I = 1 TO 4
CAUTOPORT = 'COM'+STR(I,1)
NHANDLE = FOPEN(CAUTOPORT,2)
&&打开端口,并保存端口号
IF NHANDLE>0
EXIT
ENDIF
ENDFOR
ELSE
NHANDLE = FOPEN(CCOMPORT,2)
ENDIF
IF NHANDLE< 0
?? CHR(7)
WAIT WINDOW '打开(COM PORT)失败!按任意键退出.......'
RETURN
ENDIF
WAIT WINDOW "正在初始化 (COM PORT)" NOWAIT
CSTRING = 'ATDT '+CPHONENO+CHR(13)+CHR(10)
= FWRITE(NHANDLE,CSTRING)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&轮询直到在一秒内有"OK"返回,否则超时
&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
CSTRING=''
=FSEEK(NHANDLE,0)
BeginTime=sys(2)
DO WHILE .not. (CSTRING $ ("OK"+CHR(13)+CHR(10)))
&&.OR. (Val(Subs(sys(2),4,2))-Val(subs(begintime,4,2))<10)
CSTRING=CSTRING+FREAD(NHANDLE,1)
?'cstring=',cstring
ENDDO
?cstring
if .Not. (CSTRING $ "OK")
WAIT WINDOW "拨号超时,不能拨通,按任意键返回.ttttttttt"
CSTRING = 'ATH '+CHR(13)
= FWRITE(NHANDLE,CSTRING) &&写入关闭MODen命令
= FCLOSE(NHANDLE)
Else
CSTRING="CARDID12313213END"+CHR(13)+CHR(10)
=FWRITE(NHANDLE,CSTRING)
&&候交易成功与否信号
CSTRING=''
DO WHILE CSTRING $ "SALE"
CSTRING=CSTRING+FREad(NHANDLE,1)
Enddo

CSTRING = 'ATH '+CHR(13)
= FWRITE(NHANDLE,CSTRING) &&写入关闭MODen命令
= FCLOSE(NHANDLE) && 关闭MODEN
Endif

...全文
30 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zb2001 2002-11-19
  • 打赏
  • 举报
回复
你要拨电话号码吗?
用mscomm控件比较容易啊
你这个代码哪来的,好像也不错啊
78 2002-11-05
  • 打赏
  • 举报
回复
我再给100分.
78 2002-11-05
  • 打赏
  • 举报
回复
U....p
boomit 2002-11-05
  • 打赏
  • 举报
回复
up ....
78 2002-11-05
  • 打赏
  • 举报
回复
U......p
78 2002-11-05
  • 打赏
  • 举报
回复
帮个忙嘛,各位.

2,740

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧