lnp.h File Reference

Internal LNP Interface: link networking protocol. More...

#include "../lnp.h"
Include dependency graph for lnp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define LNP_HOSTMASK   CONF_LNP_HOSTMASK
 the LNP host mask (config.h) More...
 
#define LNP_PORTMASK   (0x00ff & ~CONF_LNP_HOSTMASK)
 LNP port mask is derived from host mask. More...
 
#define LNP_RCX_HEADER_LENGTH   (3-1)
 length of header from remote/rcx, -1 because first byte is used to id sequence More...
 
#define LNP_RCX_REMOTE_OP_LENGTH   (5-3)
 length of remote button op, -3 because first 3 bytes is used to id sequence More...
 
#define LNP_RCX_MSG_OP_LENGTH   (5-3)
 length of rcx message op, -3 because first 3 bytes is used to id sequence More...
 

Enumerations

enum  lnp_integrity_state_t {
  LNPwaitHeader , LNPwaitLength , LNPwaitData , LNPwaitCRC ,
  LNPwaitRMH1 , LNPwaitRMH2 , LNPwaitRMH3 , LNPwaitRMH4 ,
  LNPwaitRB0 , LNPwaitRB0I , LNPwaitRB1 , LNPwaitRB1I ,
  LNPwaitRC , LNPwaitRCI , LNPwaitMH3 , LNPwaitMH4 ,
  LNPwaitMN , LNPwaitMNC , LNPwaitMC , LNPwaitMCC
}
 states for the integrity layer state machine More...
 

Functions

unsigned char lnp_checksum_copy (unsigned char *dest, const unsigned char *data, unsigned length)
 the LNP ‘copy and compute checksum’ function. More...
 
void lnp_integrity_byte (unsigned char b)
 receive a byte from the physical layer, decoding integrity layer packets. More...
 
void lnp_integrity_reset (void)
 reset the integrity layer on error or timeout. More...
 
int lnp_integrity_active (void)
 return whether a packet is currently being received More...
 
void lnp_timeout_reset (void)
 reset the inter-byte timeout counter. More...
 
void lnp_timeout_set (unsigned short timeout)
 set the inter-byte timeout and reset the timeout counter to that value. More...
 
void lnp_init (void)
 Initialise protocol handlers. More...
 

Variables

volatile unsigned short lnp_timeout_counter
 the timeout counter in ms More...
 
unsigned short lnp_timeout
 the timeout length in ms More...
 
lnp_integrity_state_t lnp_integrity_state
 the integrity layer state More...
 

Detailed Description

Internal LNP Interface: link networking protocol.

Author
Markus L. Noga marku.nosp@m.s@no.nosp@m.ga.de

Definition in file lnp.h.

Macro Definition Documentation

◆ LNP_HOSTMASK

#define LNP_HOSTMASK   CONF_LNP_HOSTMASK

the LNP host mask (config.h)

Definition at line 43 of file lnp.h.

◆ LNP_PORTMASK

#define LNP_PORTMASK   (0x00ff & ~CONF_LNP_HOSTMASK)

LNP port mask is derived from host mask.

Definition at line 46 of file lnp.h.

◆ LNP_RCX_HEADER_LENGTH

#define LNP_RCX_HEADER_LENGTH   (3-1)

length of header from remote/rcx, -1 because first byte is used to id sequence

Definition at line 50 of file lnp.h.

◆ LNP_RCX_MSG_OP_LENGTH

#define LNP_RCX_MSG_OP_LENGTH   (5-3)

length of rcx message op, -3 because first 3 bytes is used to id sequence

Definition at line 56 of file lnp.h.

◆ LNP_RCX_REMOTE_OP_LENGTH

#define LNP_RCX_REMOTE_OP_LENGTH   (5-3)

length of remote button op, -3 because first 3 bytes is used to id sequence

Definition at line 53 of file lnp.h.

Enumeration Type Documentation

◆ lnp_integrity_state_t

states for the integrity layer state machine

Enumerator
LNPwaitHeader 
LNPwaitLength 
LNPwaitData 
LNPwaitCRC 
LNPwaitRMH1 

states when waiting for rcx protocol message

LNPwaitRMH2 
LNPwaitRMH3 
LNPwaitRMH4 
LNPwaitRB0 

states when waiting for remote buttons args

LNPwaitRB0I 
LNPwaitRB1 
LNPwaitRB1I 
LNPwaitRC 
LNPwaitRCI 
LNPwaitMH3 

states when waiting for rcx message opcode

LNPwaitMH4 
LNPwaitMN 
LNPwaitMNC 
LNPwaitMC 
LNPwaitMCC 

Definition at line 60 of file lnp.h.

Function Documentation

◆ lnp_checksum_copy()

unsigned char lnp_checksum_copy ( unsigned char *  dest,
const unsigned char *  data,
unsigned  length 
)

the LNP ‘copy and compute checksum’ function.

◆ lnp_init()

void lnp_init ( void  )

Initialise protocol handlers.

Adressing port 0 is reserved for the program handler. DLL transfers programs to this port.

◆ lnp_integrity_active()

int lnp_integrity_active ( void  )
inline

return whether a packet is currently being received

Returns
1 if yes, else zero

Definition at line 140 of file lnp.h.

References lnp_integrity_state, and LNPwaitHeader.

◆ lnp_integrity_byte()

void lnp_integrity_byte ( unsigned char  b)

receive a byte from the physical layer, decoding integrity layer packets.

Parameters
bthe byte to receive

◆ lnp_integrity_reset()

void lnp_integrity_reset ( void  )

reset the integrity layer on error or timeout.

◆ lnp_timeout_reset()

void lnp_timeout_reset ( void  )

reset the inter-byte timeout counter.

◆ lnp_timeout_set()

void lnp_timeout_set ( unsigned short  timeout)
inline

set the inter-byte timeout and reset the timeout counter to that value.

Parameters
timeoutthe new timeout value

Definition at line 155 of file lnp.h.

References lnp_timeout, and lnp_timeout_counter.

Variable Documentation

◆ lnp_integrity_state

lnp_integrity_state_t lnp_integrity_state
extern

the integrity layer state

Referenced by lnp_integrity_active().

◆ lnp_timeout

unsigned short lnp_timeout
extern

the timeout length in ms

Referenced by lnp_timeout_set().

◆ lnp_timeout_counter

volatile unsigned short lnp_timeout_counter
extern

the timeout counter in ms

Referenced by lnp_timeout_set().


brickOS is released under the Mozilla Public License.
Original code copyright 1998-2005 by the authors.

Generated for brickOS Kernel Developer by doxygen 1.9.4