1
0
Fork 0
Commit graph

27 commits

Author SHA1 Message Date
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
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
632824e4d8 Fix MSVC build issue.
MSVC complained about ambiguous "floor" when T=<int>.
2012-02-19 20:30:15 +01:00
ThorstenB
511072f206 protocol module: minor clean-up 2012-02-19 14:57:25 +01:00
Thomas Geymayer
dd3afd4c4e Use simgear functions for clip and wrap around. 2012-02-19 14:53:04 +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
Csaba Halasz
ae8438333c Quick fix for ascii generic input line separator problem 2011-03-06 02:38:39 +01: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
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
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
ehofman
667e64e1eb - remove the SG_GLxxxx_H #defines, since OSG provides its own versions
- this exposed a bizarre issue on Mac where dragging in <AGL/agl.h> in
   extensions.hxx was pulling in all of Carbon to the global namespace
   - very scary. As a result, I now need to explicitly include CoreFoundation
   in fg_init.cxx.
 - change SG_USING_STD(x) to using std::x
2008-07-27 16:25:13 +00:00
ehofman
d9bfd5a425 This should apply, and everything should build cleanly, in isolation from the
SimGear change. It changes all the SG_xxxx to be the 'real' includes, and gets
rid of many #ifdef SG_HAVE_STD_INCLUDES. As an added bonus, rather than
replacing 'SG_USING_NAMESPACE(std)' with 'using namespace std', I just fixed
the small number of places to use std:: explicitly. So we're no longer polluting
the global namespace with the entire contents of std, in many cases.

There is one more 'mechanical' change to come - getting rid of SG_USING_STD(X),
but I want to keep that separate from everything else. (There's another
mechnical change, replacing <math.h> with <cmath> and so on *everywhere*, but
one step at a time)
2008-07-25 18:38:29 +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
e48967cb1d fix another crash on exit by finally converting the rest of unguarded
SGPropertyNode to guarded ones. This is also done for JSBSim/JSBSim.hxx,
for which JSB had given explicit permission a while ago. I postponed that
back then, but now is the time.
2006-06-11 10:21:10 +00:00
ehofman
f531203951 Add binary output support for the generic protocol. 2006-04-29 12:17:30 +00:00
mfranz
c9813d1b5d new FSF address 2006-02-21 01:16:04 +00:00
curt
d05121ef46 Fix my mailing address by replacing it with my web page. 2004-11-19 22:10:41 +00:00
ehofman
ebae60a00b Add generic input support 2004-10-15 11:11:37 +00:00
ehofman
f1dddc9298 Chnage seperator to separator 2003-06-22 07:58:04 +00:00
ehofman
ae011965e1 Updates to the generic communication protocol. This adds variable seperators as well as sequence seperators. 2003-05-03 09:24:46 +00:00
ehofman
5355d1b048 Add a generic, configurable communiction output option 2003-03-25 18:47:30 +00:00