![]() |
Linduino
1.3.0
Linear Technology Arduino-Compatible Demonstration Board
|
Definition at line 61 of file LT_SMBus.h.
Public Member Functions | |
virtual | ~LT_SMBus () |
virtual LT_I2CBus * | i2cbus (void)=0 |
virtual void | i2cbus (LT_I2CBus *i2cbus)=0 |
bool | pecEnabled (void) |
Check if PEC is enabled. More... | |
void | pecClear (void) |
Clear the pec value so it can start a new calculation. More... | |
void | pecAdd (uint8_t byte_value) |
Add a byte to the pec calculation. More... | |
uint8_t | pecGet (void) |
Get the current pec result. More... | |
bool | checkCRC (uint8_t *data) |
Check CRC of block data organized as 31 data bytes plus CRC. More... | |
uint8_t | getCRC (uint8_t *data) |
Get CRC of block data organized as 31 bytes pluse CRC. More... | |
uint8_t | calculate (uint8_t *data, uint8_t begining_value, uint8_t start_index, uint8_t length) |
Helper function for pec. More... | |
virtual uint8_t | readAlert (void)=0 |
Perform ARA. More... | |
virtual void | writeByte (uint8_t address, uint8_t command, uint8_t data)=0 |
SMBus write byte command. More... | |
virtual void | writeBytes (uint8_t *addresses, uint8_t *commands, uint8_t *data, uint8_t no_addresses)=0 |
SMBus write byte command for a list of addresses. More... | |
virtual uint8_t | readByte (uint8_t address, uint8_t command)=0 |
SMBus read byte command. More... | |
virtual void | writeWord (uint8_t address, uint8_t command, uint16_t data)=0 |
SMBus write word command. More... | |
virtual uint16_t | readWord (uint8_t address, uint8_t command)=0 |
SMBus read word command. More... | |
virtual void | writeBlock (uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)=0 |
SMBus write block command. More... | |
virtual uint8_t | writeReadBlock (uint8_t address, uint8_t command, uint8_t *block_out, uint16_t block_out_size, uint8_t *block_in, uint16_t block_in_size)=0 |
SMBus write then read block command. More... | |
virtual uint8_t | readBlock (uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)=0 |
SMBus read block command. More... | |
virtual void | sendByte (uint8_t address, uint8_t command)=0 |
SMBus send byte command. More... | |
virtual uint8_t | waitForAck (uint8_t address, uint8_t command)=0 |
Read with the address and command in loop until ack, then issue stop. More... | |
virtual uint8_t * | probe (uint8_t command)=0 |
SMBus bus probe. More... | |
virtual uint8_t * | probeUnique (uint8_t command)=0 |
SMBus bus probe. More... | |
Protected Member Functions | |
void | constructTable (uint16_t user_polynomial) |
Initialize the table used to speed up pec calculations. More... | |
uint8_t | doCalculate (uint8_t data, uint8_t begining_value) |
Helper function for pec. More... | |
LT_SMBus () | |
Protected Attributes | |
bool | pec_enabled_ |
uint8_t | running_pec_ |
Temporary pec calc value. More... | |
unsigned char | poly_ |
The poly used in the calc. More... | |
uint16_t | crc_polynomial_ |
The crc poly used in the calc. More... | |
uint8_t LT_SMBus::calculate | ( | uint8_t * | data, |
uint8_t | begining_value, | ||
uint8_t | start_index, | ||
uint8_t | length | ||
) |
Helper function for pec.
data | Data to be pec'ed |
begining_value | Starting value for pec |
start_index | Starting index |
length | Length of data |
Definition at line 146 of file LT_SMBus.cpp.
bool LT_SMBus::checkCRC | ( | uint8_t * | data | ) |
Check CRC of block data organized as 31 data bytes plus CRC.
Do not mix with PEC calculations. Return true if CRC does not match.
Definition at line 200 of file LT_SMBus.cpp.
|
protected |
Initialize the table used to speed up pec calculations.
user_polynomial | The controlling polynomial |
Definition at line 105 of file LT_SMBus.cpp.
|
protected |
Helper function for pec.
begining_value | The initial value |
Definition at line 138 of file LT_SMBus.cpp.
uint8_t LT_SMBus::getCRC | ( | uint8_t * | data | ) |
Get CRC of block data organized as 31 bytes pluse CRC.
Do not mix with PEC calculations. Return PEC
Definition at line 220 of file LT_SMBus.cpp.
|
pure virtual |
Implemented in LT_SMBusBase.
|
pure virtual |
Implemented in LT_SMBusBase.
void LT_SMBus::pecAdd | ( | uint8_t | byte_value | ) |
void LT_SMBus::pecClear | ( | void | ) |
Clear the pec value so it can start a new calculation.
Definition at line 162 of file LT_SMBus.cpp.
bool LT_SMBus::pecEnabled | ( | void | ) |
uint8_t LT_SMBus::pecGet | ( | void | ) |
|
pure virtual |
SMBus bus probe.
command | Command byte |
Implemented in LT_SMBusBase.
|
pure virtual |
SMBus bus probe.
command | Command byte |
Implemented in LT_SMBusBase.
|
pure virtual |
|
pure virtual |
SMBus read block command.
address | Slave Address |
command | Command byte |
block | Memory to receive data |
block_size | Size of receive data memory |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
pure virtual |
SMBus read byte command.
address | Slave Address |
command | Command byte |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
pure virtual |
SMBus read word command.
address | Slave Address |
command | Command byte |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
pure virtual |
SMBus send byte command.
address | Slave Address |
command | Command byte |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
pure virtual |
Read with the address and command in loop until ack, then issue stop.
address | Slave Address |
command | Command byte |
Implemented in LT_SMBusBase.
|
pure virtual |
SMBus write block command.
address | Slave Address |
command | Command byte |
block | Data to send |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
pure virtual |
SMBus write byte command.
address | Slave address |
command | Command byte |
data | Data to send |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
pure virtual |
SMBus write byte command for a list of addresses.
addresses | Slave Addresses |
commands | Command bytes |
data | Data to send |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
pure virtual |
SMBus write then read block command.
address | Slave Address |
command | Command byte |
block_out | Data to send |
block_out_size | Size of data to send |
block_in | Memory to receive data |
block_in_size | Size of receive data memory |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
pure virtual |
SMBus write word command.
address | Slave Address |
command | Command byte |
data | Data to send |
Implemented in LT_SMBusGroup, and LT_SMBusBase.
|
protected |
Definition at line 91 of file LT_SMBus.cpp.
|
virtual |
Definition at line 85 of file LT_SMBus.h.
|
protected |
The crc poly used in the calc.
Definition at line 68 of file LT_SMBus.h.
|
protected |
Definition at line 64 of file LT_SMBus.h.
|
protected |
The poly used in the calc.
Definition at line 67 of file LT_SMBus.h.
|
protected |
Temporary pec calc value.
Definition at line 66 of file LT_SMBus.h.