1This is a list of developer tools included in the source repository 2but not necessarily shipped in the tarball or binary distributions If you're 3viewing it with Emacs, you can try doing Ctl-C Ctl-t browse through 4the outline headers. Ctl-C Ctl-a will unfold them again. 5 6== ais.py == 7 8AIS packet decoder in Python. Useful as a check on the C code. 9Also, if you have AISHub privileges (see <http://www.aishub.net/>), 10a command like 11 12 nc data.aishub.net 4006 | devtools/ais.py -c -v -t RANGE >AIS.LOG 2>&1" 13 14is a handy way to capture filtered AIS samples; RANGE can be a comma-separated 15list of AIS types. 16 17== aidvmtable == 18 19Generate an asciidoc table of the six-bit encoding used in AIVDM packets. 20 21== cycle_analyzer == 22 23Finds end-of-cycle sentences from GPS output logs. 24 25== dchroot-exec == 26 27Very simple wrapper around the DSA version of dchroot 28on the Debian porter boxes. dchroot only accepts one command 29as argument, nothing else. This wrapper creates a temporary script 30which will be executed then. 31 32== do-build == 33 34Very simple wrapper around scons clean, build, and check, saving 35output in a file named with "git describe". 36 37== easyinverse.pl == 38 39Generate random pairirs of mutually inverse covariance matrices 40suitable for testing a matrix-inversion algorithm. 41 42== editcomment == 43 44Give this a commit-ID specification. It will edit the associated comment. 45Usual caveats apply; the edited one and all commits after will change IDs, 46and pushing them to a repo with the old commits will wreak havoc. 47Note also that this cavalierly overwrites refs/original. 48 49== fakeserver == 50 51Analogue of gpsfake. Impersonates a gpsd, spewing specified data to 52clients connecting to localhost:2947 53 54== fakecompare == 55 56Compare the results from running gpsfake on a logfile between this 57machine and a remote one. Especially useful when remote and local 58have different word lengths. 59 60== flock* == 61 62The files prefixed with flock are the scripts, data files, and 63documentation for the flock-test suite. Read flock-instructions for 64explanation. 65 66== gpsd-debian-regressions.sh == 67 68Retrieves the latest build logs from Debian's buildds and extracts a 69list of failed regression tests, sorted by architecture. 70 71== identify_failing_build_options.py == 72 73Run from the top level to try to identify any combinations of build 74options that don't compile. To run cd to the root of the repo and 75run "devtools/identify_failing_build_options.py" it will generate 76failed_build_configs.txt for any that failed to compile. 77 78== logextract == 79 80Extract pure NMEA from an emailed gpsd error log. The output can be fed 81to gpsfake. 82 83== regress-builder == 84 85This script runs an exhaustive test on combinations of compilation options, 86looking for ones that break the build. 87 88== regressdiff == 89 90Walk through a pair of text files looking for where they begin to differ. 91May be useful for comparing logs when regression tests break. 92 93== reindent == 94 95Try to reindent the code in a uniform style. 96 97== sizes == 98 99Test-build interesting versions of the daemon and display their sizes. 100 101== striplog == 102 103Strip leading comment lines from NMEA sentence logs. gpsfake can do 104this itself now, so this script has a lot of dust on it. 105 106== tablegen.py == 107 108Generate most of the code required to support a message type from 109AIVDM message layout tables. Also, redo their bit offsets to be 110conformant with field lengths. 111 112== test_json_validity.py == 113 114Test a file full of lines containing GPSD-JSON reports to verify that each 115line is in fact well-formed JSON. 116