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