База знаний / Справочник TiOS / Разработка (TiOS) / Справочник по программированию / Библиотеки / Справочник по библиотекам / Библиотека PPPOE
Пример кода
Внимание
Этот раздел сейчас дорабатывается, приносим извинения за неудобства. Если вам нужна срочная помощь, обратитесь в службу поддержки Tibbo.
Простой пример использования библиотеки PPPOE. Pppoe_start() вызывается при загрузке. Когда соединение PPPoE установлено, устройство открывает исходящее TCP-соединение с заданными удалённым IP-адресом и портом.
Зелёный светодиод состояния показывает состояние TCP-соединения: он горит, когда соединение установлено.
Чтобы проверить TCP-соединение, код периодически отправляет на удалённый конец небольшую строку данных. Если приходит какой-либо ответ, зелёный светодиод состояния ненадолго гаснет.
Перед запуском кода не забудьте изменить константы ADSL_NAME, ADSL_LOGIN, REMOTE_IP и REMOTE_PORT.
'DEFINES—-----------------------------------------------------------
#define PPPOE_DEBUG_PRINT 1
'INCLUDES------------------------------------------------------------
include "sock\trunk\sock.tbh"
include "pppoe\trunk\pppoe.tbh"
'DECLARATIONS--------------------------------------------------------
declare tcp_sock_o as byte
include "global.tbh"
'--------------------------------------------------------------------
const ADSL_NAME="correct_name" '<----- CHANGE THIS AS NEEDED
const ADSL_PASSWORD="correct_password" '<----- CHANGE THIS AS NEEDED
const REMOTE_IP="59.120.32.27" '<----- CHANGE THIS AS NEEDED
const REMOTE_PORT=40000 '<----- CHANGE THIS AS NEEDED
'--------------------------------------------------------------------
dim tcp_sock_o as byte
'====================================================================
sub on_sys_init()
dim res as en_pppoe_status_codes
'----- this is for the outgoing test connection
tcp_sock_o=sock_get("TCPA")
sock.num=tcp_sock_o
sock.txbuffrq(1)
sock.rxbuffrq(1)
sys.buffalloc
sock.protocol=PL_SOCK_PROTOCOL_TCP
sock.targetip=REMOTE_IP
sock.targetport=REMOTE_PORT
sock.targetinterface=PL_SOCK_INTERFACE_PPPOE
'----- end
res=pppoe_start(ADSL_NAME,ADSL_PASSWORD)
end sub
'--------------------------------------------------------------------
sub on_sock_data_arrival()
dim s as string(32)
pppoe_proc_data()
'----- this is for the outgoing test connection
if sock.num=tcp_sock_o then
s=sock.getdata(255)
pat.play("-***",PL_PAT_CANINT)
end if
'----- end
end sub
'--------------------------------------------------------------------
sub on_sys_timer()
pppoe_proc_timer()
'----- this is for the outgoing test connection
sock.num=tcp_sock_o
if sock.statesimple=PL_SSTS_EST then
sock.setdata("ABC")
sock.send
end if
'----- end
end sub
'--------------------------------------------------------------------
sub on_sock_event(newstate as pl_sock_state, newstatesimple as pl_sock_state_simple)
'----- this is for the outgoing test connection
if sock.num=tcp_sock_o then
pat.play("-***",PL_PAT_CANINT)
end if
'----- end
end sub
'--------------------------------------------------------------------
sub on_pat()
'----- this is for the outgoing test connection
sock.num=tcp_sock_o
if sock.statesimple=PL_SSTS_EST then
pat.play("G~",PL_PAT_CANINT)
end if
'----- end
end sub
include "global.tbh"
'====================================================================
sub callback_pppoe_ok()
sock.num=tcp_sock_o
sock.connect
end sub
'--------------------------------------------------------------------
sub callback_pppoe_failure(pppoe_code as en_pppoe_status_codes)
sock.num=tcp_sock_o
sock.discard
end sub
'--------------------------------------------------------------------
sub callback_pppoe_pre_buffrq(required_buff_pages as byte)
end sub