<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://gitlab.srns.ru/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://gitlab.srns.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Boldenkov</id>
		<title>SRNS - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="https://gitlab.srns.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Boldenkov"/>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Boldenkov"/>
		<updated>2026-04-04T06:52:01Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T11:30:53Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170516_InTheSky_SkyPlot.png|400px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Есть подборка ресурсов на Википедии:&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/List_of_satellite_pass_predictors&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
Сайт ориентирован на визуальное наблюдение за спутниками, поэтому там приведена яркость объекта на небосводе, нам это обычно не нужно.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_radar.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_worldmap.php World Map]&lt;br /&gt;
 | [[File:20170516_InTheSky_WorldMap.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_worldmap.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_planetarium.php Planetarium]&lt;br /&gt;
 | [[File:20170515_InTheSky_Planetarium.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_planetarium.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_globe.php 3D globe]&lt;br /&gt;
 | [[File:20170516_InTheSky_3D.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_globe.php&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== glonass-iac.ru ==&lt;br /&gt;
&lt;br /&gt;
Сайт ЦНИИМАШ по наблюдению за статусом системы ГЛОНАСС&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/rtglo.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SkyPlot.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/rtglo.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/currentPosition.php World Map]&lt;br /&gt;
 | [[File:20170516_GlonassIac_WorldMap.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/currentPosition.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php Summary]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Summary.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php SatTable]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SatTable.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/VisibleZones.php Visibility]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Visibility.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/VisibleZones.php&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== gps.gov ==&lt;br /&gt;
&lt;br /&gt;
Официальный сайт системы GPS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.gps.gov/systems/gps/space/ GPS types]&lt;br /&gt;
 | [[File:20170516_GpsGov_GpsTypes.png|200px]]&lt;br /&gt;
 | http://www.gps.gov/systems/gps/space/&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== heavens-above.org ==&lt;br /&gt;
&lt;br /&gt;
Сайт одноимённого приложения. Показывает положение космических объектов, их сближение. Для каждого объекта есть альманах в формате TLE. Есть таблица всех искусственных спутников за всю историю, включая те, которые уже сошли с орбиты.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.heavens-above.com/Satellites.aspx?lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT Sat table]&lt;br /&gt;
 | [[File:20170516_HeavensAbove_SatTable.png|200px]]&lt;br /&gt;
 | http://www.heavens-above.com/Satellites.aspx?lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.heavens-above.com/orbit.aspx?satid=37868&amp;amp;lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT Orbit]&lt;br /&gt;
 | [[File:20170516_HeavensAbove_Orbit.png|400px]]&lt;br /&gt;
 | http://www.heavens-above.com/orbit.aspx?satid=37868&amp;amp;lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
{{wl-publish: 2017-05-16 14:28:02 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T11:28:02Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170516_InTheSky_SkyPlot.png|400px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
Сайт ориентирован на визуальное наблюдение за спутниками, поэтому там приведена яркость объекта на небосводе, нам это обычно не нужно.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_radar.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_worldmap.php World Map]&lt;br /&gt;
 | [[File:20170516_InTheSky_WorldMap.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_worldmap.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_planetarium.php Planetarium]&lt;br /&gt;
 | [[File:20170515_InTheSky_Planetarium.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_planetarium.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_globe.php 3D globe]&lt;br /&gt;
 | [[File:20170516_InTheSky_3D.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_globe.php&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== glonass-iac.ru ==&lt;br /&gt;
&lt;br /&gt;
Сайт ЦНИИМАШ по наблюдению за статусом системы ГЛОНАСС&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/rtglo.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SkyPlot.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/rtglo.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/currentPosition.php World Map]&lt;br /&gt;
 | [[File:20170516_GlonassIac_WorldMap.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/currentPosition.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php Summary]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Summary.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php SatTable]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SatTable.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/VisibleZones.php Visibility]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Visibility.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/VisibleZones.php&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== gps.gov ==&lt;br /&gt;
&lt;br /&gt;
Официальный сайт системы GPS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.gps.gov/systems/gps/space/ GPS types]&lt;br /&gt;
 | [[File:20170516_GpsGov_GpsTypes.png|200px]]&lt;br /&gt;
 | http://www.gps.gov/systems/gps/space/&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== heavens-above.org ==&lt;br /&gt;
&lt;br /&gt;
Сайт одноимённого приложения. Показывает положение космических объектов, их сближение. Для каждого объекта есть альманах в формате TLE. Есть таблица всех искусственных спутников за всю историю, включая те, которые уже сошли с орбиты.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.heavens-above.com/Satellites.aspx?lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT Sat table]&lt;br /&gt;
 | [[File:20170516_HeavensAbove_SatTable.png|200px]]&lt;br /&gt;
 | http://www.heavens-above.com/Satellites.aspx?lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.heavens-above.com/orbit.aspx?satid=37868&amp;amp;lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT Orbit]&lt;br /&gt;
 | [[File:20170516_HeavensAbove_Orbit.png|400px]]&lt;br /&gt;
 | http://www.heavens-above.com/orbit.aspx?satid=37868&amp;amp;lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
{{wl-publish: 2017-05-16 14:28:02 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T11:27:49Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170516_InTheSky_SkyPlot.png|400px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
Сайт ориентирован на визуальное наблюдение за спутниками, поэтому там приведена яркость объекта на небосводе, нам это обычно не нужно.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_radar.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_worldmap.php World Map]&lt;br /&gt;
 | [[File:20170516_InTheSky_WorldMap.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_worldmap.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_planetarium.php Planetarium]&lt;br /&gt;
 | [[File:20170515_InTheSky_Planetarium.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_planetarium.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_globe.php 3D globe]&lt;br /&gt;
 | [[File:20170516_InTheSky_3D.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_globe.php&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== glonass-iac.ru ==&lt;br /&gt;
&lt;br /&gt;
Сайт ЦНИИМАШ по наблюдению за статусом системы ГЛОНАСС&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/rtglo.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SkyPlot.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/rtglo.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/currentPosition.php World Map]&lt;br /&gt;
 | [[File:20170516_GlonassIac_WorldMap.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/currentPosition.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php Summary]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Summary.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php SatTable]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SatTable.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/VisibleZones.php Visibility]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Visibility.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/VisibleZones.php&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== gps.gov ==&lt;br /&gt;
&lt;br /&gt;
Официальный сайт системы GPS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.gps.gov/systems/gps/space/ GPS types]&lt;br /&gt;
 | [[File:20170516_GpsGov_GpsTypes.png|200px]]&lt;br /&gt;
 | http://www.gps.gov/systems/gps/space/&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== heavens-above.org ==&lt;br /&gt;
&lt;br /&gt;
Сайт одноимённого приложения. Показывает положение космических объектов, их сближение. Для каждого объекта есть альманах в формате TLE. Есть таблица всех искусственных спутников за всю историю, включая те, которые уже сошли с орбиты.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.heavens-above.com/Satellites.aspx?lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT Sat table]&lt;br /&gt;
 | [[File:20170516_HeavensAbove_SatTable.png|200px]]&lt;br /&gt;
 | http://www.heavens-above.com/Satellites.aspx?lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.heavens-above.com/orbit.aspx?satid=37868&amp;amp;lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT Orbit]&lt;br /&gt;
 | [[File:20170516_HeavensAbove_Orbit.png|400px]]&lt;br /&gt;
 | http://www.heavens-above.com/orbit.aspx?satid=37868&amp;amp;lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T11:24:02Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
Сайт ориентирован на визуальное наблюдение за спутниками, поэтому там приведена яркость объекта на небосводе, нам это обычно не нужно.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_radar.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_worldmap.php World Map]&lt;br /&gt;
 | [[File:20170516_InTheSky_WorldMap.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_worldmap.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_planetarium.php Planetarium]&lt;br /&gt;
 | [[File:20170515_InTheSky_Planetarium.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_planetarium.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_globe.php 3D globe]&lt;br /&gt;
 | [[File:20170516_InTheSky_3D.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_globe.php&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== glonass-iac.ru ==&lt;br /&gt;
&lt;br /&gt;
Сайт ЦНИИМАШ по наблюдению за статусом системы ГЛОНАСС&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/rtglo.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SkyPlot.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/rtglo.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/currentPosition.php World Map]&lt;br /&gt;
 | [[File:20170516_GlonassIac_WorldMap.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/currentPosition.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php Summary]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Summary.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php SatTable]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SatTable.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/VisibleZones.php Visibility]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Visibility.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/VisibleZones.php&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== gps.gov ==&lt;br /&gt;
&lt;br /&gt;
Официальный сайт системы GPS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.gps.gov/systems/gps/space/ GPS types]&lt;br /&gt;
 | [[File:20170516_GpsGov_GpsTypes.png|200px]]&lt;br /&gt;
 | http://www.gps.gov/systems/gps/space/&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== heavens-above.org ==&lt;br /&gt;
&lt;br /&gt;
Сайт одноимённого приложения. Показывает положение космических объектов, их сближение. Для каждого объекта есть альманах в формате TLE. Есть таблица всех искусственных спутников за всю историю, включая те, которые уже сошли с орбиты.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.heavens-above.com/Satellites.aspx?lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT Sat table]&lt;br /&gt;
 | [[File:20170516_HeavensAbove_SatTable.png|200px]]&lt;br /&gt;
 | http://www.heavens-above.com/Satellites.aspx?lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://www.heavens-above.com/orbit.aspx?satid=37868&amp;amp;lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT Orbit]&lt;br /&gt;
 | [[File:20170516_HeavensAbove_Orbit.png|400px]]&lt;br /&gt;
 | http://www.heavens-above.com/orbit.aspx?satid=37868&amp;amp;lat=0&amp;amp;lng=0&amp;amp;loc=Unspecified&amp;amp;alt=0&amp;amp;tz=UCT&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GpsGov_GpsTypes.png</id>
		<title>Файл:20170516 GpsGov GpsTypes.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GpsGov_GpsTypes.png"/>
				<updated>2017-05-16T11:20:56Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_HeavensAbove_Orbit.png</id>
		<title>Файл:20170516 HeavensAbove Orbit.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_HeavensAbove_Orbit.png"/>
				<updated>2017-05-16T11:17:05Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_HeavensAbove_SatTable.png</id>
		<title>Файл:20170516 HeavensAbove SatTable.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_HeavensAbove_SatTable.png"/>
				<updated>2017-05-16T11:14:34Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T11:09:23Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* in-the-sky.org */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
Сайт ориентирован на визуальное наблюдение за спутниками, поэтому там приведена яркость объекта на небосводе, нам это обычно не нужно.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_radar.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_worldmap.php World Map]&lt;br /&gt;
 | [[File:20170516_InTheSky_WorldMap.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_worldmap.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_planetarium.php Planetarium]&lt;br /&gt;
 | [[File:20170515_InTheSky_Planetarium.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_planetarium.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_globe.php 3D globe]&lt;br /&gt;
 | [[File:20170516_InTheSky_3D.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_globe.php&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== glonass-iac.ru ==&lt;br /&gt;
&lt;br /&gt;
Сайт ЦНИИМАШ по наблюдению за статусом системы ГЛОНАСС&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/rtglo.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SkyPlot.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/rtglo.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/currentPosition.php World Map]&lt;br /&gt;
 | [[File:20170516_GlonassIac_WorldMap.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/currentPosition.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php Summary]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Summary.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/index.php SatTable]&lt;br /&gt;
 | [[File:20170516_GlonassIac_SatTable.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/index.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://www.glonass-iac.ru/GLONASS/VisibleZones.php Visibility]&lt;br /&gt;
 | [[File:20170516_GlonassIac_Visibility.png|200px]]&lt;br /&gt;
 | https://www.glonass-iac.ru/GLONASS/VisibleZones.php&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_SkyPlot.png</id>
		<title>Файл:20170516 GlonassIac SkyPlot.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_SkyPlot.png"/>
				<updated>2017-05-16T11:05:29Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_WorldMap.png</id>
		<title>Файл:20170516 GlonassIac WorldMap.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_WorldMap.png"/>
				<updated>2017-05-16T11:05:29Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_Visibility.png</id>
		<title>Файл:20170516 GlonassIac Visibility.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_Visibility.png"/>
				<updated>2017-05-16T11:05:29Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_Summary.png</id>
		<title>Файл:20170516 GlonassIac Summary.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_Summary.png"/>
				<updated>2017-05-16T11:05:29Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_SatTable.png</id>
		<title>Файл:20170516 GlonassIac SatTable.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_GlonassIac_SatTable.png"/>
				<updated>2017-05-16T11:05:28Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T10:59:10Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* in-the-sky.org */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
Сайт ориентирован на визуальное наблюдение за спутниками, поэтому там приведена яркость объекта на небосводе, нам это обычно не нужно.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_radar.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_worldmap.php World Map]&lt;br /&gt;
 | [[File:20170516_InTheSky_WorldMap.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_worldmap.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_planetarium.php Planetarium]&lt;br /&gt;
 | [[File:20170515_InTheSky_Planetarium.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_planetarium.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_globe.php 3D globe]&lt;br /&gt;
 | [[File:20170516_InTheSky_3D.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_globe.php&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T10:58:02Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* in-the-sky.org */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_radar.php Sky Plot]&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_worldmap.php World Map]&lt;br /&gt;
 | [[File:20170516_InTheSky_WorldMap.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_worldmap.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_planetarium.php Planetarium]&lt;br /&gt;
 | [[File:20170515_InTheSky_Planetarium.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_planetarium.php&lt;br /&gt;
 |-&lt;br /&gt;
 | [https://in-the-sky.org/satmap_globe.php 3D globe]&lt;br /&gt;
 | [[File:20170516_InTheSky_3D.png|200px]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_globe.php&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_InTheSky_WorldMap.png</id>
		<title>Файл:20170516 InTheSky WorldMap.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_InTheSky_WorldMap.png"/>
				<updated>2017-05-16T10:54:52Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_InTheSky_3D.png</id>
		<title>Файл:20170516 InTheSky 3D.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_InTheSky_3D.png"/>
				<updated>2017-05-16T10:54:47Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170515_InTheSky_Planetarium.png</id>
		<title>Файл:20170515 InTheSky Planetarium.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170515_InTheSky_Planetarium.png"/>
				<updated>2017-05-16T10:54:38Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T10:47:57Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* in-the-sky.org */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | SkyPlot&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px|https://in-the-sky.org/satmap_radar.php]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T10:47:28Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;simple&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 | Тип&lt;br /&gt;
 | Пример&lt;br /&gt;
 | Ссылка&lt;br /&gt;
 |-&lt;br /&gt;
 | SkyPlot&lt;br /&gt;
 | [[File:20170516_InTheSky_SkyPlot.png|200px|https://in-the-sky.org/satmap_radar.php]]&lt;br /&gt;
 | https://in-the-sky.org/satmap_radar.php&lt;br /&gt;
 |-&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/16.05.2017 Heavens above - ссылки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/16.05.2017_Heavens_above_-_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8"/>
				<updated>2017-05-16T10:44:58Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: Новая страница: «&amp;lt;summary [ hidden ] &amp;gt;  &amp;lt;center&amp;gt;300px&amp;lt;/center&amp;gt;  Как понять, что происходит - подборка ссылок п…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как понять, что происходит - подборка ссылок про статус спутников&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== in-the-sky.org ==&lt;br /&gt;
&lt;br /&gt;
На данном сайте можно задать своё положение, текущее время и посмотреть, какие спутники находятся в области видимости.&lt;br /&gt;
&lt;br /&gt;
[[File:20170516_InTheSky_SkyPlot.png|400px|https://in-the-sky.org/satmap_radar.php]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_InTheSky_SkyPlot.png</id>
		<title>Файл:20170516 InTheSky SkyPlot.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170516_InTheSky_SkyPlot.png"/>
				<updated>2017-05-16T10:44:22Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu</id>
		<title>Blog:Boldenkov/12.05.2017 Headless Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu"/>
				<updated>2017-05-12T11:09:40Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* systemd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск X-овых программ на компьютере без монитора.&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|400px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Для тестирования приёмников был выделен специальный компьютер. Предполагается, что данный компьютер будет круглосуточно гонять подключенные к нему тем или иным способом приёмники и собирать различную статистику.&lt;br /&gt;
&lt;br /&gt;
И тут возникла проблема. Для работы с приёмником Piksi понадобилась программа Swift console, которая предполагает наличие графической среды. А тестовый компьютер не имеет монитора, в результате чего X-ы не запускаются.&lt;br /&gt;
&lt;br /&gt;
Надо это решать.&lt;br /&gt;
&lt;br /&gt;
== Варианты ==&lt;br /&gt;
Вариантов, на самом деле, много, и гуглятся они под запросу &amp;quot;X11 headless&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Наиболее прямолинейный - настроить X-сервер для работы без монитора. Для этого можно установить драйвер x11-dummy. Он подменяет физическую видеоплату и монитор, в результате чего система думает, что всё нормально, хотя монитора фактически нет. &lt;br /&gt;
&lt;br /&gt;
Но с установкой этого драйвера в Ubuntu возникли непонятные сложности (он потянул за собой много всего дополнительного). В результате я пошёл другим путём.&lt;br /&gt;
&lt;br /&gt;
== Xvfb ==&lt;br /&gt;
&lt;br /&gt;
Программа Xvfb подменяет собой X-сервер. Описание её установки можно найти здесь: https://habrahabr.ru/sandbox/20989/&lt;br /&gt;
&lt;br /&gt;
В результате её работы приложения думают, что X-сервер есть, посылают ему запросы, как обычно. Но вместо X-сервера Xvfb.&lt;br /&gt;
&lt;br /&gt;
Из командной строки можно запустить так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp &amp;amp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В данной команде указано, что номер экрана DISPLAY=:1. Это нужно будет указывать при запуске программ. Если на компьютере параллельно запустить стандартный X-сервер, он будет :0 и конфликта не произойдёт.&lt;br /&gt;
&lt;br /&gt;
Запустить программу с GUI-интерфейсом можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
DISPLAY=:1 ./console&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== x11vnc ==&lt;br /&gt;
&lt;br /&gt;
Так, проблему с X-сервером закрыли, приложения запускаются. Но ничего не видно! Хотелось бы иметь доступ к запущенным программам через сеть. Для этого служит x11vnc - программа, транслирующая всё, что видно на экране (даже если его нет!) в сеть по протоколу VNC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
x11vnc -display :1 -bg -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь всё с делано по-простому - указано, к какому дисплею подключаться (:1), указано работать без пароля (nopw), уходить в фон (bg), указан IP-адрес данного компьютера (так надо).&lt;br /&gt;
&lt;br /&gt;
После этого можно подключаться с другого компьютера с помощью клиента VNC, например, так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssvncviewer 192.168.0.94:5900&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
&lt;br /&gt;
Теперь надо сделать, чтобы всё это запускалось при перезагрузке. В Ubuntu сейчас всё сделано на systemd. В качестве образца для настройки systemd я использовал данную статью: http://c-nergy.be/blog/?p=8984. Управление порядком запуска модулей описано здесь: https://fedoramagazine.org/systemd-unit-dependencies-and-order/&lt;br /&gt;
&lt;br /&gt;
Сначала запускаем Xfvb (/lib/systemd/system/Xvfb.service):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start Xvfb at startup.&lt;br /&gt;
After=multi-user.target&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого x11vnc (/lib/systemd/system/x11vnc_xvfb.service)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start x11vnc at startup.&lt;br /&gt;
Wants=Xvfb.service multi-user.target&lt;br /&gt;
After=Xvfb.service&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/x11vnc -display :1  -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Записав настроечные файлы, надо разрешить из запуск в systemd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
systemctl enable Xvfb.service&lt;br /&gt;
systemctl enable x11vnc_xvfb.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого можно, как написано в указанной статье, перезагрузиться ( ;) ), или дать команду &amp;quot;systemctl start x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если что не так - надо смотреть &amp;quot;systemctl status x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
&lt;br /&gt;
Результат выглядит, конечно, странно:&lt;br /&gt;
&lt;br /&gt;
[[File:20170512_Swift_Console.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Программа запущена на чёрном фоне, нет никакого менеджера окно, нет ничего. Но именно это и требовалось - запустить программу по-минимуму, без загрузки всяких KDE. Если хочется запустить полноценную сессию, нужно настроить нормальный X, а потом аналогичным образом запустить x11vnc.&lt;br /&gt;
{{wl-publish: 2017-05-12 13:51:51 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu</id>
		<title>Blog:Boldenkov/12.05.2017 Headless Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu"/>
				<updated>2017-05-12T11:05:26Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* systemd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск X-овых программ на компьютере без монитора.&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|400px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Для тестирования приёмников был выделен специальный компьютер. Предполагается, что данный компьютер будет круглосуточно гонять подключенные к нему тем или иным способом приёмники и собирать различную статистику.&lt;br /&gt;
&lt;br /&gt;
И тут возникла проблема. Для работы с приёмником Piksi понадобилась программа Swift console, которая предполагает наличие графической среды. А тестовый компьютер не имеет монитора, в результате чего X-ы не запускаются.&lt;br /&gt;
&lt;br /&gt;
Надо это решать.&lt;br /&gt;
&lt;br /&gt;
== Варианты ==&lt;br /&gt;
Вариантов, на самом деле, много, и гуглятся они под запросу &amp;quot;X11 headless&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Наиболее прямолинейный - настроить X-сервер для работы без монитора. Для этого можно установить драйвер x11-dummy. Он подменяет физическую видеоплату и монитор, в результате чего система думает, что всё нормально, хотя монитора фактически нет. &lt;br /&gt;
&lt;br /&gt;
Но с установкой этого драйвера в Ubuntu возникли непонятные сложности (он потянул за собой много всего дополнительного). В результате я пошёл другим путём.&lt;br /&gt;
&lt;br /&gt;
== Xvfb ==&lt;br /&gt;
&lt;br /&gt;
Программа Xvfb подменяет собой X-сервер. Описание её установки можно найти здесь: https://habrahabr.ru/sandbox/20989/&lt;br /&gt;
&lt;br /&gt;
В результате её работы приложения думают, что X-сервер есть, посылают ему запросы, как обычно. Но вместо X-сервера Xvfb.&lt;br /&gt;
&lt;br /&gt;
Из командной строки можно запустить так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp &amp;amp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В данной команде указано, что номер экрана DISPLAY=:1. Это нужно будет указывать при запуске программ. Если на компьютере параллельно запустить стандартный X-сервер, он будет :0 и конфликта не произойдёт.&lt;br /&gt;
&lt;br /&gt;
Запустить программу с GUI-интерфейсом можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
DISPLAY=:1 ./console&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== x11vnc ==&lt;br /&gt;
&lt;br /&gt;
Так, проблему с X-сервером закрыли, приложения запускаются. Но ничего не видно! Хотелось бы иметь доступ к запущенным программам через сеть. Для этого служит x11vnc - программа, транслирующая всё, что видно на экране (даже если его нет!) в сеть по протоколу VNC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
x11vnc -display :1 -bg -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь всё с делано по-простому - указано, к какому дисплею подключаться (:1), указано работать без пароля (nopw), уходить в фон (bg), указан IP-адрес данного компьютера (так надо).&lt;br /&gt;
&lt;br /&gt;
После этого можно подключаться с другого компьютера с помощью клиента VNC, например, так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssvncviewer 192.168.0.94:5900&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
&lt;br /&gt;
Теперь надо сделать, чтобы всё это запускалось при перезагрузке. В Ubuntu сейчас всё сделано на systemd. В качестве образца для настройки systemd я использовал данную статью: http://c-nergy.be/blog/?p=8984. Управление порядком запуска модулей описано здесь: https://fedoramagazine.org/systemd-unit-dependencies-and-order/&lt;br /&gt;
&lt;br /&gt;
Сначала запускаем Xfvb (/lib/systemd/system/Xvfb.service):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start Xvfb at startup.&lt;br /&gt;
After=multi-user.target&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого x11vnc (/lib/systemd/system/x11vnc_xvfb.service)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start x11vnc at startup.&lt;br /&gt;
Wants=Xvfb.service multi-user.target&lt;br /&gt;
After=Xvfb.service&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#ExecStart=/usr/bin/x11vnc -display :1 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared&lt;br /&gt;
ExecStart=/usr/bin/x11vnc -display :1  -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Записав настроечные файлы, надо разрешить из запуск в systemd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
systemctl enable Xvfb.service&lt;br /&gt;
systemctl enable x11vnc_xvfb.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого можно, как написано в указанной статье, перезагрузиться ( ;) ), или дать команду &amp;quot;systemctl start x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если что не так - надо смотреть &amp;quot;systemctl status x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
&lt;br /&gt;
Результат выглядит, конечно, странно:&lt;br /&gt;
&lt;br /&gt;
[[File:20170512_Swift_Console.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Программа запущена на чёрном фоне, нет никакого менеджера окно, нет ничего. Но именно это и требовалось - запустить программу по-минимуму, без загрузки всяких KDE. Если хочется запустить полноценную сессию, нужно настроить нормальный X, а потом аналогичным образом запустить x11vnc.&lt;br /&gt;
{{wl-publish: 2017-05-12 13:51:51 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu</id>
		<title>Blog:Boldenkov/12.05.2017 Headless Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu"/>
				<updated>2017-05-12T11:02:54Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск X-овых программ на компьютере без монитора.&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|400px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Для тестирования приёмников был выделен специальный компьютер. Предполагается, что данный компьютер будет круглосуточно гонять подключенные к нему тем или иным способом приёмники и собирать различную статистику.&lt;br /&gt;
&lt;br /&gt;
И тут возникла проблема. Для работы с приёмником Piksi понадобилась программа Swift console, которая предполагает наличие графической среды. А тестовый компьютер не имеет монитора, в результате чего X-ы не запускаются.&lt;br /&gt;
&lt;br /&gt;
Надо это решать.&lt;br /&gt;
&lt;br /&gt;
== Варианты ==&lt;br /&gt;
Вариантов, на самом деле, много, и гуглятся они под запросу &amp;quot;X11 headless&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Наиболее прямолинейный - настроить X-сервер для работы без монитора. Для этого можно установить драйвер x11-dummy. Он подменяет физическую видеоплату и монитор, в результате чего система думает, что всё нормально, хотя монитора фактически нет. &lt;br /&gt;
&lt;br /&gt;
Но с установкой этого драйвера в Ubuntu возникли непонятные сложности (он потянул за собой много всего дополнительного). В результате я пошёл другим путём.&lt;br /&gt;
&lt;br /&gt;
== Xvfb ==&lt;br /&gt;
&lt;br /&gt;
Программа Xvfb подменяет собой X-сервер. Описание её установки можно найти здесь: https://habrahabr.ru/sandbox/20989/&lt;br /&gt;
&lt;br /&gt;
В результате её работы приложения думают, что X-сервер есть, посылают ему запросы, как обычно. Но вместо X-сервера Xvfb.&lt;br /&gt;
&lt;br /&gt;
Из командной строки можно запустить так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp &amp;amp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В данной команде указано, что номер экрана DISPLAY=:1. Это нужно будет указывать при запуске программ. Если на компьютере параллельно запустить стандартный X-сервер, он будет :0 и конфликта не произойдёт.&lt;br /&gt;
&lt;br /&gt;
Запустить программу с GUI-интерфейсом можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
DISPLAY=:1 ./console&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== x11vnc ==&lt;br /&gt;
&lt;br /&gt;
Так, проблему с X-сервером закрыли, приложения запускаются. Но ничего не видно! Хотелось бы иметь доступ к запущенным программам через сеть. Для этого служит x11vnc - программа, транслирующая всё, что видно на экране (даже если его нет!) в сеть по протоколу VNC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
x11vnc -display :1 -bg -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь всё с делано по-простому - указано, к какому дисплею подключаться (:1), указано работать без пароля (nopw), уходить в фон (bg), указан IP-адрес данного компьютера (так надо).&lt;br /&gt;
&lt;br /&gt;
После этого можно подключаться с другого компьютера с помощью клиента VNC, например, так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssvncviewer 192.168.0.94:5900&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
&lt;br /&gt;
Теперь надо сделать, чтобы всё это запускалось при перезагрузке. В Ubuntu сейчас всё сделано на systemd. В качестве образца для настройки systemd я использовал данную статью: http://c-nergy.be/blog/?p=8984. Управление порядком запуска модулей описано здесь: https://fedoramagazine.org/systemd-unit-dependencies-and-order/&lt;br /&gt;
&lt;br /&gt;
Сначала запускаем Xfvb (/lib/systemd/system/Xvfb.service):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start Xvfb at startup.&lt;br /&gt;
After=multi-user.target&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого x11vnc (/lib/systemd/system/x11vnc_xvfb.service)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start x11vnc at startup.&lt;br /&gt;
Wants=Xvfb.service multi-user.target&lt;br /&gt;
After=Xvfb.service&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#ExecStart=/usr/bin/x11vnc -display :1 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared&lt;br /&gt;
ExecStart=/usr/bin/x11vnc -display :1  -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Записав настроечные файлы, надо разрешить из запуск в systemd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
daemon-reload&lt;br /&gt;
systemctl enable Xvfb.service&lt;br /&gt;
systemctl enable x11vnc_xvfb.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого можно, как написано в указанной статье, перезагрузиться ( ;) ), или дать команду &amp;quot;systemctl start x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если что не так - надо смотреть &amp;quot;systemctl status x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
&lt;br /&gt;
Результат выглядит, конечно, странно:&lt;br /&gt;
&lt;br /&gt;
[[File:20170512_Swift_Console.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Программа запущена на чёрном фоне, нет никакого менеджера окно, нет ничего. Но именно это и требовалось - запустить программу по-минимуму, без загрузки всяких KDE. Если хочется запустить полноценную сессию, нужно настроить нормальный X, а потом аналогичным образом запустить x11vnc.&lt;br /&gt;
{{wl-publish: 2017-05-12 13:51:51 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170512_Swift_Console.png</id>
		<title>Файл:20170512 Swift Console.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170512_Swift_Console.png"/>
				<updated>2017-05-12T11:00:13Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu</id>
		<title>Blog:Boldenkov/12.05.2017 Headless Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu"/>
				<updated>2017-05-12T10:57:03Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170512_hellowin.jpeg|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск X-овых программ на компьютере без монитора.&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Для тестирования приёмников был выделен специальный компьютер. Предполагается, что данный компьютер будет круглосуточно гонять подключенные к нему тем или иным способом приёмники и собирать различную статистику.&lt;br /&gt;
&lt;br /&gt;
И тут возникла проблема. Для работы с приёмником Piksi понадобилась программа Swift console, которая предполагает наличие графической среды. А тестовый компьютер не имеет монитора, в результате чего X-ы не запускаются.&lt;br /&gt;
&lt;br /&gt;
Надо это решать.&lt;br /&gt;
&lt;br /&gt;
== Варианты ==&lt;br /&gt;
Вариантов, на самом деле, много, и гуглятся они под запросу &amp;quot;X11 headless&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Наиболее прямолинейный - настроить X-сервер для работы без монитора. Для этого можно установить драйвер x11-dummy. Он подменяет физическую видеоплату и монитор, в результате чего система думает, что всё нормально, хотя монитора фактически нет. &lt;br /&gt;
&lt;br /&gt;
Но с установкой этого драйвера в Ubuntu возникли непонятные сложности (он потянул за собой много всего дополнительного). В результате я пошёл другим путём.&lt;br /&gt;
&lt;br /&gt;
== Xvfb ==&lt;br /&gt;
&lt;br /&gt;
Программа Xvfb подменяет собой X-сервер. Описание её установки можно найти здесь: https://habrahabr.ru/sandbox/20989/&lt;br /&gt;
&lt;br /&gt;
В результате её работы приложения думают, что X-сервер есть, посылают ему запросы, как обычно. Но вместо X-сервера Xvfb.&lt;br /&gt;
&lt;br /&gt;
Из командной строки можно запустить так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp &amp;amp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В данной команде указано, что номер экрана DISPLAY=:1. Это нужно будет указывать при запуске программ. Если на компьютере параллельно запустить стандартный X-сервер, он будет :0 и конфликта не произойдёт.&lt;br /&gt;
&lt;br /&gt;
Запустить программу с GUI-интерфейсом можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
DISPLAY=:1 ./console&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== x11vnc ==&lt;br /&gt;
&lt;br /&gt;
Так, проблему с X-сервером закрыли, приложения запускаются. Но ничего не видно! Хотелось бы иметь доступ к запущенным программам через сеть. Для этого служит x11vnc - программа, транслирующая всё, что видно на экране (даже если его нет!) в сеть по протоколу VNC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
x11vnc -display :1 -bg -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь всё с делано по-простому - указано, к какому дисплею подключаться (:1), указано работать без пароля (nopw), уходить в фон (bg), указан IP-адрес данного компьютера (так надо).&lt;br /&gt;
&lt;br /&gt;
После этого можно подключаться с другого компьютера с помощью клиента VNC, например, так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssvncviewer 192.168.0.94:5900&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
&lt;br /&gt;
Теперь надо сделать, чтобы всё это запускалось при перезагрузке. В Ubuntu сейчас всё сделано на systemd. В качестве образца для настройки systemd я использовал данную статью: http://c-nergy.be/blog/?p=8984. Управление порядком запуска модулей описано здесь: https://fedoramagazine.org/systemd-unit-dependencies-and-order/&lt;br /&gt;
&lt;br /&gt;
Сначала запускаем Xfvb (/lib/systemd/system/Xvfb.service):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start Xvfb at startup.&lt;br /&gt;
After=multi-user.target&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого x11vnc (/lib/systemd/system/x11vnc_xvfb.service)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start x11vnc at startup.&lt;br /&gt;
Wants=Xvfb.service multi-user.target&lt;br /&gt;
After=Xvfb.service&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#ExecStart=/usr/bin/x11vnc -display :1 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared&lt;br /&gt;
ExecStart=/usr/bin/x11vnc -display :1  -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Записав настроечные файлы, надо разрешить из запуск в systemd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
daemon-reload&lt;br /&gt;
systemctl enable Xvfb.service&lt;br /&gt;
systemctl enable x11vnc_xvfb.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого можно, как написано в указанной статье, перезагрузиться ( ;) ), или дать команду &amp;quot;systemctl start x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если что не так - надо смотреть &amp;quot;systemctl status x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
{{wl-publish: 2017-05-12 13:51:51 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170512_hellowin.jpeg</id>
		<title>Файл:20170512 hellowin.jpeg</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170512_hellowin.jpeg"/>
				<updated>2017-05-12T10:56:55Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu</id>
		<title>Blog:Boldenkov/12.05.2017 Headless Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu"/>
				<updated>2017-05-12T10:51:51Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;https://lingua-airlines.ru/wp-content/uploads/2015/10/ochen-strashnoe-menyu-ili-chto-prigotovit-na-hellouin5.jpeg&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск X-овых программ на компьютере без монитора.&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Для тестирования приёмников был выделен специальный компьютер. Предполагается, что данный компьютер будет круглосуточно гонять подключенные к нему тем или иным способом приёмники и собирать различную статистику.&lt;br /&gt;
&lt;br /&gt;
И тут возникла проблема. Для работы с приёмником Piksi понадобилась программа Swift console, которая предполагает наличие графической среды. А тестовый компьютер не имеет монитора, в результате чего X-ы не запускаются.&lt;br /&gt;
&lt;br /&gt;
Надо это решать.&lt;br /&gt;
&lt;br /&gt;
== Варианты ==&lt;br /&gt;
Вариантов, на самом деле, много, и гуглятся они под запросу &amp;quot;X11 headless&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Наиболее прямолинейный - настроить X-сервер для работы без монитора. Для этого можно установить драйвер x11-dummy. Он подменяет физическую видеоплату и монитор, в результате чего система думает, что всё нормально, хотя монитора фактически нет. &lt;br /&gt;
&lt;br /&gt;
Но с установкой этого драйвера в Ubuntu возникли непонятные сложности (он потянул за собой много всего дополнительного). В результате я пошёл другим путём.&lt;br /&gt;
&lt;br /&gt;
== Xvfb ==&lt;br /&gt;
&lt;br /&gt;
Программа Xvfb подменяет собой X-сервер. Описание её установки можно найти здесь: https://habrahabr.ru/sandbox/20989/&lt;br /&gt;
&lt;br /&gt;
В результате её работы приложения думают, что X-сервер есть, посылают ему запросы, как обычно. Но вместо X-сервера Xvfb.&lt;br /&gt;
&lt;br /&gt;
Из командной строки можно запустить так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp &amp;amp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В данной команде указано, что номер экрана DISPLAY=:1. Это нужно будет указывать при запуске программ. Если на компьютере параллельно запустить стандартный X-сервер, он будет :0 и конфликта не произойдёт.&lt;br /&gt;
&lt;br /&gt;
Запустить программу с GUI-интерфейсом можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
DISPLAY=:1 ./console&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== x11vnc ==&lt;br /&gt;
&lt;br /&gt;
Так, проблему с X-сервером закрыли, приложения запускаются. Но ничего не видно! Хотелось бы иметь доступ к запущенным программам через сеть. Для этого служит x11vnc - программа, транслирующая всё, что видно на экране (даже если его нет!) в сеть по протоколу VNC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
x11vnc -display :1 -bg -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь всё с делано по-простому - указано, к какому дисплею подключаться (:1), указано работать без пароля (nopw), уходить в фон (bg), указан IP-адрес данного компьютера (так надо).&lt;br /&gt;
&lt;br /&gt;
После этого можно подключаться с другого компьютера с помощью клиента VNC, например, так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssvncviewer 192.168.0.94:5900&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
&lt;br /&gt;
Теперь надо сделать, чтобы всё это запускалось при перезагрузке. В Ubuntu сейчас всё сделано на systemd. В качестве образца для настройки systemd я использовал данную статью: http://c-nergy.be/blog/?p=8984. Управление порядком запуска модулей описано здесь: https://fedoramagazine.org/systemd-unit-dependencies-and-order/&lt;br /&gt;
&lt;br /&gt;
Сначала запускаем Xfvb (/lib/systemd/system/Xvfb.service):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start Xvfb at startup.&lt;br /&gt;
After=multi-user.target&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого x11vnc (/lib/systemd/system/x11vnc_xvfb.service)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start x11vnc at startup.&lt;br /&gt;
Wants=Xvfb.service multi-user.target&lt;br /&gt;
After=Xvfb.service&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#ExecStart=/usr/bin/x11vnc -display :1 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared&lt;br /&gt;
ExecStart=/usr/bin/x11vnc -display :1  -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Записав настроечные файлы, надо разрешить из запуск в systemd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
daemon-reload&lt;br /&gt;
systemctl enable Xvfb.service&lt;br /&gt;
systemctl enable x11vnc_xvfb.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого можно, как написано в указанной статье, перезагрузиться ( ;) ), или дать команду &amp;quot;systemctl start x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если что не так - надо смотреть &amp;quot;systemctl status x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
{{wl-publish: 2017-05-12 13:51:51 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu</id>
		<title>Blog:Boldenkov/12.05.2017 Headless Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu"/>
				<updated>2017-05-12T10:50:27Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: Новая страница: «&amp;lt;summary [ hidden ] &amp;gt;  &amp;lt;center&amp;gt;https://lingua-airlines.ru/wp-content/uploads/2015/10/ochen-strashnoe-menyu-ili-chto-prigotovit-na-hellouin5.jpeg&amp;lt;/center&amp;gt;  Зап…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;https://lingua-airlines.ru/wp-content/uploads/2015/10/ochen-strashnoe-menyu-ili-chto-prigotovit-na-hellouin5.jpeg&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск X-овых программ на компьютере без монитора.&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Для тестирования приёмников был выделен специальный компьютер. Предполагается, что данный компьютер будет круглосуточно гонять подключенные к нему тем или иным способом приёмники и собирать различную статистику.&lt;br /&gt;
&lt;br /&gt;
И тут возникла проблема. Для работы с приёмником Piksi понадобилась программа Swift console, которая предполагает наличие графической среды. А тестовый компьютер не имеет монитора, в результате чего X-ы не запускаются.&lt;br /&gt;
&lt;br /&gt;
Надо это решать.&lt;br /&gt;
&lt;br /&gt;
== Варианты ==&lt;br /&gt;
Вариантов, на самом деле, много, и гуглятся они под запросу &amp;quot;X11 headless&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Наиболее прямолинейный - настроить X-сервер для работы без монитора. Для этого можно установить драйвер x11-dummy. Он подменяет физическую видеоплату и монитор, в результате чего система думает, что всё нормально, хотя монитора фактически нет. &lt;br /&gt;
&lt;br /&gt;
Но с установкой этого драйвера в Ubuntu возникли непонятные сложности (он потянул за собой много всего дополнительного). В результате я пошёл другим путём.&lt;br /&gt;
&lt;br /&gt;
== Xvfb ==&lt;br /&gt;
&lt;br /&gt;
Программа Xvfb подменяет собой X-сервер. Описание её установки можно найти здесь: https://habrahabr.ru/sandbox/20989/&lt;br /&gt;
&lt;br /&gt;
В результате её работы приложения думают, что X-сервер есть, посылают ему запросы, как обычно. Но вместо X-сервера Xvfb.&lt;br /&gt;
&lt;br /&gt;
Из командной строки можно запустить так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp &amp;amp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В данной команде указано, что номер экрана DISPLAY=:1. Это нужно будет указывать при запуске программ. Если на компьютере параллельно запустить стандартный X-сервер, он будет :0 и конфликта не произойдёт.&lt;br /&gt;
&lt;br /&gt;
Запустить программу с GUI-интерфейсом можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
DISPLAY=:1 ./console&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== x11vnc ==&lt;br /&gt;
&lt;br /&gt;
Так, проблему с X-сервером закрыли, приложения запускаются. Но ничего не видно! Хотелось бы иметь доступ к запущенным программам через сеть. Для этого служит x11vnc - программа, транслирующая всё, что видно на экране (даже если его нет!) в сеть по протоколу VNC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
x11vnc -display :1 -bg -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь всё с делано по-простому - указано, к какому дисплею подключаться (:1), указано работать без пароля (nopw), уходить в фон (bg), указан IP-адрес данного компьютера (так надо).&lt;br /&gt;
&lt;br /&gt;
После этого можно подключаться с другого компьютера с помощью клиента VNC, например, так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssvncviewer 192.168.0.94:5900&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
&lt;br /&gt;
Теперь надо сделать, чтобы всё это запускалось при перезагрузке. В Ubuntu сейчас всё сделано на systemd. В качестве образца для настройки systemd я использовал данную статью: http://c-nergy.be/blog/?p=8984. Управление порядком запуска модулей описано здесь: https://fedoramagazine.org/systemd-unit-dependencies-and-order/&lt;br /&gt;
&lt;br /&gt;
Сначала запускаем Xfvb (/lib/systemd/system/Xvfb.service):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start Xvfb at startup.&lt;br /&gt;
After=multi-user.target&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/Xvfb :1 -screen 0 1024x768x24 -fbdir /var/tmp&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого x11vnc (/lib/systemd/system/x11vnc_xvfb.service)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start x11vnc at startup.&lt;br /&gt;
Wants=Xvfb.service multi-user.target&lt;br /&gt;
After=Xvfb.service&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#ExecStart=/usr/bin/x11vnc -display :1 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared&lt;br /&gt;
ExecStart=/usr/bin/x11vnc -display :1  -nopw -listen 192.168.0.94 -xkb&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Записав настроечные файлы, надо разрешить из запуск в systemd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
daemon-reload&lt;br /&gt;
systemctl enable Xvfb.service&lt;br /&gt;
systemctl enable x11vnc_xvfb.service&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого можно, как написано в указанной статье, перезагрузиться ( ;) ), или дать команду &amp;quot;systemctl start x11vnc_xvfb.service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если что не так - надо смотреть &amp;quot;systemctl status x11vnc_xvfb.service&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C</id>
		<title>Blog:Boldenkov/10.04.2017 Подключение Javad через сеть</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C"/>
				<updated>2017-04-25T10:44:33Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* ser2net */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
RTKlib из-под wine не работает с Javad.&lt;br /&gt;
Описан способ решения данной проблемы&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170410_RTKnavi_works.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Проблема ==&lt;br /&gt;
&lt;br /&gt;
В прошлой [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Javad_vs_Linux статье] было описано, как обработать данные с приёмника Javad в RTKlib. Проблема заключалась в том, что программа RTKnavi неправильно работает с последовательным портом. Приходилось сначала записывать поток данных в файл, а потом обрабатывать через convbin/rtkpost.&lt;br /&gt;
&lt;br /&gt;
== Netcat ==&lt;br /&gt;
&lt;br /&gt;
RTKnavi позволяет работать с приёмником не только через последовательный порт, но и через сеть. Но Javad не имеет сетевого интерфейса.&lt;br /&gt;
&lt;br /&gt;
Решением может быть перенаправление последовательного порта в сетевой сокет. Это делается с помощью программы netcat (nc).&lt;br /&gt;
&lt;br /&gt;
Я создал скрипт, настраивающий Javad на передачу данных и запускающий трансляцию данных в сеть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
PORT=/dev/ttyUSB0&lt;br /&gt;
FILE=/tmp/javad.log&lt;br /&gt;
&lt;br /&gt;
stty -F $PORT raw&lt;br /&gt;
stty -F $PORT 115200 cs8 -parenb -cstopb -ixon&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;em,,def:{1,,}&amp;quot; &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/gd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/qd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/WD&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
&lt;br /&gt;
nc -l -p 3500 &amp;lt;/dev/ttyUSB0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя команда передаёт данные из порта /dev/ttyUSB0 в порт TCP 3500.&lt;br /&gt;
&lt;br /&gt;
После этого к нему можно подключиться через RTKnavi:&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_TCPclient.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Режим работы TCP Client, указывается адрес 127.0.0.1 (компьютер, на котором это всё запущено), или другой, порт - 3500, тот, который был указан netcat.&lt;br /&gt;
&lt;br /&gt;
После нажатия кнопки Start всё работает.&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_works.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом можно раздавать по сети данные и от других приёмников.&lt;br /&gt;
&lt;br /&gt;
== ser2net ==&lt;br /&gt;
&lt;br /&gt;
Достоинство NetCat заключается в том, что NetCat уже, как правило, установлен и его можно использовать сразу. Но есть и проблема - при отключении клиента NetCat тоже отключается и его надо перезапускать. Это неприемлемо для предполагаемого применения.&lt;br /&gt;
&lt;br /&gt;
Одним из возможных решений является программа ser2net, предназначенная специально для вещания данных из физического порта в сеть.&lt;br /&gt;
&lt;br /&gt;
ser2net есть в стандартных репозиториях Linux и ставится стандартным способом.&lt;br /&gt;
&lt;br /&gt;
Для правильной работы ser2net нужно его настроить. Обычно предполагается, что будет использоваться настроечный файл, но я решил, что удобнее будет запускать ser2net по мере необходимости для каждого порта отдельно, указывая параметры в коммандной строке.&lt;br /&gt;
&lt;br /&gt;
Делается это таким образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ser2net -C &amp;quot;2222:raw:0:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS LOCAL&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого поток данных из последовательного порта доступен через сеть:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 127.0.0.1:2222&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
После перезапуска curl всё продолжает работать.&lt;br /&gt;
&lt;br /&gt;
== Multiple clients ==&lt;br /&gt;
&lt;br /&gt;
Следующая проблема, которую надо решить - подключение нескольких клиентов к одному порту одновременно. Стандартный ser2net данную возможность не поддерживает. На github есть версия с такой возможностью: https://github.com/longshine/ser2nets, но у меня она почему-то не передаёт данные. Надо разбираться.&lt;br /&gt;
&lt;br /&gt;
Есть вот такое решение: https://wiki.openwrt.org/doc/howto/networked.gps, но это коряво.&lt;br /&gt;
&lt;br /&gt;
GPStk расчитан только на NMEA, который нас не интересует.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{wl-publish: 2017-04-10 11:19:45 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C</id>
		<title>Blog:Boldenkov/10.04.2017 Подключение Javad через сеть</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C"/>
				<updated>2017-04-25T10:34:25Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* ser2net */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
RTKlib из-под wine не работает с Javad.&lt;br /&gt;
Описан способ решения данной проблемы&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170410_RTKnavi_works.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Проблема ==&lt;br /&gt;
&lt;br /&gt;
В прошлой [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Javad_vs_Linux статье] было описано, как обработать данные с приёмника Javad в RTKlib. Проблема заключалась в том, что программа RTKnavi неправильно работает с последовательным портом. Приходилось сначала записывать поток данных в файл, а потом обрабатывать через convbin/rtkpost.&lt;br /&gt;
&lt;br /&gt;
== Netcat ==&lt;br /&gt;
&lt;br /&gt;
RTKnavi позволяет работать с приёмником не только через последовательный порт, но и через сеть. Но Javad не имеет сетевого интерфейса.&lt;br /&gt;
&lt;br /&gt;
Решением может быть перенаправление последовательного порта в сетевой сокет. Это делается с помощью программы netcat (nc).&lt;br /&gt;
&lt;br /&gt;
Я создал скрипт, настраивающий Javad на передачу данных и запускающий трансляцию данных в сеть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
PORT=/dev/ttyUSB0&lt;br /&gt;
FILE=/tmp/javad.log&lt;br /&gt;
&lt;br /&gt;
stty -F $PORT raw&lt;br /&gt;
stty -F $PORT 115200 cs8 -parenb -cstopb -ixon&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;em,,def:{1,,}&amp;quot; &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/gd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/qd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/WD&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
&lt;br /&gt;
nc -l -p 3500 &amp;lt;/dev/ttyUSB0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя команда передаёт данные из порта /dev/ttyUSB0 в порт TCP 3500.&lt;br /&gt;
&lt;br /&gt;
После этого к нему можно подключиться через RTKnavi:&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_TCPclient.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Режим работы TCP Client, указывается адрес 127.0.0.1 (компьютер, на котором это всё запущено), или другой, порт - 3500, тот, который был указан netcat.&lt;br /&gt;
&lt;br /&gt;
После нажатия кнопки Start всё работает.&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_works.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом можно раздавать по сети данные и от других приёмников.&lt;br /&gt;
&lt;br /&gt;
== ser2net ==&lt;br /&gt;
&lt;br /&gt;
Достоинство NetCat заключается в том, что NetCat уже, как правило, установлен и его можно использовать сразу. Но есть и проблема - при отключении клиента NetCat тоже отключается и его надо перезапускать. Это неприемлемо для предполагаемого применения.&lt;br /&gt;
&lt;br /&gt;
Одним из возможных решений является программа ser2net, предназначенная специально для вещания данных из физического порта в сеть.&lt;br /&gt;
&lt;br /&gt;
ser2net есть в стандартных репозиториях Linux и ставится стандартным способом.&lt;br /&gt;
&lt;br /&gt;
Для правильной работы ser2net нужно его настроить. Обычно предполагается, что будет использоваться настроечный файл, но я решил, что удобнее будет запускать ser2net по мере необходимости для каждого порта отдельно, указывая параметры в коммандной строке.&lt;br /&gt;
&lt;br /&gt;
Делается это таким образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ser2net -C &amp;quot;2222:raw:0:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS LOCAL&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого поток данных из последовательного порта доступен через сеть:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 127.0.0.1:2222&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
После перезапуска curl всё продолжает работать.&lt;br /&gt;
&lt;br /&gt;
Следующая проблема, которую надо решить - подключение нескольких клиентов к одному порту одновременно. Стандартный ser2net данную возможность не поддерживает. На github есть версия с такой возможностью: https://github.com/longshine/ser2nets, но у меня она почему-то не передаёт данные. Надо разбираться.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{wl-publish: 2017-04-10 11:19:45 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C</id>
		<title>Blog:Boldenkov/10.04.2017 Подключение Javad через сеть</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C"/>
				<updated>2017-04-25T10:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* ser2net */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
RTKlib из-под wine не работает с Javad.&lt;br /&gt;
Описан способ решения данной проблемы&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170410_RTKnavi_works.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Проблема ==&lt;br /&gt;
&lt;br /&gt;
В прошлой [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Javad_vs_Linux статье] было описано, как обработать данные с приёмника Javad в RTKlib. Проблема заключалась в том, что программа RTKnavi неправильно работает с последовательным портом. Приходилось сначала записывать поток данных в файл, а потом обрабатывать через convbin/rtkpost.&lt;br /&gt;
&lt;br /&gt;
== Netcat ==&lt;br /&gt;
&lt;br /&gt;
RTKnavi позволяет работать с приёмником не только через последовательный порт, но и через сеть. Но Javad не имеет сетевого интерфейса.&lt;br /&gt;
&lt;br /&gt;
Решением может быть перенаправление последовательного порта в сетевой сокет. Это делается с помощью программы netcat (nc).&lt;br /&gt;
&lt;br /&gt;
Я создал скрипт, настраивающий Javad на передачу данных и запускающий трансляцию данных в сеть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
PORT=/dev/ttyUSB0&lt;br /&gt;
FILE=/tmp/javad.log&lt;br /&gt;
&lt;br /&gt;
stty -F $PORT raw&lt;br /&gt;
stty -F $PORT 115200 cs8 -parenb -cstopb -ixon&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;em,,def:{1,,}&amp;quot; &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/gd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/qd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/WD&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
&lt;br /&gt;
nc -l -p 3500 &amp;lt;/dev/ttyUSB0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя команда передаёт данные из порта /dev/ttyUSB0 в порт TCP 3500.&lt;br /&gt;
&lt;br /&gt;
После этого к нему можно подключиться через RTKnavi:&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_TCPclient.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Режим работы TCP Client, указывается адрес 127.0.0.1 (компьютер, на котором это всё запущено), или другой, порт - 3500, тот, который был указан netcat.&lt;br /&gt;
&lt;br /&gt;
После нажатия кнопки Start всё работает.&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_works.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом можно раздавать по сети данные и от других приёмников.&lt;br /&gt;
&lt;br /&gt;
== ser2net ==&lt;br /&gt;
&lt;br /&gt;
Достоинство NetCat заключается в том, что NetCat уже, как правило, установлен и его можно использовать сразу. Но есть и проблема - при отключении клиента NetCat тоже отключается и его надо перезапускать. Это неприемлемо для предполагаемого применения.&lt;br /&gt;
&lt;br /&gt;
Одним из возможных решений является программа ser2net, предназначенная специально для вещания данных из физического порта в сеть.&lt;br /&gt;
&lt;br /&gt;
ser2net есть в стандартных репозиториях Linux и ставится стандартным способом.&lt;br /&gt;
&lt;br /&gt;
Для правильной работы ser2net нужно его настроить. Обычно предполагается, что будет использоваться настроечный файл, но я решил, что удобнее будет запускать ser2net по мере необходимости для каждого порта отдельно, указывая параметры в коммандной строке.&lt;br /&gt;
&lt;br /&gt;
Делается это таким образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ser2net -C &amp;quot;2222:raw:0:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS LOCAL&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого поток данных из последовательного порта доступен через сеть:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 127.0.0.1:2222&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
После перезапуска curl всё продолжает работать.&lt;br /&gt;
&lt;br /&gt;
{{wl-publish: 2017-04-10 11:19:45 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C</id>
		<title>Blog:Boldenkov/10.04.2017 Подключение Javad через сеть</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C"/>
				<updated>2017-04-25T10:32:39Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* Netcat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
RTKlib из-под wine не работает с Javad.&lt;br /&gt;
Описан способ решения данной проблемы&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170410_RTKnavi_works.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Проблема ==&lt;br /&gt;
&lt;br /&gt;
В прошлой [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Javad_vs_Linux статье] было описано, как обработать данные с приёмника Javad в RTKlib. Проблема заключалась в том, что программа RTKnavi неправильно работает с последовательным портом. Приходилось сначала записывать поток данных в файл, а потом обрабатывать через convbin/rtkpost.&lt;br /&gt;
&lt;br /&gt;
== Netcat ==&lt;br /&gt;
&lt;br /&gt;
RTKnavi позволяет работать с приёмником не только через последовательный порт, но и через сеть. Но Javad не имеет сетевого интерфейса.&lt;br /&gt;
&lt;br /&gt;
Решением может быть перенаправление последовательного порта в сетевой сокет. Это делается с помощью программы netcat (nc).&lt;br /&gt;
&lt;br /&gt;
Я создал скрипт, настраивающий Javad на передачу данных и запускающий трансляцию данных в сеть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
PORT=/dev/ttyUSB0&lt;br /&gt;
FILE=/tmp/javad.log&lt;br /&gt;
&lt;br /&gt;
stty -F $PORT raw&lt;br /&gt;
stty -F $PORT 115200 cs8 -parenb -cstopb -ixon&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;em,,def:{1,,}&amp;quot; &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/gd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/qd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/WD&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
&lt;br /&gt;
nc -l -p 3500 &amp;lt;/dev/ttyUSB0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя команда передаёт данные из порта /dev/ttyUSB0 в порт TCP 3500.&lt;br /&gt;
&lt;br /&gt;
После этого к нему можно подключиться через RTKnavi:&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_TCPclient.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Режим работы TCP Client, указывается адрес 127.0.0.1 (компьютер, на котором это всё запущено), или другой, порт - 3500, тот, который был указан netcat.&lt;br /&gt;
&lt;br /&gt;
После нажатия кнопки Start всё работает.&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_works.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом можно раздавать по сети данные и от других приёмников.&lt;br /&gt;
&lt;br /&gt;
== ser2net ==&lt;br /&gt;
&lt;br /&gt;
Достоинство NetCat заключается в том, что NetCat уже, как правило, установлен и его можно использовать сразу. Но есть и проблема - при отключении клиента NetCat тоже отключается и его надо перезапускать. Это неприемлемо для предполагаемого применения.&lt;br /&gt;
&lt;br /&gt;
Одним из возможных решений является программа ser2net, предназначенная специально для вещания данных из физического порта в сеть.&lt;br /&gt;
&lt;br /&gt;
ser2net есть в стандартных репозиториях Linux и ставится стандартным способом.&lt;br /&gt;
&lt;br /&gt;
Для правильной работы ser2net нужно его настроить. Обычно предполагается, что будет использоваться настроечный файл, но я решил, что удобнее будет запускать ser2net по мере необходимости для каждого порта отдельно, указывая параметры в коммандной строке.&lt;br /&gt;
&lt;br /&gt;
Делается это таким образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ser2net -C &amp;quot;2222:raw:0:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS LOCAL&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого поток данных из последовательного порта доступен через сеть:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 192.168.0.94:2222&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{wl-publish: 2017-04-10 11:19:45 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/21.04.2017_%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_PPK_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/21.04.2017 Решение PPK из командной строки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/21.04.2017_%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_PPK_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8"/>
				<updated>2017-04-21T22:00:24Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* Постобработка в режиме kinematic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_2_1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Продолжая исследовать возможности RTKlib...&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Я поставил задачу получить решение PPK с помощью RTKlib из командной строки. Вот что вышло.&lt;br /&gt;
&lt;br /&gt;
== Исходные данные ==&lt;br /&gt;
&lt;br /&gt;
Были записаны (одновременно, с одной антенны) измерения с двух приёмников - Piksi и MCR. Как это делается, описано [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Автоматизация_измерений здесь].&lt;br /&gt;
&lt;br /&gt;
Если делать решение по кодовым измерениям, получим такие картинки:&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_Pos_MCR_vs_Piksi_1.png|400px]] [[File:20170421_NS_MCR_vs_Piksi_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Первый график - решение, второй - количество спутников в измерениях. Видно, что у приёмника MCR (красный) разброс решения вдвое больше, чем у Piksi, хотя спутников также почти вдвое больше (добавился ГЛОНАСС). Надо разбираться.&lt;br /&gt;
&lt;br /&gt;
== Постобработка в режиме kinematic ==&lt;br /&gt;
&lt;br /&gt;
RTKlib имеет несколько режимов работы блока решения навигационной задачи. Рассмотрим режим 2 (kinematic). Для получения решения в данном режиме я использовал команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rnx2rtkp -r 2846044.0 2200316.0 5249376.0 -p 2 mcr.pos Piksi.pos mcr.nav mcr.gnav -a  &amp;gt; /tmp/MCR_rover.pos&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ключ &amp;quot;-p&amp;quot; задаёт режим решения 2 (kinematic). Первый файл с измерениями mcr.pos рассматривается, как rover, второй - как base.&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом получил решение, в котором MCR - base, Piksi - rover.&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_2_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Синий - база Piksi, красный - база MCR.&lt;br /&gt;
&lt;br /&gt;
Ожидаемо получилась картинка, имеющая некоторую степень симметрии относительно нуля. Разброс решения - сантиметры.&lt;br /&gt;
&lt;br /&gt;
== Постобработка в режиме static ==&lt;br /&gt;
&lt;br /&gt;
Режим 3 (static) отличается тем, что RTKlib рассматривает положение, как статическое, и начинает усреднять данные. Поэтому решение постепенно сходится к нулю.&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_3_1.png|400px]]&lt;br /&gt;
{{wl-publish: 2017-04-21 14:27:41 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Lukianov/21.04.2017_%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D1%8B_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_RTK</id>
		<title>Blog:Lukianov/21.04.2017 Результаты исследования RTK</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Lukianov/21.04.2017_%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D1%8B_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_RTK"/>
				<updated>2017-04-21T21:59:27Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
[[File:LVS_20042017_rtk_en_eu_2.jpg|200px]] [[File:LVS_20042017_rtk_enu_3min.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Режим static в RTKLIB  &lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи == &lt;br /&gt;
Имеются 2 приёмника: mcr-ровер и javad-база, подключенных к одной и той же антенне. Антенна неподвижна, находится на крыше. &amp;lt;br /&amp;gt;&lt;br /&gt;
Требуется: Получить rtk решение, используя rtklib (rtknavi).  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как решить эту задачу, описано [https://www.srns.ru/wiki/Javad_and_RTKLIB здесь], ниже будет приведён результат rtk измерений (модель rtk: static).&lt;br /&gt;
&lt;br /&gt;
== Особенности решения задачи ==&lt;br /&gt;
*rover работает только по сигналам L1  &amp;lt;br /&amp;gt;&lt;br /&gt;
*ровер и база используют сигналы только GPS  &amp;lt;br /&amp;gt;&lt;br /&gt;
*Координаты антенны полагались равными:  &amp;lt;br /&amp;gt;&lt;br /&gt;
lon: 37.7080442565°  &amp;lt;br /&amp;gt;&lt;br /&gt;
lat: 55.7563146669°  &amp;lt;br /&amp;gt;&lt;br /&gt;
h: 182.2466890774 м  &amp;lt;br /&amp;gt;&lt;br /&gt;
Эти значения являются приближенными и получены в результате усреднения шестичасовых наблюдений. &amp;lt;br /&amp;gt;&lt;br /&gt;
*Решение было записано в системе координат N/E/U (&amp;quot;севернее&amp;quot;/&amp;quot;восточнее&amp;quot;/&amp;quot;выше&amp;quot;, базовой станции), поэтому, с учётом того, что оба приёмника были подключены к одной и той-же антенне, значения N/E/U можно считать погрешностями измерений.  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результаты rtk измерений ==&lt;br /&gt;
На рисунках ниже расположены графики, показывающие координаты ровера относительно базы в системе координат N/E/U: &amp;lt;br /&amp;gt; &lt;br /&gt;
[[File:LVS_20042017_rtk_en_eu_1.jpg|800px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
Изменение во времени координат приёмника относительно базы: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LVS_20042017_rtk_enu_1.jpg|800px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
Те же самые результаты '''начиная с 3-ей минуты''' после запуска rtknavi: &amp;lt;br /&amp;gt; &lt;br /&gt;
[[File:LVS_20042017_rtk_en_eu_2.jpg|900px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LVS_20042017_rtk_en_eu_1_3min.jpg|900px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LVS_20042017_rtk_enu_3min.jpg|900px]]  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Анализ полученных результатов ==&lt;br /&gt;
Из вышерассмотренного делаем следующие выводы: &amp;lt;br /&amp;gt;&lt;br /&gt;
* Для получения точного решение (сантиметровой точности) требуется порядка 3-х минут. Это время нужно, чтобы накопить статистику измерений.  &amp;lt;br /&amp;gt;&lt;br /&gt;
* в северном направление имеется наиболее значительная составляющая погрешности. Это, возможно, связано с многолучевостью, а именно: с отражением волн от крыши, на которой расположена сама антенна.&lt;br /&gt;
&lt;br /&gt;
{{wl-publish: 2017-04-21 16:56:00 +00:00 | | Lukianov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Lukianov/21.04.2017_%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D1%8B_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_RTK</id>
		<title>Blog:Lukianov/21.04.2017 Результаты исследования RTK</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Lukianov/21.04.2017_%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D1%8B_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_RTK"/>
				<updated>2017-04-21T14:11:24Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
[[File:LVS_20042017_rtk_en_eu_2.jpg|200px]] [[File:LVS_20042017_rtk_enu_3min.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Режим static в RTKLIB  &lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи == &lt;br /&gt;
Имеются 2 приёмника: mcr-ровер и javad-база, подключенных к одной и той же антенне. Антенна неподвижна, находится на крыше. &amp;lt;br /&amp;gt;&lt;br /&gt;
Требуется: Получить rtk решение, используя rtklib (rtknavi).  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как решить эту задачу, описано [https://www.srns.ru/wiki/Javad_and_RTKLIB здесь], ниже будет приведён результат rtk измерений (модель rtk: static).&lt;br /&gt;
&lt;br /&gt;
== особенности решения задачи ==&lt;br /&gt;
*rover работает только по сигналам L1  &amp;lt;br /&amp;gt;&lt;br /&gt;
*ровер и база используют сигналы только GPS  &amp;lt;br /&amp;gt;&lt;br /&gt;
*Координаты антенны полагались равными:  &amp;lt;br /&amp;gt;&lt;br /&gt;
lon: 37.7080442565°  &amp;lt;br /&amp;gt;&lt;br /&gt;
lat: 55.7563146669°  &amp;lt;br /&amp;gt;&lt;br /&gt;
h: 182.2466890774 м  &amp;lt;br /&amp;gt;&lt;br /&gt;
Эти значения являются приближенными и получены в результате усреднения шестичасовых наблюдений. &amp;lt;br /&amp;gt;&lt;br /&gt;
*Решение было записано в системе координат N/E/U (&amp;quot;севернее&amp;quot;/&amp;quot;восточнее&amp;quot;/&amp;quot;выше&amp;quot;, базовой станции), поэтому, с учётом того, что оба приёмника были подключены к одной и той-же антенне, значения N/E/U можно считать погрешностями измерений.  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== результаты rtk измерений ==&lt;br /&gt;
На рисунках ниже расположены графики, показывающие координаты ровера относительно базы в системе координат N/E/U: &amp;lt;br /&amp;gt; &lt;br /&gt;
[[File:LVS_20042017_rtk_en_eu_1.jpg|800px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
Изменение во времени координат приёмника относительно базы: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LVS_20042017_rtk_enu_1.jpg|800px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
Те же самые результаты '''начиная с 3-ей минуты''' после запуска rtknavi: &amp;lt;br /&amp;gt; &lt;br /&gt;
[[File:LVS_20042017_rtk_en_eu_2.jpg|900px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LVS_20042017_rtk_en_eu_1_3min.jpg|900px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LVS_20042017_rtk_enu_3min.jpg|900px]]  &amp;lt;br /&amp;gt;&lt;br /&gt;
== анализ полученных результатов ==&lt;br /&gt;
Из вышерассмотренного делаем следующие выводы: &amp;lt;br /&amp;gt;&lt;br /&gt;
* Для получения точного решение (сантиметровой точности) требуется порядка 3-х минут. Это время нужно, чтобы накопить статистику измерений.  &amp;lt;br /&amp;gt;&lt;br /&gt;
* в северном направление имеется наиболее значительная составляющая погрешности. Это, возможно, связано с многолучевостью, а именно: с отражением волн от крыши, на которой расположена сама антенна.&lt;br /&gt;
&lt;br /&gt;
{{wl-publish: 2017-04-21 16:56:00 +00:00 | | Lukianov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/21.04.2017_%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_PPK_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/21.04.2017 Решение PPK из командной строки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/21.04.2017_%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_PPK_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8"/>
				<updated>2017-04-21T11:29:28Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* Исходные данные */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_2_1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Продолжая исследовать возможности RTKlib...&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Я поставил задачу получить решение PPK с помощью RTKlib из командной строки. Вот что вышло.&lt;br /&gt;
&lt;br /&gt;
== Исходные данные ==&lt;br /&gt;
&lt;br /&gt;
Были записаны (одновременно, с одной антенны) измерения с двух приёмников - Piksi и MCR. Как это делается, описано [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Автоматизация_измерений здесь].&lt;br /&gt;
&lt;br /&gt;
Если делать решение по кодовым измерениям, получим такие картинки:&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_Pos_MCR_vs_Piksi_1.png|400px]] [[File:20170421_NS_MCR_vs_Piksi_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Первый график - решение, второй - количество спутников в измерениях. Видно, что у приёмника MCR (красный) разброс решения вдвое больше, чем у Piksi, хотя спутников также почти вдвое больше (добавился ГЛОНАСС). Надо разбираться.&lt;br /&gt;
&lt;br /&gt;
== Постобработка в режиме kinematic ==&lt;br /&gt;
&lt;br /&gt;
RTKlib имеет несколько режимов работы блока решения навигационной задачи. Рассмотрим режим 2 (kinematic). Для получения решения в данном режиме я использовал команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rnx2rtkp rnx2rtkp -r 2846044.0 2200316.0 5249376.0 -p 2 mcr.pos Piksi.pos mcr.nav mcr.gnav -a  &amp;gt; /tmp/MCR_rover.pos&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ключ &amp;quot;-p&amp;quot; задаёт режим решения 2 (kinematic). Первый файл с измерениями mcr.pos рассматривается, как rover, второй - как base.&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом получил решение, в котором MCR - base, Piksi - rover.&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_2_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Синий - база Piksi, красный - база MCR.&lt;br /&gt;
&lt;br /&gt;
Ожидаемо получилась картинка, имеющая некоторую степень симметрии относительно нуля. Разброс решения - сантиметры.&lt;br /&gt;
&lt;br /&gt;
== Постобработка в режиме static ==&lt;br /&gt;
&lt;br /&gt;
Режим 3 (static) отличается тем, что RTKlib рассматривает положение, как статическое, и начинает усреднять данные. Поэтому решение постепенно сходится к нулю.&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_3_1.png|400px]]&lt;br /&gt;
{{wl-publish: 2017-04-21 14:27:41 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/21.04.2017_%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_PPK_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/21.04.2017 Решение PPK из командной строки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/21.04.2017_%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_PPK_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8"/>
				<updated>2017-04-21T11:28:14Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_2_1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Продолжая исследовать возможности RTKlib...&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Я поставил задачу получить решение PPK с помощью RTKlib из командной строки. Вот что вышло.&lt;br /&gt;
&lt;br /&gt;
== Исходные данные ==&lt;br /&gt;
&lt;br /&gt;
Были записаны (одновременно, с одной антенны) измерения с двух приёмников - Piksi и MCR. Как это делается, описано [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Автоматизация_измерений здесь].&lt;br /&gt;
&lt;br /&gt;
Если делать решение по кодовым измерениям, получим такие картинки:&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_Pos_MCR_vs_Piksi_1.png|400px]] [[File:20170421_NS_MCR_vs_Piksi_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Первый график - решение, второй - количество спутников в измерениях.&lt;br /&gt;
&lt;br /&gt;
== Постобработка в режиме kinematic ==&lt;br /&gt;
&lt;br /&gt;
RTKlib имеет несколько режимов работы блока решения навигационной задачи. Рассмотрим режим 2 (kinematic). Для получения решения в данном режиме я использовал команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rnx2rtkp rnx2rtkp -r 2846044.0 2200316.0 5249376.0 -p 2 mcr.pos Piksi.pos mcr.nav mcr.gnav -a  &amp;gt; /tmp/MCR_rover.pos&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ключ &amp;quot;-p&amp;quot; задаёт режим решения 2 (kinematic). Первый файл с измерениями mcr.pos рассматривается, как rover, второй - как base.&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом получил решение, в котором MCR - base, Piksi - rover.&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_2_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Синий - база Piksi, красный - база MCR.&lt;br /&gt;
&lt;br /&gt;
Ожидаемо получилась картинка, имеющая некоторую степень симметрии относительно нуля. Разброс решения - сантиметры.&lt;br /&gt;
&lt;br /&gt;
== Постобработка в режиме static ==&lt;br /&gt;
&lt;br /&gt;
Режим 3 (static) отличается тем, что RTKlib рассматривает положение, как статическое, и начинает усреднять данные. Поэтому решение постепенно сходится к нулю.&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_3_1.png|400px]]&lt;br /&gt;
{{wl-publish: 2017-04-21 14:27:41 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_PPK_mode_2_1.png</id>
		<title>Файл:20170421 PPK mode 2 1.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_PPK_mode_2_1.png"/>
				<updated>2017-04-21T11:28:03Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: Boldenkov загружена новая версия «Файл:20170421 PPK mode 2 1.png»: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/21.04.2017_%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_PPK_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8</id>
		<title>Blog:Boldenkov/21.04.2017 Решение PPK из командной строки</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/21.04.2017_%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_PPK_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8"/>
				<updated>2017-04-21T11:27:42Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: Новая страница: «&amp;lt;summary [ hidden ] &amp;gt;  Продолжая исследовать возможности RTKlib... &amp;lt;/summary&amp;gt;  {{TOCright}}  Я поставил задачу по…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Продолжая исследовать возможности RTKlib...&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Я поставил задачу получить решение PPK с помощью RTKlib из командной строки. Вот что вышло.&lt;br /&gt;
&lt;br /&gt;
== Исходные данные ==&lt;br /&gt;
&lt;br /&gt;
Были записаны (одновременно, с одной антенны) измерения с двух приёмников - Piksi и MCR. Как это делается, описано [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Автоматизация_измерений здесь].&lt;br /&gt;
&lt;br /&gt;
Если делать решение по кодовым измерениям, получим такие картинки:&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_Pos_MCR_vs_Piksi_1.png|400px]] [[File:20170421_NS_MCR_vs_Piksi_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Первый график - решение, второй - количество спутников в измерениях.&lt;br /&gt;
&lt;br /&gt;
== Постобработка в режиме kinematic ==&lt;br /&gt;
&lt;br /&gt;
RTKlib имеет несколько режимов работы блока решения навигационной задачи. Рассмотрим режим 2 (kinematic). Для получения решения в данном режиме я использовал команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rnx2rtkp rnx2rtkp -r 2846044.0 2200316.0 5249376.0 -p 2 mcr.pos Piksi.pos mcr.nav mcr.gnav -a  &amp;gt; /tmp/MCR_rover.pos&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ключ &amp;quot;-p&amp;quot; задаёт режим решения 2 (kinematic). Первый файл с измерениями mcr.pos рассматривается, как rover, второй - как base.&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом получил решение, в котором MCR - base, Piksi - rover.&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_2_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Синий - база Piksi, красный - база MCR.&lt;br /&gt;
&lt;br /&gt;
Ожидаемо получилась картинка, имеющая некоторую степень симметрии относительно нуля. Разброс решения - сантиметры.&lt;br /&gt;
&lt;br /&gt;
== Постобработка в режиме static ==&lt;br /&gt;
&lt;br /&gt;
Режим 3 (static) отличается тем, что RTKlib рассматривает положение, как статическое, и начинает усреднять данные. Поэтому решение постепенно сходится к нулю.&lt;br /&gt;
&lt;br /&gt;
[[File:20170421_PPK_mode_3_1.png|400px]]&lt;br /&gt;
{{wl-publish: 2017-04-21 14:27:41 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_NS_MCR_vs_Piksi_1.png</id>
		<title>Файл:20170421 NS MCR vs Piksi 1.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_NS_MCR_vs_Piksi_1.png"/>
				<updated>2017-04-21T11:17:39Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_Pos_MCR_vs_Piksi_1.png</id>
		<title>Файл:20170421 Pos MCR vs Piksi 1.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_Pos_MCR_vs_Piksi_1.png"/>
				<updated>2017-04-21T11:17:38Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_PPK_mode_3_1.png</id>
		<title>Файл:20170421 PPK mode 3 1.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_PPK_mode_3_1.png"/>
				<updated>2017-04-21T11:17:21Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_PPK_mode_2_1.png</id>
		<title>Файл:20170421 PPK mode 2 1.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170421_PPK_mode_2_1.png"/>
				<updated>2017-04-21T11:17:20Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_IP</id>
		<title>Список IP</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_IP"/>
				<updated>2017-04-18T14:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Форма2}}&lt;br /&gt;
&lt;br /&gt;
Список IP-адресов УИЦ СРТТ&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! IP&lt;br /&gt;
! Название&lt;br /&gt;
! Принадлежность&lt;br /&gt;
! Примечания&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.1&lt;br /&gt;
| &lt;br /&gt;
| Внешний маршрутизатор&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.2&lt;br /&gt;
| [http://192.168.0.2 server]&lt;br /&gt;
| Хранилище QNAP&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.4&lt;br /&gt;
| [http://192.168.0.4 HP M1412nfh]&lt;br /&gt;
| Сетевой принтер/сканер&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.5&lt;br /&gt;
| [http://192.168.0.5 Diesel-power]&lt;br /&gt;
| Сетевой пилот&lt;br /&gt;
| Ethernet-пилот EnerGenie &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.11&lt;br /&gt;
| Ivan-PC&lt;br /&gt;
| Липа&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.12&lt;br /&gt;
| raspberry&lt;br /&gt;
| ivan&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.60&lt;br /&gt;
| Oryx S/N 3.008&lt;br /&gt;
| Новый Орикс с новой печатной платой и модулем&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.61&lt;br /&gt;
| Oryx S/N 3.009&lt;br /&gt;
| Новый Орикс с новой печатной платой и модулем&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.62&lt;br /&gt;
| Oryx S/N 3.010&lt;br /&gt;
| Новый Орикс с новой печатной платой и модулем&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.63&lt;br /&gt;
| Oryx S/N 3.011&lt;br /&gt;
| Новый Орикс с новой печатной платой и модулем&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.64&lt;br /&gt;
| Oryx S/N 3.012&lt;br /&gt;
| Новый Орикс с новой печатной платой и модулем&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.65&lt;br /&gt;
| Oryx S/N 3.013&lt;br /&gt;
| Новый Орикс с новой печатной платой и модулем&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.80&lt;br /&gt;
| TP-LINK&lt;br /&gt;
| &lt;br /&gt;
| Маршрутизатор, используемый, как хаб (2014.05.15)&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.83&lt;br /&gt;
| srns.ru&lt;br /&gt;
| Сервер&lt;br /&gt;
| Внешний IP 193.233.71.244&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.92&lt;br /&gt;
| object-d&lt;br /&gt;
| Болденков&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.93&lt;br /&gt;
| spirent&lt;br /&gt;
| &lt;br /&gt;
| Спайрент, что стоит в А-401&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.94&lt;br /&gt;
| Evaluator&lt;br /&gt;
| &lt;br /&gt;
| Сервер тестирования&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.96&lt;br /&gt;
| Neptune-1&lt;br /&gt;
| Шатилов&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.99&lt;br /&gt;
| KorPC&lt;br /&gt;
| Корогодин&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.151&lt;br /&gt;
| Impala1&lt;br /&gt;
| Импала, экземпляр 1&lt;br /&gt;
| У Ивана&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.152&lt;br /&gt;
| Impala2&lt;br /&gt;
| Модуль в тестовой плате&lt;br /&gt;
| Плата поиска в макете &amp;quot;Сантиметр&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.153&lt;br /&gt;
| Impala3&lt;br /&gt;
| Импала, экземпляр 3&lt;br /&gt;
| Плата коррелятора в макете &amp;quot;НИИ КП&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.154&lt;br /&gt;
| Impala4&lt;br /&gt;
| Импала, экземпляр 4 (c МАКС'а - у Андрея)&lt;br /&gt;
| Плата коррелятора в макете &amp;quot;Сантиметр&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.155&lt;br /&gt;
| Impala5&lt;br /&gt;
| Импала, экземпляр 5&lt;br /&gt;
| Плата поиска в макете &amp;quot;НИИ КП&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.156&lt;br /&gt;
| PLDA starter kit&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.160&lt;br /&gt;
| MCR экземпляр 1&lt;br /&gt;
| Маршрутизатор &amp;quot;Сантиметра&amp;quot;&lt;br /&gt;
| Макет &amp;quot;Сантиметр&amp;quot;, отдан Быханову. IP свободен&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.161&lt;br /&gt;
| Oryx Экземпляр 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.162&lt;br /&gt;
| Oryx Экземпляр 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.163&lt;br /&gt;
| Oryx Экземпляр 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.164&lt;br /&gt;
| Oryx Экземпляр 4&lt;br /&gt;
| &lt;br /&gt;
| Black Box&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.165&lt;br /&gt;
| Oryx Экземпляр 5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.166&lt;br /&gt;
| Oryx Экземпляр 6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.167&lt;br /&gt;
| MCR экземпляр 2&lt;br /&gt;
| Маршрутизатор &amp;quot;Сантиметра&amp;quot; - 2 '''ВАЖНО! Заняли под новый орикс на новой плате с новым цинком'''&lt;br /&gt;
| Стоит на столе СЛЕВА&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.168&lt;br /&gt;
| MCR экземпляр 3&lt;br /&gt;
| Маршрутизатор &amp;quot;Сантиметра&amp;quot; - 3&lt;br /&gt;
| Стоит на столе СПРАВА&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.169&lt;br /&gt;
| Наш MCR с экраном&lt;br /&gt;
| Компьютер Тион-ПРО 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.171&lt;br /&gt;
| Наш MCR с экраном&lt;br /&gt;
| Маршрутизатор MCR с экраном&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.176&lt;br /&gt;
| &lt;br /&gt;
| [[R&amp;amp;S SMBV100A S/N 257718 (прибор)|R&amp;amp;S SMBV100A S/N 257718]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.177&lt;br /&gt;
| &lt;br /&gt;
| [[R&amp;amp;S SMBV100A S/N 256978 (прибор)|R&amp;amp;S SMBV100A S/N 256978]]&lt;br /&gt;
| Инв. номер 4186&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.178&lt;br /&gt;
| &lt;br /&gt;
| [[R&amp;amp;S SMBV100A S/N 257721 (прибор)|R&amp;amp;S SMBV100A S/N 257721]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.179&lt;br /&gt;
| &lt;br /&gt;
| [[R&amp;amp;S SMBV100A S/N 257716 (прибор)|R&amp;amp;S SMBV100A S/N 257716]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.180&lt;br /&gt;
| &lt;br /&gt;
| [[Spirent_GSS6737-3_S/N_1201383_(прибор) | Spirent GSS6737-3]]&lt;br /&gt;
| его нет&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.186&lt;br /&gt;
| ZYNQ z702&lt;br /&gt;
|&lt;br /&gt;
| ТЕКУЩИЙ IP = 0.186  &lt;br /&gt;
При изменении uImage сбивается. Настройка: vi /etc/network/interfaces&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.187&lt;br /&gt;
| ZYNQ z706&lt;br /&gt;
|&lt;br /&gt;
| Наша первая плата Z-706&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.188&lt;br /&gt;
| ZYNQ z706/2&lt;br /&gt;
|&lt;br /&gt;
| Вторая плата Z-706, которую дали для фарватера на время&lt;br /&gt;
|- &lt;br /&gt;
| &amp;gt;= 192.168.0.200&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Область динамических адресов&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория:SRNS.ru]]&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C</id>
		<title>Blog:Boldenkov/10.04.2017 Подключение Javad через сеть</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C"/>
				<updated>2017-04-10T08:19:45Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
RTKlib из-под wine не работает с Javad.&lt;br /&gt;
Описан способ решения данной проблемы&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170410_RTKnavi_works.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Проблема ==&lt;br /&gt;
&lt;br /&gt;
В прошлой [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Javad_vs_Linux статье] было описано, как обработать данные с приёмника Javad в RTKlib. Проблема заключалась в том, что программа RTKnavi неправильно работает с последовательным портом. Приходилось сначала записывать поток данных в файл, а потом обрабатывать через convbin/rtkpost.&lt;br /&gt;
&lt;br /&gt;
== Netcat ==&lt;br /&gt;
&lt;br /&gt;
RTKnavi позволяет работать с приёмником не только через последовательный порт, но и через сеть. Но Javad не имеет сетевого интерфейса.&lt;br /&gt;
&lt;br /&gt;
Решением может быть перенаправление последовательного порта в сетевой сокет. Это делается с помощью программы netcat (nc).&lt;br /&gt;
&lt;br /&gt;
Я создал скрипт, настраивающий Javad на передачу данных и запускающий трансляцию данных в сеть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
PORT=/dev/ttyUSB0&lt;br /&gt;
FILE=/tmp/javad.log&lt;br /&gt;
&lt;br /&gt;
stty -F $PORT raw&lt;br /&gt;
stty -F $PORT 115200 cs8 -parenb -cstopb -ixon&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;em,,def:{1,,}&amp;quot; &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/gd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/qd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/WD&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
&lt;br /&gt;
nc -l -p 3500 &amp;lt;/dev/ttyUSB0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя команда передаёт данные из порта /dev/ttyUSB0 в порт TCP 3500.&lt;br /&gt;
&lt;br /&gt;
После этого к нему можно подключиться через RTKnavi:&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_TCPclient.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Режим работы TCP Client, указывается адрес 127.0.0.1 (компьютер, на котором это всё запущено), или другой, порт - 3500, тот, который был указан netcat.&lt;br /&gt;
&lt;br /&gt;
После нажатия кнопки Start всё работает.&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_works.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом можно раздавать по сети данные и от других приёмников.&lt;br /&gt;
{{wl-publish: 2017-04-10 11:19:45 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C</id>
		<title>Blog:Boldenkov/10.04.2017 Подключение Javad через сеть</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C"/>
				<updated>2017-04-10T08:19:25Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: Новая страница: «&amp;lt;summary [ hidden ] &amp;gt; RTKlib из-под wine не работает с Javad. Описан способ решения данной проблемы  &amp;lt;center&amp;gt;[[Fi…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
RTKlib из-под wine не работает с Javad.&lt;br /&gt;
Описан способ решения данной проблемы&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:20170410_RTKnavi_works.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Проблема ==&lt;br /&gt;
&lt;br /&gt;
В прошлой [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Javad_vs_Linux статье] было описано, как обработать данные с приёмника Javad в RTKlib. Проблема заключалась в том, что программа RTKnavi неправильно работает с последовательным портом. Приходилось сначала записывать поток данных в файл, а потом обрабатывать через convbin/rtkpost.&lt;br /&gt;
&lt;br /&gt;
== Netcat ==&lt;br /&gt;
&lt;br /&gt;
RTKnavi позволяет работать с приёмником не только через последовательный порт, но и через сеть. Но Javad не имеет сетевого интерфейса.&lt;br /&gt;
&lt;br /&gt;
Решением может быть перенаправление последовательного порта в сетевой сокет. Это делается с помощью программы netcat (nc).&lt;br /&gt;
&lt;br /&gt;
Я создал скрипт, настраивающий Javad на передачу данных и запускающий трансляцию данных в сеть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
PORT=/dev/ttyUSB0&lt;br /&gt;
FILE=/tmp/javad.log&lt;br /&gt;
&lt;br /&gt;
stty -F $PORT raw&lt;br /&gt;
stty -F $PORT 115200 cs8 -parenb -cstopb -ixon&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;em,,def:{1,,}&amp;quot; &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/gd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/qd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/WD&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
&lt;br /&gt;
nc -l -p 3500 &amp;lt;/dev/ttyUSB0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя команда передаёт данные из порта /dev/ttyUSB0 в порт TCP 3500.&lt;br /&gt;
&lt;br /&gt;
После этого к нему можно подключиться через RTKnavi:&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_TCPclient.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Режим работы TCP Client, указывается адрес 127.0.0.1 (компьютер, на котором это всё запущено), или другой, порт - 3500, тот, который был указан netcat.&lt;br /&gt;
&lt;br /&gt;
После нажатия кнопки Start всё работает.&lt;br /&gt;
&lt;br /&gt;
[[File:20170410_RTKnavi_works.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом можно раздавать по сети данные и от других приёмников.&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170410_RTKnavi_works.png</id>
		<title>Файл:20170410 RTKnavi works.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170410_RTKnavi_works.png"/>
				<updated>2017-04-10T08:18:47Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170410_RTKnavi_TCPclient.png</id>
		<title>Файл:20170410 RTKnavi TCPclient.png</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:20170410_RTKnavi_TCPclient.png"/>
				<updated>2017-04-10T08:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	<entry>
		<id>https://gitlab.srns.ru/wiki/Blog:Boldenkov/06.04.2017_%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D1%80%D0%B5%D0%BD%D0%B8%D0%B9</id>
		<title>Blog:Boldenkov/06.04.2017 Автоматизация измерений</title>
		<link rel="alternate" type="text/html" href="https://gitlab.srns.ru/wiki/Blog:Boldenkov/06.04.2017_%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D1%80%D0%B5%D0%BD%D0%B8%D0%B9"/>
				<updated>2017-04-06T13:27:06Z</updated>
		
		<summary type="html">&lt;p&gt;Boldenkov: /* Piksi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;summary [ hidden ] &amp;gt;&lt;br /&gt;
Автоматизация обработки измерений, получаемых с приёмника&lt;br /&gt;
&lt;br /&gt;
[[File:20170406_RcvComparison_KPDV.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
Долой многоходовку из [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_Javad_vs_Linux прошлой статьи]&lt;br /&gt;
&lt;br /&gt;
Хочу ...&lt;br /&gt;
&lt;br /&gt;
Хочу утром, за чашечкой кофе, получать сравнительный анализ точности работы приёмников за последние сутки.&lt;br /&gt;
&lt;br /&gt;
== Приёмники ==&lt;br /&gt;
&lt;br /&gt;
Мне сейчас доступен Javad, MCR и Piksi. Используем далее их.&lt;br /&gt;
&lt;br /&gt;
== Снятие измерений ==&lt;br /&gt;
&lt;br /&gt;
=== Javad ===&lt;br /&gt;
&lt;br /&gt;
С Javad я работаю через USB с использованием переходника на RS232. Чтобы получить его измерения (в формате Javad), я сделал скрипт start_javad_log:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
PORT=/dev/ttyUSB0&lt;br /&gt;
FILE=/tmp/javad.log&lt;br /&gt;
&lt;br /&gt;
stty -F $PORT raw&lt;br /&gt;
stty -F $PORT 115200 cs8 -parenb -cstopb -ixon&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;em,,def:{1,,}&amp;quot; &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/gd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/qd&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
echo &amp;quot;em,,jps/WD&amp;quot;    &amp;gt; $PORT&lt;br /&gt;
&lt;br /&gt;
cat $PORT &amp;gt; $FILE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MCR ===&lt;br /&gt;
Наш приёмник сыпет протоколом BINR через порт 3491. Ничего делать не нужно, просто записать результат в файл (start_mcr_log):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
IP=192.168.0.167&lt;br /&gt;
TcpPort=3491&lt;br /&gt;
&lt;br /&gt;
DIR=/tmp&lt;br /&gt;
FILE=mcr.log&lt;br /&gt;
&lt;br /&gt;
curl $IP:$TcpPort &amp;gt; $DIR/$FILE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Piksi ===&lt;br /&gt;
С Piksi сложнее всего. Он выдаёт свой бинарный лог SBP через порт 55555, но я пока не разобрался, как использовать лог в бинарном виде. Представляемая ими программа обработки sbp2rinex использует лог SBP, закодированный в JSON. А записывать такой лог может графическая программа swift_console. Надо разобраться, как обойтись без этого, т.к. лог в формате JSON занимает много места. Да и программа GUI тут лишняя. Но пока так (start_piksi_log):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
IP=192.168.0.222&lt;br /&gt;
TcpPort=55555&lt;br /&gt;
DIR=/tmp&lt;br /&gt;
FILE=piksi.log&lt;br /&gt;
&lt;br /&gt;
echo /home/CommonFiles/Piksi/swift_console_v1.0.A_linux/console -t -p $IP:$TcpPort -l -o $DIR --logfilename $FILE&lt;br /&gt;
/home/CommonFiles/Piksi/swift_console_v1.0.A_linux/console -t -p $IP:$TcpPort -l -o $DIR --logfilename $FILE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Преобразование измерений в RINEX ==&lt;br /&gt;
Можно обойтись и без этого, но я сделал так, чтобы далее использовать полученные файлы в разных целях, не только для данной задачи.&lt;br /&gt;
&lt;br /&gt;
Всё конвертирует отдельный скрипт convert_all_to_rinex:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
DIR=/tmp&lt;br /&gt;
&lt;br /&gt;
JAVAD=$DIR/javad.log&lt;br /&gt;
MCR=$DIR/mcr.log&lt;br /&gt;
PIKSI=$DIR/piksi.log&lt;br /&gt;
&lt;br /&gt;
echo Javad: $JAVAD&lt;br /&gt;
convbin $JAVAD -r javad&lt;br /&gt;
&lt;br /&gt;
echo MCR: $MCR&lt;br /&gt;
convbin $MCR -r nvs&lt;br /&gt;
&lt;br /&gt;
echo Piksi: $PIKSI&lt;br /&gt;
export PIKSI_OUT=`echo $PIKSI | sed 's/\.log/\.obs/'`&lt;br /&gt;
/home/CommonFiles/Piksi/piksi_tools/piksi_tools/sbp2rinex.py $PIKSI -o $PIKSI_OUT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На выходе - файлы в формате RINEX. &lt;br /&gt;
&lt;br /&gt;
== Решение навигационной задачи ==&lt;br /&gt;
&lt;br /&gt;
Пока в Javad не включены эфемериды и файлы с эфемеридами пустые, а как заставить их выдавать Piksi - пока вообще не понятно, надо исследовать.&lt;br /&gt;
Я использовал эфемериды, принятые MCR. Скрипт solve_all_from_rinex:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#/bin/bash&lt;br /&gt;
&lt;br /&gt;
DIR=/tmp&lt;br /&gt;
&lt;br /&gt;
JAVAD=$DIR/javad.obs&lt;br /&gt;
MCR=$DIR/mcr.obs&lt;br /&gt;
PIKSI=$DIR/piksi.obs&lt;br /&gt;
&lt;br /&gt;
NAV=`echo $MCR | sed 's/\.obs/\.nav/g'`&lt;br /&gt;
GNAV=`echo $MCR | sed 's/\.obs/\.gnav/g'`&lt;br /&gt;
&lt;br /&gt;
REF=&amp;quot;2846044.0 2200316.0 5249376.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OUT=`echo $JAVAD | sed 's/\.obs/\.pos/g'`&lt;br /&gt;
echo &amp;quot;Javad: $JAVAD  -&amp;gt; $OUT&amp;quot;&lt;br /&gt;
rnx2rtkp -r $REF $JAVAD $NAV $GNAV -a &amp;gt; $OUT&lt;br /&gt;
&lt;br /&gt;
OUT=`echo $MCR | sed 's/\.obs/\.pos/g'`&lt;br /&gt;
echo &amp;quot;MCR: $MCR  -&amp;gt; $OUT&amp;quot;&lt;br /&gt;
rnx2rtkp -r $REF $MCR $NAV $GNAV -a &amp;gt; $OUT&lt;br /&gt;
&lt;br /&gt;
OUT=`echo $PIKSI | sed 's/\.obs/\.pos/g'`&lt;br /&gt;
echo &amp;quot;Piksi: $PIKSI  -&amp;gt; $OUT&amp;quot;&lt;br /&gt;
rnx2rtkp -r $REF $PIKSI $NAV $GNAV -a &amp;gt; $OUT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результатом являются файлы с решением навигационной задачи в формате RTKlib.&lt;br /&gt;
&lt;br /&gt;
== Построение графика ==&lt;br /&gt;
&lt;br /&gt;
Далее я из файла с решением вытащил 3 и 4 столбики, содержащие отклонение от базовой линии в метрах и построил их через Gnuplot на графике. Использован дополнительный скрипт pl для простоты, от него надо будет избавиться. Скрипт plot_all:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#/bin/bash&lt;br /&gt;
&lt;br /&gt;
DIR=/tmp&lt;br /&gt;
&lt;br /&gt;
JAVAD=$DIR/javad.pos&lt;br /&gt;
MCR=$DIR/mcr.pos&lt;br /&gt;
PIKSI=$DIR/piksi.pos&lt;br /&gt;
&lt;br /&gt;
JAVAD_OUT=`echo $JAVAD | sed 's/\.pos/\.plane/g'`&lt;br /&gt;
echo &amp;quot;$JAVAD  -&amp;gt;   $JAVAD_OUT&amp;quot;&lt;br /&gt;
cat $JAVAD | grep -v &amp;quot;^%&amp;quot; | awk '{print $3&amp;quot; &amp;quot;$4}' &amp;gt; $JAVAD_OUT&lt;br /&gt;
&lt;br /&gt;
MCR_OUT=`echo $MCR | sed 's/\.pos/\.plane/g'`&lt;br /&gt;
echo &amp;quot;$MCR   -&amp;gt;  $MCR_OUT&amp;quot;&lt;br /&gt;
cat $MCR | grep -v &amp;quot;^%&amp;quot; | awk '{print $3&amp;quot; &amp;quot;$4}' &amp;gt; $MCR_OUT&lt;br /&gt;
&lt;br /&gt;
PIKSI_OUT=`echo $PIKSI | sed 's/\.pos/\.plane/g'`&lt;br /&gt;
echo &amp;quot;$PIKSI   -&amp;gt;  $PIKSI_OUT&amp;quot;&lt;br /&gt;
cat $PIKSI | grep -v &amp;quot;^%&amp;quot; | awk '{print $3&amp;quot; &amp;quot;$4}' &amp;gt; $PIKSI_OUT&lt;br /&gt;
&lt;br /&gt;
pl  $MCR_OUT $PIKSI_OUT $JAVAD_OUT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Всё вместе можно запустить скриптом process_all:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
convert_all_to_rinex&lt;br /&gt;
solve_all_from_rinex&lt;br /&gt;
plot_all&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== И первый результат! ==&lt;br /&gt;
&lt;br /&gt;
[[File:20170406_RcvComparison_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== В заключение ==&lt;br /&gt;
&lt;br /&gt;
Я скрипты сделал по-быстрому, на коленке, так, как делать нельзя. Надо код приводить в порядок.&lt;br /&gt;
&lt;br /&gt;
Там &amp;quot;захардкодены&amp;quot; все пути, названия всех файлов и т.д. Например, добавить/убавить приёмник - уже проблема.&lt;br /&gt;
Надо вынести приёмники в список. Но работать с ними надо разными способами, тут надо как-то решить данный вопрос.&lt;br /&gt;
&lt;br /&gt;
Далее, интересны графики в разных условиях - GPS/GPS+ГЛОНАСС, L1/L2+L2 и т.д. Дополнять строки в скрипты - неправильно. Надо делать нормальный код.&lt;br /&gt;
&lt;br /&gt;
И ещё - я так и не сделал рассылку результатов, надо сюда добавить sendmail или сделать какого-нибудь бота.&lt;br /&gt;
&lt;br /&gt;
Но пока так!&lt;br /&gt;
{{wl-publish: 2017-04-06 15:33:47 +0300 | Boldenkov }}&lt;/div&gt;</summary>
		<author><name>Boldenkov</name></author>	</entry>

	</feed>