{"id":4389,"date":"2017-12-02T16:45:13","date_gmt":"2017-12-02T16:45:13","guid":{"rendered":"https:\/\/www.use-snip.com\/kb\/?post_type=ht_kb&#038;p=4389"},"modified":"2020-08-28T14:34:43","modified_gmt":"2020-08-28T14:34:43","slug":"pfat-parse-settings","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/pfat-parse-settings\/","title":{"rendered":"PFAT: Parse Settings and Uses"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4908 alignright\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/02\/PFAT_Parse_norm.ico\" alt=\"\" width=\"64\" height=\"64\" \/><span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> uses an intelligent <em>auto-parse<\/em> logic to determine the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/supported-caster-data-formats\/\">format of the messages<\/a> in the data stream and reacts accordingly.\u00a0 When a data stream is first parsed a process examines the first 3K of data (or 30 seconds of data for slow streams) and attempt to determine the message content that is present.<\/p>\n<p><a href=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/11\/Menu_wPFAT.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4218 alignright\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/11\/Menu_wPFAT.png\" alt=\"\" width=\"158\" height=\"158\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/11\/Menu_wPFAT.png 316w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/11\/Menu_wPFAT-150x150.png 150w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/11\/Menu_wPFAT-300x300.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/11\/Menu_wPFAT-50x50.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/11\/Menu_wPFAT-60x60.png 60w\" sizes=\"auto, (max-width: 158px) 100vw, 158px\" \/><\/a><\/p>\n<p><strong>As a best practice, enable the Parse checkbox on all streams.<\/strong> Do this unless you specifically want the stream to be treated in the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/using-snip-as-a-bent-pipe\/\">bent-pipe<\/a> mode (where all inbound content is sent to all corrected users with no <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/introducing-pfat\/\">PFAT operations<\/a> applied to it).<\/p>\n<p>Default Parse behavior for new <em>in-bound<\/em> data streams is set on the major tab (<a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/the-pushed-streams-tab\/\">Push-In<\/a>) and on the individual setup dialog for each of the other <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/stream-types\/\">stream types<\/a>.\u00a0 Every active data stream has its own Parse menu item in the right-click <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/the-stream-menu-controls\/\">stream menu<\/a> system.\u00a0 When <strong><span style=\"color: #0000ff;\">SNIP<\/span><\/strong> stores the settings data for a stream, the current Parse setting is also kept.<\/p>\n<p style=\"padding-left: 30px;\"><em><span style=\"color: #008000;\"><strong>Side Note<\/strong><\/span><\/em>:\u00a0 Because of this improvement, the <strong><a href=\"http:\/\/www.RTK2go.com\">RTK2go.com<\/a><\/strong> site has also been switched to a default parse enabled mode.\u00a0 In the past, a few users with CMR and CMR+ type data streams requested that we leave default Parsing off.\u00a0 A prior reservation was required to enable parsing for RTCM3 users.\u00a0 Getting <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/sending-data-rtk2go-reservations\/\">your own reservation<\/a> is still the best way to use <strong>RTK2go<\/strong> as your own Caster. In the current release, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> will correctly deal both RTCM 3 and other <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/supported-caster-data-formats\/\">message types<\/a> without user intervention.\u00a0 This setup better serves those L1-only users of <strong>RTK2go<\/strong> who often need <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>&#8216;s help creating a suitable Caster Table Entry.<\/p>\n<h3>Advantages&#8230;<\/h3>\n<p>By enabling Parse on a data stream, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> will detect if the stream contains RTCM3 messages (as well as other well know formats) and set suitable content in the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/caster-table-entry-incomplete\/\">Caster Table Entry<\/a> for that stream to complete it.\u00a0 If the stream provides a field or an entry, that data will be used.<\/p>\n<p>If the data is in the RTCM 3.x format, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> will analyze the data and extract details about it.\u00a0 This includes the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/rtcm-3-message-list\/\">RTCM 3.x message types<\/a> present, details about the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/base-station-details\/\">Base Station<\/a>, and various counts and statics about the data itself. RTCM 3.x messages can <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/using-the-rtcm3-decoder-dialog\/\">decoded<\/a> and shown in a view, or used to feed basic graphical navigation filters.<\/p>\n<p>If the data is in the RTCM 2.x format, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> will also analyze the data and extract more limited details about the data stream and the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/rtcm-2-message-list\/\">RTCM 2.x message types<\/a> present.<\/p>\n<p>Other formats (such as uBlox binary) are also detected, and set in the Caster Table Entry. The <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/using-the-universal-decoder\/\">universal decoder<\/a> provides some content details, but further processing such a navigation filtering is not provided.<\/p>\n<h3>How It Works&#8230;<\/h3>\n<p>When a stream first starts, an analysis process occurs for the first 3KB of data or the first 30 seconds of its lifetime (whichever occurs first).<\/p>\n<p>During that time the data is not sent to end users, this ensures that gross corrupted data is not sent onward.\u00a0 Hence no <strong>PFAT&#x2122;<\/strong> content filtering is occurring either. The data stream is not yet published for use by <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/question-what-is-an-ntrip-client\/\">NTRIP Clients<\/a>.<\/p>\n<p>During this period of time, if the data stream comes from another <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/question-what-is-an-ntrip-caster\/\">NTRIP Caster<\/a>, a copy of the remote Caster Table entries are obtained and compared with the data present.\u00a0 Certain conflicts are reported and corrected when found, otherwise the remote data is used in the local Caster Table.<\/p>\n<p>When analysis completes, the message format is determined and used to create the local Caster Table Entry (if needed). A few other tasks then occur.<\/p>\n<ul>\n<li>The types of different messages present are recorded<\/li>\n<li>Various message counts over the measurement periods are used determine average message rates<\/li>\n<li>A task is scheduled for 15 minutes later to recompute the message rates once more data has been obtained<\/li>\n<li>The Base Station details are added to a <em>tooltip<\/em> for that stream, and periodically updated thereafter.<\/li>\n<li>The new stream is added to the Caster Table and <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/question-what-is-an-ntrip-client\/\">NTRIP Clients<\/a> can then connect to it in the normal way.<\/li>\n<\/ul>\n<p>When ECEF messages arrive in the stream, these are used to update the gross position in the Caster Table Entry, and also for use in navigation and other places.\u00a0 If a <strong>PFAT<\/strong> datum transformation is active, it is applied to the value to align them.<\/p>\n<p>After the stream has operated for &gt;180 seconds, it is considered further for inclusion in any <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/nearest-mountpt-use-case-examples\/\">NEARest data stream<\/a> operating within its coverage area.<\/p>\n<p>The Base Station tooltip shows what PFAT action are active for each data stream.\u00a0 The various tooltips in the RTCM3 viewer window also change color and text highlights any PFAT changes made to a message type as well.<\/p>\n<h3>Also<\/h3>\n<p>When changing any streams <em><strong>Filter<\/strong> <\/em>settings, or <em><strong>Adding<\/strong> <\/em>new message to a stream, or <strong><em>Translating <\/em><\/strong>a stream&#8217;s inner message contents, the <em><strong>Parse<\/strong> <\/em>setting may be <em>disabled<\/em> and then <em>enabled<\/em> to perform as fresh analysis of the stream with its nearly updated contents.\u00a0 Generally, any changes to <strong>PFAT<\/strong> settings can cause this to occur. The process is fairly short (~3k in message traffic or ~30 seconds) and the results of the analysis are then used in various controls. The analysis process does not take the data stream offline during this period of time, rather all Base Station messages is sent to end users (not filtering or translations occurs).\u00a0 So consideration should be given to any connected users when making such changes.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SNIP uses an intelligent auto-parse logic to determine the format of the messages in the data stream and reacts accordingly.\u00a0 When a data stream is first parsed a process examines the first 3K of data (or 30 seconds of data for slow streams) and attempt to determine the message content [&hellip;]<\/p>\n","protected":false},"author":13,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"ht-kb-category":[334],"ht-kb-tag":[393,381,204],"class_list":["post-4389","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-advanced-topics","ht_kb_tag-parse","ht_kb_tag-pfat","ht_kb_tag-rtcm3"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/4389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/comments?post=4389"}],"version-history":[{"count":18,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/4389\/revisions"}],"predecessor-version":[{"id":5801,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/4389\/revisions\/5801"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=4389"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=4389"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=4389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}