summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2012-05-30 05:12:54 -0400
committerEric S. Raymond <esr@thyrsus.com>2012-05-30 05:12:54 -0400
commit0d6150e6343c51dbf24937fdc7809ecb620da7f1 (patch)
treeba8327c5a2d8e27721a861b01f51b3b76f0561f3
parentc6d6871c6db02ca631876fd9464715df733b7500 (diff)
downloadgpsd-0d6150e6343c51dbf24937fdc7809ecb620da7f1.tar.gz
Better recording of configuration sanity.
-rw-r--r--gpscap.ini20
-rw-r--r--gpscap.py5
-rw-r--r--www/gps_report.cgi.in35
3 files changed, 33 insertions, 27 deletions
diff --git a/gpscap.ini b/gpscap.ini
index b8b33952..70c2b15d 100644
--- a/gpscap.ini
+++ b/gpscap.ini
@@ -22,7 +22,7 @@
# interfaces = interface types: USB, RS232, Bluetooth, CF, TTL. May be a list.
# usbchip = USB I/O chipset
# pps = supports pulse-per-second precision time reporting
-# noconfigure = can be bricked by baud-rate changes (requires -b option)
+# configurable = can the device be bricked by speed changes?
# tested = last gpsd tested, or "regression" if we have a test load
# nmea = NMEA version this emits, if known
# notes = Miscellaneous notes on this item. To be interpreted as HTML.
@@ -501,7 +501,7 @@ vendor = Altina
packaging = handset
techdoc = http://www.altina.com/produkty.php?destCatId=&amp;mainCatId=13&amp;subCatId=&amp;prId=19
interfaces = Bluetooth
-noconfigure = True
+configurable = insane
tested = 2.35
uses = SiRF-3
submitter = Benoit Panizzon <panizzon@woody.ch>
@@ -611,7 +611,7 @@ techdoc = http://www.cpit.com/en/GP-27.html
uses = Nemerix
interfaces = Bluetooth
tested = 2.28
-noconfigure = True
+configurable = insane
submitter = Tobias Minich <belgabor@gmx.de>
notes = <ul>
<li>There are proprietary PNMRX{30[0124],603} sentences that are only sent
@@ -697,7 +697,7 @@ packaging = mouse
techdoc = http://www.eurotronic.net/products/produktdetails/gps_receiver.html
uses = SiRF-3
interfaces = Bluetooth
-noconfigure = True
+configurable = insane
tested = regression
submitter = Hartmut Holzgraefe <hartmut@php.net>
notes = Requires "-b" ... I had to totally drain the battery of the device
@@ -1270,7 +1270,7 @@ packaging = mouse
techdoc = http://www.holux.com.tw/Temp%20web/GR-230.html
uses = SiRF-2
interfaces = Bluetooth
-noconfigure = True
+configurable = insane
tested = 2.19
nmea = 2.2
discontinued = True
@@ -1306,7 +1306,7 @@ packaging = mouse
techdoc = http://www.holux.com/JCore/en/support/DLF.jsp?DLU=http://www1.holux.com.tw:8080/JCore/UploadFile/79754.pdf
uses = SiRF-3
interfaces = Bluetooth, USB
-noconfigure = True
+configurable = insane
tested = 2.36
rating = poor
nmea = 2.2
@@ -1321,7 +1321,7 @@ techdoc = http://www.holux.com/JCore/en/products/products_content.jsp?pno=341
uses = MTK
interfaces = Bluetooth, USB
usbchip = CP2101
-noconfigure = True
+configurable = insane
tested = 2.37
btglitch = yes
submitter = Roland Ager <roland.ager@gmx.de>
@@ -1587,7 +1587,7 @@ packaging = mouse
techdoc = http://www.navilock.de/produkte/gruppen/3/Kabel_Empfaenger/61371_NL-209PU.html?show=spec
uses = Sony CXD2951
interfaces = USB, RS232, Bluetooth
-noconfigure = True
+configurable = insane
usbchip = pl2303
tested = 2.35
nmea = 2.2
@@ -1807,7 +1807,7 @@ packaging = mouse
techdoc = http://www.phonix.it/html/catalogo_dettaglio.cfm?idProducts=E09B5AB7-BCDF-DF66-24853E2B4680AB2C
uses = SiRF-2
interfaces = Bluetooth
-noconfigure = True
+configurable = insane
tested = 2.34
nmea = 2.2
notes = As this is a Bluetooth device, gpsd must either be run with "-b" or must
@@ -2251,7 +2251,7 @@ vendor = UniTraq
packaging = mouse
techdoc = http://www.wintec.com.tw/en/support_detail.php?cate_id=11&amp;support_id=14
uses = Sony CXD2951
-noconfigure = True
+configurable = insane
interfaces = USB
usbchip = CP2101
tested = 2.35
diff --git a/gpscap.py b/gpscap.py
index 6127217e..49eaea62 100644
--- a/gpscap.py
+++ b/gpscap.py
@@ -118,7 +118,7 @@ class GPSDictionary(ConfigParser.RawConfigParser):
testfield += "<img title='Have regression test' src='regression.png' alt='Regression-test icon'>"
else:
testfield += tested
- if self.has_option(dev, "noconfigure"):
+ if self.has_option(dev, "configurable") and self.get(dev, "configurable") == 'insane':
testfield += "<img title='Requires -b option' src='noconfigure.png' alt='No-configure icon'>"
if self.get(dev, "rating") == "excellent":
testfield += "<img src='star.png' alt='Star icon'><img src='star.png' alt='Star icon'><img src='star.png' alt='Star icon'><img src='star.png' alt='Star icon'>"
@@ -142,8 +142,7 @@ class GPSDictionary(ConfigParser.RawConfigParser):
else:
notes = ""
if self.has_option(dev, "submitter"):
- notes += " Reported by %s." % self.get(dev, "submitter")
- notes = notes.replace("@", "&#x40;").replace("<", "&lt;").replace(">", "&gt;")
+ notes += " Reported by %s." % self.get(dev, "submitter").replace("@", "&#x40;").replace("<", "&lt;").replace(">", "&gt;")
ofp.write("<td>%s</td>\n" % notes)
ofp.write("</tr>\n")
ofp.write("</table>\n")
diff --git a/www/gps_report.cgi.in b/www/gps_report.cgi.in
index 484b0e6a..fdbc02a0 100644
--- a/www/gps_report.cgi.in
+++ b/www/gps_report.cgi.in
@@ -58,7 +58,7 @@ formfields = ("submitter",
"usbchip",
"tested",
"rating",
- "noconfigure",
+ "configurable",
"output_sample_file",
"output_sample_content",
"location",
@@ -80,12 +80,12 @@ if hasRequiredElements(form) and form.getvalue("action") == "Send Report":
report.attach(MIMEText(msg))
# Decorate the log data with some canned headers.
- # Omitted: nmea, notes, techdoc, tested, usbchip
+ # Omitted: nmea, notes, techdoc, tested, usbchip, configurable,
header = ''
header += "# Name: %s %s\n" \
% (form.getvalue('vendor'), form.getvalue('model'))
for fld in ("chipset", "firmware", 'date', 'submitter', 'location'):
- if form.has_key(fld):
+ if form.has_key(fld) and form.getvalue(fld):
header += "# %s = %s\n" % (fld.capitalize(), form.getvalue(fld))
if form.has_key('sample_notes') and form.getvalue('sample_notes'):
header += "# Notes: %s\n" % form.getvalue('sample_notes')
@@ -203,10 +203,12 @@ if form.getvalue("rating"):
print "GPSD compatibility is <code>"+cgi.escape(form.getvalue("rating"))+"</code><br>\n";
else:
print "No GPSD compatiblity specified.<br>\n";
-if form.getvalue("noconfigure"):
- print "Device can be sent catatonic by baud-rate changes<br>\n";
+if form.getvalue("noconfigure") == 'yes':
+ print "Device can be sent catatonic by baud-rate changes.<br>\n";
+elif form.getvalue("noconfigure") == 'no':
+ print "Device handles baud-rate changes correctly.<br>\n";
else:
- print "Device handles baud-rate changes correctly<br>\n";
+ print "How baud-rate changes are handled is unspecified.<br>\n";
print "</td><td align='center'>";
@@ -243,11 +245,11 @@ support for it more reliable.</p>
<hr>
<h2>Contact information</h2>
-<p><em style="color: #ff0000;">Important!</em> We prefer a valid email
+<p><em style="color: #ff0000;">Important!</em> We need a valid email
address for you in case we need to ask you followup questions about
the device. While we won\'t use your address for anything other than
asking you questions about your receiver, and maybe asking you to test
-specific changes, this gps report will be sent to the gpsd-dev list
+specific changes, this device report will be sent to the gpsd-dev list
which is publicly archived.</p>
<p>Example: <code>Eric Raymond &lt;esr&#x40;thyrsus.com&gt;</code></p>
@@ -424,12 +426,17 @@ for (rtype, rlegend) in ratings:
else:
print rateline % (rtype, "", rlegend)
-print '<p>Check this box if the device ceases responding when probed or speed-switched: '
-print '<input type="checkbox" name="noconfigure" value="yes" ',
-if defaults["noconfigure"] == "yes":
- print "checked>"
-else:
- print ">"
+print '<p>Device sanity when probed or speed-switched:<br/>'
+
+sanity = (('sane', 'Sane: accepts baud-rate changes and probes.'),
+ ('insane', 'Insane: goes catatonic on baud-rate changes and probes.'))
+
+saneline = '<input type="radio" name="sanity" value="%s"%s>%s<br/>'
+for (stype, slegend) in sanity:
+ if defaults['configurable'] == stype:
+ print saneline % (stype, " checked", slegend)
+ else:
+ print saneline % (stype, "", slegend)
print '''
<hr>