User:Callahanp: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 50: Line 50:
== FlightGear's DataFlow Diagram ==  
== FlightGear's DataFlow Diagram ==  


There isn't one.
There isn't one. Or rather there is one, but it's virtual in the sense that no-one used it as a design, document, rather it is constructable from the observable workings of flightgear itself.`


Part of understanding any body of code is to be able to identify how data flows through the application. Dataflows are usually represented as arrows of various widths. The arrows are messages flowing between parts of an application. The larger the arrow, the more data items in that data flow.   
Part of understanding any body of code is to be able to identify how data flows through the application. Dataflows are usually represented as arrows of various widths. The arrows are messages flowing between parts of an application. The larger the arrow, the more data items in that data flow.  Knowing what is in each of those flows is important to understanding how the application works.   


In FlightGear's C++ code, there are, of course, classes and objects that represent some dataflows. There's a problem, though. Many of the classes are about processing data into ad-hoc structures within the property tree.  
In FlightGear's C++ code, there are, of course, classes and objects that represent some dataflows. There's a problem, though. Many of the classes are about processing data into ad-hoc structures within the property tree.  How can we define a data flog for these items.  There is one implied by the instantiation and use of these run time These define a While these are dataflows, they are only infrastructure.  The content of these infrastructure data flows are simply allocations of indivual data items that are the sources and sinks of  These items are the content of the actual data flows between subsysems in Flightgear.  


There is no C++ class for an Altimeter or a Heading Indicator. Instead, these are represented by a set of properties and data loaded via XML and other formats. The numerical data, stored in the property tree has a path indicating that the properties underneath a node are for the altimeter or the heading indicator. The actual paths in this case are /instrumentation/altimeter and /instrumentation/heading-indicator. Each node in the tree can have properties as child nodes, as well as child nodes that contain additional properties, such as /instrumentation/heading-indicator/gyro. Usually, only the lear nodes of th e tree  
There is no C++ class for an Altimeter or a Heading Indicator. Instead, these are represented by a set of properties and data loaded via XML and other formats. The numerical data, stored in the property tree has a path indicating that the properties underneath a node are for the altimeter or the heading indicator. The actual paths in this case are /instrumentation/altimeter and /instrumentation/heading-indicator. Each node in the tree can have properties as child nodes, as well as child nodes that contain additional properties, such as /instrumentation/heading-indicator/gyro. Usually, only the lear nodes of th e tree  
980

edits

Navigation menu