summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SConstruct6
-rw-r--r--gpscap.ini42
-rw-r--r--gpscap.py18
-rw-r--r--www/faq.html.in77
-rw-r--r--www/hardware-head.html.in124
-rw-r--r--www/hardware-tail.html11
6 files changed, 143 insertions, 135 deletions
diff --git a/SConstruct b/SConstruct
index a584a768..fd80fcb2 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1383,7 +1383,7 @@ webpages = Split('''www/installation.html
www/AIVDM.html www/NMEA.html
www/protocol-evolution.html www/protocol-transition.html
www/client-howto.html www/writing-a-driver.html
- www/index.html www/hardware.html
+ www/hardware.html
www/performance/performance.html
www/internals.html
''') + map(lambda f: f[:-3], glob.glob("www/*.in"))
@@ -1393,7 +1393,9 @@ www = env.Alias('www', webpages)
# Paste this list to a validator, e.g.
def validation_list(target, source, env):
for page in webpages:
- print os.path.join(website, os.path.basename(page))
+ with open(page) as fp:
+ if "Valid XHTML" in fp.read():
+ print os.path.join(website, os.path.basename(page))
Utility("validation-list", [www], validation_list)
# How to update the website
diff --git a/gpscap.ini b/gpscap.ini
index 71d8d73b..6b7e39e3 100644
--- a/gpscap.ini
+++ b/gpscap.ini
@@ -164,7 +164,7 @@ logs = uBlox-lea-5h.log
[FastraX iTrax03]
type = engine
-techdoc = http://www.fastraxgps.com/products/gpsmodules/index.cfm?template=products.show.cfm&productGuid=4594da1a-503c-469c-91b2-6948043189be
+techdoc = http://www.fastraxgps.com/products/gpsmodules/index.cfm?template=products.show.cfm&productGuid=4594da1a-503c-469c-91b2-6948043189be
engine = FastraX iTrax03
rating = good
logs = com-1289.log
@@ -285,7 +285,7 @@ vendor_site = http://www.adapt-mobile.com>
[Axiom]
type = vendor
-vendor_site = http://code.google.com/p/gpsd/downloads/detail?name=SiRF-Axiom.pdf&can=2&q=
+vendor_site = http://code.google.com/p/gpsd/downloads/detail?name=SiRF-Axiom.pdf&can=2&q=
[Billionton]
type = vendor
@@ -495,7 +495,7 @@ vendor_site = http://www.wintec.com.tw/
type = device
vendor = Altina
packaging = handset
-techdoc = http://www.altina.com/produkty.php?destCatId=&mainCatId=13&subCatId=&prId=19
+techdoc = http://www.altina.com/produkty.php?destCatId=&mainCatId=13&subCatId=&prId=19
interfaces = Bluetooth
noconfigure = True
tested = 2.35
@@ -510,7 +510,7 @@ notes = Requires the "-b" flag to prevent mode switching. If the receiver locks
type = device
vendor = Adapt Mobile
packaging = mouse
-techdoc = http://adapt-mobile.bosqom.com/default.php?page_ID=3&spage_ID=1
+techdoc = http://adapt-mobile.bosqom.com/default.php?page_ID=3&spage_ID=1
uses = Nemerix
interfaces = Bluetooth, USB
iochip = pl2303
@@ -523,7 +523,7 @@ submitter = Dennis van Zuijlekom <tmib@xs4all.nl>.
type = device
vendor = Axiom
packaging = OEM module
-techdoc = http://code.google.com/p/gpsd/downloads/detail?name=SiRF-Axiom.pdf&can=2&q=
+techdoc = http://code.google.com/p/gpsd/downloads/detail?name=SiRF-Axiom.pdf&amp;can=2&amp;q=
uses = SiRF-1
interfaces = RS232C
tested = 2.34
@@ -807,7 +807,7 @@ logs = garmin17n.log
type = device
vendor = Garmin
packaging = mouse
-techdoc = https://buy.garmin.com/shop/shop.do?cID=158&pID=8630
+techdoc = https://buy.garmin.com/shop/shop.do?cID=158&amp;pID=8630
engine = unknown
interfaces = RS232
tested = 2.37
@@ -1000,7 +1000,7 @@ notes = Acceptably functional running firmware 231ES.
type = device
vendor = GlobalSat
packaging = mouse
-techdoc = http://www.globalsat.com.tw/english/products_detail.php?main_id=21&p_id=107
+techdoc = http://www.globalsat.com.tw/english/products_detail.php?main_id=21&amp;p_id=107
uses = SiRF-2
interfaces = Bluetooth
tested = 2.20
@@ -1021,7 +1021,7 @@ submitter = Michal Panczyk <mpanczyk@gmail.com>
type = device
vendor = GlobalSat
packaging = mouse
-techdoc = http://www.usglobalsat.com/item.asp?itemid=11&catid=13
+techdoc = http://www.usglobalsat.com/item.asp?itemid=11&amp;catid=13
uses = SiRF-2
interfaces = USB
usbchip = pl2303
@@ -1036,7 +1036,7 @@ notes = Older versions of the BU-303 had a design defect that made it
type = device
vendor = GlobalSat
packaging = mouse
-techdoc = http://www.usglobalsat.com/item.asp?itemid=60&catid=17
+techdoc = http://www.usglobalsat.com/item.asp?itemid=60&amp;catid=17
uses = SiRF-3
interfaces = USB
usbchip = pl2303
@@ -1054,7 +1054,7 @@ nmea = 2.2
packaging = mouse
rating = excellent
submitter = Patrick Forristal <tradiuz@gmail.com>
-techdoc = http://www.globalsat.com.tw/eng/support_check.php?check_id=126&checkType=Manual
+techdoc = http://www.globalsat.com.tw/eng/support_check.php?check_id=126&amp;checkType=Manual
tested = 2.37
[BT-451]
@@ -1084,7 +1084,7 @@ logs = et-332.log
packaging = OEM module
rating = good
submitter = Val Schmidt <vschmidt@ccom.unh.edu>
-techdoc =http://www.globalsat.com.tw/products-page.php?menu=2&gs_en_product_id=4&gs_en_product_cnt_id=44&img_id=110&product_cnt_folder=4
+techdoc =http://www.globalsat.com.tw/products-page.php?menu=2&amp;gs_en_product_id=4&amp;gs_en_product_cnt_id=44&amp;img_id=110&amp;product_cnt_folder=4
vendor = GlobalSat
[ND-100S]
@@ -1123,7 +1123,7 @@ notes = May work inside wood frame buildings. PPS pulse is only 1uS wide,
type = device
vendor = GlobalSat
packaging = mouse
-techdoc = http://www.usglobalsat.com/item.asp?itemid=45&catid=13
+techdoc = http://www.usglobalsat.com/item.asp?itemid=45&amp;catid=13
uses = SiRF-2
interfaces = USB
usbchip = FTDI FT232
@@ -1257,7 +1257,7 @@ notes = 4 color LED showing: Bluetooth, Navigation Update and Battery
type = device
vendor = Holux
packaging = mouse
-techdoc = http://en.holux.com.cn/product/search.htm?filename=gpsreceiver_bluetooth_gpslim2+36.htm&target=bluetooth00&level=grandsonson
+techdoc = http://en.holux.com.cn/product/search.htm?filename=gpsreceiver_bluetooth_gpslim2+36.htm&amp;target=bluetooth00&amp;level=grandsonson
uses = SiRF-3
interfaces = Bluetooth
tested = regression
@@ -1460,7 +1460,7 @@ logs = eXplorist210.log
type = device
vendor = Magellan
packaging = OEM module
-techdoc = ftp://ftp.magellangps.com/OEM,%20Sensor%20&%20ADU/A12,%20%20B12,%20&%20AC12/Techdoc%20Material/A12,%20B12%20&%20AC12%20RM%20rev%20E.pdf
+techdoc = ftp://ftp.magellangps.com/OEM,%20Sensor%20&amp;%20ADU/A12,%20%20B12,%20&amp;%20AC12/Techdoc%20Material/A12,%20B12%20&amp;%20AC12%20RM%20rev%20E.pdf
engine = unknown
interfaces = TTL
nmea = 3.0
@@ -1573,7 +1573,7 @@ notes = <code>gpsprof</code> output can be found
[NL-402U USB]
type = device
-engine = u-blox5 GPS & GALILEO SuperSense
+engine = u-blox5 GPS &amp; GALILEO SuperSense
date = 2008-07-24
location = Neustadt / Holstein 54.05N 10.49 E
model = NL-402U USB Empfänger
@@ -1747,7 +1747,7 @@ notes = The Pharos comes with adaptors for SDIO, CF, USB and plain
type = device
vendor = Pharos
packaging = mouse
-techdoc = http://www.pharosgps.com/products/proddetail.asp?prod=006_PB010_1.00&cat=141
+techdoc = http://www.pharosgps.com/products/proddetail.asp?prod=006_PB010_1.00&amp;cat=141
uses = SiRF-3
subtype = GSC3f
usbchip = PL2303
@@ -1862,13 +1862,13 @@ notes = Works out of the box.
packaging = mouse
rating = excellent
submitter = Stijn Ghesquiere <stijn@applesnail.net>
-techdoc = http://www.royaltek.com/FileDownload.php?dir=Product_C1_Info&file=RGM-3600%20operational%20manual%20V1_1209966059.pdf
+techdoc = http://www.royaltek.com/FileDownload.php?dir=Product_C1_Info&amp;file=RGM-3600%20operational%20manual%20V1_1209966059.pdf
tested = 2.37
vendor = Royaltek
[RGM-3800]
type = device
-techdoc = http://www.royaltek.com/products_dtl.php?cid=2&id=23&argPage=1&argI=3
+techdoc = http://www.royaltek.com/products_dtl.php?cid=2&amp;id=23&amp;argPage=1&amp;argI=3
vendor = Royaltek
packaging = mouse
uses = SiRF-2
@@ -2029,7 +2029,7 @@ notes = Advertises that it is waterproof.
type = device
vendor = TomTom
packaging = handsfree
-techdoc = http://www.tomtom.com/products/product.php?ID=475&Category=0&Lid=4
+techdoc = http://www.tomtom.com/products/product.php?ID=475&amp;Category=0&amp;Lid=4
engine = SiRF-3
interfaces = USB
nmea = None
@@ -2062,7 +2062,7 @@ notes = I use this GPS as a time source. I use a time1 parameter of
type = device
vendor = Transystem
packaging = mouse
-techdoc = http://www.transystem.com.tw/products/index_detail.php?mcat_no=2&cat_no=32&pno=10&ver=en
+techdoc = http://www.transystem.com.tw/products/index_detail.php?mcat_no=2&amp;cat_no=32&amp;pno=10&amp;ver=en
uses = uNav
interfaces = USB
usbchip = pl2303
@@ -2183,7 +2183,7 @@ logs = ublox-lea-5q.log
type = device
vendor = UniTraq
packaging = mouse
-techdoc = http://www.wintec.com.tw/en/support_detail.php?cate_id=11&support_id=14
+techdoc = http://www.wintec.com.tw/en/support_detail.php?cate_id=11&amp;support_id=14
uses = Sony CXD2951
noconfigure = True
interfaces = USB
diff --git a/gpscap.py b/gpscap.py
index 2aed91b1..1109517a 100644
--- a/gpscap.py
+++ b/gpscap.py
@@ -98,7 +98,7 @@ class GPSDictionary(ConfigParser.RawConfigParser):
if self.has_option(dev, "techdoc"):
namefield = "<a href='%s'>%s</a>" % (self.get(dev, "techdoc"), dev)
if self.has_option(dev, "discontinued"):
- namefield = namefield + "&nbsp;<img title='Device discontinued' src='discontinued.png'/>"
+ namefield = namefield + "&nbsp;<img title='Device discontinued' src='discontinued.png' alt='Discontinued icon'/>"
ofp.write("<td>%s</td>\n" % namefield)
ofp.write("<td>%s</td>\n" % self.get(dev, "packaging"))
engine = self.get(dev, "engine")
@@ -115,23 +115,23 @@ class GPSDictionary(ConfigParser.RawConfigParser):
if self.has_option(dev, "tested"):
tested = self.get(dev, "tested")
if tested == "regression":
- testfield += "<img title='Have regression test' src='regression.png'>"
+ testfield += "<img title='Have regression test' src='regression.png' alt='Regression-test icon'/>"
else:
testfield += tested
if self.has_option(dev, "noconfigure"):
- testfield += "<img title='Requires -b option' src='noconfigure.png'>"
+ testfield += "<img title='Requires -b option' src='noconfigure.png' alt='No-configure icon'/>"
if self.get(dev, "rating") == "excellent":
- testfield += "<img src='star.png'/><img src='star.png'/><img src='star.png'/><img src='star.png'/>"
+ 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'/>"
elif self.get(dev, "rating") == "good":
- testfield += "<img src='star.png'/><img src='star.png'/'><img src='star.png'/>"
+ testfield += "<img src='star.png' alt='Star icon'/><img src='star.png' alt='Star icon'/><img src='star.png' alt='Star icon'/>"
elif self.get(dev, "rating") == "fair":
- testfield += "<img src='star.png'/><img src='star.png'/>"
+ testfield += "<img src='star.png' alt='Star icon'/><img src='star.png' alt='Star icon'/>"
elif self.get(dev, "rating") == "poor":
- testfield += "<img src='star.png'/>"
+ testfield += "<img src='star.png' alt='Star icon'/>"
elif self.get(dev, "rating") == "broken":
- testfield += "<img title='Device is broken' src='bomb.png'/>"
+ testfield += "<img title='Device is broken' src='bomb.png' alt='Bomb icon'/>"
if self.has_option(dev, "usbchip") and self.get(dev, "usbchip") in hotpluggables:
- testfield += "<img src='hotplug.png'/>"
+ testfield += "<img src='hotplug.png' alt='Hotplug icon'/>"
ofp.write("<td>%s</td>\n" % testfield)
nmea = "&nbsp;"
if self.has_option(dev, "nmea"):
diff --git a/www/faq.html.in b/www/faq.html.in
index 39c550b7..2984afa6 100644
--- a/www/faq.html.in
+++ b/www/faq.html.in
@@ -1,11 +1,12 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<!-- @MASTER@ -->
-<html>
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="Author" content="Eric S. Raymond">
- <meta name="Description" content="GPSD Frequently Asked Questions">
- <meta name="Keywords" content="GPS, translator, GIS">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <meta name="Author" content="Eric S. Raymond" />
+ <meta name="Description" content="GPSD Frequently Asked Questions" />
+ <meta name="Keywords" content="GPS, translator, GIS" />
<link rel="stylesheet" href="main.css" type="text/css"/>
<title>GPSD FAQ</title>
</head>
@@ -67,26 +68,26 @@ GPSD Frequently Asked Questions
<div id="Content">
<ul>
-<li><a href='#verify'>How can I verify operation of a new GPS?</a><br/>
-<li><a href='#bug-reporting'>How do I report bugs in GPSD?</a><br/>
-<li><a href='#startup'>Why does getting a fix take so long after powerup?</li>
+<li><a href='#verify'>How can I verify operation of a new GPS?</a></li>
+<li><a href='#bug-reporting'>How do I report bugs in GPSD?</a></li>
+<li><a href='#startup'>Why does getting a fix take so long after powerup?</a></li>
<li><a href='#timelag'>Why does GPS time lag wall time by 11-15 seconds?</a></li>
-<li><a href='#speed'>Why does my receiver report wildly fluctuating speed?</a><br/>
-<li><a href='#gpsdrive'>Why do I get implausibly low speeds when using gpsdrive?</a><br/>
-<li><a href='#kismet'>Why do I get no results when I try to use <code>gpsd</code> with Kismet?</a><br/>
-<li><a href='#bluetooth'>Why do I have to restart <code>gpsd</code> whenever I power-cycle my Bluetooth device?</a><br/>
-<li><a href='#lockup'>My <code>gpsd</code> sometimes stops responding overnight</a><br/>
-<li><a href='#why_not_parse_nmea'>Why use the <code>gpsd</code> protocol rather than parsing raw NMEA?</a><br/>
-<li><a href='#interfacing'>How should I interface my application with <code>gpsd</code>?</a><br/>
-<li><a href='#agps'>Can GPSD use Assisted GPS data from cellphone networks?</code>?</a><br/>
-<li><a href='#accuracy'>How can I improve fix accuracy from my GPS?</a><br/>
-<li><a href='#time'>How can I improve time reference accuracy from my GPS?</a><br/>
-<li><a href='#sleep'>Why does my GPS get lost when I sleep/wake my laptop?</a><br/>
-<li><a href='#baud'>Why is there no option to fix baud rate?</a><br/>
-<li><a href='#willitwork'>Will this GPS work? It's not on the hardware list.</a>
-<li><a href='#nmea2000'>Does gpsd support NMEA2000?.</a><br/>
-<li><a href='#conflict'>Why does GPSD interfere with non-GPS USB devices?</a></br>
-<li><a href='#efficiency'>What is gpsd's CPU and power overhead?</a></br>
+<li><a href='#speed'>Why does my receiver report wildly fluctuating speed?</a></li>
+<li><a href='#gpsdrive'>Why do I get implausibly low speeds when using gpsdrive?</a></li>
+<li><a href='#kismet'>Why do I get no results when I try to use <code>gpsd</code> with Kismet?</a></li>
+<li><a href='#bluetooth'>Why do I have to restart <code>gpsd</code> whenever I power-cycle my Bluetooth device?</a></li>
+<li><a href='#lockup'>My <code>gpsd</code> sometimes stops responding overnight</a></li>
+<li><a href='#why_not_parse_nmea'>Why use the <code>gpsd</code> protocol rather than parsing raw NMEA?</a></li>
+<li><a href='#interfacing'>How should I interface my application with <code>gpsd</code>?</a></li>
+<li><a href='#agps'>Can GPSD use Assisted GPS data from cellphone networks?</a></li>
+<li><a href='#accuracy'>How can I improve fix accuracy from my GPS?</a></li>
+<li><a href='#time'>How can I improve time reference accuracy from my GPS?</a></li>
+<li><a href='#sleep'>Why does my GPS get lost when I sleep/wake my laptop?</a></li>
+<li><a href='#baud'>Why is there no option to fix baud rate?</a></li>
+<li><a href='#willitwork'>Will this GPS work? It's not on the hardware list.</a></li>
+<li><a href='#nmea2000'>Does gpsd support NMEA2000?.</a></li>
+<li><a href='#conflict'>Why does GPSD interfere with non-GPS USB devices?</a></li>
+<li><a href='#efficiency'>What is gpsd's CPU and power overhead?</a></li>
</ul>
<h1 id='verify'>How can I verify operation of a new GPS?</h1>
@@ -215,7 +216,7 @@ all, is the firmware version. You will want that for your report.</p>
<h3 id="logformat">8. Annotate the capture log and send us a copy</h3>
<p>We'll describe the annotation steps here for completeness, but the
-easiest way to do this is with <a href="@WEBFORM">our web form</a>
+easiest way to do this is with <a href="@WEBFORM">our web form</a>.</p>
<p>A logfile should consist of an identifying header followed by a
straight unencoded dump of receiver data, whether NMEA or binary. The
@@ -225,8 +226,8 @@ Here is the beginning of one log file I already have:</p>
<pre>
# Name: Magellan eXplorist 210
# Chipset: unknown
-# Submitted-by: "Paul B van den Berg" <paulberg@wanadoo.nl>
-# Date: 20 May 2006
+# Submitted-by: "Paul B van den Berg" &lt;paulberg@wanadoo.nl&gt;
+# Date: 2006-05-26
# Location: Groningen, NL, 53.2N 6.6E
#
# mode V2.1 GSA
@@ -608,7 +609,7 @@ modern kernels. Both USB and RS232 will incur that approximately
USB serial devices. In a default Linux configuration, USB serial
device name do not depend on which physical port you plug the
USB/serial adaptor, but on what order you plug devices in: 1st device
-gets /dev/ttyUSB0, 2nd gets /dev/ttyUSB1, etc....
+gets /dev/ttyUSB0, 2nd gets /dev/ttyUSB1, etc....</p>
<p>This collides with what happens during a suspend/resume. If you
suspends while <code>gpsd</code> has a device active, it will hold the
@@ -623,7 +624,7 @@ that is actually a symlink which gets modified by hotplug events, and
give <code>gpsd</code> that device when you invoke it. You'll need <a
href="70-persistent-usb-gps.rules">these replacement udev rules</a>,
and the experience required to patch them so the vendor ID in the last
-one matches your GPS hardware (look in your lsusb output).
+one matches your GPS hardware (look in your lsusb output).</p>
<h1 id='web'>How do I get gpsd data into a web page?</h1>
@@ -636,7 +637,7 @@ instructions.</p>
<p>Another way is to use a perl CGI script that leverages
Net::GPSD like this...</p>
-<code><pre>
+<pre><code>
#!/usr/bin/perl -w
use strict;
use Net::GPSD;
@@ -661,11 +662,11 @@ srsName="urn:ogc:def:crs:EPSG:6.6:4326"&gt;
&lt;/Report&gt;
};
&lt;/code&gt;
-</pre></code>
+</code></pre>
<p>This will return something like:</p>
-<code><pre>
+<pre><code>
&lt;?xml version='1.0'?&gt;
&lt;Report xmlns:gml="http://www.opengis.net/gml"&gt;
&lt;items&gt;
@@ -679,7 +680,7 @@ srsName="urn:ogc:def:crs:EPSG:6.6:4326"&gt;
&lt;/Item&gt;
&lt;/items&gt;
&lt;/Report&gt;
-</pre></code>
+</code></pre>
<h1 id='baud'>Why is there no option to fix baud rate?</h1>
@@ -705,10 +706,10 @@ the bit rate just before starting gpsd. For example, suppose you know that
your GPS is on serial port 0 and operates at a fixed bps of 54600. You
can set that up like this:</p>
-<code><pre>
+<pre><code>
stty speed 54600 &lt;/dev/ttyS0
gpsd -nN /dev/ttyS0
-</pre></code>
+</code></pre>
<h1 id='willitwork'>Will this GPS work? It's not on the hardware list.</h1>
@@ -775,7 +776,7 @@ one is not already running) and puts a copy of the device path in an
internal stash list. Later, if a client application requests GPS data,
<code>gpsd</code> will try to read from the device, and discard it
from the stash list if it is not emitting data that <code>gpsd</code>
-recognizes.<p>
+recognizes.</p>
<p>GPSD's notion of "might be a GPS" depends on the fact that all USB
GPSes are made with one of a small number of USB-to-serial adapter
@@ -815,6 +816,6 @@ at steadily less than 1% on a low-power, low-speed ARM SBC.</p>
</div>
<hr/>
-<script language="JavaScript" src="datestamp.js" type='text/javascript'></script>
+<script src="datestamp.js" type='text/javascript'></script>
</body>
</html>
diff --git a/www/hardware-head.html.in b/www/hardware-head.html.in
index f49f3546..e689e588 100644
--- a/www/hardware-head.html.in
+++ b/www/hardware-head.html.in
@@ -1,14 +1,15 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="Author" content="Eric Raymond">
- <meta name="Description" content="Hardware known to work with GPSD.">
- <meta name="Keywords" content="GPS, translator, mxmap, GIS">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+ <meta name="Author" content="Eric Raymond"/>
+ <meta name="Description" content="Hardware known to work with GPSD."/>
+ <meta name="Keywords" content="GPS, translator, mxmap, GIS"/>
<title>Compatible GPSes</title>
<link rel="stylesheet" href="main.css" type="text/css"/>
</head>
-
+<body>
<div id="Header">Compatible Hardware</div>
<div id="Menu">
@@ -22,7 +23,7 @@
<a href="xgps-sample.html">Screenshots</a><br/>
<a href="index.html#recipes">Recipes</a><br/>
<a href="index.html#others">Other GPSDs</a><br/>
- Hardware</a><br/>
+ Hardware<br/>
<a href="for-vendors.html">For GPS Vendors</a><br/>
<a href="wishlist.html">Wish List</a><br/>
<a href="hall-of-shame.html">Hall of Shame</a><br/>
@@ -67,29 +68,29 @@
<span>Search for hardware information here:</span>
<!-- SiteSearch Google -->
-<form method="get" action="http://www.google.com/custom" target="_top">
-<table border="0" bgcolor="#ffffff">
-<tr><td nowrap="nowrap" valign="top" align="left" height="32">
+<form method="get" action="http://www.google.com/custom">
+<table border="0">
+<tr><td valign="top" align="left">
<a href="http://www.google.com/">
-<img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"></img></a>
+<img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google"></img></a>
</td>
-<td nowrap="nowrap">
+<td>
<input type="hidden" name="domains" value="@SITESEARCH@"></input>
<input type="text" name="q" size="31" maxlength="255" value=""></input>
<input type="submit" name="sa" value="Search"></input>
</td></tr>
<tr>
<td>&nbsp;</td>
-<td nowrap="nowrap">
+<td>
<table>
<tr>
<td>
<input type="radio" name="sitesearch" value=""></input>
-<font size="-1" color="#000000">Web</font>
+Web
</td>
<td>
<input type="radio" name="sitesearch" value="@SITESEARCH@" checked="checked"></input>
-<font size="-1" color="#000000">@SITESEARCH@</font>
+@SITESEARCH@
</td>
</tr>
</table>
@@ -111,10 +112,11 @@
RS232C or USB interface that advertises NMEA-0183 compliance. Here
are some notes on hardware we have tested. Hyperlinks lead to
technical information. The "Works with" column is the last
-<code>gpsd</code> version with which this receiver is known to have been
-successfully tested; A <img src="regression.png"/> in this column
-means we have a regression test load for the device that is checked
-before each release. Vendors are listed in alphabetical order.</p>
+<code>gpsd</code> version with which this receiver is known to have
+been successfully tested; A <img src="regression.png" alt="Regression
+icon"/> in this column means we have a regression test load for the
+device that is checked before each release. Vendors are listed in
+alphabetical order.</p>
<p>There is also a <a href="#timing">table of PPS-capable
receivers</a> which may be appropriate for timing use.</p>
@@ -125,55 +127,59 @@ These bugs may send affected GPSes catatonic. See this <a
href="upstream-bugs.html#bluetooth">bug warning</a> for a description
of the problem. Where possible, we indicate this in the device table.</p>
-<p>Icons used in the table:
+<p>Icons used in the table:</p>
<ul>
-<li><img src="star.png"/><img src="star.png"/><img src="star.png"/><img
-src="star.png"> marks devices with <b>Excellent</b> performance: gpsd
+<li><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"/> marks devices with <b>Excellent</b> performance: gpsd
recognizes the receiver rapidly and reliably, reports are complete and
correct.</li>
-<li><img src="star.png"/><img src="star.png"/><img src="star.png"/> marks
-devices with <b>Good</b> performance: <tt>gpsd</tt> has minor problems
-or lag recognizing the device, but reports are complete and
-correct.</li>
+<li><img src="star.png" alt="Star icon"/><img src="star.png" alt="Star
+icon"/><img src="star.png" alt="Star icon"/> marks devices with
+<b>Good</b> performance: <tt>gpsd</tt> has minor problems or lag
+recognizing the device, but reports are complete and correct.</li>
-<li><img src="star.png"/><img src="star.png"/> marks devices with
-<b>Fair</b> performance: reports have minor dropouts or problems,
-including occasional transient nonsense values.</li>
+<li><img src="star.png" alt="Star icon"/><img src="star.png" alt="Star
+icon"/> marks devices with <b>Fair</b> performance: reports have minor
+dropouts or problems, including occasional transient nonsense
+values.</li>
-<li><img src="star.png"/> marks devices with <b>Poor</b> performance:
-reports frequently have values that are wrong or nonsense.</li>
+<li><img src="star.png" alt="Star icon"/> marks devices with
+<b>Poor</b> performance: reports frequently have values that are wrong
+or nonsense.</li>
-<li><img src="bomb.png"/> marks devices which are <b>Broken</b>;
+<li><img src="bomb.png" alt="Bomb icon"/> marks devices which are <b>Broken</b>;
gpsd frequently fails to recognize the device at all.</li>
-<li><img src="noconfigure.png"/> marks devices that needed the
-<tt>gpsd -b</tt> option when tested. Usually these are Bluetooth
-devices with defective firmware that does not handle baud-rate changes
-properly. Some poorly-designed USB devices choke if they are fed too
-many probe strings; these may work better with recent versions of
-<tt>gpsd</tt>, which interleaves probe writes with the first few
-packet reads.</li>
-
-<li><img src="regression.png"/> marks devices for which we have a
-regression-test load. These are checked on every release.</li>
-
-<li><img src="discontinued.png"/> marks devices that have been
-discontinued by their manufacturers.</li>
-
-<li><img src="hotplug.png"/> marks devices which will be recognized by
-the Linux hotplug system when they are plugged in. If you installed
-<tt>gpsd</tt> from a binary package,or did "make udev-install" from
-the source distribution, this should mean you never have to launch
-<tt>gpsd</tt> manually; the udev syatem will launch it for you when
-it sees a device of this kind go active.</li>
-</ul></p>
-
-<p>Note that in most cases (including the <img src="noconfigure.png"/>
-bug), poor ratings reflect problems not in <tt>gpsd</tt> but rather in
-device design and firmware so badly botched that <tt>gpsd</tt> cannot
-compensate.</p>
+<li><img src="noconfigure.png" alt="No-configure icon"/> marks devices
+that needed the <code>gpsd -b</code> option when tested. Usually these are
+Bluetooth devices with defective firmware that does not handle
+baud-rate changes properly. Some poorly-designed USB devices choke if
+they are fed too many probe strings; these may work better with recent
+versions of <code>gpsd</code>, which interleaves probe writes with the
+first few packet reads.</li>
+
+<li><img src="regression.png" alt="Regression-test icon"/> marks
+devices for which we have a regression-test load. These are checked on
+every release.</li>
+
+<li><img src="discontinued.png" alt="Discontinued icon"/> marks
+devices that have been discontinued by their manufacturers.</li>
+
+<li><img src="hotplug.png" alt="Hotplug icon"/> marks devices which
+will be recognized by the Linux hotplug system when they are plugged
+in. If you installed <code>gpsd</code> from a binary package,or did "make
+udev-install" from the source distribution, this should mean you never
+have to launch <code>gpsd</code> manually; the udev syatem will launch it
+for you when it sees a device of this kind go active.</li>
+</ul>
+
+<p>Note that in most cases (including the <img src="noconfigure.png"
+alt="No-configure icon"/> bug), poor ratings reflect problems not in
+<code>gpsd</code> but rather in device design and firmware so badly
+botched that <code>gpsd</code> cannot compensate.</p>
<p>This table is generated from a capability database in the
<code>gpsd</code> source tree. Please help us enrich the database with
diff --git a/www/hardware-tail.html b/www/hardware-tail.html
index dbada9ef..955b7ef0 100644
--- a/www/hardware-tail.html
+++ b/www/hardware-tail.html
@@ -1,6 +1,6 @@
<!-- hardware-tail.html begins here -->
-<a name="timing"></a>
+<a id="timing"></a>
<h2>PPS and GPSD:</h2>
<p>Many GPS receivers offer a 1PPS (one pulse per second) output that
@@ -123,7 +123,7 @@ serial data accurate to about 250mS.</p>
<td>Garmin GPS18/LVC</td>
<td align="center">1usec</td>
<td align="center">0.125sec</td>
-<td align="center">Must be outside with a clear sky view.<br>At 19200bps; drops to 0.525 at 4800bps</td>
+<td align="center">Must be outside with a clear sky view.<br/>At 19200bps; drops to 0.525 at 4800bps</td>
</tr>
<tr>
<td>Rockwell Jupiter</td>
@@ -138,7 +138,7 @@ serial data accurate to about 250mS.</p>
<td align="center">-</td>
</tr>
<tr>
-<td>SiRFstar3<br>(GlobalSat MR-350P)</td>
+<td>SiRFstar3<br/>(GlobalSat MR-350P)</td>
<td align="center">1usec</td>
<td align="center">-</td>
<td align="center">May work inside wood frame buildings.</td>
@@ -151,7 +151,7 @@ serial data accurate to about 250mS.</p>
</tr>
</table>
-<a name="raw"></a>
+<a id="raw"></a>
<h2>Raw Measurements and GPSD:</h2>
<p>All gpses require "raw" measurements internally to compute a navigation
@@ -177,7 +177,6 @@ serial data accurate to about 250mS.</p>
<td>sirfstar1 has raw data in message 5, sirfstar2 has raw data in message 28, sirfstar3 has some raw data in message 28 but carrier phase is not available. rumor has it that carrier phase is available as a premium feature in superstar3.</td>
</tr>
<tr>
-<tr>
<td>ublox</td>
<td align="center">Partial</td>
<td>The RXM-RAW message contains raw data. This is implemented in all Antaris chips. This is only implemented in the timing versions of Antaris4. In ublox5 it is "only available with premium feature raw data".
@@ -208,6 +207,6 @@ serial data accurate to about 250mS.</p>
</div>
<hr/>
-<script language="JavaScript" src="datestamp.js" type='text/javascript'></script>
+<script src="datestamp.js" type='text/javascript'></script>
</body>
</html>