46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
#ifndef BSP_LINUX_TEST_SPITEST_H_
|
|
#define BSP_LINUX_TEST_SPITEST_H_
|
|
|
|
#include <fsfw/objectmanager/SystemObject.h>
|
|
#include <fsfw/tasks/ExecutableObjectIF.h>
|
|
#include <linux/spi/spidev.h>
|
|
#include <string>
|
|
|
|
class SpiTest:
|
|
public SystemObject,
|
|
public ExecutableObjectIF {
|
|
public:
|
|
SpiTest(object_id_t objectId);
|
|
|
|
ReturnValue_t performOperation(uint8_t opCode) override;
|
|
ReturnValue_t initialize() override;
|
|
private:
|
|
// These chip selects (BCM number) will be pulled high if not used
|
|
// ACS board specific.
|
|
enum SpiChipSelects {
|
|
SS_MGM_0_LIS3 = 0, //!< MGM 0, LIS3MDLTR, U6, A side
|
|
SS_MGM_1_RM = 1, //!< MGM 1, RM3100, U7, A side
|
|
SS_GYRO_0_ADIS = 2, //!< Gyro 0, ADIS16485, U3, A side
|
|
SS_GYRO_1_L3G = 3, //!< Gyro 1, L3GD20H, U4, A side
|
|
SS_GYRO_2_L3G = 4, //!< Gyro 2, L3GD20h, U5, B side
|
|
SS_MGM_2_LIS3 = 17, //!< MGM 2, LIS3MDLTR, U8, B side
|
|
SS_MGM_3_RM = 27, //!< MGM 3, RM3100, U9, B side
|
|
};
|
|
|
|
const std::string spiDeviceName = "/dev/spidev0.0";
|
|
int spiFd = 0;
|
|
|
|
uint8_t spiMode = SPI_MODE_3;
|
|
uint32_t spiSpeed = 976000;
|
|
|
|
uint8_t sendBuffer[32];
|
|
uint8_t receiveBuffer[32];
|
|
struct spi_ioc_transfer transferHandle;
|
|
|
|
bool oneShot = true;
|
|
|
|
};
|
|
|
|
|
|
#endif /* BSP_LINUX_TEST_SPITEST_H_ */
|