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