{"id":4024,"date":"2017-08-29T02:54:16","date_gmt":"2017-08-29T02:54:16","guid":{"rendered":"\/kb\/?post_type=ht_kb&#038;p=4024"},"modified":"2018-10-29T16:21:01","modified_gmt":"2018-10-29T16:21:01","slug":"using-strsvr-from-rtklib-with-snip","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/using-strsvr-from-rtklib-with-snip\/","title":{"rendered":"Using STRSVR from RTKLIB with SNIP"},"content":{"rendered":"<p>This article discusses how to set up the <a href=\"http:\/\/www.rtklib.com\/\">RTKLIB<\/a> tool <strong>STRSVR\u00a0<\/strong> (aka <em>stream server<\/em>) to send data to a <a href=\"http:\/\/use-snip.com\"><span style=\"color: #0000ff;\"><strong>SNIP<\/strong> Caster <\/span><\/a>node on the same, or on a different, machine.<\/p>\n<p>Many users of OEM boards across the cost spectrum use the STRSVR tool to convert (translate) from a GNSS vendor&#8217;s proprietary data stream into industry standard RTCM 3.x messages.\u00a0\u00a0 Many GNSS vendors charge a considerable sum for the direct ability to send RTCM 3.x messages (while RTKLIB is free to use).\u00a0 So this is a very cost effective solution to those users.\u00a0 With a modest amount of DIY effort, a very solid L1\/L2 survey grade Base Station can be assembled for an investment of under $1K US using such methods.<\/p>\n<p style=\"text-align: right;\"><strong><span style=\"color: #008000;\">Aside<\/span><\/strong>: If you plan to attempt this with a patch antenna &#8211; please read <a href=\"\/kb\/knowledge-base\/question-what-antenna-should-i-use\/\">this note<\/a>.<\/p>\n<h2>Setup for <strong>STRSVR\u00a0<\/strong><\/h2>\n<p>Here is the basic STRSVR dialog screen, showing an input data stream from a serial device and one output data stream.<\/p>\n<p style=\"text-align: center;\"><a href=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-running.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4042 size-full\" src=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-running.png\" alt=\"STRSVR-running\" width=\"416\" height=\"264\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-running.png 416w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-running-300x190.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-running-50x32.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-running-320x203.png 320w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/a><\/p>\n<p>In this example we have connected to a <a href=\"\/kb\/knowledge-base\/inside-ublox6t-evaluation-model\/\">uBlox 6T board <\/a>over a serial port on com port 10 (using a <a href=\"\/kb\/knowledge-base\/connecting-serial-ports-and-usb-to-your-pc\/\">USB convertor<\/a>) which is sending the proprietary uBlox binary format.\u00a0 The STRSVR tool will convert this to suitable <a href=\"\/kb\/knowledge-base\/an-rtcm-message-cheat-sheet\/\">RTCM 3.x messages<\/a> (in this case the 1004 message, the L2 observational elements will be set to zeros).<\/p>\n<p><a href=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_serialSetUp.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4038 size-full\" src=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_serialSetUp.png\" alt=\"STRSVR_serialSetUp\" width=\"447\" height=\"275\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_serialSetUp.png 447w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_serialSetUp-300x185.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_serialSetUp-50x31.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_serialSetUp-320x197.png 320w\" sizes=\"auto, (max-width: 447px) 100vw, 447px\" \/><\/a><\/p>\n<p>We could have connected to a data stream from any Caster (such as the open one kept at <a href=\"http:\/\/ntrip.use-snip.com:2101\">ntrip.use-snip.com:2101<\/a>), or any other valid data source.\u00a0 RTKLIB supports all the normal connection modes in this respect. But it is more typical to connect to a <em>local serial stream<\/em>.\u00a0 In the above image, the <strong>Cmd<\/strong> button allows sending setup commands to the device (typical used with a serial device) similar to what <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>allows to <a href=\"\/kb\/knowledge-base\/adding-serial-uart-data-streams\/\">setup serial devices<\/a>.\u00a0 As a best practice, always set up your GNSS device settings each time you connect to it.<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #008000;\"><strong>Important !<br \/>\n<\/strong><\/span><\/p>\n<p>The key purpose of connecting to STRSVR (rather than directly to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>, see <a href=\"\/kb\/knowledge-base\/the-serial-streams-tab\/\">this tab<\/a> to do so) <span style=\"text-decoration: underline;\">is to allow it to parse and <strong>translate<\/strong> the data stream from one message format to another<\/span>.\u00a0 At this time <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> does not have a similar translation ability built into it.\u00a0\u00a0 The STRSVR tool can be thought of as a <em>translation<\/em> step between the GNSS device and the Caster.\u00a0\u00a0\u00a0 The STRSVR tool can also be used to redirect the same data stream to as many as three parties, but it is the <strong>translate<\/strong> ability that is of greater value to most users.<\/p>\n<p>Once you have connected to a <em>source<\/em> of data, you must connect it to an <em>output<\/em> and (optionally) translate the data for that output.<\/p>\n<h3>Outputting Data<\/h3>\n<p>The STRSVR allows up to <span style=\"text-decoration: underline;\">three<\/span> output streams to be created.\u00a0 One of these should be connected to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> so that <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> can service your <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip-client\/\">NTRIP Client<\/a> connections.<\/p>\n<p>In this context only two connection types make sense, the <strong>NTRIP Server<\/strong> and the <strong>TCP Client<\/strong>.\u00a0 The NTRIP Server method is to be preferred.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\"><strong>Aside<\/strong><\/span>: The <strong>TCP <em>Server<\/em><\/strong> connection setting is used to instruct the STRSVR tool to be <em>listener<\/em> on a given port and to send the data stream to any connection that appears there.\u00a0 This is simply a brute force TCP\/IP connection, and it does not use the NTRIP protocol.\u00a0 You can in fact connect to it with <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> as a <a href=\"\/kb\/knowledge-base\/the-relay-streams-tab\/\">Remote Relay<\/a> connection if you wish, but that is not needed.\u00a0 On the whole, leaving ports open on your machine is a security risk to be avoided.<\/p>\n<p>The dialog box for the <strong>NTRIP Server<\/strong> connection [ Output (1) ] is shown below.<\/p>\n<p style=\"text-align: center;\"><a href=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_PUSH-InSetUp.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4037 size-full\" src=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_PUSH-InSetUp.png\" alt=\"STRSVR_PUSH-InSetUp\" width=\"472\" height=\"333\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_PUSH-InSetUp.png 472w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_PUSH-InSetUp-300x212.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_PUSH-InSetUp-50x35.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_PUSH-InSetUp-320x226.png 320w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/a><\/p>\n<p>Enter the Caster URL, or the machine&#8217;s IP\u00a0 (enter your own IP address if the STRSVR tool and <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> are on the same machine).\u00a0 Enter the port used (typically 2101).\u00a0 [<em>Please do not enter serv2, as that machine is not open for public use<\/em>]<\/p>\n<p>Enter the mount point (mountPt) name you wish to see this data stream appear as.\u00a0\u00a0 This needs to be a<a href=\"\/kb\/knowledge-base\/how-to-read-a-mountpt-string\/\"> well-formed mount point<\/a> name, therefore no white space and no odd symbols (!@#$%:; etc..) are allowed.\u00a0 <span style=\"color: #ff6600;\"><strong>Caution<\/strong><\/span>: STRSVR does not check for ill-formed names.\u00a0 Here we have used <strong>PushInAsServer<\/strong> as the mountPt name.<\/p>\n<p>Enter the password for the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Caster you will connect to.\u00a0 If you are using a <em>reservation<\/em> on <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>, it will have its own password.\u00a0 If not, it will use the same password as other <strong>PUSH-In<\/strong> streams on your copy of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>.\u00a0 If the receiving Caster is not under your control, ask the operator what password is to be used.<\/p>\n<p>Finally, if you are knowledgeable about NTRIP Caster table entries, enter the table entry (except for the mount point name itself) into the line called &#8220;<strong>String.<\/strong>&#8221;\u00a0\u00a0\u00a0 <span style=\"color: #008000;\"><strong>Hint<\/strong><\/span>: Most users simply leave this blank, letting <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> handle it.\u00a0 One of the advantages of <span style=\"color: #0000ff;\"><strong>SNIP <\/strong><\/span>is that it understands the RTCM3 message flow (when the data stream is parsed) so it will simply fill in the correct data for you once the stream connects.\u00a0\u00a0<strong> If in doubt, please leave this field empty.<br \/>\n<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h3>Translating, the Conv dialog<\/h3>\n<p>The <strong>Conv&#8230;<\/strong> button brings up a critical dialog for this setup.\u00a0 You can set a different set of Conv values for each output stream you create. Here we only create one.<\/p>\n<p style=\"text-align: center;\"><a href=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4039 size-full\" src=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp.png\" alt=\"STRSVR_Translate_SetUp\" width=\"472\" height=\"311\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp.png 472w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp-300x198.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp-50x33.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp-320x211.png 320w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/a><\/p>\n<p>To <strong>translate<\/strong> from a GNSS vendor to RTCM 3.x, set the controls as shown.\u00a0 The <strong>Message Types<\/strong> line is required to tell STRSVR exactly what message contents you want to be output.\u00a0 If you have a GPS L1\/L2 data source a line like &#8220;1004(1)&#8221; would be typical. Some people will use &#8220;1002(1)&#8221; for L1 only systems; others will use &#8220;1004(1)&#8221; because it is more commonly understood.\u00a0 [When <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> completes the Caster table entry, it will adjust for the present of L1\/L2 automatically.]<\/p>\n<p>You might want to added orbital messages as well.\u00a0 Read the RTKLIB manual for further setup details.\u00a0 Be sure to set a value and add an EFEF location message every few seconds, such as &#8220;1005(10)&#8221; as well, unless your end users will know it by other means.<\/p>\n<p>So a full message type string for legacy GPS+GLO might look like this: &#8220;1004(1), 1005(10), 1012(1)&#8221;\u00a0 If you wished to use MSM messages, the string might be this: &#8220;1005(10), 1077(1), 1087(1)&#8221;\u00a0 etc.<\/p>\n<p>You can read more about Caster String controls in RTKLIB in <a href=\"\/kb\/knowledge-base\/caster-settings-in-rtklib\/\">this article<\/a>.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\"><strong>Aside<\/strong><\/span>: The STRSVR tool is adept at translating proprietary GNSS formats to the common\u00a0 <strong>rtcm_t <\/strong>data structure defined in RTKLIB, and then exporting that into RTCM 3.x messages.\u00a0 It is not at all adept in handling <a href=\"\/kb\/knowledge-base\/rtcm-2-message-list\/\">RTCM 2.x messages<\/a> and it cannot even create RTCM 2.x messages.\u00a0\u00a0 Hence, it cannot be used to &#8220;convert&#8221; from RTCM 2 to 3 or in the reverse direction.\u00a0 The combo box choices seem to imply this ability to some users.\u00a0 We note that detail here because the question seems to come up fairly often.\u00a0 If this is a need you have, please contact us for support.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\"><strong>Aside Number 2<\/strong><\/span>: If the STRSVR tool is told to translate a GNSS format, you <strong>must<\/strong> then tell it what the new message types and sending rates need to be.\u00a0 AND you must provide it with a suitable ECEF value to send.\u00a0 People often forget to set the ECEF value and then STRSVR cannot send a valid Base Station location, making the stream useless.<\/p>\n<p>Once this is set up, you now have a stream of Base Station data suitable to be shared with others and the next step is to forward that to your copy of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> for mass distribution.<\/p>\n<p>You could press <strong>Start<\/strong> at this point, but it is likely there are a few things to set up on the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> side as well.<\/p>\n<h2>Setup for <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span><\/h2>\n<p>Sending data to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> as outlined above results in a new <strong>PUSH-In<\/strong> connection.\u00a0 The STRSVR tool is acting like an NTRCIP Server, while <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is acting like an NTRIP Caster in the normal way.<\/p>\n<h3>When Sending Data without a reservation<\/h3>\n<p>The sender simply has to follow the <a href=\"\/kb\/knowledge-base\/adding-pushed-data-streams-from-ntrip-servers\/\">master password<\/a> established for that Caster.\u00a0 See the button <strong>Set Up..<\/strong>\u00a0 on the <em><strong>Pushed-In Streams<\/strong><\/em> tab.\u00a0 Here you can tell (or reset) the password to be used.\u00a0 Be sure to inform any other data sender when you change this value.<\/p>\n<h3>When Sending Data with a reservation<\/h3>\n<p>In this case, the sender follows the password previously established for <a href=\"\/kb\/knowledge-base\/reserving-pushed-mountpoint\/\">that reservation<\/a>. Other values for the reservation are then applied as well, such as parsing and logging and even limiting what the connection IP is allowed to be.\u00a0\u00a0 This connection method is more secure. A right mouse click in the window <strong>Reserved MountPts<\/strong>\u00a0 (in the <em><strong>Pushed-In Streams<\/strong><\/em> tab) will bring up menu options to add\/edit\/remove reservations.<\/p>\n<h3>When it connects&#8230;<\/h3>\n<p style=\"text-align: center;\"><a href=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-with-SNIP.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-4052\" src=\"\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-with-SNIP.png\" alt=\"STRSVR-with-SNIP\" width=\"310\" height=\"426\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-with-SNIP.png 465w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-with-SNIP-218x300.png 218w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-with-SNIP-36x50.png 36w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR-with-SNIP-320x440.png 320w\" sizes=\"auto, (max-width: 310px) 100vw, 310px\" \/><\/a><\/p>\n<p>When the <strong>PUSH-In<\/strong> stream from the STRSVR tool connects to your <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> node, you will see the new slot as an image in the tab similar to this.<\/p>\n<p>The STRSVR app is shown below it in the area where the console log appears.<\/p>\n<h2>How can I tell if it is working?<\/h2>\n<p>Several ways, all practical and easy.<br \/>\nYou can tell by:<\/p>\n<ul>\n<li>Look at the <a href=\"\/kb\/knowledge-base\/the-pushed-streams-tab\/\">PUSH-In tab<\/a> you can see what streams are connected and active. You will see the &#8220;UpTime&#8221; and the &#8220;Input&#8221; values increase as data arrives from the remote device.\u00a0 You can also see a count of how many Clients&#8217; connections are currently present on this stream and the total amount of data that has been sent out to them.<\/li>\n<\/ul>\n<p style=\"text-align: left; padding-left: 60px;\">See the image above.<\/p>\n<ul>\n<li>Connect to the final data stream on <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> with a copy of RTKNAVI acting as an NTRIP Client and then navigate from your resulting stream.\u00a0 [You can also run simple <a href=\"\/kb\/knowledge-base\/navigation-filter-types\/\">navigation filters<\/a> from within <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>]\u00a0 This has the effect of doing an <em>end-to-end<\/em> check on the entire data stream.<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\">See the RTKLIB users guide. Connect to your data stream like any other Caster Stream.\u00a0 Recall that the data is now in the RTCM 3.x format (and no longer in the original proprietary format).<\/p>\n<ul>\n<li>Look at the <a href=\"\/kb\/knowledge-base\/using-the-rtcm3-decoder-dialog\/\">decoded RTCM 3.x messages<\/a> in the data stream in the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> RTCM 3 Decoder to confirm that the data you expect is present.\u00a0 This is useful to confirm details like the precise ECEF location, although many of these details appear in the console log when the stream is initially evaluated.<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\">Several examples of the RTCM decoder use can be found at the above link.<\/p>\n<ul>\n<li>Use the <a href=\"\/kb\/knowledge-base\/using-the-universal-decoder\/\">universal decoder<\/a> to quickly look at the gross messages in the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> console as a means to quickly see that the data is flowing without decoding the content of each message.\u00a0 This is very handy to confirm that the message sending rates for each type as as you anticipated.<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\">For <strong>RTCM 3.x<\/strong> content you will see lines like:<\/p>\n<pre style=\"margin: 0in 0in 0.0001pt; padding-left: 60px;\"><span style=\"font-size: 10.0pt; font-family: 'Arial','sans-serif';\">[<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0 Stream analysis completed... Parsing is <b>Enabled<\/b>. \u00a0\u00a0[Detected <b>RTCM3<\/b>, Decoded: <b>RTCM3<\/b>] \r\n A summary of the RTCM3 message types seen in PUSHED-In stream <b>PushInAsServer<\/b> will <b>now<\/b> be displayed.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0MountPt <b>PushInAsServer<\/b> [I005], 1 RTCM3 messages decoded, of 21 so far.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0RTCM3 Type <b>1004<\/b>\u00a0(155 bytes), the 18th message of this type found so far.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0--\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0MountPt <b>PushInAsServer<\/b> [I005], 1 RTCM3 messages decoded, of 22 so far.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0RTCM3 Type <b>1004<\/b>\u00a0(155 bytes), the 19th message of this type found so far.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0--\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0MountPt <b>PushInAsServer<\/b> [I005], 1 RTCM3 messages decoded, of 23 so far.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0RTCM3 Type <b>1005<\/b>\u00a0(025 bytes), the 2nd message of this type found so far.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0--\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0MountPt <b>PushInAsServer<\/b> [I005], 1 RTCM3 messages decoded, of 24 so far.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0RTCM3 Type <b>1004<\/b>\u00a0(155 bytes), the 20th message of this type found so far.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0--<\/span><\/pre>\n<p style=\"padding-left: 60px;\">But if you see <strong>other content<\/strong> (the below used a uBlox device, the text seen will vary by vendor) it may indicate you did not translate the data stream and are in fact sending the UN-translated data:<\/p>\n<pre style=\"padding-left: 60px;\"><span style=\"font-size: 10.0pt; font-family: 'Arial','sans-serif';\"> [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0On Port C007, MountPt <b><span style=\"color: blue;\">PushInAsServer<\/span><\/b> has sent 280 Bytes [#I004]. A summary decoding may follow.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0 Detected the potential presence of <b>uBlox msg<\/b> content\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0 uBlox msgs, found:\u00a0\u00a0\u00a0 \r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: blue;\">NAV<\/span><\/b>B562-<u>0131<\/u>-1000(24)-<b>[D8F26C09000000000000000000000000]<\/b> *81E2\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: blue;\">NAV<\/span><\/b>B562-<u>0210<\/u>-F800(256)-<b>[D9F26C09AC070A00A54D29A622CE74C1589BB9827D1D74415E75AEC419073100C057838EB4C40DC102D634797B867841399713450D072500C2CDD86D160577C16CFF8CEAF130744114DF0A45140731003397CD24F17278C18ED62E64B5FD7341743F1FC405073300B4A5B686468D37C180766736071B7841176164C41F072900210728F10A2B75C1F481FE7EFC22744141C7AE441D073200C11A71C1493F5DC1FD7B789C09F27641E63EE34415072C0024620CF851FC10C10643735B187E7841AB8526450F0724008C220C30875663C120ADB7FC09127641AD760DC502072A00E7E3D2F004906EC139B7CB3CBD38754144B54CC50C073100]<\/b> *8A65\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0On Port C007, MountPt <b><span style=\"color: blue;\">PushInAsServer<\/span><\/b> has sent 280 Bytes [#I004]. A summary decoding may follow.\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0 Detected the potential presence of <b>uBlox msg<\/b> content\r\n [<b><span style=\"color: blue;\">PushInAsServer<\/span><\/b>]: \u00a0\u00a0\u00a0\u00a0\u00a0 uBlox msgs, found:\u00a0\u00a0\u00a0 \r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: blue;\">NAV<\/span><\/b>B562-<u>0131<\/u>-1000(24)-<b>[C0F66C09000000000000000000000000]<\/b> *6D9E\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: blue;\">NAV<\/span><\/b>B562-<u>0210<\/u>-F800(256)-<b>[C1F66C09AC070A00A515D16ACBCD74C1F9BFFD188E1D7441B385AEC419073100C0579F597E0E0EC13AC7E1685F867841C69813450D072500C2A53044A10577C15A44A980D7307441DFD00A451407310033938449C97278C1AEC587F7BCFD734164821FC405073300B4A5756CB48937C1D68DD30D121B7841F89F64C41F0729002147E253622B75C134956BDDEB22744110C1AE441D073200C1DA002710415DC114C55B05F4F176418E33E34415072C002462072AF12511C13F942BACF87D78417A7526450F0724008C0A5A436C5563C1E5EEC2E6241276410A760DC502072A00E723A87B6B8E6EC10AD0D330E438754198BD4CC50C073100]<\/b> *F708\r\n<\/span><\/pre>\n<p>This article deals with using the RTKLIB STRSVR tool with <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>, providing basic setup instructions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article discusses how to set up the RTKLIB tool STRSVR\u00a0 (aka stream server) to send data to a SNIP Caster node on the same, or on a different, machine. Many users of OEM boards across the cost spectrum use the STRSVR tool to convert (translate) from a GNSS vendor&#8217;s [&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":[113],"ht-kb-tag":[225,353,367],"class_list":["post-4024","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-rtk-lib","ht_kb_tag-rtklib","ht_kb_tag-strsvr","ht_kb_tag-translate"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/4024","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=4024"}],"version-history":[{"count":30,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/4024\/revisions"}],"predecessor-version":[{"id":5735,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/4024\/revisions\/5735"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=4024"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=4024"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=4024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}