{"id":1144,"date":"2019-10-29T00:57:13","date_gmt":"2019-10-29T00:57:13","guid":{"rendered":"\/?post_type=ht_kb&#038;p=1144"},"modified":"2020-07-26T23:26:57","modified_gmt":"2020-07-26T23:26:57","slug":"using-snip-as-a-bent-pipe","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/using-snip-as-a-bent-pipe\/","title":{"rendered":"Using SNIP as a &#8220;bent pipe&#8221;"},"content":{"rendered":"<p><span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>can be used in a &#8220;bent pipe&#8221; mode for any desired stream.\u00a0 In this mode, any data sent to it is available to be relayed to any client connection (as well as being logged).\u00a0 This mode of operation is commonly used where the Base Station data is not industry standard <a href=\"\/kb\/knowledge-base\/an-rtcm-message-cheat-sheet\/\">RTCM3 messages<\/a> (the format used for differential GNSS corrections).<\/p>\n<h4>Example Use cases<\/h4>\n<ul>\n<li>You have GNSS data in a proprietary format, such as uBlox UBX, which you need to send to other devices.\u00a0 (see Note A)<\/li>\n<li>You have a stream of DSRC messages provided by another SCSC caster you need to send to vehicle devices.\u00a0 (see Note B)<\/li>\n<li>You have something unique to your own needs to send to other devices which they understand.\u00a0 (see Note C)<\/li>\n<li>You have older CMR or RTCM2 data to send<\/li>\n<\/ul>\n<h4>How to do it<\/h4>\n<ol>\n<li>Connect to the Base Station data stream using either the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/adding-remote-relayed-data-streams\/\" target=\"_blank\" rel=\"noopener noreferrer\">remote<\/a>, local <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/the-serial-streams-tab\/\" target=\"_blank\" rel=\"noopener noreferrer\">serial<\/a>, <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/raw-tcpip-streams-tab\/\" target=\"_blank\" rel=\"noopener noreferrer\">raw TCP\/IP<\/a>, or <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/the-pushed-streams-tab\/\" target=\"_blank\" rel=\"noopener noreferrer\">Push-In<\/a> connection type in the normal way.<\/li>\n<li>Confirm that the data is present by viewing the raw data with the streams <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/the-stream-menu-controls\/\">menu controls<\/a> (right click on the stream&#8217;s slot menus to enable monitoring to the console for a short period of time).<\/li>\n<li><strong><span style=\"text-decoration: underline;\">Disable parsing the data<\/span><\/strong> (by right clicking <em>parse<\/em> on the stream&#8217;s menus). At this point all data that appears in the slot will be relayed to any connected clients. No <span style=\"color: #993300;\"><strong>PFAT<\/strong><\/span> filtering, monitoring, or translation of any type will occur. <span style=\"color: #008000;\"><strong>Note<\/strong><\/span>: If you do not disable parsing, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>will process that data presuming that it is RTCM and filter any non-RTCM &#8220;clutter&#8221; it finds to prevent passing it on to clients.<\/li>\n<li>Connect an NTRIP client in the normal way and confirm that the data which you are sending is in fact what you intended.<\/li>\n<\/ol>\n<h4>Notes<\/h4>\n<p><strong>Note A:<\/strong>\u00a0 At this time <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>does not read and translate other GNSS data formats into RTCM3, although this is a planned long term feature.\u00a0 As a result, it is common to use another software module (such as <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/using-strsvr-from-rtklib-with-snip\/\" target=\"_blank\" rel=\"noopener noreferrer\">RTKLIB<\/a> or software provided by the Base Station GNSS vendor) to either a) use the data in its native format or b) translate the format into RTCM at the client end for local use.\u00a0 A more common variation of this approach is to place the translation element between the GNSS device and <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>, thereby translating the data format into RTCM3 before it reaches <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span><span style=\"color: #000000;\"> or the clients.<br \/>\n<\/span><\/p>\n<p><strong>Note B<\/strong>:\u00a0 In its enterprise configuration, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>provides a translation of RTCM3 messages into <a href=\"\/kb\/sae-publishes-key-dsrc-technical-standards\/\" target=\"_blank\" rel=\"noopener noreferrer\">SAE J2735 messages<\/a> for consumption by ground vehicles.\u00a0 This data is typically then returned to the data source (where it becomes another entry in the the caster table of that source), or is forwarded to roadside equipment nodes (RSEs) located along the roadway of the coverage areas for final transmission to the on-board equipment (OBEs) of the vehicles over a 5.9GHz radio link.<\/p>\n<p><strong>Note C<\/strong>: \u00a0 Weather station. earthquake sensors, and meteorologic data is often handled in this way in some state-wide networks.\u00a0 As a somewhat odd example of this use case,\u00a0 SCSC has also used this method to connect IMUs with very high data rates as a convenient way to let multiple developers access the data of a single device to support development needs.<\/p>\n<h4><em>Further Notes<\/em><\/h4>\n<p><em>A note on serial connections:<\/em>\u00a0 The default read time (polling time) for serial connections is an adaptive 500 mSec rate which is generally optimal for 1Hz GNSS data.\u00a0 In <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>, all streams and clients run in their own process threads so blocking and adaptive buffer sizes are not an issue.\u00a0 Under some conditions with faster message rates you may wish to <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/serial-data-at-2hz\/\" target=\"_blank\" rel=\"noopener noreferrer\">increase or decrease the polling time<\/a> to match the nominal data arrival rate.\u00a0 A range of 50~3000 mSec can be selected in the<a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/adding-serial-uart-data-streams\/\"> serial setup<\/a> dialog. By contrast, TCP\/IP connection data is serviced the moment the data arrives, typically within a few mSec.<\/p>\n<p><em>A note on proprietary RTCM messages:<\/em>\u00a0 Because these messages are well formed RTCM style messages, and approved by the RTCM standard, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>will pass them on to clients in either parsed or non-parsed modes. You can find a list of these assignments <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/rtcm-3-message-list\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<p><span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> does not decode <em>proprietary<\/em> RTCM message content beyond the basic common RTCM frame.\u00a0 It then displays the resulting content in a Hex format in the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/using-the-rtcm3-decoder-dialog\/\" target=\"_blank\" rel=\"noopener noreferrer\">RTCM Viewer<\/a> dialog to the user.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6733\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/10\/RTCM3viewerPrivateMsgs.png\" alt=\"\" width=\"640\" height=\"144\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/10\/RTCM3viewerPrivateMsgs.png 640w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/10\/RTCM3viewerPrivateMsgs-300x68.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/10\/RTCM3viewerPrivateMsgs-50x11.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/10\/RTCM3viewerPrivateMsgs-600x135.png 600w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/10\/RTCM3viewerPrivateMsgs-320x72.png 320w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SNIP can be used in a &#8220;bent pipe&#8221; mode for any desired stream.\u00a0 In this mode, any data sent to it is available to be relayed to any client connection (as well as being logged).\u00a0 This mode of operation is commonly used where the Base Station data is not industry [&hellip;]<\/p>\n","protected":false},"author":13,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"ht-kb-category":[112],"ht-kb-tag":[192,193,393,204],"class_list":["post-1144","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-general","ht_kb_tag-bent-pipe","ht_kb_tag-disable-parsing","ht_kb_tag-parse","ht_kb_tag-rtcm3"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/1144","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=1144"}],"version-history":[{"count":25,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/1144\/revisions"}],"predecessor-version":[{"id":6738,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/1144\/revisions\/6738"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=1144"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=1144"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=1144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}