Program Listing for File Kit2GoBoardSupport.hpp
↰ Return to documentation for file (src/Kit2GoBoardSupport.hpp)
/*********************************************************************
* @file Kit2GoBoardSupport.hpp
*
* @brief Implementation of the class Kit2GoBoardSupport for custom sensor/board bring up.
* This can be used to power cycle the sensor device, help with setting/resetting the SPI
* slave select lines for multiple devices and also setting/resetting addressing lines
* for enabling extended addresses for certain devices.
*********************************************************************/
#ifndef TLX493D_KIT2GO_BOARD_SUPPORT_HPP
#define TLX493D_KIT2GO_BOARD_SUPPORT_HPP
#include <Arduino.h>
//
namespace ifx {
namespace tlx493d {
class Kit2GoBoardSupport {
public:
Kit2GoBoardSupport();
~Kit2GoBoardSupport();
void init(bool isEnablePower = true, bool isEnableSelect = false, bool isEnableExtendedAddress = false);
void begin(bool enablePower = true, bool enableSelect = false, bool enableExtendedAddress = false);
void deinit();
void end() ;
void setPowerPin(uint8_t pinNumber, uint8_t pinDriveDirection, uint8_t pinTristateDirection,
uint8_t pinEnableValue, uint8_t pinDisableValue,
uint32_t delayAfterEnable = 0, uint32_t delayAfterDisable = 0);
void unsetPowerPin();
void setSelectPin(uint8_t pinNumber, uint8_t pinDriveDirection, uint8_t pinTristateDirection,
uint8_t pinEnableValue, uint8_t pinDisableValue,
uint32_t delayAfterEnable = 0, uint32_t delayAfterDisable = 0);
void unsetSelectPin();
void setAddressPin(uint8_t pinNumber, uint8_t pinDriveDirection, uint8_t pinTristateDirection,
uint8_t pinEnableValue, uint8_t pinDisableValue,
uint32_t delayAfterEnable = 0, uint32_t delayAfterDisable = 0);
void unsetAddressPin();
void enablePower(bool enable) ;
void enableSelect(bool enable);
void enableAddress(bool enable);
void reset();
private:
typedef struct pinCtrl {
bool isSet;
uint8_t pinNumber;
uint8_t driveDirection;
uint8_t tristateDirection;
uint8_t enableValue;
uint8_t disableValue;
uint32_t delayAfterEnable;
uint32_t delayAfterDisable;
} pinCtrl;
void enablePin(const pinCtrl &p, bool enable);
void initPin(const pinCtrl &p);
void setPinDirectionToDrive(pinCtrl &p);
void setPinDirectionToTristate(pinCtrl &p);
pinCtrl powerPins[1];
pinCtrl selectPins[1];
pinCtrl addressPins[1];
};
}
}
#endif // TLX493D_KIT2GO_BOARD_SUPPORT_HPP