BHT-303BW在编程的时候有时候会出现连接错误.
该问题主要由于无线模块的差异性引起.
解决该问题的方法很简单, 需要通过"SOCKET.FN3"调整无线模块等待连接的时间.
....
FAMILY% = 2 : TYPE% = 1 : PROTOCOL% = 6 'TCP/IP PROTOCOL
CALL "SOCKET.FN3" 26 FAMILY%, TYPE%, PROTOCOL%, SOCKFD%
SOCK.STAT% = 4 'OPEN SOCKET
'请调整OPTION的参数,这里. 它决定了连接等待的时间.
'由于每个无线模块的反应速度不一样,如果等待的时间太短,有时候会出现错误.
OPTNAME% = 26 : OPTION = 1
CALL "SOCKET.FN3" 24 SOCKFD%, OPTNAME%, OPTION
OPTNAME% = 30 : OPTION% = 100
CALL "SOCKET.FN3" 24 SOCKFD%, OPTNAME%, OPTION
CALL "SOCKET.FN3" 8 TCP.PORT%, PORT% 'NETWORK BYTE ORDER
FAMILY% = 2
CALL "SOCKET.FN3" 3 SOCKFD%, FAMILY%, PORT%, SVRIP$
SOCK.STAT% = 5 'CONNECT SOCKET (TCP OPENED)
具体调试的时候, 可能很难判断该错误是否是由于无线模块的差异性引起.
这样就需要暂时注释"ON ERROR GOTO ..." 语句.
这样,如果出现错误, BHTOS会自动抛出异常并且强制中断程序.
同时,在屏幕下方会显示错误号和错误行号
ERR=XXXX
ERL=XXXX
ERL就是引起错误的代码行号. 只要通过查询.LST文件就可以发现大概的位置.
如果错误是下面的代码引起的, 则很有可能是该文描述的原因.
CALL "SOCKET.FN3" 3 SOCKFD%, FAMILY%, PORT%, SVRIP$
该问题主要由于无线模块的差异性引起.
解决该问题的方法很简单, 需要通过"SOCKET.FN3"调整无线模块等待连接的时间.
....
FAMILY% = 2 : TYPE% = 1 : PROTOCOL% = 6 'TCP/IP PROTOCOL
CALL "SOCKET.FN3" 26 FAMILY%, TYPE%, PROTOCOL%, SOCKFD%
SOCK.STAT% = 4 'OPEN SOCKET
'请调整OPTION的参数,这里. 它决定了连接等待的时间.
'由于每个无线模块的反应速度不一样,如果等待的时间太短,有时候会出现错误.
OPTNAME% = 26 : OPTION = 1
CALL "SOCKET.FN3" 24 SOCKFD%, OPTNAME%, OPTION
OPTNAME% = 30 : OPTION% = 100
CALL "SOCKET.FN3" 24 SOCKFD%, OPTNAME%, OPTION
CALL "SOCKET.FN3" 8 TCP.PORT%, PORT% 'NETWORK BYTE ORDER
FAMILY% = 2
CALL "SOCKET.FN3" 3 SOCKFD%, FAMILY%, PORT%, SVRIP$
SOCK.STAT% = 5 'CONNECT SOCKET (TCP OPENED)
具体调试的时候, 可能很难判断该错误是否是由于无线模块的差异性引起.
这样就需要暂时注释"ON ERROR GOTO ..." 语句.
这样,如果出现错误, BHTOS会自动抛出异常并且强制中断程序.
同时,在屏幕下方会显示错误号和错误行号
ERR=XXXX
ERL=XXXX
ERL就是引起错误的代码行号. 只要通过查询.LST文件就可以发现大概的位置.
如果错误是下面的代码引起的, 则很有可能是该文描述的原因.
CALL "SOCKET.FN3" 3 SOCKFD%, FAMILY%, PORT%, SVRIP$