Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
BitBangI2CStates Class Reference

Consolidate all the state machine enumerations for easy operator overloading. More...

#include <BitBangI2C.hxx>

Inheritance diagram for BitBangI2CStates:
BitBangI2C< HW >

Protected Types

enum class  State : uint8_t {
  START , ADDRESS , DATA_TX , DATA_RX ,
  RECOVERY , STOP
}
 High level I2C States. More...
 
enum class  StateStart : uint8_t {
  SDA_SET , SCL_SET , SDA_CLR , FIRST = SDA_SET ,
  LAST = SDA_CLR
}
 Low level I2C start states. More...
 
enum class  StateStop : uint8_t {
  SDA_CLR , SCL_SET , SDA_SET , FIRST = SDA_CLR ,
  LAST = SDA_SET
}
 Low level I2C stop states. More...
 
enum class  StateTx : uint8_t {
  DATA_7_SCL_CLR , DATA_7_SCL_SET , DATA_6_SCL_CLR , DATA_6_SCL_SET ,
  DATA_5_SCL_CLR , DATA_5_SCL_SET , DATA_4_SCL_CLR , DATA_4_SCL_SET ,
  DATA_3_SCL_CLR , DATA_3_SCL_SET , DATA_2_SCL_CLR , DATA_2_SCL_SET ,
  DATA_1_SCL_CLR , DATA_1_SCL_SET , DATA_0_SCL_CLR , DATA_0_SCL_SET ,
  ACK_SDA_SET_SCL_CLR , ACK_SCL_SET , ACK_SCL_CLR , FIRST = DATA_7_SCL_CLR ,
  LAST = ACK_SCL_CLR
}
 Low level I2C data TX states. More...
 
enum class  StateRx : uint8_t {
  DATA_7_SCL_SET , DATA_7_SCL_CLR , DATA_6_SCL_SET , DATA_6_SCL_CLR ,
  DATA_5_SCL_SET , DATA_5_SCL_CLR , DATA_4_SCL_SET , DATA_4_SCL_CLR ,
  DATA_3_SCL_SET , DATA_3_SCL_CLR , DATA_2_SCL_SET , DATA_2_SCL_CLR ,
  DATA_1_SCL_SET , DATA_1_SCL_CLR , DATA_0_SCL_SET , DATA_0_SCL_CLR ,
  ACK_SDA_SCL_SET , ACK_SCL_CLR , FIRST = DATA_7_SCL_SET , LAST = ACK_SCL_CLR
}
 Low level I2C data RX states. More...
 
enum class  StateRecovery : uint8_t {
  SDA_SET , DATA_7_SCL_SET , DATA_7_SCL_CLR , DATA_6_SCL_SET ,
  DATA_6_SCL_CLR , DATA_5_SCL_SET , DATA_5_SCL_CLR , DATA_4_SCL_SET ,
  DATA_4_SCL_CLR , DATA_3_SCL_SET , DATA_3_SCL_CLR , DATA_2_SCL_SET ,
  DATA_2_SCL_CLR , DATA_1_SCL_SET , DATA_1_SCL_CLR , DATA_0_SCL_SET ,
  DATA_0_SCL_CLR , ACK_SCL_SET , ACK_SCL_CLR , FIRST = SDA_SET ,
  LAST = ACK_SCL_CLR
}
 Low level I2C data RX states. More...
 

Protected Member Functions

 BitBangI2CStates ()
 Default constructor.
 

Friends

StateStartoperator++ (StateStart &)
 Allow pre-increment definition.
 
StateStopoperator++ (StateStop &)
 Allow pre-increment definition.
 
StateTxoperator++ (StateTx &)
 Allow pre-increment definition.
 
StateRxoperator++ (StateRx &)
 Allow pre-increment definition.
 
StateRecoveryoperator++ (StateRecovery &)
 Allow pre-increment definition.
 

Detailed Description

Consolidate all the state machine enumerations for easy operator overloading.

Definition at line 43 of file BitBangI2C.hxx.

Member Enumeration Documentation

◆ State

enum class BitBangI2CStates::State : uint8_t
strongprotected

High level I2C States.

Enumerator
START 

start state

ADDRESS 

address state

DATA_TX 

data TX state

DATA_RX 

data RX state

RECOVERY 

recovery state

STOP 

stop state

Definition at line 52 of file BitBangI2C.hxx.

◆ StateRecovery

enum class BitBangI2CStates::StateRecovery : uint8_t
strongprotected

Low level I2C data RX states.

Enumerator
SDA_SET 

recovery sequence, start with SDA high

DATA_7_SCL_SET 

recovery sequence

DATA_7_SCL_CLR 

recovery sequence

DATA_6_SCL_SET 

recovery sequence

DATA_6_SCL_CLR 

recovery sequence

DATA_5_SCL_SET 

recovery sequence

DATA_5_SCL_CLR 

recovery sequence

DATA_4_SCL_SET 

recovery sequence

DATA_4_SCL_CLR 

recovery sequence

DATA_3_SCL_SET 

recovery sequence

DATA_3_SCL_CLR 

recovery sequence

DATA_2_SCL_SET 

recovery sequence

DATA_2_SCL_CLR 

recovery sequence

DATA_1_SCL_SET 

recovery sequence

DATA_1_SCL_CLR 

recovery sequence

DATA_0_SCL_SET 

recovery sequence

DATA_0_SCL_CLR 

recovery sequence

ACK_SCL_SET 

recovery sequence

ACK_SCL_CLR 

recovery sequence

FIRST 

first recovery sequence state

LAST 

last recovery sequence state

Definition at line 134 of file BitBangI2C.hxx.

◆ StateRx

enum class BitBangI2CStates::StateRx : uint8_t
strongprotected

Low level I2C data RX states.

Enumerator
DATA_7_SCL_SET 

data RX sequence

DATA_7_SCL_CLR 

data RX sequence

DATA_6_SCL_SET 

data RX sequence

DATA_6_SCL_CLR 

data RX sequence

DATA_5_SCL_SET 

data RX sequence

DATA_5_SCL_CLR 

data RX sequence

DATA_4_SCL_SET 

data RX sequence

DATA_4_SCL_CLR 

data RX sequence

DATA_3_SCL_SET 

data RX sequence

DATA_3_SCL_CLR 

data RX sequence

DATA_2_SCL_SET 

data RX sequence

DATA_2_SCL_CLR 

data RX sequence

DATA_1_SCL_SET 

data RX sequence

DATA_1_SCL_CLR 

data RX sequence

DATA_0_SCL_SET 

data RX sequence

DATA_0_SCL_CLR 

data RX sequence

ACK_SDA_SCL_SET 

data RX sequence

ACK_SCL_CLR 

data RX sequence

FIRST 

first data RX sequence state

LAST 

last data RX sequence state

Definition at line 109 of file BitBangI2C.hxx.

◆ StateStart

enum class BitBangI2CStates::StateStart : uint8_t
strongprotected

Low level I2C start states.

Enumerator
SDA_SET 

start sequence

SCL_SET 

start sequence

SDA_CLR 

start sequence

FIRST 

first start sequence state

Definition at line 63 of file BitBangI2C.hxx.

◆ StateStop

enum class BitBangI2CStates::StateStop : uint8_t
strongprotected

Low level I2C stop states.

Enumerator
SDA_CLR 

stop sequence

SCL_SET 

stop sequence

SDA_SET 

stop sequence

FIRST 

first stop sequence state

LAST 

last stop sequence state

Definition at line 73 of file BitBangI2C.hxx.

◆ StateTx

enum class BitBangI2CStates::StateTx : uint8_t
strongprotected

Low level I2C data TX states.

Enumerator
DATA_7_SCL_CLR 

data TX sequence

DATA_7_SCL_SET 

data TX sequence

DATA_6_SCL_CLR 

data TX sequence

DATA_6_SCL_SET 

data TX sequence

DATA_5_SCL_CLR 

data TX sequence

DATA_5_SCL_SET 

data TX sequence

DATA_4_SCL_CLR 

data TX sequence

DATA_4_SCL_SET 

data TX sequence

DATA_3_SCL_CLR 

data TX sequence

DATA_3_SCL_SET 

data TX sequence

DATA_2_SCL_CLR 

data TX sequence

DATA_2_SCL_SET 

data TX sequence

DATA_1_SCL_CLR 

data TX sequence

DATA_1_SCL_SET 

data TX sequence

DATA_0_SCL_CLR 

data TX sequence

DATA_0_SCL_SET 

data TX sequence

ACK_SDA_SET_SCL_CLR 

data TX sequence

ACK_SCL_SET 

data TX sequence

ACK_SCL_CLR 

data TX sequence

FIRST 

first data TX sequence state

LAST 

last data TX sequence state

Definition at line 83 of file BitBangI2C.hxx.

Constructor & Destructor Documentation

◆ BitBangI2CStates()

BitBangI2CStates::BitBangI2CStates ( )
inlineprotected

Default constructor.

Definition at line 47 of file BitBangI2C.hxx.

Friends And Related Symbol Documentation

◆ operator++ [1/5]

StateRecovery & operator++ ( BitBangI2CStates::StateRecovery x)
friend

Allow pre-increment definition.

Parameters
xstarting value
Returns
incremented value

Definition at line 374 of file BitBangI2C.hxx.

◆ operator++ [2/5]

StateRx & operator++ ( BitBangI2CStates::StateRx x)
friend

Allow pre-increment definition.

Parameters
xstarting value
Returns
incremented value

Definition at line 361 of file BitBangI2C.hxx.

◆ operator++ [3/5]

StateStart & operator++ ( BitBangI2CStates::StateStart x)
friend

Allow pre-increment definition.

Parameters
xstarting value
Returns
incremented value

Definition at line 322 of file BitBangI2C.hxx.

◆ operator++ [4/5]

StateStop & operator++ ( BitBangI2CStates::StateStop x)
friend

Allow pre-increment definition.

Parameters
xstarting value
Returns
incremented value

Definition at line 335 of file BitBangI2C.hxx.

◆ operator++ [5/5]

StateTx & operator++ ( BitBangI2CStates::StateTx x)
friend

Allow pre-increment definition.

Parameters
xstarting value
Returns
incremented value

Definition at line 348 of file BitBangI2C.hxx.


The documentation for this class was generated from the following file: