📄 gprs 域名方式还没删.zrg
字号:
********写 dongbeipower.com(东北电力.com)
procedure Set_DomainName2
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=12H
buffer{11,1}=00H
buffer{12,1}=13H
clear
@ 0,1 say "设置中..."
temp14=BCDToNum(RecBuffer{2,6},00H)
temp14=temp14+1000000000000
char12=right(str(temp14,13),12)
char8=right(str(temp14,13),8)
buffer{13,16}=TopDomainName{1,16}
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
clear
char8{1,8}=TopDomainName{1,8}
@ 0,0 say char8
char8{1,8}=TopDomainName{9,8}
@ 0,8 say char8
@ 3,0 say "域名设置完毕"
@ 4,0 say "按任一键退出"
wait ""
return
endpro
********写端口号
procedure SetPort
return
endpro
********设置心跳包的发送时间
procedure SetPollTime
clear
@ 1,1 say "输入心跳包的间隔"
@ 2,1 say "(回车默认15分钟)"
@ 3,3 say " 分"
@ 3,1
input to char2
char2=TRIM(char2)
temp1=len(char2)
if temp1=0
char2="15"
endif
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=03H
buffer{11,1}=00H
buffer{12,1}=16H
clear
@ 0,1 say "设置中..."
buffer{13,1}=val(char2)
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
clear
@ 1,1 say "心跳包时间设置成功!"
@ 3,1 say "按任一键退出"
wait ""
return
endpro
********设为IP地址连接
procedure Set_LinkForIP
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=02H
buffer{11,1}=00H
buffer{12,1}=1EH
clear
@ 0,1 say "正在发送..."
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
clear
@ 1,1 say "IP连接方式设置完毕."
@ 2,1 say "(别忘记设置IP地址)"
@ 3,1 say "请按任意键退出."
wait ""
return
endpro
********设为域名连接
procedure Set_LinkForDoName
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=02H
buffer{11,1}=00H
buffer{12,1}=1FH
clear
@ 0,1 say "正在发送..."
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
clear
@ 1,1 say "域名连接设置完毕."
@ 2,1 say "(别忘记设置动态域名)"
@ 3,1 say "请按任意键退出."
wait ""
return
endpro
********写卡号
procedure WriteToDTU
clear
@ 1,1 say "请输入SIM卡号..."
@ 2,1 say "11位:"
@ 2,6
input to SimCardNO
SimCardNO=TRIM(SimCardNO)
temp2=len(SimCardNO)
if temp2<>11
return
endif
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=0DH &&11+2=13
buffer{11,1}=00H
buffer{12,1}=12H
clear
@ 0,1 say "设置中..."
buffer{13,11}=SimCardNO{1,11}
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
clear
@ 0,1 say "卡号设置成功!"
@ 1,1 say "按任一键退出"
wait ""
return
endpro
********读取老威胜表的时间
procedure Read_WS_Time
do ask_bh
buffer{2,1}=55h
buffer{3,1}=01h
buffer{4,1}=20h
buffer{5,1}=05h
buffer{6,1}=CheckSum(buffer{1,5})
buffer{7,1}=0Dh
clear
@ 0,1 say "正在读取..."
do SendCom_WS
do ReceiveCom_WS
if nComResult<>0
do pinerror
return
endif
temp2=RecBuffer{10,1}
L=temp2/10
temp2=L*10+(temp2-L*10) &&年
temp2=temp2+100
char2=right(str(temp2,3),2)
temp2=RecBuffer{11,1}
L=temp2/10
temp2=L*10+(temp2-L*10) &&月
temp2=temp2+100
WS_DateTime=char2+"年"+right(str(temp2,3),2)
temp2=RecBuffer{12,1}
L=temp2/10
temp2=L*10+(temp2-L*10) &&日
temp2=temp2+100
WS_DateTime=WS_DateTime+"月"+right(str(temp2,3),2)
temp2=RecBuffer{13,1}
L=temp2/10
temp2=L*10+(temp2-L*10) &&时
temp2=temp2+100
WS_DateTime=WS_DateTime+"日"+right(str(temp2,3),2)
temp2=RecBuffer{14,1}
L=temp2/10
temp2=L*10+(temp2-L*10) &&分
temp2=temp2+100
WS_DateTime=WS_DateTime+":"+right(str(temp2,3),2)+"分"
temp2=BCDToNum(RecBuffer{1,1},00H)
temp2=temp2+100
char3=right(str(temp2,3),2)
clear
@ 1,1 say "通信地址:"
@ 1,10 say char3
@ 2,1 say "日期时间:"
@ 3,1 say WS_DateTime
wait ""
return
endpro
********终端485口检测
procedure TestDTU485
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=02H
buffer{11,1}=00H
buffer{12,1}=01H
clear
@ 0,1 say "正在读取..."
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
temp14=BCDToNum(RecBuffer{2,6},00H)
temp14=temp14+1000000000000
char12=right(str(temp14,13),12)
clear
@ 0,1 say "NO."
@ 0,4 say char12
@ 1,1 say "485口通讯成功。"
@ 5,1 say "按任意键退出"
wait ""
return
endpro
********读出SIM卡号,不加33H
procedure ReadSIMNO
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=02H
buffer{11,1}=00H
buffer{12,1}=04H
clear
@ 0,1 say "正在读取..."
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
temp14=BCDToNum(RecBuffer{2,6},00H)
temp14=temp14+1000000000000
char12=right(str(temp14,13),12)
SimCardNO=right(str(temp14,13),11)
SimCardNO{1,11}=RecBuffer{13,11}
clear
@ 0,1 say "NO."
@ 0,4 say char12
@ 2,1 say "SIM卡号:"
@ 3,1 say SimCardNO
@ 5,1 say "按任意键退出"
wait ""
return
endpro
********检查信号强度
procedure ReadSignalQuality
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=02H
buffer{11,1}=00H
buffer{12,1}=02H
clear
@ 0,1 say "正在读取..."
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
temp14=BCDToNum(RecBuffer{2,6},00H)
temp14=temp14+1000000000000
char12=right(str(temp14,13),12)
AnswerCSQ=right(str(temp14,13),10)
AnswerCSQ{1,10}=RecBuffer{13,10}
clear
clear
@ 0,1 say "NO."
@ 0,4 say char12
@ 2,1 say "信号强度:"
@ 3,1 say AnswerCSQ
@ 5,1 say "按任意键退出"
wait ""
return
endpro
********GPRS网络附着情况
procedure GPRSAttach
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=02H
buffer{11,1}=00H
buffer{12,1}=03H
clear
@ 0,1 say "正在读取..."
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
temp14=BCDToNum(RecBuffer{2,6},00H)
temp14=temp14+1000000000000
char12=right(str(temp14,13),12)
AttachedSta=right(str(temp14,13),10)
AttachedSta{1,10}=RecBuffer{13,10}
clear
@ 0,1 say "NO."
@ 0,4 say char12
@ 2,1 say "GPRS附着:"
@ 3,1 say AttachedSta
@ 5,1 say "按任意键退出"
wait ""
return
endpro
********读终端号(八位)
procedure ReadDTUNO
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=02H
buffer{11,1}=00H
buffer{12,1}=07H
clear
@ 0,1 say "正在读取..."
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
temp14=BCDToNum(RecBuffer{2,6},00H)
temp14=temp14+1000000000000
char12=right(str(temp14,13),12)
temp10=BCDToNum(RecBuffer{13,4},00H)
temp10=temp10+100000000
char8=right(str(temp10,9),8)
clear
@ 1,1 say "NO."
@ 1,4 say char8
@ 3,1 say "按任意键退出"
wait ""
return
endpro
********读出日期时间
Procedure ReadTimeDate
buffer{2,1}=099h
buffer{3,1}=099h
buffer{4,1}=099h
buffer{5,1}=099h
buffer{6,1}=099h
buffer{7,1}=099h
buffer{9,1}=09H
buffer{10,1}=02H
buffer{11,1}=00H
buffer{12,1}=05H
clear
@ 0,1 say "正在读取..."
do SendCom
do ReceiveCom
if nComResult<>0
do pinerror
return
else
temp2=RecBuffer{9,1}
do while temp2<>089H
do comeon
if asc(char1)=13
do SendCom
do ReceiveCom
else
return
endif
temp2=RecBuffer{9,1}
enddo
endif
temp14=BCDToNum(RecBuffer{2,6},00H)
temp14=temp14+1000000000000
char12=right(str(temp14,13),12)
DTUDate=right(str(temp14,13),8)
DTUTime=right(str(temp14,13),8)
clear
@ 0,1 say "NO."
@ 0,4 say char12
@ 2,1 say "日期:"
DTUDate{1,8}=RecBuffer{13,8}
@ 2,6 say DTUDate
@ 3,1 say "时间:"
DTUTime{1,8}=RecBuffer{22,8}
@ 3,6 say DTUTime
@ 5,1 say "按任意键退出"
wait ""
return
endpro
********设置功能
Procedure InitialDTU
DO WHILE .T.
done=0
I=1
do while I<=16
Buffer{I,1}=00H
RecBuffer{I,1}=00H
I=I+1
enddo
clear
@ 0,1 say "1 写终端号"
@ 1,1 say "2 写卡号"
* @ 2,1 say "3 写端口号"
@ 3,1 say "4 写IP/DomainName >"
@ 4,1 say "5 写日期时间"
@ 5,1 say "6 设置心跳时间"
wait "" to choice
DO CASE
******** "1" 设置终端号(八位)
CASE asc(choice) = 31H
do SetDTUNO
******** "2" 设置卡号
CASE asc(choice) = 32H
do WriteToDTU
******** "3" 设置端口号
* CASE asc(choice) = 33H
* do SetPort
******** "4" 设置IP/DomainName
CASE asc(choice) = 34H
do SetIP_DomainName
******** "5" 设置日期时间
CASE asc(choice) = 35H
do SetDateTime
******** "6" 设置心跳包的发送时间
CASE asc(choice) = 36H
do SetPollTime
******** 退出键 退出
CASE asc(choice) = 24
clear
return
ENDCASE
ENDDO
return
endpro
********信道检测
Procedure ChannelCheck
DO WHILE .T.
done=0
I=1
do while I<=16
Buffer{I,1}=00H
RecBuffer{I,1}=00H
I=I+1
enddo
clear
@ 0,1 say "1 终端485口"
@ 1,1 say "2 威胜规约通讯测试"
wait "" to choice
DO CASE
******** "1" 终端485口检测
CASE asc(choice) = 31H
do TestDTU485
******** "2" 读取老威胜表的时间
CASE asc(choice) = 32H
do Read_WS_Time
******** 退出键 退出
CASE asc(choice) = 24
clear
return
ENDCASE
ENDDO
return
endpro
********信息读取
Procedure ReadInfo
DO WHILE .T.
done=0
I=1
do while I<=16
Buffer{I,1}=00H
RecBuffer{I,1}=00H
I=I+1
enddo
clear
@ 0,1 say "1 GPRS终端号"
@ 1,1 say "2 SIM卡号"
@ 2,1 say "3 信号强度"
@ 3,1 say "4 GPRS网络附着情况"
@ 4,1 say "5 日期时间"
@ 8,1 say "(请按数字键选择)"
wait "" to choice
DO CASE
******** "1" 读GPRS终端号
CASE asc(choice) = 31H
do ReadDTUNO
******** "2" 读出SIM卡号
CASE asc(choice) = 32H
do ReadSIMNo
******** "3" 检查信号强度
CASE asc(choice) = 33H
do ReadSignalQuality
******** "4" GPRS网络附着情况
CASE asc(choice) = 34H
do GPRSAttach
******** "5" 读出日期时间
CASE asc(choice) = 35H
do ReadTimeDate
******** 退出键 退出
CASE asc(choice) = 24
clear
return
ENDCASE
ENDDO
return
endpro
********主程序(主菜单)
start
select B
go top
clear
@ 1,0 say "---GPRS现场检测仪---"
@ 2,3 say "版本号 V1.2"
@ 4,0 say "北京博纳电气有限公司"
@ 5,0 say "Banner Ele Cor.,LTD"
wait ""
********485接口 6针->25针
mdFLAG=2
temp1=1
DO WHILE .t.
********设置字符显示模式
set mode to 1
********绘图用黑色
set color to 1
********设置自动关机时间300秒
set downtime to 300
done=0
I=1
********清Buffer,RecBuffer
do while I<=64
Buffer{I,1}=00H
RecBuffer{I,1}=00H
I=I+1
enddo
clear
@ 0,1 say "---- 485 通讯 ----"
@ 1,1 say "1 初始设置"
@ 2,1 say "2 信道检测"
@ 3,1 say "3 信息读取"
*** @ 3,1 say "4 "
wait "" to choice
DO CASE
******** "1" 初始设置
CASE asc(choice) = 31H
do InitialDTU
******** "2" 信道检测
CASE asc(choice) = 32H
do ChannelCheck
******** "3" 信息读取
CASE asc(choice) = 33H
do ReadInfo
ENDCASE
ENDDO
endstart
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -