Code Example
Here is a simple example of using the PPPOE library. Pppoe_start() is called on boot(). Once the PPPoE link is established, the device will open an outgoing TCP connection to a certain remote IP and port.
Green status LED is used to indicate the TCP connection status: it will be on when the TCP connection is established.
To test the TCP connection, the code will periodically send a small string of data to the remote end of the connection. If any reply is received, the green status LED will momentarily turn off.
Before running the code, do not forget to change ADSL_NAME, ADSL_LOGIN, REMOTE_IP, and REMOTE_PORT constants.
** Tibbo Basic **
'DEFINES—-----------------------------------------------------------
#define PPPOE_DEBUG_PRINT 1
'INCLUDES------------------------------------------------------------
include "sock\trunk\sock.tbh"
include "pppoe\trunk\pppoe.tbh"
'DECLARATIONS--------------------------------------------------------
declare tcp_sock_o as byte
** Tibbo Basic **
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
** Tibbo Basic **
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