#ifndef BSP_LINUX_TEST_SPITEST_H_ #define BSP_LINUX_TEST_SPITEST_H_ #include #include #include #include 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_ */