<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.paparazziuav.org/w/index.php?action=history&amp;feed=atom&amp;title=DevGuide%2FServer_GCS_com</id>
	<title>DevGuide/Server GCS com - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.paparazziuav.org/w/index.php?action=history&amp;feed=atom&amp;title=DevGuide%2FServer_GCS_com"/>
	<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;action=history"/>
	<updated>2026-04-26T16:31:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=24998&amp;oldid=prev</id>
		<title>MJ at 06:58, 15 July 2020</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=24998&amp;oldid=prev"/>
		<updated>2020-07-15T06:58:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:58, 15 July 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l121&quot;&gt;Line 121:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 121:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* bind to messages sent by the '''server''' + some extra messages&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* bind to messages sent by the '''server''' + some extra messages&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The result is that the GCS asks for the aircraft already known by the server and then receives new aircraft &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;when &lt;/del&gt;they &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;appears&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The result is that the GCS asks for the aircraft already known by the server and then receives new aircraft &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;as &lt;/ins&gt;they &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;appear&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Software]] [[Category:Developer_Documentation]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Software]] [[Category:Developer_Documentation]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>MJ</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=20924&amp;oldid=prev</id>
		<title>Flixr: /* Advanced format */</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=20924&amp;oldid=prev"/>
		<updated>2016-02-28T20:29:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Advanced format&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:29, 28 February 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l46&quot;&gt;Line 46:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 46:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Advanced format ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Advanced format ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When using the answer/request mechanism a unique request ID is added to the normal format. The format of this ID is '''&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;unix_pid-index&lt;/del&gt;'''. The Unix Process ID is unique for each running program, the index is incremented at each request. There is no timestamp.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When using the answer/request mechanism a unique request ID is added to the normal format. The format of this ID is '''&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pid_index&lt;/ins&gt;'''. The Unix Process ID &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(pid) &lt;/ins&gt;is unique for each running program, the index is incremented at each request. There is no timestamp.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The '''request''' send format:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The '''request''' send format:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flixr</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=16348&amp;oldid=prev</id>
		<title>Flixr: add categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=16348&amp;oldid=prev"/>
		<updated>2013-11-25T15:03:06Z</updated>

		<summary type="html">&lt;p&gt;add categories&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:03, 25 November 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l122&quot;&gt;Line 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 122:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The result is that the GCS asks for the aircraft already known by the server and then receives new aircraft when they appears.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The result is that the GCS asks for the aircraft already known by the server and then receives new aircraft when they appears.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Software]] [[Category:Developer_Documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flixr</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=12560&amp;oldid=prev</id>
		<title>Flixr at 12:46, 10 June 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=12560&amp;oldid=prev"/>
		<updated>2012-06-10T12:46:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:46, 10 June 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The communication between the '''server''' and the '''[[GCS]]''' is based on the [[Ivy]] middleware as &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;describe &lt;/del&gt;in the [[Overview|system overview]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The communication between the '''&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Server|&lt;/ins&gt;server&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;''' and the '''[[GCS]]''' is based on the [[Ivy]] middleware as &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;described &lt;/ins&gt;in the [[Overview&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#System_Architecture&lt;/ins&gt;|system overview]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The mechanism described below apply mainly to the Ocaml library provided by paparazzi (sw/lib/ocaml/pprz.ml*), even if the basic send/bind functions of Ivy can be used directly in C programs.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The mechanism described below apply mainly to the Ocaml library provided by paparazzi (sw/lib/ocaml/pprz.ml*), even if the basic send/bind functions of Ivy can be used directly in C programs.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flixr</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=9968&amp;oldid=prev</id>
		<title>Ghattenb at 14:00, 19 August 2011</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=DevGuide/Server_GCS_com&amp;diff=9968&amp;oldid=prev"/>
		<updated>2011-08-19T14:00:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The communication between the '''server''' and the '''[[GCS]]''' is based on the [[Ivy]] middleware as describe in the [[Overview|system overview]].&lt;br /&gt;
&lt;br /&gt;
The mechanism described below apply mainly to the Ocaml library provided by paparazzi (sw/lib/ocaml/pprz.ml*), even if the basic send/bind functions of Ivy can be used directly in C programs.&lt;br /&gt;
&lt;br /&gt;
= How Ivy is used =&lt;br /&gt;
&lt;br /&gt;
== Normal bind/send mechanism ==&lt;br /&gt;
&lt;br /&gt;
[[Ivy]] is based on message subscription (based on [http://en.wikipedia.org/wiki/Regular_expression regular expression]):&lt;br /&gt;
* the '''bind''' function takes two parameters: a regular expression and a callback function.&lt;br /&gt;
* the '''send''' function sends strings and is used like the 'printf' C function.&lt;br /&gt;
when someone has a message to send that is matching the regular expression of one or more '''bind''', it will trigger the associated callback with the string as a parameter.&lt;br /&gt;
&lt;br /&gt;
== Advanced request mechanism ==&lt;br /&gt;
&lt;br /&gt;
In order to let a agent ask for some information, a answer/request mechanism has been integrated using the normal bind/send mechanism.&lt;br /&gt;
&lt;br /&gt;
* the '''answerer''' function takes a message name (ex: MSG_NAME) and a callback function as parameters&lt;br /&gt;
** it binds to MSG_NAME_REQ messages&lt;br /&gt;
** it sends back a MSG_NAME message when the MSG_NAME_REQ callback is triggered&lt;br /&gt;
* the '''request''' function takes a message name (ex: MSG_NAME), a callback function and some values as parameters&lt;br /&gt;
** it binds to MSG_NAME message with the callback function given as parameter&lt;br /&gt;
** it sends a MSG_NAME_REQ message with the values given as parameters&lt;br /&gt;
** after receiving the reply from the answer and applying the callback function to the returned values, it unbinds from the message MSG_NAME&lt;br /&gt;
&lt;br /&gt;
= Format of messages =&lt;br /&gt;
&lt;br /&gt;
The messages used in paparazzi are described in the file ''conf/messages.xml''. Most of the messages used by the '''[[GCS]]''' or the '''server''' are from the class '''ground'''. Each message is composed of:&lt;br /&gt;
* a unique name (among all the messages)&lt;br /&gt;
* a unique ID (among its class)&lt;br /&gt;
* a list of ''fields'' with a name and a type&lt;br /&gt;
&lt;br /&gt;
In the following subsections, ''anything'' means that a field can match any string that doesn't have whitespace, ''anything...'' means that the field can contain several or none ''anything'' separated by whitespace.&lt;br /&gt;
&lt;br /&gt;
== Normal format ==&lt;br /&gt;
&lt;br /&gt;
The normal format of the message when using the '''send''' function:&lt;br /&gt;
 [timestamp] sender_name msg_name ''anything...''&lt;br /&gt;
timestamp is optional, default is false.&lt;br /&gt;
&lt;br /&gt;
The normal '''bind''' function looks for messages of the form:&lt;br /&gt;
 [timestamp or nothing] sender_name msg_name ''anything...''  when a sender name is given as a parameter&lt;br /&gt;
 [timestamp or nothing] ''anything'' msg_name ''anything...'' else&lt;br /&gt;
This allow to receive the messages coming from a given sender or from anyone.&lt;br /&gt;
&lt;br /&gt;
== Advanced format ==&lt;br /&gt;
&lt;br /&gt;
When using the answer/request mechanism a unique request ID is added to the normal format. The format of this ID is '''unix_pid-index'''. The Unix Process ID is unique for each running program, the index is incremented at each request. There is no timestamp.&lt;br /&gt;
&lt;br /&gt;
The '''request''' send format:&lt;br /&gt;
 sender_name request_id msg_name_REQ ''anything...''&lt;br /&gt;
&lt;br /&gt;
The '''request''' bind format:&lt;br /&gt;
 request_id ''anything'' msg_name ''anything...''&lt;br /&gt;
&lt;br /&gt;
The '''answerer''' send format:&lt;br /&gt;
 request_id sender_name msg_name ''anything...''&lt;br /&gt;
&lt;br /&gt;
The '''answerer''' bind format:&lt;br /&gt;
 ''anything'' ''anything'' msg_name_REQ ''anything...''&lt;br /&gt;
&lt;br /&gt;
= Server &amp;lt;-&amp;gt; GCS communication =&lt;br /&gt;
&lt;br /&gt;
== Server ==&lt;br /&gt;
&lt;br /&gt;
The '''server''' sends synthetic messages based on the telemetry data received from the UAVs (normal period is 500ms, 1s for alarms, 5s for WIND):&lt;br /&gt;
* NEW_AIRCRAFT (when a telemetry message ALIVE is received (and correct) for the first time)&lt;br /&gt;
* FLIGHT_PARAM&lt;br /&gt;
* NAV_STATUS&lt;br /&gt;
* ENGINE_STATUS&lt;br /&gt;
* AP_STATUS&lt;br /&gt;
* FLY_BY_WIRE&lt;br /&gt;
* DL_VALUES&lt;br /&gt;
* WAYPOINT_MOVED&lt;br /&gt;
* CAM_STATUS&lt;br /&gt;
* CIRCLE_STATUS&lt;br /&gt;
* SEGMENT_STATUS&lt;br /&gt;
* SURVEY_STATUS&lt;br /&gt;
* WIND&lt;br /&gt;
* TELEMETRY_STATUS&lt;br /&gt;
* TELEMETRY_ERROR&lt;br /&gt;
* BAT_LOW (trigger alarm)&lt;br /&gt;
* AIRPROX (alarm but not used anymore)&lt;br /&gt;
It answer to some requests:&lt;br /&gt;
* AIRCRAFTS (sends the list of all running aircraft known by the server)&lt;br /&gt;
* CONFIG (sends the configuration of a given aircraft)&lt;br /&gt;
It binds to:&lt;br /&gt;
* MOVE_WAYPOINT&lt;br /&gt;
* DL_SETTING&lt;br /&gt;
* GET_DL_SETTING&lt;br /&gt;
* JUMP_TO_BLOCK&lt;br /&gt;
* RAW_DATALINK&lt;br /&gt;
* WIND_CLEAR&lt;br /&gt;
* all messages of the class telemetry&lt;br /&gt;
&lt;br /&gt;
== GCS ==&lt;br /&gt;
&lt;br /&gt;
The '''[[GCS]]''' binds to all the messages sent by the '''server''' (except AIRPROX). It also binds the the messages TCAS_TA, TCAS_RA and DC_SHOT, which are direct telemetry messages.&lt;br /&gt;
&lt;br /&gt;
It sends messages:&lt;br /&gt;
* MOVE_WAYPOINT&lt;br /&gt;
* DL_SETTING&lt;br /&gt;
* GET_DL_SETTING&lt;br /&gt;
* JUMP_TO_BLOCK&lt;br /&gt;
* RAW_DATALINK&lt;br /&gt;
&lt;br /&gt;
It can request for CONFIG and AIRCRAFTS.&lt;br /&gt;
&lt;br /&gt;
== Initialization sequence ==&lt;br /&gt;
&lt;br /&gt;
When the '''server''' starts, the initialization is as follow:&lt;br /&gt;
* bind to ALIVE message and send a NEW_AIRCRAFT message when the callback is triggered&lt;br /&gt;
* bind to the messages sent by the GCS&lt;br /&gt;
* set '''answerer''' for AIRCRAFTS and CONFIG&lt;br /&gt;
&lt;br /&gt;
When the '''[[GCS]]''' starts, the initialization is as follow:&lt;br /&gt;
* send request for AIRCRAFTS&lt;br /&gt;
** when the callback function is triggered with the list of working aircraft, send requests CONFIG for each of them&lt;br /&gt;
* bind to NEW_AIRCRAFT&lt;br /&gt;
** when the callback function is triggered with a new aircraft, send request CONFIG for it&lt;br /&gt;
* bind to messages sent by the '''server''' + some extra messages&lt;br /&gt;
&lt;br /&gt;
The result is that the GCS asks for the aircraft already known by the server and then receives new aircraft when they appears.&lt;/div&gt;</summary>
		<author><name>Ghattenb</name></author>
	</entry>
</feed>