IgH EtherCAT Master  1.5.2
fsm_mbox_gateway.c File Reference

EtherCAT Mailbox Gateway state machine. More...

Go to the source code of this file.

Macros

#define DEBUG_RETRIES   0
 Enable debug output for retries.
 
#define DEBUG_LONG   0
 Enable warning output if transfers take too long.
 

Functions

void ec_fsm_mbg_start (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 MBox Gateway state: START. More...
 
void ec_fsm_mbg_request (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 MBox Gateway: REQUEST. More...
 
void ec_fsm_mbg_check (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 MBox Gateway state: CHECK. More...
 
void ec_fsm_mbg_response (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 MBox Gateway state: RESPONSE. More...
 
void ec_fsm_mbg_response_data (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 MBox Gateway state: RESPONSE DATA. More...
 
void ec_fsm_mbg_end (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 State: END. More...
 
void ec_fsm_mbg_error (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 State: ERROR. More...
 
void ec_fsm_mbg_init (ec_fsm_mbg_t *fsm)
 Constructor. More...
 
void ec_fsm_mbg_clear (ec_fsm_mbg_t *fsm)
 Destructor. More...
 
void ec_fsm_mbg_transfer (ec_fsm_mbg_t *fsm, ec_slave_t *slave, ec_mbg_request_t *request)
 Starts to transfer a mailbox gateway request to/from a slave. More...
 
int ec_fsm_mbg_exec (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 Executes the current state of the state machine. More...
 
int ec_fsm_mbg_success (const ec_fsm_mbg_t *fsm)
 Returns, if the state machine terminated with success. More...
 
int ec_fsm_mbg_prepare_start (ec_fsm_mbg_t *fsm, ec_datagram_t *datagram)
 Prepare a request. More...
 
int mbox_type_to_prot (uint8_t mbox_type, uint8_t *mbox_prot)
 convert mailbox type number to mailbox prototype flag More...
 

Detailed Description

EtherCAT Mailbox Gateway state machine.

Definition in file fsm_mbox_gateway.c.

Function Documentation

◆ ec_fsm_mbg_start()

void ec_fsm_mbg_start ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

MBox Gateway state: START.

Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 212 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_request()

void ec_fsm_mbg_request ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

MBox Gateway: REQUEST.

Todo:
Timeout behavior
Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 271 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_check()

void ec_fsm_mbg_check ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

MBox Gateway state: CHECK.

Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 344 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_response()

void ec_fsm_mbg_response ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

MBox Gateway state: RESPONSE.

Todo:
Timeout behavior
Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 417 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_response_data()

void ec_fsm_mbg_response_data ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

MBox Gateway state: RESPONSE DATA.

Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 462 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_end()

void ec_fsm_mbg_end ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

State: END.

Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 578 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_error()

void ec_fsm_mbg_error ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

State: ERROR.

Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 565 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_init()

void ec_fsm_mbg_init ( ec_fsm_mbg_t fsm)

Constructor.

Parameters
fsmFinite state machine

Definition at line 67 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_clear()

void ec_fsm_mbg_clear ( ec_fsm_mbg_t fsm)

Destructor.

Parameters
fsmFinite state machine

Definition at line 79 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_transfer()

void ec_fsm_mbg_transfer ( ec_fsm_mbg_t fsm,
ec_slave_t slave,
ec_mbg_request_t request 
)

Starts to transfer a mailbox gateway request to/from a slave.

Parameters
fsmState machine.
slaveEtherCAT slave.
requestMBox Gateway request.

Definition at line 89 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_exec()

int ec_fsm_mbg_exec ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

Executes the current state of the state machine.

Returns
1 if the state machine is still in progress, else 0.
Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 107 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_success()

int ec_fsm_mbg_success ( const ec_fsm_mbg_t fsm)

Returns, if the state machine terminated with success.

Returns
non-zero if successful.
Parameters
fsmFinite state machine

Definition at line 131 of file fsm_mbox_gateway.c.

◆ ec_fsm_mbg_prepare_start()

int ec_fsm_mbg_prepare_start ( ec_fsm_mbg_t fsm,
ec_datagram_t datagram 
)

Prepare a request.

Returns
Zero on success, otherwise a positive error code.
Parameters
fsmFinite state machine.
datagramDatagram to use.

Definition at line 146 of file fsm_mbox_gateway.c.

◆ mbox_type_to_prot()

int mbox_type_to_prot ( uint8_t  mbox_type,
uint8_t *  mbox_prot 
)

convert mailbox type number to mailbox prototype flag

Returns
1 on success, otherwise 0 for unknown mailbox type.

Definition at line 189 of file fsm_mbox_gateway.c.