distortos  v0.7.0
object-oriented C++ RTOS for microcontrollers
SpiMasterHandle.hpp
Go to the documentation of this file.
1 
12 #ifndef INCLUDE_DISTORTOS_DEVICES_COMMUNICATION_SPIMASTERHANDLE_HPP_
13 #define INCLUDE_DISTORTOS_DEVICES_COMMUNICATION_SPIMASTERHANDLE_HPP_
14 
16 
17 namespace distortos
18 {
19 
20 namespace devices
21 {
22 
33 {
34 public:
35 
44  explicit SpiMasterHandle(SpiMaster& spiMaster) :
45  spiMaster_{spiMaster}
46  {
47  spiMaster_.lock();
48  }
49 
57  {
59  }
60 
67  void close() const
68  {
69  spiMaster_.close();
70  }
71 
86  void configure(const SpiMode mode, const uint32_t clockFrequency, const uint8_t wordLength, const bool lsbFirst,
87  const uint32_t dummyData) const
88  {
89  spiMaster_.configure(mode, clockFrequency, wordLength, lsbFirst, dummyData);
90  }
91 
106  int executeTransaction(const SpiMasterTransfersRange transfersRange) const
107  {
108  return spiMaster_.executeTransaction(transfersRange);
109  }
110 
120  int open() const
121  {
122  return spiMaster_.open();
123  }
124 
125  SpiMasterHandle(const SpiMasterHandle&) = delete;
126  SpiMasterHandle& operator=(const SpiMasterHandle&) = delete;
127 
128 private:
129 
132 };
133 
134 } // namespace devices
135 
136 } // namespace distortos
137 
138 #endif // INCLUDE_DISTORTOS_DEVICES_COMMUNICATION_SPIMASTERHANDLE_HPP_
void unlock()
Unlocks SPI master which was previously locked by current thread.
Definition: SpiMaster.cpp:141
void lock()
Locks SPI master for exclusive use by current thread.
Definition: SpiMaster.cpp:92
SpiMaster & spiMaster_
reference to SpiMaster associated with this handle
Definition: SpiMasterHandle.hpp:131
void close() const
Closes associated SPI master.
Definition: SpiMasterHandle.hpp:67
SpiMode
Definition: SpiMode.hpp:29
void close()
Closes SPI master.
Definition: SpiMaster.cpp:47
int open() const
Opens associated SPI master.
Definition: SpiMasterHandle.hpp:120
Top-level namespace of distortos project.
Definition: buttons.hpp:33
int executeTransaction(const SpiMasterTransfersRange transfersRange) const
Executes series of transfers as a single atomic transaction.
Definition: SpiMasterHandle.hpp:106
Definition: SpiMaster.hpp:37
int executeTransaction(SpiMasterTransfersRange transfersRange)
Executes series of transfers as a single atomic transaction.
Definition: SpiMaster.cpp:65
Definition: SpiMasterHandle.hpp:32
void configure(SpiMode mode, uint32_t clockFrequency, uint8_t wordLength, bool lsbFirst, uint32_t dummyData) const
Configures parameters of SPI master.
Definition: SpiMaster.cpp:57
void configure(const SpiMode mode, const uint32_t clockFrequency, const uint8_t wordLength, const bool lsbFirst, const uint32_t dummyData) const
Configures parameters of associated SPI master.
Definition: SpiMasterHandle.hpp:86
SpiMasterHandle(SpiMaster &spiMaster)
SpiMasterHandle's constructor.
Definition: SpiMasterHandle.hpp:44
~SpiMasterHandle()
SpiMasterHandle's destructor.
Definition: SpiMasterHandle.hpp:56
SpiMaster class header.
int open()
Opens SPI master.
Definition: SpiMaster.cpp:106