Overview
Config
Timetag
If you would like to replay your live data with rtkcv, you need to generate a timetag file per input source
logstr1-type =file # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr2-type =file # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr3-type =file # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr1-path =%Y%m%d%h%M_logstr1::T
logstr2-path =%Y%m%d%h%M_logstr2::T
logstr3-path =%Y%m%d%h%M_logstr3::T
Sequence Diagram
Scroll down (bug in rendering)
%%{init: {'theme':'forest'}}%%
sequenceDiagram
autonumber
main()->>rtksvrinit(): Initialize rtk server
loop (MAXSTRRTK)
rtksvrinit()->>rtksvrinit(): initlock() Initiate lock
end
main()->>strinit(): Initialize monitoring port
loop (MAXSTRRTK)
rtksvrinit()->>rtksvrinit(): initlock() Initiate lock
end
main()->>main(): resetsysopts() loadopts() getsysopts() load options file
main()->>main(): readnav() read navigation data
par monitor port
alt monitor port
main()->>main(): openmoni() open monitor port
end
end
alt socket for remote console
main()->>main(): open_sock() open socket for remote console
else device for local console
main()->>con_open(): open socket for remote console (local cmd window)
end
par console
loop iterate flag
main()->>accept_sock(): accept remote console connection
end
con_open()->>con_thread(): start console thread
con_thread()->>cmd_start(): start command
cmd_start()->>startsvr(): start command
startsvr()->>startsvr(): read start commads from command files
startsvr()->>startsvr(): readant() read antenna file
startsvr()->>startsvr(): readdcb() read dcb file
startsvr()->>startsvr(): opengeoid() open geoid data file
startsvr()->>startsvr(): strsetopt() set stream options
startsvr()->>startsvr(): system() execute start command
startsvr()->>rtksvrstart(): start rtk server
rtksvrstart()->>rtksvrstart(): rtkfree()
rtksvrstart()->>rtksvrstart(): init_raw() initialize receiver raw
rtksvrstart()->>rtksvrstart(): init_rtcm() initialize receiver rtcm control
rtksvrstart()->>rtksvrstart(): set receiver and rtcm option
rtksvrstart()->>rtksvrstart(): connect dgps corrections
rtksvrstart()->>rtksvrstart(): output peek buffer
rtksvrstart()->>rtksvrstart(): set solution options
rtksvrstart()->>rtksvrstart(): set base station position
rtksvrstart()->>rtksvrstart(): update navigation data
rtksvrstart()->>rtksvrstart(): set monitor stream
rtksvrstart()->>rtksvrstart(): open input streams
rtksvrstart()->>rtksvrstart(): set initial time for rtcm and raw
rtksvrstart()->>rtksvrstart(): sync input streams
rtksvrstart()->>rtksvrstart(): writesolhead() write solution header to solution streams
par create rtk server thread
rtksvrstart()->>rtksvrthread(): rtk server thread
loop svr->state
loop 3 (input streams)
rtksvrstart()->>rtksvrstart(): strread() read receiver raw/rtcm data from input stream
rtksvrstart()->>rtksvrstart(): strwrite() write receiver raw/rtcm data to log stream
rtksvrstart()->>rtksvrstart(): save peek buffer
end
loop 3 (input streams)
alt SP3 or RNX
rtksvrstart()->>rtksvrstart(): decodefile() decode download file
else
rtksvrstart()->>rtksvrstart(): decoderaw() decode receiver raw/rtcm data
end
end
alt averaging single base pos
rtksvrstart()->>pntpos(): averaging single base pos
end
loop each rover observation data
rtksvrstart()->>rtksvrstart(): corr_phase_bias() carrier phase bias correction
rtksvrstart()->>rtksvrstart(): rtksvrlock()
rtksvrstart()->>rtkpos(): rtk positioning
rtksvrstart()->>rtksvrstart(): rtksvrunlock()
end
rtksvrstart()->>rtksvrstart(): writesol() write solution
rtksvrstart()->>rtksvrstart(): send_nmea() send nmea request to base/nrtk input stream
end
end
rtksvrstart()->>startsvr(): return 1
startsvr()->>con_thread(): return
con_thread()->>con_open(): return 0
end
main()->>main(): stopsvr() stop rtk server
main()->>main(): con_close() close consoles
main()->>main(): closemoni() close monitoring port
main()->>main(): rtkclosestat() close stat file
main()->>main(): savenav() save navigation data