F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
LinuxSpiDriverComponentAc.hpp
Go to the documentation of this file.
1// ======================================================================
2// \title LinuxSpiDriverComponentAc.hpp
3// \author Generated by fpp-to-cpp
4// \brief hpp file for LinuxSpiDriver component base class
5// ======================================================================
6
7#ifndef Drv_LinuxSpiDriverComponentAc_HPP
8#define Drv_LinuxSpiDriverComponentAc_HPP
9
11#include "FpConfig.hpp"
13#include "Fw/Log/LogPortAc.hpp"
14#include "Fw/Log/LogString.hpp"
15#if FW_ENABLE_TEXT_LOGGING == 1
17#endif
21#include "Fw/Tlm/TlmPortAc.hpp"
22#include "Fw/Tlm/TlmString.hpp"
23
24namespace Drv {
25
30 {
31
32 // ----------------------------------------------------------------------
33 // Friend classes
34 // ----------------------------------------------------------------------
35
38
39 PROTECTED:
40
41 // ----------------------------------------------------------------------
42 // Constants
43 // ----------------------------------------------------------------------
44
46 enum {
48 };
49
51 enum {
56 };
57
59 enum {
64 };
65
67 enum {
69 };
70
72 enum {
74 };
75
76 public:
77
78 // ----------------------------------------------------------------------
79 // Component initialization
80 // ----------------------------------------------------------------------
81
83 void init(
84 FwEnumStoreType instance = 0
85 );
86
87 public:
88
89 // ----------------------------------------------------------------------
90 // Getters for typed input ports
91 // ----------------------------------------------------------------------
92
97 FwIndexType portNum
98 );
99
100 public:
101
102 // ----------------------------------------------------------------------
103 // Connect input ports to special output ports
104 // ----------------------------------------------------------------------
105
108 FwIndexType portNum,
109 Fw::InputLogPort* port
110 );
111
112#if FW_ENABLE_TEXT_LOGGING == 1
113
115 void set_LogText_OutputPort(
116 FwIndexType portNum,
118 );
119
120#endif
121
124 FwIndexType portNum,
125 Fw::InputTimePort* port
126 );
127
130 FwIndexType portNum,
131 Fw::InputTlmPort* port
132 );
133
134#if FW_PORT_SERIALIZATION
135
136 public:
137
138 // ----------------------------------------------------------------------
139 // Connect serial input ports to special output ports
140 // ----------------------------------------------------------------------
141
144 FwIndexType portNum,
145 Fw::InputSerializePort* port
146 );
147
148#if FW_ENABLE_TEXT_LOGGING == 1
149
151 void set_LogText_OutputPort(
152 FwIndexType portNum,
153 Fw::InputSerializePort* port
154 );
155
156#endif
157
160 FwIndexType portNum,
161 Fw::InputSerializePort* port
162 );
163
166 FwIndexType portNum,
167 Fw::InputSerializePort* port
168 );
169
170#endif
171
172 PROTECTED:
173
174 // ----------------------------------------------------------------------
175 // Component construction and destruction
176 // ----------------------------------------------------------------------
177
180 const char* compName = ""
181 );
182
185
186 PROTECTED:
187
188 // ----------------------------------------------------------------------
189 // Getters for numbers of typed input ports
190 // ----------------------------------------------------------------------
191
196
197 PROTECTED:
198
199 // ----------------------------------------------------------------------
200 // Getters for numbers of special output ports
201 // ----------------------------------------------------------------------
202
207
208#if FW_ENABLE_TEXT_LOGGING == 1
209
213 FwIndexType getNum_LogText_OutputPorts() const;
214
215#endif
216
221
226
227 PROTECTED:
228
229 // ----------------------------------------------------------------------
230 // Connection status queries for special output ports
231 // ----------------------------------------------------------------------
232
237 FwIndexType portNum
238 );
239
240#if FW_ENABLE_TEXT_LOGGING == 1
241
245 bool isConnected_LogText_OutputPort(
246 FwIndexType portNum
247 );
248
249#endif
250
255 FwIndexType portNum
256 );
257
262 FwIndexType portNum
263 );
264
265 PROTECTED:
266
267 // ----------------------------------------------------------------------
268 // Handlers to implement for typed input ports
269 // ----------------------------------------------------------------------
270
273 FwIndexType portNum,
274 Fw::Buffer& writeBuffer,
275 Fw::Buffer& readBuffer
276 ) = 0;
277
278 PROTECTED:
279
280 // ----------------------------------------------------------------------
281 // Port handler base-class functions for typed input ports
282 //
283 // Call these functions directly to bypass the corresponding ports
284 // ----------------------------------------------------------------------
285
288 FwIndexType portNum,
289 Fw::Buffer& writeBuffer,
290 Fw::Buffer& readBuffer
291 );
292
293 PROTECTED:
294
295 // ----------------------------------------------------------------------
296 // Event logging functions
297 // ----------------------------------------------------------------------
298
303 I32 device,
304 I32 select,
305 I32 error
306 ) const;
307
312 I32 device,
313 I32 select,
314 I32 error
315 ) const;
316
321 I32 device,
322 I32 select,
323 I32 error
324 );
325
330 I32 device,
331 I32 select
332 ) const;
333
334 PROTECTED:
335
336 // ----------------------------------------------------------------------
337 // Event throttle reset functions
338 // ----------------------------------------------------------------------
339
342
343 PROTECTED:
344
345 // ----------------------------------------------------------------------
346 // Telemetry write functions
347 // ----------------------------------------------------------------------
348
353 U32 arg,
354 Fw::Time _tlmTime = Fw::Time()
355 ) const;
356
357 PROTECTED:
358
359 // ----------------------------------------------------------------------
360 // Time
361 // ----------------------------------------------------------------------
362
367
368 PRIVATE:
369
370 // ----------------------------------------------------------------------
371 // Calls for messages received on typed input ports
372 // ----------------------------------------------------------------------
373
375 static void m_p_SpiReadWrite_in(
376 Fw::PassiveComponentBase* callComp,
377 FwIndexType portNum,
378 Fw::Buffer& writeBuffer,
379 Fw::Buffer& readBuffer
380 );
381
382 PRIVATE:
383
384 // ----------------------------------------------------------------------
385 // Typed input ports
386 // ----------------------------------------------------------------------
387
390
391 PRIVATE:
392
393 // ----------------------------------------------------------------------
394 // Special output ports
395 // ----------------------------------------------------------------------
396
398 Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
399
400#if FW_ENABLE_TEXT_LOGGING == 1
401
404
405#endif
406
408 Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
409
411 Fw::OutputTlmPort m_Tlm_OutputPort[NUM_TLM_OUTPUT_PORTS];
412
413 PRIVATE:
414
415 // ----------------------------------------------------------------------
416 // Counter values for event throttling
417 // ----------------------------------------------------------------------
418
420 FwIndexType m_SPI_WriteErrorThrottle;
421
422 };
423
424}
425
426#endif
I32 FwEnumStoreType
Definition FpConfig.h:64
PlatformIndexType FwIndexType
Definition FpConfig.h:25
C++-compatible configuration header for fprime configuration.
Input SpiReadWrite port.
Auto-generated base for LinuxSpiDriver component.
void log_WARNING_HI_SPI_WriteError(I32 device, I32 select, I32 error)
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
void log_WARNING_HI_SPI_WriteError_ThrottleClear()
Reset throttle value for SPI_WriteError.
Drv::InputSpiReadWritePort * get_SpiReadWrite_InputPort(FwIndexType portNum)
void log_WARNING_HI_SPI_ConfigError(I32 device, I32 select, I32 error) const
bool isConnected_Tlm_OutputPort(FwIndexType portNum)
void log_WARNING_HI_SPI_OpenError(I32 device, I32 select, I32 error) const
@ CHANNELID_SPI_BYTES
Channel ID for SPI_Bytes.
bool isConnected_Log_OutputPort(FwIndexType portNum)
friend class LinuxSpiDriverComponentBaseFriend
Friend class for white-box testing.
bool isConnected_Time_OutputPort(FwIndexType portNum)
@ EVENTID_SPI_WRITEERROR_THROTTLE
Throttle reset count for SPI_WriteError.
virtual ~LinuxSpiDriverComponentBase()
Destroy LinuxSpiDriverComponentBase object.
virtual void SpiReadWrite_handler(FwIndexType portNum, Fw::Buffer &writeBuffer, Fw::Buffer &readBuffer)=0
Handler for input port SpiReadWrite.
void log_ACTIVITY_HI_SPI_PortOpened(I32 device, I32 select) const
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void tlmWrite_SPI_Bytes(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void SpiReadWrite_handlerBase(FwIndexType portNum, Fw::Buffer &writeBuffer, Fw::Buffer &readBuffer)
Handler base-class function for input port SpiReadWrite.
void init()
Object initializer.
Definition ObjBase.cpp:27