Sylphase SDGPS
The software-defined GPS(/GNSS) toolkit

For each of of the interfaces there is a node to write packets to a file. As one would expect, the write-INTERFACE-file nodes are sinks of that particular interface.

These nodes have the same arguments. The filename can be supplied as a positional argument, so the --filename is not necessary.

The one non-intuitive thing here is that write-INTERFACE-file nodes are not necessarily dead-ends; they will also pass through the packets if there is another node following it. An exception specific to the write-cooked-file is that it ''needs'' to have a node following it, since the cooked interface has desired correlator configurations being sent backwards to the cooked source.



write-cooked-file [OPTION]... FILENAME

Allowed options:

Option Description
--help produce help message
--block force stream source to wait to avoid buffer overrun (default: immediately abort pipeline unless --continue-on-error is used)
--buffer-size BUFFER_SIZE (=128) buffer BUFFER_SIZE MB of data in RAM for smoothing out disk IO latency
--filename FILENAME write to file named FILENAME
--no-metadata don't include metadata (sdgps version, command line) in output
--stream STREAM continually write to file with at least the last STREAM megabytes saved; maximum disk space used is approximately 3 * STREAM megabytes
--allow-overwrite don't exit if file already exists
--continue-on-error on error condition (e.g. overrun, disk full), stop writing to file, print warning every 5 seconds thereafter, and exit with nonzero exit code on pipeline termination (default: immediately abort pipeline)
--async-startup allow pipeline startup to proceed if open() call or write() of stream config header blocks (e.g. if writing to a pipe that does not yet have a reader)


Type signature: (cooked->[cooked])


sdgps sylphase-usbgpsimu2 ! write-cooked-file foo.cooked ! tracker ! decoder

Here we simply write our cooked stream to a file and then continue running the node chain with tracker.


Type signature: (cooked2->[cooked2])


sdgps sylphase-usbgpsimu2 ! tracker ! write-cooked2-file foo.cooked2

Here we simply write our cooked2 stream to a file and terminate the node chain.


Type signature: (observables->[observables])


sdgps sylphase-usbgpsimu2 ! tracker ! decoder ! write-observables-file foo.obs ! kf2

Here we simply write our observables stream to a file and continue to process the solution stream.


Type signature: (raw->[raw])


sdgps sylphase-usbgpsimu2-raw ! write-raw-file foo.raw

Here we simply write our raw stream to a file directly with nothing else in the node chain.


Type signature: (solution->[solution])


sdgps generate-simple-trajectory --duration 60 --rate inf ! write-solution-file --filename foo.sol

Here we simulate a solution stream for 60 seconds and immediately write that stream to a file with nothing else.