diff options
-rw-r--r-- | TODO | 2 | ||||
-rwxr-xr-x | gpsprof | 35 | ||||
-rw-r--r-- | gpsprof.xml | 25 |
3 files changed, 20 insertions, 42 deletions
@@ -44,8 +44,6 @@ of mode switch we should be uttering. **** cgps.c still relies on old protocol (that's Jeff Francis's problem). -**** gpsprof still requires old protocol - *** Complete and test the speed/parity/stopbit methods in the drivers These are used for the '?DEVICE' (old 'B') command. All work for 8N1. @@ -248,21 +248,17 @@ class splitplot: def data(self, session): res = "" for timings in self.stats: - if timings.timebase: - e1 = timings.xmit - else: - e1 = 0 for s in splitplot.sentences: if s == timings.tag: - res += "%2.6f\t" % e1 + res += "%2.6f\t" % timings.xmit else: res += "- \t" res += "%2.6f\t%2.6f\t%2.6f\t%2.6f\t%2.6f\t%8d\t# %s\n" \ - % (timings.recv, - timings.decode, - timings.xmit, - timings.c_recv, - timings.c_decode, + % (timings.recv - timings.xmit, + timings.decode - timings.recv, + timings.emit - timings.decode, + timings.c_recv - timings.emit, + timings.c_decode - timings.c_recv, timings.len, timings.tag) return res @@ -271,29 +267,28 @@ class splitplot: set autoscale set key below set key title "Filtered latency data, %s, %s, %dN%d, cycle %ds" -plot \\ - "-" using 0:%d title "D2 = Client decode time" with impulses, \\ - "-" using 0:%d title "T2 = TCP/IP latency" with impulses, \\ - "-" using 0:%d title "E2 = Daemon encode time" with impulses, \\ - "-" using 0:%d title "D1 = Daemon decode time" with impulses, \\ - "-" using 0:%d title "T1 = RS3232 time" with impulses, \\ +plot \ + "-" using 0:%d title "D2 = Client decode time" with impulses, \ + "-" using 0:%d title "T2 = TCP/IP latency" with impulses, \ + "-" using 0:%d title "E2 = Daemon encode time" with impulses, \ + "-" using 0:%d title "D1 = Daemon decode time" with impulses, \ + "-" using 0:%d title "T1 = RS3232 time" with impulses, \ ''' sc = len(splitplot.sentences) fmt = fixed % (title, session.gps_id, session.baudrate, session.stopbits, session.cycle, - sc+6, sc+5, sc+4, sc+3, sc+2, sc+1) for i in range(sc): - fmt += ' "-" using 0:%d title "%s" with impulses, \\\n' % \ + fmt += ' "-" using 0:%d title "%s" with impulses,' % \ (i+1, self.sentences[i]) - res = fmt[:-4] + "\n" + res = fmt[:-1] + "\n" res += self.header(session) - for dummy in range(sc+6): + for dummy in range(sc+5): res += self.data(session) + "e\n" return res diff --git a/gpsprof.xml b/gpsprof.xml index cef7e276..e95f506e 100644 --- a/gpsprof.xml +++ b/gpsprof.xml @@ -103,20 +103,11 @@ plain text rather than a gnuplot script.)</para> <varlistentry> <term>RS232 time</term> <listitem> -<para>Minimum time required to send the sentence from the GPS to -<application>gpsd</application>. This is computed, not measured, -and may be an underestimate.</para> -</listitem> -</varlistentry> -<varlistentry> -<term>Other line latency</term> -<listitem> -<para>The transmission latency between the GPS and -<application>gpsd</application> not accounted for by RS232 time. -Total line latency (the sum of this bar and RS232 time) -is measured; it begins with the GPS sentence's timestamp and ends with -a timestamp that <application>gpsd</application> generates at -sentence-reading time, before it is decoded.</para> +<para>Time required to send the sentence from the GPS to +<application>gpsd</application>. This measured from the time of +the last zero-length read before the packet to when the packet sniffer +recognizes a complete sentence, so there is a small aountt of +computational overhead mixed in.</para> </listitem> </varlistentry> <varlistentry> @@ -156,12 +147,6 @@ title.</para> a usage message and exit.</para> </refsect1> -<refsect1 id='bugs'><title>BUGS AND LIMITAIONS</title> - -<para>Probably overestimates TCP/IP latency somewhat, as that includes the -Python interpreter's decode time. A C client would be faster.</para> - -</refsect1> <refsect1 id='see_also'><title>SEE ALSO</title> <para> <citerefentry><refentrytitle>gpsd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |