Happy to help where I can.
Have a look at the source for BNC ntrip if you want a head start.
Sam
TM Rtcm3.1 1838.0 Tue Dec 30 15:30:22.341 2014
MT1004 Stat 4095 Status 1 Sec 1838 Seq 1000 Frame 1368
MT1004 ToW 225038.0000 SyncGnssMF 0 NGpsSvSiProc 10 GpsDivFrSmInd 1 GpsSmInt 7_Unlimited_smoothing_interval
MT1004 SV 9 CI-L1 0_C/A-Code PR-L1 266611.340m PhR-PR-L1-L1 12.58400m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 20086094.686m CNRL1 54.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 5.640m PhR-PR-L2-L1 17.11050m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 48.00db-Hz
MT1004 SV 10 CI-L1 0_C/A-Code PR-L1 56517.380m PhR-PR-L1-L1 11.58550m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 20385887.144m CNRL1 52.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 4.140m PhR-PR-L2-L1 13.65400m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 44.00db-Hz
MT1004 SV 7 CI-L1 0_C/A-Code PR-L1 291385.620m PhR-PR-L1-L1 23.50550m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 20685679.602m CNRL1 51.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 3.640m PhR-PR-L2-L1 27.12850m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 43.00db-Hz
MT1004 SV 23 CI-L1 0_C/A-Code PR-L1 127492.400m PhR-PR-L1-L1 14.22900m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 21585056.976m CNRL1 50.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 1.680m PhR-PR-L2-L1 19.24500m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 38.00db-Hz
MT1004 SV 6 CI-L1 0_C/A-Code PR-L1 157550.280m PhR-PR-L1-L1 9.05700m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 21585056.976m CNRL1 49.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 7.580m PhR-PR-L2-L1 8.79450m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 40.00db-Hz
MT1004 SV 2 CI-L1 0_C/A-Code PR-L1 142538.840m PhR-PR-L1-L1 9.04000m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 22184641.892m CNRL1 48.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 1.880m PhR-PR-L2-L1 8.59000m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 36.00db-Hz
MT1004 SV 20 CI-L1 0_C/A-Code PR-L1 691.400m PhR-PR-L1-L1 13.32600m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 22484434.350m CNRL1 45.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 4.620m PhR-PR-L2-L1 16.58750m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 32.00db-Hz
MT1004 SV 30 CI-L1 0_C/A-Code PR-L1 193170.800m PhR-PR-L1-L1 20.27750m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 22784226.808m CNRL1 45.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 8.080m PhR-PR-L2-L1 27.18050m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 32.00db-Hz
MT1004 SV 16 CI-L1 0_C/A-Code PR-L1 219026.380m PhR-PR-L1-L1 11.08700m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 23383811.724m CNRL1 41.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 4.360m PhR-PR-L2-L1 11.64450m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 23.00db-Hz
MT1004 SV 3 CI-L1 0_C/A-Code PR-L1 265423.660m PhR-PR-L1-L1 6.59650m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 23983396.640m CNRL1 39.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 9.340m PhR-PR-L2-L1 5.03600m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 21.00db-Hz
> 2014 12 30 14 36 12 0 10
G10 20369837,146 107044278,9923 50,000
G 9 20395334,984 107178275,3103 54,000
G 7 20862831,342 109635044,0438 50,000
G23 21840361,116 114771947,2346 50,000
G 6 21882695,196 114994385,6682 48,000
G 2 22274352,052 117052558,6607 46,000
G20 22684874,930 119209891,5661 46,000
G30 22766091,350 119636729,7699 43,000
G16 23570269,644 123862663,2425 42,000
G 3 24465837,938 128568877,3238 38,000
the second row in my output is in l1 cycles. ie (number / 0.19)the ambiguity still exists, and its the delta between samples that is used.
On Tuesday, 30 December 2014 22:39:45 UTC+8, Clemens Arth wrote:Hi Michael,
thanks for sharing the code. I did some testing and it seems that the conversion from SBP delivered by the piksi to RTCM and vice versa works well - at least from what I can tell comparing terminal output with the Piksi console output.
To achieve my goal, I went ahead and connected to a 3rd-party provider to retrieve an RTCM-3 correction stream, which I again pushed into your RTCM3 module, to convert it to SBP and send it back to the piksi. From the terminal output and the Piksi Console output, the values are again transmitted correctly, however, the values itself are a bit strange. The PRN is fine, so seems to be the pseudorange, and also the SNR ratio which is converted through a step factor of 0.25 (so 52 becomes 13 etc.). The carrier phase however is huge for all observed satellites (in the the range of 1e11 something for ALL), and while always positive on the terminal side, it becomes exactly the same value but negative on the piksi side.
Since I have only one Piksi module, I can't do any further testing, but here's some decoded output from GNSSurfer and the output from the terminal of your program:TM Rtcm3.1 1838.0 Tue Dec 30 15:30:22.341 2014
MT1004 Stat 4095 Status 1 Sec 1838 Seq 1000 Frame 1368
MT1004 ToW 225038.0000 SyncGnssMF 0 NGpsSvSiProc 10 GpsDivFrSmInd 1 GpsSmInt 7_Unlimited_smoothing_interval
MT1004 SV 9 CI-L1 0_C/A-Code PR-L1 266611.340m PhR-PR-L1-L1 12.58400m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 20086094.686m CNRL1 54.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 5.640m PhR-PR-L2-L1 17.11050m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 48.00db-Hz
MT1004 SV 10 CI-L1 0_C/A-Code PR-L1 56517.380m PhR-PR-L1-L1 11.58550m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 20385887.144m CNRL1 52.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 4.140m PhR-PR-L2-L1 13.65400m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 44.00db-Hz
MT1004 SV 7 CI-L1 0_C/A-Code PR-L1 291385.620m PhR-PR-L1-L1 23.50550m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 20685679.602m CNRL1 51.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 3.640m PhR-PR-L2-L1 27.12850m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 43.00db-Hz
MT1004 SV 23 CI-L1 0_C/A-Code PR-L1 127492.400m PhR-PR-L1-L1 14.22900m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 21585056.976m CNRL1 50.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 1.680m PhR-PR-L2-L1 19.24500m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 38.00db-Hz
MT1004 SV 6 CI-L1 0_C/A-Code PR-L1 157550.280m PhR-PR-L1-L1 9.05700m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 21585056.976m CNRL1 49.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 7.580m PhR-PR-L2-L1 8.79450m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 40.00db-Hz
MT1004 SV 2 CI-L1 0_C/A-Code PR-L1 142538.840m PhR-PR-L1-L1 9.04000m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 22184641.892m CNRL1 48.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 1.880m PhR-PR-L2-L1 8.59000m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 36.00db-Hz
MT1004 SV 20 CI-L1 0_C/A-Code PR-L1 691.400m PhR-PR-L1-L1 13.32600m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 22484434.350m CNRL1 45.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 4.620m PhR-PR-L2-L1 16.58750m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 32.00db-Hz
MT1004 SV 30 CI-L1 0_C/A-Code PR-L1 193170.800m PhR-PR-L1-L1 20.27750m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 22784226.808m CNRL1 45.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 8.080m PhR-PR-L2-L1 27.18050m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 32.00db-Hz
MT1004 SV 16 CI-L1 0_C/A-Code PR-L1 219026.380m PhR-PR-L1-L1 11.08700m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 23383811.724m CNRL1 41.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 4.360m PhR-PR-L2-L1 11.64450m LTI-L2 24_24_<=_lock_time_<_72 CNRL2 23.00db-Hz
MT1004 SV 3 CI-L1 0_C/A-Code PR-L1 265423.660m PhR-PR-L1-L1 6.59650m LTI-L1 24_24_<=_lock_time_<_72 PRModAmbiL1 23983396.640m CNRL1 39.00db-Hz CI-L2 1_P(Y)-Code_direct PR-L2-L1 9.340m
...
...
Actually nevermind, disabling SBAS was not the issue...immediately after I sent the last message it crashed again giving the same error. It took a lot longer to crash (around 10 minutes or so), but it crashed again with the same error. Here is some of the log and error message again: