1
0
Fork 0
Commit graph

63 commits

Author SHA1 Message Date
James Turner
6d0c2070fd Use future-proof SGPath APIs.
Remove uses of .str(), .c_str() and some other methods of SGPath.
Pass SGPath directly where possible, or explicitly convert to the
appropriate 8-bit encoding.
2016-06-28 10:08:38 +01:00
Torsten Dreyer
35dad8c4c4 generic binary protocol: add 'word' datatype
this patch adds support for binary datatype word (aka int16)
now we have int (32bit), word (16bit) and byte (8bit) integer types
2013-10-28 22:57:22 +01:00
Torsten Dreyer
60575c3b8c generic protocol: another attempt to make MSVC smile 2013-10-22 21:02:06 +02:00
Torsten Dreyer
6b75b23309 generic protocol: don't rely on GNU extension 2013-10-22 14:17:35 +02:00
Torsten Dreyer
baebc9b64c Add protocol wrappers to the generic protocol
This adds two wrappers to the generic protocol to help interfacing
small microcontrollers (arduino et. al.)
When receiving binary data over a sequential link, it's hard to tell where a packet
starts and where it ends. Two existing solutions gets implemented with this patch:
KISS (http://www.ka9q.net/papers/kiss.html) originally developed for ham radio
packet radio devices and STX/ETX byte stuffing.
This adds only the OUT direction, IN will be implemented over the next weeks.

For implementation details on the client (microcontroller's) side, check out
http://gitorious.org/flightgear-pmpt/cmpt/

This implementation is used in the c172fg project to be presented at FSweekend 2013.
2013-10-21 20:43:22 +02:00
James Turner
fda64d840e Use helper to validate printf formats.
Simgear contains a new helper to validate format
strings for potentially dangerous replacements, use
it to fix the issues raised by Debian bug trackers.
2013-09-15 19:17:54 +01:00
Tom Paoletti
81cd33e2fa Performance optimization: empty() instead of size()>0
empty() is guaranteed to be constant complexity for both vectors and lists, while size() has linear complexity for lists.
2013-08-19 09:01:59 +01:00
Thomas Geymayer
dfa583c014 Use SGPath helpers and unescape from simgear 2013-06-10 21:42:53 +02:00
Christian Schmitt
2013f7149d Some headers missing... ;) 2013-02-07 19:00:54 +01:00
Michał Gawron
e27be6ee92 Return double precision float as requested in generic/binary protocol. 2013-01-28 17:08:31 +00:00
ThorstenB
51f16337c2 #903: generic protocol: fix a rare corner case
ASCII protocols consisting of a single chunk only (one variable per line)
would not work when no "separator" was defined.
Also add error message for protocols with more than one var per line which
are missing a separator...
2012-11-01 14:42:26 +01:00
James Turner
39307d335c Avoid an 'overloaded-virtual' warning.
Clang reports an overloaded-virtual in FGGeneric (and it's correct). Rename the overload to avoid both the warning and confusion.
2012-09-18 00:59:36 +01:00
ThorstenB
39a7caae15 Proper error checks for generic protocol.
Drop FGGeneric instances which failed to initialize to avoid run-time
issues.
2012-07-13 20:33:36 +02:00
ThorstenB
e59fabaf82 Clean-up some SGMath dependencies. 2012-05-05 00:56:29 +02:00
ThorstenB
511072f206 protocol module: minor clean-up 2012-02-19 14:57:25 +01:00
Thomas Geymayer
ccf15ac97e Remove unneeded function and add bool relative changes 2012-02-19 14:53:04 +01:00
Thomas Geymayer
4ec6810c29 Support relative changes and wrapping for generic protocol input. 2012-02-19 14:53:04 +01:00
ThorstenB
d47342a5a4 Add --log-class option, improve logging classes.
Replace SG_GENERAL by more specific log classes in many places.
Allow "," to separate logging classes (using "|" is odd on the
command-line).
Also add new option to make logging more useful for developers.
You can use:
  --log-level=debug --log-class=environment
to only get environment debug messages, or
  --log-level=debug --log-class=sound,ai
to only get debug messages related to the sound or AI subsystem.
2011-12-11 14:06:17 +01:00
ThorstenB
5bd8828fe6 Allow bidirectional support for generic interfaces. 2011-08-10 00:05:10 +02:00
Torsten Dreyer
0114fd962e Fix broken tank properties. More verbose generic protocol error messages 2011-03-22 18:00:55 +01:00
Csaba Halasz
ae8438333c Quick fix for ascii generic input line separator problem 2011-03-06 02:38:39 +01:00
James Turner
94a3471956 Merge commit 'refs/merge-requests/7' of git://gitorious.org/fg/flightgear into topics/merge7 2010-10-19 09:05:51 +01:00
James Turner
84b45683fc Refactor exit code, so the osgViewer gets 'done'. 2010-09-30 23:13:11 +01:00
Thorsten Brehm
5a7f838ff2 Fixed all type-casts violating the strict-aliasing rule.
=> Removes compiler warnings and optimization problems.
2010-09-27 23:48:20 +02:00
ehofman
d0f6f748ed Improve handling of type DOUBLE in generic i/o protocol. 2010-02-10 15:02:49 +01:00
ehofman
6072e3d969 reorganize the code a bit to prevent an infinite loop in ascii mode 2010-02-10 15:02:42 +01:00
torsten
949981a6d7 only complain about binary record length mismatch if mode is binary. 2009-09-18 10:38:34 +02:00
curt
606f9173b2 Avoid strtof() for portability reasons. 2009-09-12 15:47:52 +02:00
curt
bf423ef0ca Handle "double" type fields correctly for ascii input data. Previously double
data was being down-cast to float and the loss of precision impacted data types like lon/lat positions dramatically, preventing smooth replay of data.
2009-09-12 15:47:52 +02:00
ehofman
1fa48722b4 One last update; remember whether input or output is requested. This will make sure FlightGear isn't communicating in both directions all the time. 2009-09-09 08:56:31 +02:00
ehofman
aeefd12522 Don't forget to clear the previous configuration 2009-09-09 08:56:31 +02:00
ehofman
ea4a3ee1df Make FGIO a proper subsystem and add a reinit method for the generic protocol. This should allow for easy runtime reloading of the configuration file. 2009-09-09 08:56:31 +02:00
Tim Moore
be4b46b894 change back unsigned byte count to signed (multiplaymgr)
Also, small fixes to generic protocol from AndersG
2009-08-27 00:12:44 +02:00
Tim Moore
62620177aa Fix transmission of float and double values in generic protocol
gcc -Wall -Werror turned up some problems with the type-punning of pointers
used to write the message buffer; it turns out that truncated ints were being
written to the message buffer when values needed to be swapped to network byte
order.
2009-08-24 18:06:06 +02:00
ehofman
a4a593745e Hopefuly fix what might be a 64-bit OS problem 2009-07-12 00:55:33 +02:00
ehofman
f5ab3756a1 although the official name is 'bool' also support 'boolean' for backward compatibility. 2009-07-02 08:59:16 +02:00
ehofman
38d538cdb8 Add the statement about the wrong received-buffer size again which might be a useful debugging tool. 2009-07-02 08:59:16 +02:00
ehofman
0dfd7b8024 If more than one packet has arrived in the mean time, process them all. 2009-07-02 08:59:16 +02:00
fredb
00d7c1865f Suppress warnings 2009-07-02 08:59:15 +02:00
ehofman
a9c47a7b78 split up binary and ascii message handling functions, mostly for readability 2009-07-02 08:59:15 +02:00
ehofman
36f8519973 * Add proper support for float and double values
* properly honour network byte order on little-endian and big-endian systems
* various cleanups and bug-fixes
2009-06-23 10:54:09 +02:00
ehofman
30e925bb38 Anders Gidenstam:
Add support for generic binary input.
This patch has been sitting in my source tree since 2007.
2009-06-23 10:54:09 +02:00
timoore
0d0bd58268 Allow generic file protocol to terminate fg after a number of repetitions. 2008-08-07 22:24:47 +00:00
mfranz
306b818490 generic/output:
- support optional <preamble> and <postamble> which are written right
  after opening and before closing respectively. This can be used for a header
  line or an XML header.
- unescape <preamble>, <postamble>, <format>, <line_separator>, <var_separator>
  so that \t, \n, \r, \f, \v, \xnn, \nnn can be used directly (\a and \b are
  ignored; use \\ for the backslash) The long names ("carriagereturn") are still
  supported for <var_separator>, but one can just use \r, or \r\n too.
- don't abort when a chunk doesn't have a <node>. This is useful for adding
  constant chunks which consist only of a <format>, such as XML tags.
2007-07-29 13:58:58 +00:00
mfranz
80bada55cd remove redundant vector::clear(). A just created vector *is* clear. 2006-07-05 09:39:46 +00:00
ehofman
f531203951 Add binary output support for the generic protocol. 2006-04-29 12:17:30 +00:00
mfranz
e8c2b8c9f4 --warnings 2006-03-09 21:41:51 +00:00
mfranz
c9813d1b5d new FSF address 2006-02-21 01:16:04 +00:00
fredb
36e4045810 Add missing include files needed by the new math code under windows 2006-02-18 13:58:09 +00:00
curt
d05121ef46 Fix my mailing address by replacing it with my web page. 2004-11-19 22:10:41 +00:00