Knowledge base Free software
Giving something back!
Andrews & Arnold Ltd make extensive use of open source software, including linux, asterisk and many others. We contribute in various ways (such as landline SMS app for asterisk). This page contains some free software. The software is free, you can assume a GNU licence. It is provided entirely as is and no liability is accepted at all. Any bug reports, ideas, etc, email support, but no promises. Basically, credit me/A&A and don't sell it...
|OSTN02_OSGM02_GB.c OSTN02_OSGM02_GB.h||OSTN02_OSGM02_GB reference data as C code from Ordnance Survey|
|ostn02.c ostn02.c||Library to convert OSGB grid reference (easting/northing) to/from WGS84 lat/long (GPS co-ordinates). Link with above reference data and maths library.|
|cups-epilog.c||CUPS backend for Epilog laser engraving machines (see below). info|
|evolis-raw.c||Standalone command that takes images (ps or bmp) and generates a print file for an Evolis pebble, allowing colour, black and overlay images for each side to be defines separately. See --help for details.|
|matica.c||Standalone command tool to talk to Matica XID9300 and similar printers, can load cards (including contact station), read and write mag stripe, and print. Expects raw image file for YMCKUYMCKU for two side, so needs an app to compose the card image data first.|
|zebra-print.c||Standalone command line that images (ps or bmp) and sends to a Zebra ZXP printer. Allows colour, black, inhibit and UV images for each side to be defined separately. See --help for details.|
|image.c image.h||Simple image generation library - generates gif and indexed png files (with or without zlib). Used by iec16022 for PNG output.|
|reedsol.c reedsol.h||Simple Reed/Solomon encoder, thanks to Cliff. Used by iec16022 for ECC200 generation.|
|iec16022ecc200.c iec16022ecc200.h||Library to generate IEC 16022 barcodes using ECC200 (the even barcodes).|
|iec16022.c||General purpose ISO IEC 16022 Data Matrix 2D barcode encoder. Currently only supports even sized (ECC200) codes, but offers auto sizing and encoding with output in text, binary, hex, eps, and png.
cc -o iec16022 iec16022.c -DLIB image.c reedsol.c iec16022ecc200.c -lz -lpopt
|iec18004.c iec18004.h||Library to generate IEC 18004 barcodes.|
|qr.c||Command line IEC18004 (QR) code generator with output in text, binary, hex, eps, and png.
cc -o qr qr.c iec18004.c -DLIB image.c reedsol.c -lz -lpopt
|axl.h axl.c||Adrian's XML library, link with expat - parse and create XML|
|sqllib.h sqllib.c||Adrian's SQL library, link with mysqlclient - wrappers for SQL|
|tr069.c||TR069 server, runs as a cgi from apache, uses AXL and SQLLIB.|
|galaxy.c||Receives Galaxy alarm panel logs.|
|rmapi.c||Royal Mail Shipping API. rmapi.sql You may need to ask me on irc for details on building this.|
AXL & SQLLIB
Adrian's XML library (AXL) and SQLLIB are two libraries I use a lot in my code. AXL allows parsing and generating XML easily. SQLLIB is a wrapper for SQL (typically mysql) which provides some key wrappers (including generating correctly quoted SQL statements).
The Epilog laser engraver comes with a windows printer driver. This works well with Corel Draw, and that is about it. There are other windows applications, like inkscape, but these rasterise the image before sending to the windows printer driver, so there is no way to use them to vector cut!
The cups-epilog app is a cups backend, so build and link/copy to /usr/lib/cups/backend/epilog. It allows you to print postscript to the laser and both raster and cut. It works well with inkscape.
With this linux driver, vector cutting is recognised by any line or curve in 100% red (1.0 0.0 0.0 setrgbcolor).
Create printers using epilog://host/Legend/options where host is the hostname or IP of the epilog engraver. The options are as follows. This allows you to make a printer for each different type of material.
|af||Auto focus (0=no, 1=yes)|
|af||optimise vectors (0=no, 1=yes)|
|rs||Raster speed 1-100|
|rp||Raster power 0-100|
|vs||Vector speed 1-100|
|vp||Vector power 1-100|
|ov||Re-order vectors to reduce time|
|vf||Vector frequency 10-5000|
|sc||Photograph screen size in pizels, 0=threshold, +ve=line, -ve=spot, used in mono mode, default 8.|
|rm||Raster mode mono/grey/colour|
The mono raster mode uses a line or dot screen on any grey levels or colours. This can be controlled with the sc parameter. The default is 8, which makes a nice fine line screen on 600dpi engraving. At 600/1200 dpi, the image is also lightened to allow for the size of the laser point.
The grey raster mode maps the grey level to power level. The power level is scaled to the raster power setting (unlike the windows driver which is always 100% in 3D mode).
In colour mode, the primary and secondary colours are processed as separate passes, using the grey level of the colour as a power level. The power level is scaled to the raster power setting. Note that red is 100% red, and non 100% green and blue, etc, so 50% red, 0% green/blue is not counted as red, but counts as "grey". 100% red, and 50% green/blue counts as red, half power. This means you can make distinct raster areas of the page so that you do not waste time moving the head over blank space between them.
Using the source code provided under GPL by BT for the Voyager series routers, based on 3.03gpl, we have made a number of customisations. We have custom builds for both VOYAGER210_AA (single port ethernet ADSL router) and VOYAGER2110_AA (four port ethernet and wifi ADSl router). The latest issue includes the following changes from the based gpl code:-
- Several slight changes to ensure reconnect after loss of sync or LCP termination.
- Removal of 30 minute hold off on reconnect after authentication failure (BT special)
- Simple AAISP branding
- Automatic adding input filter to allow DNS servers to talk to router - to work around bug where DNS relay (used by DHCP client) did not work when firewall off
- Addition of extra debug.html web page giving summary stats and line details and BER results. Used for test routers.