JSBSim Flight Dynamics Model  1.1.11 (13 Feb 2022)
An Open Source Flight Dynamics and Control Software Library in C++
FGOutputTextFile.h
1 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 
3  Header: FGOutputTextFile.h
4  Author: Bertrand Coconnier
5  Date started: 09/17/11
6 
7  ------------- Copyright (C) 2011 Bertrand Coconnier -------------
8 
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
17  details.
18 
19  You should have received a copy of the GNU Lesser General Public License along with
20  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21  Place - Suite 330, Boston, MA 02111-1307, USA.
22 
23  Further information about the GNU Lesser General Public License can also be found on
24  the world wide web at http://www.gnu.org.
25 
26 HISTORY
27 --------------------------------------------------------------------------------
28 09/17/11 BC Created
29 
30 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
31 SENTRY
32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
33 
34 #ifndef FGOUTPUTTEXTFILE_H
35 #define FGOUTPUTTEXTFILE_H
36 
37 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38 INCLUDES
39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
40 
41 #include <fstream>
42 
43 #include "FGOutputFile.h"
44 #include "simgear/io/iostreams/sgstream.hxx"
45 
46 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 FORWARD DECLARATIONS
48 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
49 
50 namespace JSBSim {
51 
52 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 CLASS DOCUMENTATION
54 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
55 
61 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62 CLASS DECLARATION
63 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
64 
66 {
67 public:
69  FGOutputTextFile(FGFDMExec* fdmex) : FGOutputFile(fdmex), delimeter(",") {}
70 
75  void SetDelimiter(const std::string& delim) { delimeter = delim; }
76 
80  bool Load(Element* el) override;
81 
83  void Print(void) override;
84 
85 protected:
86  std::string delimeter;
87  sg_ofstream datafile;
88 
89  bool OpenFile(void) override;
90  void CloseFile(void) override { if (datafile.is_open()) datafile.close(); }
91 };
92 }
93 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
94 #endif
JSBSim::FGFDMExec
Encapsulates the JSBSim simulation executive.
Definition: FGFDMExec.h:185
JSBSim::FGOutputTextFile::CloseFile
void CloseFile(void) override
Closes the file.
Definition: FGOutputTextFile.h:90
JSBSim::FGOutputTextFile::Load
bool Load(Element *el) override
Init the output directives from an XML file.
Definition: FGOutputTextFile.cpp:64
JSBSim::FGOutputTextFile
Implements the output to a human readable text file.
Definition: FGOutputTextFile.h:65
JSBSim::FGOutputTextFile::SetDelimiter
void SetDelimiter(const std::string &delim)
Set the delimiter.
Definition: FGOutputTextFile.h:75
JSBSim::FGOutputTextFile::FGOutputTextFile
FGOutputTextFile(FGFDMExec *fdmex)
Constructor.
Definition: FGOutputTextFile.h:69
JSBSim::FGOutputFile
Abstract class that provide functions that are generic to all the outputs that are directed to a file...
Definition: FGOutputFile.h:70
JSBSim::FGOutputTextFile::OpenFile
bool OpenFile(void) override
Opens the file.
Definition: FGOutputTextFile.cpp:84
JSBSim::FGOutputTextFile::Print
void Print(void) override
Generates the output to the text file.
Definition: FGOutputTextFile.cpp:247
JSBSim::Element
Definition: FGXMLElement.h:143