netmsgs  1.2.2
RoadNarrows Robotics Network Messaging Package
netmsgs_xml.doxy
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 // Package: netmsgs
4 //
5 // File: netmsgs_xml.doxy
6 //
7 // Description:
8 // This file contains the doxygen directives to generate the RoadNarrows
9 // NetMsgs XML format.
10 //
11 ////////////////////////////////////////////////////////////////////////////////
12 
13 /*! \file */
14 
15 /*!
16  * \defgroup nmxml NetMsgs XML Format
17  * \{
18 
19 \section nmxml_intro Introduction
20 The RoadNarrows NetMsgs XML specification defines the message set in XML format.
21 The <netmsgs> element is the root element for XML file. Under it, are three
22 major element sections contains elements to define the format.
23 
24 \subsection nmxml_layout XML Basic Layout
25 Below is the high-level structure of a NetMsgs XML specification.
26 \verbatim
27 <netmsgs>
28  <meta>
29  ...
30  </meta>
31  <field_types>
32  ...
33  </field_types>
34  <msg_types>
35  ...
36  </msg_types>
37 </netmsgs>
38 \endverbatim
39 
40 \section nmxml_root <NETMSGS> Root Element
41 The requiried, top-level root element.
42 <div style="padding: 5px 20px 0 20px;">
43 <table class="rnr-def">
44 <tr style="color:#0033aa;">
45  <td>Attribute</td><td>Description</td><td>Default</td>
46 </tr>
47 <tr>
48  <td>encoding</td>
49  <td>Message encoding. One of: itv flat.</td>
50  <td>itv</td>
51 </tr>
52 <tr>
53  <td>endian</td>
54  <td>Byte ordering. One of: big little native.</td>
55  <td>big</td>
56 </tr>
57 </table>
58 </div>
59 
60 \section nmxml_meta <META> Main Section Element
61 This section defines the meta data needed to generate the language specific
62 source files correctly.
63 \subsection nmxml_meta_brief <BRIEF>
64 Brief description of the messages. Comment including in doxygen file brief
65 comment.
66 \subsection nmxml_meta_ns <NS>
67 Namespace identifier. The namespace id is appended to source generated
68 declarations and definitions.
69 \subsection nmxml_meta_prologue <PROLOGUE>
70 The prologue data is appended to the generated output source file of the
71 given language (sub)type after the file comment block and core include files,
72 and prior to any generated source code.
73 <div style="padding: 5px 20px 0 20px;">
74 <table class="rnr-def">
75 <tr style="color:#0033aa;">
76  <td>Attribute</td><td>Description</td><td>Default</td>
77 </tr>
78 <tr>
79  <td>lang</td>
80  <td>Source (sub)language: One of: h c python.</td>
81  <td>REQUIRED</td>
82 </tr>
83 </table>
84 </div>
85 \subsection nmxml_meta_epilogue <EPILOGUE>
86 The epilogue data is appended to the end of the generated output source file.
87 <div style="padding: 5px 20px 0 20px;">
88 <table class="rnr-def">
89 <tr style="color:#0033aa;">
90  <td>Attribute</td><td>Description</td><td>Default</td>
91 </tr>
92 <tr>
93  <td>lang</td>
94  <td>Source (sub)language: One of: h c python.</td>
95  <td>REQUIRED</td>
96 </tr>
97 </table>
98 </div>
99 
100 \section nmxml_field_types <FIELD_TYPES> Main Section Element
101 The field_types section defines ftype extensions to the built-in ftypes.
102 For C, ftype extension are equivalent to typedef's.
103 For python and C++, extensions are derived classes.
104 \subsection nmxml_field_types_ftypedef <FTYPEDEF>
105 This element defines a extended field type.
106 For ftype=struct ftypedef elements, one or more \ref nmxml_fielddef "fielddef"
107 subelements are required.
108 <div style="padding: 5px 20px 0 20px;">
109 <table class="rnr-def">
110 <tr style="color:#0033aa;">
111  <td>Attribute</td><td>Description</td><td>Default</td>
112 </tr>
113 <tr>
114  <td>ftid</td>
115  <td>Unique extended field type identifier.</td>
116  <td>REQUIRED</td>
117 </tr>
118 <tr>
119  <td>ftype</td>
120  <td>Derived or built-in field type value or alias. If '[]' appends the ftype
121  value, then it is vector.
122  <td>REQUIRED</td>
123 </tr>
124 <tr><td>size</td>
125  <td>Maximum number of elements for string or vector type.</td>
126  <td>string: NMFVAL_LEN_MAX_STRING<br>
127  vector: NMFVAL_LEN_MAX_VECTOR</td>
128 </tr>
129 </table>
130 </div>
131 
132 \section nmxml_msg_types <MSG_TYPES> Main Section Element
133 The msg_types section defines the message set.
134 
135 \subsection nmxml_msg_types_msgdef <MSGDEF>
136 The msgdef element defines a specific message.
137 Zero or more \ref nmxml_fielddef "fielddef" subelements may be specified.
138 <div style="padding: 5px 20px 0 20px;">
139 <table class="rnr-def">
140 <tr style="color:#0033aa;">
141  <td>Attribute</td><td>Description</td><td>Default</td>
142 </tr>
143 <tr>
144  <td>msgid</td>
145  <td>Unique message identifier.</td>
146  <td>REQUIRED</td>
147 </tr>
148 </table>
149 </div>
150 
151 \section nmxml_fielddef <FIELDDEF> Element
152 The fielddef element defines a field within a
153 \ref nmxml_field_types_ftypedef "ftypedef"
154 element or a \ref nmxml_msg_types_msgdef "msgdef" element.
155 <div style="padding: 5px 20px 0 20px;">
156 <table class="rnr-def">
157 <tr style="color:#0033aa;">
158  <td>Attribute</td><td>Description</td><td>Default</td>
159 </tr>
160 <tr>
161  <td>fname</td>
162  <td>(Sub)message unique field name identifier.
163  </td>
164  <td>REQUIRED</td>
165 </tr>
166 <tr>
167  <td>ftype</td>
168  <td>Derived or built-in field type value or alias. If '[]' appends the ftype
169  value, then it is vector.
170  </td>
171  <td>REQUIRED</td>
172 </tr>
173 <tr><td>size</td>
174  <td>Maximum number of elements for string or vector type.</td>
175  <td>string: NMFVAL_LEN_MAX_STRING<br>
176  vector: NMFVAL_LEN_MAX_VECTOR</td>
177 </tr>
178 <tr>
179  <td>disposition</td>
180  <td>Disppositon of this field. One of: active deprecated</td>
181  <td>active</td>
182 </tr>
183 </table>
184 </div>
185 \subsection nmxml_fielddef_const <CONST>
186 The data defines the constant value for this field. Applicable only for
187 number or string base field types.
188 \subsection nmxml_fielddef_min <MIN>
189 The data defines the minimum value for this field. Applicable only for
190 number base field types.
191 \subsection nmxml_fielddef_max <MAX>
192 The data defines the maximum value for this field. Applicable only for
193 number base field types.
194 
195 \section nmxml_dtd_sect NetMsgs XML DTD
196 \ref nmxml_dtd
197 
198 \section nmxml_ex_sect XML Example
199 \ref nmxml_example
200  */
201 
202 /*!
203  *\ingroup nmxml
204  *\defgroup nmxml_dtd DTD
205  *\{
206 The RoadNarrows Document Type Definition for NetMsgs XML is as follows.
207 \include netmsgs.dtd
208  * \} */
209 
210 /*!
211  *\ingroup nmxml
212  *\defgroup nmxml_example AstroMsgs.xml XML Example
213  *\{
214 The AstroMsgs.xml example.
215 \include AstroMsgs.xml
216  * \} */
217 
218 /* \} */