Пример кода

Внимание

Этот раздел сейчас дорабатывается, приносим извинения за неудобства. Если вам нужна срочная помощь, обратитесь в службу поддержки 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
Исходный материал Tibbo обновлён 7 августа 2025Оригинал на docs.tibbo.com · Сообщить об ошибке