9418df2c8ce3655969b186769a547ebc6d4371f3
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

1) /* Blinker
2)    Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

6) #ifndef BLINKER_OUTPUT_H
7) #define BLINKER_OUTPUT_H
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

8) 
9) #include <string>
10) 
11) #include <BlinkenLib/BlinkenFrame.h>
12) 
13) #include "Device.h"
14) #include "Directory.h"
15) #include "File.h"
16) #include "InStreamFile.h"
Stefan Schuermans put all managers in one str...

Stefan Schuermans authored 12 years ago

17) #include "Mgrs.h"
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

18) #include "Module.h"
19) #include "NameFile.h"
20) #include "Protocol.h"
21) #include "ProtocolFile.h"
22) #include "SerCfgFile.h"
23) #include "StreamRecv.h"
Stefan Schuermans added missing header file

Stefan Schuermans authored 12 years ago

24) #include "Time.h"
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

25) #include "TimeCallee.h"
26) 
27) namespace Blinker {
28) 
29) /// output of a stream to a device
30) class Output: public Module, public StreamRecv, public TimeCallee
31) {
32) public:
33)   /**
34)    * @brief constructor
Stefan Schuermans make modules know their name

Stefan Schuermans authored 12 years ago

35)    * @param[in] name module name
Stefan Schuermans put all managers in one str...

Stefan Schuermans authored 12 years ago

36)    * @param[in] mgrs managers
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

37)    * @param[in] dirBase base directory
38)    */
Stefan Schuermans make modules know their name

Stefan Schuermans authored 12 years ago

39)   Output(const std::string &name, Mgrs &mgrs, const Directory &dirBase);
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

40) 
41)   /// virtual destructor
42)   virtual ~Output();
43) 
44) private:
45)   /// copy constructor disabled
46)   Output(const Output &that);
47) 
48)   /// assignment operator disabled
49)   const Output & operator=(const Output &that);
50) 
51) public:
52)   /// check for update of configuration
53)   virtual void updateConfig();
54) 
55)   /**
56)    * @brief set current frame
57)    * @param[in] stream stream name
58)    * @param[in] pFrame current frame (NULL for none)
59)    */
60)   virtual void setFrame(const std::string &stream, stBlinkenFrame *pFrame);
61) 
62)   /// callback when requested time reached
63)   virtual void timeCall();
64) 
65) protected:
66)   /// (re-)read protocol
67)   void readProto();
68) 
69)   /// open device
70)   void openDevice();
71) 
72)   /// close device
73)   void closeDevice();
74) 
75)   /// output current frame to device
76)   void outputFrame();
77) 
Stefan Schuermans added buffer to serial devi...

Stefan Schuermans authored 12 years ago

78)   /**
79)    * @brief output frame data to device
80)    * @param[in] data data of one frame to output to device
81)    */
82)   void outputFrameData(const std::string &data);
83) 
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

84) protected:
85)   InStreamFile m_fileInStream; ///< input stream name file
86)   ProtocolFile m_fileProtocol; ///< protocol file
Stefan Schuermans typo

Stefan Schuermans authored 12 years ago

87)   NameFile     m_fileDevice;   ///< name file containing name of device
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

88)   SerCfgFile   m_fileSerCfg;   ///< serial port configuration file
89)   Device       *m_pDevice;     ///< device to output to
Stefan Schuermans added buffer to serial devi...

Stefan Schuermans authored 12 years ago

90)   std::string  m_buffer;       ///< buffered data still to be output to device
Stefan Schuermans implemented output module t...

Stefan Schuermans authored 12 years ago

91) }; // class Output
92) 
93) } // namespace Blinker
94) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

95) #endif // #ifndef BLINKER_OUTPUT_H