Generic protocol: Difference between revisions

Jump to navigation Jump to search
m
: http://flightgear.org/forums/viewtopic.php?f=36&p=182757#p182733
mNo edit summary
m (: http://flightgear.org/forums/viewtopic.php?f=36&p=182757#p182733)
Line 111: Line 111:
     %d      integer (default)
     %d      integer (default)
     %f      float
     %f      float
Note: the type attribute tells the property tree how to store a value internally, using the most appropriate data type saves memory and reduces conversion overhead (bool, int, float, double, string).
Using the printf-style format strings in a generic protocol XML file, merely tells the I/O system how to encode/decode a property - so that it can be saved/transmitted and restored properly. Using the wrong type and/or format string in a binary protocol, would cause wrong data to be transmitted/processed by FG.
Basically, each type specifier tells FG how long each data type is in memory (bits-wise). For example, a boolean value is just 0 or 1 - so it only requires a single bit. A byte, on the other hand, requires 8 bits - and an integer (int) 4 bytes (32 bit).
So telling FG that something is a bit, will cause the data to be truncated to just a bit - which is what the format specifiers are all about: you can affect the re-interpretation of values from the property tree. In addition, there's the concept of signed-ness, i.e. numbers being positive or negative, or numbers having a mantissa - these affect how the values are stored in memory, and accordingly, the receiver must know how a value was encoded, to transform it back to what you want it to be.


===== <factor> =====
===== <factor> =====

Navigation menu