X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNetwork%2Fgeneric.hxx;h=6df4681935808896c219f7c22e0d01bd685800d6;hb=a61f34667fdb43198f707e719f56f5bbaf2fb7b5;hp=22b62b5e87cef4cdbe7afbd673b32666713362a1;hpb=ae011965e1cf6446bec5730c3d3bfc53617ac431;p=flightgear.git diff --git a/src/Network/generic.hxx b/src/Network/generic.hxx index 22b62b5e8..6df468193 100644 --- a/src/Network/generic.hxx +++ b/src/Network/generic.hxx @@ -2,7 +2,7 @@ // // Written by Curtis Olson, started November 1999. // -// Copyright (C) 1999 Curtis L. Olson - curt@flightgear.org +// Copyright (C) 1999 Curtis L. Olson - http://www.flightgear.org/~curt // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as @@ -16,7 +16,7 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // $Id$ @@ -27,18 +27,18 @@ #include -#include STL_STRING +#include #include "protocol.hxx" -SG_USING_STD(string); +using std::string; class FGGeneric : public FGProtocol { public: - FGGeneric(string&); + FGGeneric(vector); ~FGGeneric(); bool gen_message(); @@ -47,15 +47,19 @@ public: // open hailing frequencies bool open(); + void reinit(); + // process work for this port bool process(); // close the channel bool close(); + void setExitOnError(bool val) { exitOnError = val; } + bool getExitOnError() { return exitOnError; } protected: - enum e_type { FG_BOOL=0, FG_INT, FG_DOUBLE, FG_STRING }; + enum e_type { FG_BOOL=0, FG_INT, FG_FLOAT, FG_DOUBLE, FG_STRING, FG_FIXED }; typedef struct { // string name; @@ -63,20 +67,38 @@ protected: e_type type; double offset; double factor; - SGPropertyNode *prop; + SGPropertyNode_ptr prop; } _serial_prot; private: + string file_name; + string direction; + int length; char buf[ FG_MAX_MSG_SIZE ]; - string var_seperator; - string line_seperator; + string preamble; + string postamble; + string var_separator; + string line_separator; string var_sep_string; string line_sep_string; - vector<_serial_prot> _message; - + vector<_serial_prot> _out_message; + vector<_serial_prot> _in_message; + + bool binary_mode; + enum {FOOTER_NONE, FOOTER_LENGTH, FOOTER_MAGIC} binary_footer_type; + int binary_footer_value; + int binary_record_length; + enum {BYTE_ORDER_NEEDS_CONVERSION, BYTE_ORDER_MATCHES_NETWORK_ORDER} binary_byte_order; + + bool gen_message_ascii(); + bool gen_message_binary(); + bool parse_message_ascii(); + bool parse_message_binary(); + void read_config(SGPropertyNode *root, vector<_serial_prot> &msg); + bool exitOnError; };