├── .gitignore ├── .gitlab-ci.yml ├── Licenses ├── Exceptions ├── README └── gpl-2.0.txt ├── README.md ├── aprsmap_common ├── NEW.txt ├── README ├── favicon.png ├── font-bold.png ├── font-italic.png ├── font-thin.png ├── font.png ├── font10.png ├── font12.png ├── font8.png ├── gm-hamnet.sh ├── gm.sh ├── help.txt ├── hints.txt ├── kiss-th-d72.txt ├── kiss9k6-th-d72.txt ├── kisson.txt ├── maplist ├── maplist-hamnet ├── osm │ ├── WW15MGH.DAC │ ├── ant │ │ ├── AF-24Tx-Hpol.ant │ │ ├── AF-24Tx-Vpol.ant │ │ ├── AF5-Hpol.ant │ │ ├── AF5-Vpol.ant │ │ ├── AG-2G16.ant │ │ ├── AG-2G16U.ant │ │ ├── AG-2G20.ant │ │ ├── AG-5G23.ant │ │ ├── AM-2G15-120-Hpol.ant │ │ ├── AM-2G15-120-Vpol.ant │ │ ├── AM-2G16-90-Hpol.ant │ │ ├── AM-2G16-90-Vpol.ant │ │ ├── AM-3G18-120-Hpol.ant │ │ ├── AM-3G18-120-Vpol.ant │ │ ├── AM-5G16-120-Hpol.ant │ │ ├── AM-5G16-120-Vpol.ant │ │ ├── AM-5G17-90-Hpol.ant │ │ ├── AM-5G17-90-Vpol.ant │ │ ├── AM-5G19-120-Hpol.ant │ │ ├── AM-5G19-120-Vpol.ant │ │ ├── AM-5G20-90-Hpol.ant │ │ ├── AM-5G20-90-Vpol.ant │ │ ├── AM-9G15-90-Hpol.ant │ │ ├── AM-M521-60-AC-Hpol.ant │ │ ├── AM-M521-60-AC-Vpol.ant │ │ ├── AM-M522-45-AC-Hpol.ant │ │ ├── AM-M522-45-AC-Vpol.ant │ │ ├── AMO-2G10-Hpol.ant │ │ ├── AMO-2G10-Vpol.ant │ │ ├── AMO-2G13-Hpol.ant │ │ ├── AMO-2G13-Vpol.ant │ │ ├── AMO-5G10-Hpol.ant │ │ ├── AMO-5G10-Vpol.ant │ │ ├── AMO-5G13-Hpol.ant │ │ ├── AMO-5G13-Vpol.ant │ │ ├── AMY-9M16-Hpol.ant │ │ ├── IsoAP-5-45-H.ant │ │ ├── IsoAP-5-45-V.ant │ │ ├── LOCOM2-Hpol.ant │ │ ├── LOCOM2-Vpol.ant │ │ ├── LOCOM5-Hpol.ant │ │ ├── LOCOM5-Vpol.ant │ │ ├── LOCOM9-Hpol.ant │ │ ├── LOCOM9-Vpol.ant │ │ ├── NB-2G18-Hpol.ant │ │ ├── NB-2G18-Vpol.ant │ │ ├── NB-5G22-Hpol.ant │ │ ├── NB-5G22-Vpol.ant │ │ ├── NB-5G25-Hpol.ant │ │ ├── NB-5G25-Vpol.ant │ │ ├── NBE-M5-16-Hpol.ant │ │ ├── NBE-M5-16-Vpol.ant │ │ ├── NBE-M5-19-Hpol.ant │ │ ├── NBE-M5-19-Vpol.ant │ │ ├── NBE-M5-300-Hpol.ant │ │ ├── NBE-M5-300-Vpol.ant │ │ ├── NBE-M5-400-Hpol.ant │ │ ├── NBE-M5-400-Vpol.ant │ │ ├── NBE-M5AC-500-Hpol.ant │ │ ├── NBE-M5AC-500-Vpol.ant │ │ ├── NBM3-Hpol.ant │ │ ├── NBM3-Vpol.ant │ │ ├── NBM9-Hpol.ant │ │ ├── NBM9-Vpol.ant │ │ ├── NSM2-Hpol.ant │ │ ├── NSM2-Vpol.ant │ │ ├── NSM3-Hpol.ant │ │ ├── NSM3-Vpol.ant │ │ ├── NSM5-Hpol.ant │ │ ├── NSM5-Vpol.ant │ │ ├── NSM9-Hpol.ant │ │ ├── PBM10-Hpol.ant │ │ ├── PBM10-Vpol.ant │ │ ├── PBM3-Hpol.ant │ │ ├── PBM3-Vpol.ant │ │ ├── PBM5-Hpol.ant │ │ ├── PBM5-Vpol.ant │ │ ├── PrismAP-5-30-H.ant │ │ ├── PrismAP-5-30-V.ant │ │ ├── PrismAP-5-45-H.ant │ │ ├── PrismAP-5-45-V.ant │ │ ├── PrismAP-5-60-H.ant │ │ ├── PrismAP-5-60-V.ant │ │ ├── PrismAP-5-90-H.ant │ │ ├── PrismAP-5-90-V.ant │ │ ├── RD-2G23-Hpol.ant │ │ ├── RD-2G23-Vpol.ant │ │ ├── RD-3G25-Hpol.ant │ │ ├── RD-3G25-Vpol.ant │ │ ├── RD-5G30-Hpol.ant │ │ ├── RD-5G30-Vpol.ant │ │ ├── RD-5G31-AC-Hpol.ant │ │ ├── RD-5G31-AC-Vpol.ant │ │ ├── RD-5G34-Hpol.ant │ │ └── RD-5G34-Vpol.ant │ └── poi │ │ ├── alps.txt │ │ ├── bc.txt │ │ ├── fone.txt │ │ ├── hamnet.txt │ │ ├── sota.csv │ │ ├── towns.csv │ │ └── webcam.csv └── symbols.png ├── ci └── deploy.sh ├── doc ├── afsk.svg ├── box.gif ├── box60.gif ├── raspberry-gpio.png └── raspberry-pi-rev2-gpio-pinout.jpg ├── dxlAPRS_common ├── NEW.txt ├── sonde2aprs.txt ├── udpbox.txt └── www │ ├── calllink.txt │ ├── favicon.ico │ ├── icon │ ├── 102.gif │ ├── 103.gif │ ├── 104.gif │ ├── 105.gif │ ├── 106.gif │ ├── 107.gif │ ├── 108.gif │ ├── 109.gif │ ├── 110.gif │ ├── 111.gif │ ├── 112.gif │ ├── 113.gif │ ├── 114.gif │ ├── 115.gif │ ├── 116.gif │ ├── 117.gif │ ├── 118.gif │ ├── 119.gif │ ├── 120.gif │ ├── 121.gif │ ├── 122.gif │ ├── 123.gif │ ├── 124.gif │ ├── 125.gif │ ├── 126.gif │ ├── 127.gif │ ├── 128.gif │ ├── 129.gif │ ├── 130.gif │ ├── 131.gif │ ├── 132.gif │ ├── 133.gif │ ├── 134.gif │ ├── 135.gif │ ├── 136.gif │ ├── 137.gif │ ├── 138.gif │ ├── 139.gif │ ├── 140.gif │ ├── 141.gif │ ├── 142.gif │ ├── 143.gif │ ├── 144.gif │ ├── 145.gif │ ├── 146.gif │ ├── 147.gif │ ├── 148.gif │ ├── 149.gif │ ├── 150.gif │ ├── 151.gif │ ├── 152.gif │ ├── 153.gif │ ├── 154.gif │ ├── 155.gif │ ├── 156.gif │ ├── 157.gif │ ├── 158.gif │ ├── 159.gif │ ├── 160.gif │ ├── 161.gif │ ├── 162.gif │ ├── 163.gif │ ├── 164.gif │ ├── 165.gif │ ├── 166.gif │ ├── 167.gif │ ├── 168.gif │ ├── 169.gif │ ├── 170.gif │ ├── 171.gif │ ├── 172.gif │ ├── 173.gif │ ├── 174.gif │ ├── 175.gif │ ├── 176.gif │ ├── 177.gif │ ├── 178.gif │ ├── 179.gif │ ├── 180.gif │ ├── 181.gif │ ├── 182.gif │ ├── 183.gif │ ├── 184.gif │ ├── 185.gif │ ├── 186.gif │ ├── 187.gif │ ├── 188.gif │ ├── 189.gif │ ├── 190.gif │ ├── 191.gif │ ├── 192.gif │ ├── 193.gif │ ├── 194.gif │ ├── 195.gif │ ├── 200.gif │ ├── 201.gif │ ├── 202.gif │ ├── 203.gif │ ├── 204.gif │ ├── 205.gif │ ├── 206.gif │ ├── 207.gif │ ├── 208.gif │ ├── 209.gif │ ├── 210.gif │ ├── 211.gif │ ├── 212.gif │ ├── 213.gif │ ├── 214.gif │ ├── 215.gif │ ├── 216.gif │ ├── 217.gif │ ├── 218.gif │ ├── 219.gif │ ├── 220.gif │ ├── 222.gif │ ├── 223.gif │ ├── 224.gif │ ├── 225.gif │ ├── 226.gif │ ├── 227.gif │ ├── 228.gif │ ├── 229.gif │ ├── 230.gif │ ├── 231.gif │ ├── 232.gif │ ├── 233.gif │ ├── 234.gif │ ├── 235.gif │ ├── 236.gif │ ├── 237.gif │ ├── 238.gif │ ├── 239.gif │ ├── 240.gif │ ├── 241.gif │ ├── 242.gif │ ├── 243.gif │ ├── 244.gif │ ├── 245.gif │ ├── 246.gif │ ├── 247.gif │ ├── 248.gif │ ├── 249.gif │ ├── 250.gif │ ├── 251.gif │ ├── 252.gif │ ├── 253.gif │ ├── 254.gif │ ├── 255.gif │ ├── 256.gif │ ├── 257.gif │ ├── 258.gif │ ├── 259.gif │ ├── 260.gif │ ├── 261.gif │ ├── 262.gif │ ├── 263.gif │ ├── 264.gif │ ├── 265.gif │ ├── 266.gif │ ├── 267.gif │ ├── 268.gif │ ├── 269.gif │ ├── 270.gif │ ├── 271.gif │ ├── 272.gif │ ├── 273.gif │ ├── 274.gif │ ├── 275.gif │ ├── 276.gif │ ├── 277.gif │ ├── 278.gif │ ├── 279.gif │ ├── 280.gif │ ├── 281.gif │ ├── 282.gif │ ├── 283.gif │ ├── 284.gif │ ├── 285.gif │ ├── 286.gif │ ├── 287.gif │ ├── 288.gif │ ├── 289.gif │ ├── 290.gif │ ├── 291.gif │ ├── 293.gif │ ├── 294.gif │ └── 295.gif │ ├── index.html │ ├── info.html │ ├── maplink.txt │ ├── objectlink.txt │ ├── serverlink.txt │ └── style.css ├── fftw-3.3.10.tar.gz ├── getNEWtxt.sh ├── getSRC1.sh ├── jpegsrc.v9.tar.gz ├── libpng-1.5.18.tar.gz ├── libpng-1.6.3.tgz ├── license-add.sh ├── license-exclude.txt ├── license-header.txt ├── scripts ├── packCurrent.sh └── updateDXLaprs ├── src ├── Execlogin.c ├── Execlogin.h ├── Makefile ├── README ├── Select.c ├── Select.h ├── X2C.h ├── adsb2aprs.c ├── afskmodem.c ├── afskmodemptt.c ├── afskmodemptt.h ├── aprsdecode.c ├── aprsdecode.h ├── aprsmap.c ├── aprspos.c ├── aprspos.h ├── aprsstr.c ├── aprsstr.h ├── aprstat.c ├── aprstat.h ├── aprstext.c ├── aprstext.h ├── basictypes.h ├── beep.c ├── beep.h ├── cleanup.c ├── cleanup.h ├── cmslogin.c ├── complex.c ├── complex.h ├── constants.h ├── deflate.c ├── deflate.h ├── downsample.c ├── fft.c ├── fft.h ├── fftw.c ├── fftw.h ├── fmrepeater.c ├── frameio.c ├── frameio.h ├── fsk4rx.c ├── geodesy.c ├── geodesy.h ├── gnss_error.h ├── gnss_types.h ├── gps.c ├── gps.h ├── gps2aprs.c ├── gps2digipos.c ├── gpspos.c ├── gpspos.h ├── hostint.c ├── imagetext.c ├── imagetext.h ├── jpgdec.c ├── jpgdec.h ├── l2.c ├── l2.h ├── l2cat.c ├── lib_aarch64 │ ├── build_aarch64_fftw3 │ ├── build_aarch64_libjpeg │ ├── build_aarch64_libpng │ ├── build_aarch64_zlib │ ├── fftw3.h │ ├── jconfig.h │ ├── jerror.h │ ├── jmorecfg.h │ ├── jpeglib.h │ ├── libfftw3.a │ ├── libjpeg.a │ ├── libpng.a │ ├── libpng16.a │ ├── libz.a │ ├── png.h │ ├── pngconf.h │ ├── pnglibconf.h │ ├── zconf.h │ └── zlib.h ├── lib_armv6 │ ├── X11 │ │ ├── X.h │ │ ├── Xfuncproto.h │ │ ├── Xlib.h │ │ ├── Xosdefs.h │ │ ├── Xutil.h │ │ ├── keysym.h │ │ └── keysymdef.h │ ├── build_armv6_fftw3 │ ├── crossARMv6-libpng │ ├── crossARMv6-libpng15 │ ├── crossARMv6-zlib │ ├── fftw3.h │ ├── jconfig.h │ ├── jerror.h │ ├── jmorecfg.h │ ├── jpeglib.h │ ├── libX11.so │ ├── libX11.so.6 │ ├── libX11.so.6.3.0 │ ├── libXau.so │ ├── libXau.so.6 │ ├── libXau.so.6.0.0 │ ├── libXdmcp.so │ ├── libXdmcp.so.6 │ ├── libXdmcp.so.6.0.0 │ ├── libXext.so │ ├── libXext.so.6 │ ├── libXext.so.6.4.0 │ ├── libfftw3.a │ ├── libjpeg.a │ ├── libpng15 │ │ ├── libpng.a │ │ ├── libpng15.a │ │ ├── libpng15 │ │ │ ├── png.h │ │ │ ├── pngconf.h │ │ │ └── pnglibconf.h │ │ ├── png.h │ │ ├── pngconf.h │ │ └── pnglibconf.h │ ├── libpng16 │ │ ├── libpng.a │ │ ├── png.h │ │ ├── pngconf.h │ │ └── pnglibconf.h │ ├── libxcb.so │ ├── libxcb.so.1 │ ├── libxcb.so.1.1.0 │ └── libz.a ├── lib_armv7hf │ ├── X11 │ │ ├── X.h │ │ ├── Xfuncproto.h │ │ ├── Xlib.h │ │ ├── Xosdefs.h │ │ ├── Xutil.h │ │ ├── keysym.h │ │ └── keysymdef.h │ ├── build_armv7hf_fftw3 │ ├── crossARMv7hf-libjpeg │ ├── crossARMv7hf-libpng │ ├── crossARMv7hf-zlib │ ├── fftw3.h │ ├── jconfig.h │ ├── jerror.h │ ├── jmorecfg.h │ ├── jpeglib.h │ ├── libX11.so │ ├── libX11.so.6 │ ├── libX11.so.6.3.0 │ ├── libXau.so │ ├── libXau.so.6 │ ├── libXau.so.6.0.0 │ ├── libXdmcp.so │ ├── libXdmcp.so.6 │ ├── libXdmcp.so.6.0.0 │ ├── libXext.so │ ├── libXext.so.6 │ ├── libXext.so.6.4.0 │ ├── libfftw3.a │ ├── libjpeg.a │ ├── libjpeg.la │ ├── libjpeg.so │ ├── libjpeg.so.9 │ ├── libjpeg.so.9.0.0 │ ├── libpng.a │ ├── libpng16.a │ ├── libpng16 │ │ ├── png.h │ │ ├── pngconf.h │ │ └── pnglibconf.h │ ├── libxcb.so │ ├── libxcb.so.1 │ ├── libxcb.so.1.1.0 │ ├── libz.a │ ├── png.h │ ├── pngconf.h │ └── pnglibconf.h ├── lib_x86_32 │ ├── build_x86-32_fftw3 │ ├── fftw3.h │ └── libfftw3.a ├── lib_x86_64 │ ├── build_x86-64_fftw3 │ ├── fftw3.h │ └── libfftw3.a ├── libsrtm.c ├── libsrtm.h ├── lorarx.c ├── loratracker │ ├── loratracker.c │ └── loratracker.ino ├── loratx.c ├── maptool.c ├── maptool.h ├── navigation.c ├── navigation.h ├── osi.c ├── osi.h ├── osic.c ├── osic.h ├── panorama.c ├── pastewrapper.c ├── pastewrapper.h ├── pluto.c ├── plutoio.c ├── plutoio.h ├── plutoiq.c ├── pngread.c ├── pngread.h ├── pngwrite.c ├── pngwrite.h ├── pngwritepalette.c ├── pngwritepalette.h ├── profile.c ├── python-scripts │ ├── loradec.py │ ├── sendjwx.py │ ├── sendwx.py │ └── wx.py ├── ra02.c ├── ra02waterfall.c ├── radio.c ├── radiorange.c ├── rinex.c ├── rinex.h ├── rsc.c ├── rsc.h ├── rsc_decode.c ├── sdr.c ├── sdr.h ├── sdrtest.c ├── sdrtx.c ├── sem.c ├── sem.h ├── sondeaprs.c ├── sondeaprs.h ├── sondemod.c ├── sondeudp.c ├── soundctl.c ├── soundctl.h ├── srtmtag.c ├── tcp.c ├── tcp.h ├── tcpb.c ├── tcpb.h ├── time_conversion.c ├── time_conversion.h ├── ttytee.c ├── udp.c ├── udp.h ├── udpbox.c ├── udpflex.c ├── udpgate4.c ├── udphub.c ├── udprfnet.c ├── url.txt ├── useri.c ├── useri.h ├── waterfall.c ├── waterfall3.c ├── xosi.c ├── xosi.h ├── xosic.h ├── yuma.c └── yuma.h ├── tracker ├── .gitignore ├── aprs.asm ├── buildMC ├── dxlTracker.png ├── eeprom.txt ├── emu ├── flashMCU ├── gps1.sh ├── makefile ├── pack └── tinyemu └── zlib-1.2.8.tar.gz /.gitignore: -------------------------------------------------------------------------------- 1 | src/.cproject 2 | src/.project 3 | src/adsb2aprs 4 | src/afskmodem 5 | src/udpbox 6 | src/udpgate4 7 | src/udphub 8 | src/udpflex 9 | src/gps2aprs 10 | src/aprsmap 11 | src/aprsmap-x86 12 | src/aprsmap-x86_64 13 | src/udprfnet 14 | src/gps2digipos 15 | src/sondemod 16 | src/sondeudp 17 | src/sdrtst 18 | src/sdrradio 19 | src/l2cat 20 | src/profile 21 | src/radiorange 22 | src/.settings 23 | xds/C/C/*.o 24 | xds/lib/C/libxds.a 25 | zlib-* 26 | libpng-* 27 | src/aprsmap-tce 28 | src/lib_armv6/pkgconfig/ 29 | cpy 30 | dxlAPRS_*.tgz 31 | *.patch 32 | src/arm-linux-* 33 | buildAll.sh 34 | intel-debug.tgz 35 | out-*/ 36 | _libbuild/* 37 | 38 | -------------------------------------------------------------------------------- /Licenses/Exceptions: -------------------------------------------------------------------------------- 1 | GPL License Exception: 2 | 3 | - there currenty are no exclusions 4 | -------------------------------------------------------------------------------- /Licenses/README: -------------------------------------------------------------------------------- 1 | dxlAPRS is Free Software toolchain to operate APRS(r). The toolchain contains: 2 | - afskmodem soundmodem for 300-19200bd afsk/fsk modulation, 2 channels 3 | - aprsmap powerful aprs-viewer using open street map 4 | - gps2aprs aprs-tracker using connected gps-mouse 5 | - gps2digipos generate pos-beacon for digi/igate using connected gps 6 | - sondemod decode data produced by a RS92 wx-sonde, received with sondeudp 7 | - sondeudp soundmodem for RS92 wx-sonde 8 | - udpbox intelligent aprs-digipeater 9 | - udpflex interface between serial RMNC/KISS and AXUDP 10 | - udpgate4 aprs-igate 11 | - udphub L2-switch for AX25, one AXUDP port from a digipeater interfaced 12 | to many users 13 | - udprfnet 14 | 15 | The whole toolchain is copyrighted by Christian Rabler (oe5dxl) and many others 16 | who contributed code (see the actual source code and the git commit messages 17 | for details). You can redistribute dxlAPRS toolchain and/or modify it under 18 | the terms of version 2 of the GNU General Public License as published by the 19 | Free Software Foundation. Most of it can also be distributed, at your option, 20 | under any later version of the GNU General Public License -- see individual 21 | files for exceptions. 22 | 23 | Also note that the GPL and the other licenses are copyrighted by the Free 24 | Software Foundation and other organizations, but the instance of code that they 25 | refer to (the dxlAPRS toolchain source code) is copyrighted by me and others 26 | who actually wrote it. 27 | -- Christian Rabler (oe5dxl) 28 | 29 | Like many other projects, dxlAPRS toolchain has a tradition of including big 30 | blocks of License headers in all files. This not only blows up the source code 31 | with mostly redundant information, but also makes it very difficult to generate 32 | License Clearing Reports. An additional problem is that even the same licenses 33 | are referred to by a number of slightly varying text blocks (full, abbreviated, 34 | different indentation, line wrapping and/or white space, with obsolete address 35 | information, ...) which makes automatic processing a nightmare. 36 | 37 | To make this easier, such license headers in the source files will be replaced 38 | with a single line reference to Unique License Identifiers as defined by the 39 | Linux Foundation's SPDX project [1]. For example, in a source file the full 40 | "GPL v2.0 or later" header text will be replaced by a single line: 41 | 42 | SPDX-License-Identifier: GPL-2.0+ 43 | 44 | Ideally, the license terms of all files in the source tree should be defined by 45 | such License Identifiers; in no case a file can contain more than one such 46 | License Identifier list. 47 | 48 | If a "SPDX-License-Identifier:" line references more than one Unique License 49 | Identifier, then this means that the respective file can be used under the 50 | terms of either of these licenses, i. e. with 51 | 52 | SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause 53 | 54 | you can chose between GPL-2.0+ and BSD-3-Clause licensing. 55 | 56 | We use the SPDX Unique License Identifiers here; these are available 57 | at [2]. 58 | 59 | [1] http://spdx.org/ 60 | [2] http://spdx.org/licenses/ 61 | 62 | Full name SPDX Identifier OSI Approved File name URI 63 | ======================================================================================================================================= 64 | GNU General Public License v2.0 only GPL-2.0 Y gpl-2.0.txt http://www.gnu.org/licenses/gpl-2.0.txt 65 | GNU General Public License v2.0 or later GPL-2.0+ Y gpl-2.0.txt http://www.gnu.org/licenses/gpl-2.0.txt 66 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | dxlAPRS is Free Software toolchain to operate APRS(r). The toolchain contains: 2 | - afskmodem soundmodem for 300-19200bd afsk/fsk modulation, 2 channels 3 | - aprsmap powerful aprs-viewer using open street map 4 | - gps2aprs aprs-tracker using connected gps-mouse 5 | - gps2digipos generate pos-beacon for digi/igate using connected gps 6 | - sondemod decode data produced by a RS92, SRC-C34, DFM06, RS41 wx-sonde, received with sondeudp 7 | - sondeudp soundmodem for RS92 wx-sonde 8 | - udpbox intelligent aprs-digipeater 9 | - udpflex interface between serial RMNC/KISS and AXUDP 10 | - udpgate4 aprs-igate 11 | - udphub L2-switch for AX25, one AXUDP port from a digipeater interfaced 12 | to many users 13 | - udprfnet 14 | 15 | For more Details see License/README 16 | -------------------------------------------------------------------------------- /aprsmap_common/NEW.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/NEW.txt -------------------------------------------------------------------------------- /aprsmap_common/README: -------------------------------------------------------------------------------- 1 | Filename Place to be what it does ... 2 | ================================================================ 3 | favicon.png where the executeable is icon for taskbar 4 | font.png -----------""----------- font for all text within aprsmap 5 | symbols.png -----------""----------- symbols within aprsmap 6 | hints.txt -----------""----------- info about a button does hover 7 | gm.sh -----------""----------- shell script for downloading osm-maps 8 | poi.txt osm/ point of interest file 9 | help.txt where the executeable is interactive help 10 | NEW.txt whereever you want version-history of aprsmap 11 | 12 | 13 | -------------------------------------------------------------------------------- /aprsmap_common/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/favicon.png -------------------------------------------------------------------------------- /aprsmap_common/font-bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/font-bold.png -------------------------------------------------------------------------------- /aprsmap_common/font-italic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/font-italic.png -------------------------------------------------------------------------------- /aprsmap_common/font-thin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/font-thin.png -------------------------------------------------------------------------------- /aprsmap_common/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/font.png -------------------------------------------------------------------------------- /aprsmap_common/font10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/font10.png -------------------------------------------------------------------------------- /aprsmap_common/font12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/font12.png -------------------------------------------------------------------------------- /aprsmap_common/font8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/font8.png -------------------------------------------------------------------------------- /aprsmap_common/gm-hamnet.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # assumes script is called via aprsmap in the aprsmap directory 3 | # this script calls gm.sh with hamnet-specific map tile urls 4 | # 5 | # this script is selected by using the aprsmap.cfg entry: 6 | # Get Map Program|1|gm-hamnet.sh 7 | 8 | ./gm.sh $1 $2 maplist-hamnet 9 | -------------------------------------------------------------------------------- /aprsmap_common/kiss-th-d72.txt: -------------------------------------------------------------------------------- 1 | KISS ON 2 | RESTART 3 | -------------------------------------------------------------------------------- /aprsmap_common/kiss9k6-th-d72.txt: -------------------------------------------------------------------------------- 1 | KISS ON 2 | HBAUD 9600 3 | RESTART 4 | -------------------------------------------------------------------------------- /aprsmap_common/kisson.txt: -------------------------------------------------------------------------------- 1 | 2 | PPERSIST OFF 3 | DWAIT 0 4 | KISS ON 5 | RESTART 6 | -------------------------------------------------------------------------------- /aprsmap_common/maplist: -------------------------------------------------------------------------------- 1 | # Map Names Order Format Tile Server URL API Key Comments 2 | # ------------- ------- ------- ----------------------------------------------- ----------------------------------------------- -------------------------------------------- 3 | tiles zxy png https://tile.openstreetmap.org OSM Carto (Standard) 4 | tiles_de zxy png https://tile.openstreetmap.de OSM German style 5 | tiles_fr zxy png https://a.tile.openstreetmap.fr/osmfr OSM French style 6 | tiles_humanitarian zxy png https://a.tile.openstreetmap.fr/hot OSM Humanitarian style 7 | tiles_topo zxy png https://tile.opentopomap.org OpenTopoMap 8 | tiles_topplus zyx png https://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web/default/WEBMERCATOR BKG TopPlusOpen (EMEA detailed) 9 | tiles_esristr zyx jpg https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile ArcGIS ESRI World Street Map 10 | tiles_esrisat zyx jpg https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile ArcGIS ESRI Satellite World Imagery 11 | tiles_transport zxy png https://tile.thunderforest.com/transport Thunderforest Transport (requires API key) 12 | tiles_landscape zxy png https://tile.thunderforest.com/landscape Thunderforest Landscape (requires API key) 13 | tiles_outdoors zxy png https://tile.thunderforest.com/outdoors Thunderforest Outdoors (requires API key) 14 | tiles_cycle zxy png https://tile.thunderforest.com/cycle Thunderforest OpenCycleMap (requires API key) 15 | tiles_mapboxsat zxy jpg https://api.mapbox.com/v4/mapbox.satellite Mapbox Satellite (requires access token) 16 | xzr_tiles zxy png http://osm.oe2xzr.ampr.at/osm/tiles OSM tiles via Hamnet oe2xzr tile server 17 | xzr_tiles_topo zxy png http://osm.oe2xzr.ampr.at/osm/tiles_topo Topo tiles via Hamnet oe2xzr tile server 18 | xzr_tiles_cyclemap zxy png http://osm.oe2xzr.ampr.at/osm/tiles_cyclemap CycleMap tiles via Hamnet oe2xzr tile server 19 | xzr_tiles_sat zxy jpg http://osm.oe2xzr.ampr.at/osm/tiles_sat Satellite tiles via Hamnet oe2xzr tile server 20 | 21 | # Map Names - these names match "Map Names" entries defined in aprsmap.cfg 22 | # Order - map tile structure used by tile server MUST be one of the following: 23 | # zxy = {z}/{x}/{y} - the order used by most tile servers 24 | # zyx = {z}/{y}/{x} - seen used by ArcGIS and BKG tile servers 25 | # Format - this is the format & file extension of the downloaded map tile 26 | # Tile Server URL - in most cases, all mirrors actually resolve to the same IP address or resolve to a closest geo server 27 | # API Key - this optional entry is used to define the access key required by some tile servers and MUST have the format: 28 | # ?apikey= 29 | # ?access_token= 30 | # Comments - optional 31 | 32 | ############################################################################## 33 | 34 | # The following "Map Names" entries can be simply copied and pasted into 35 | # aprsmap.cfg replacing the existing default "Map Names" entries that were 36 | # initially created by aprsmap in the configuration file. 37 | # 38 | # The suggested gamma and brightness values below may also be modifed and 39 | # tested within aprsmap to suit your preference. 40 | # 41 | # You may rearrange the list of maps below in any order you desire in 42 | # the aprsmap.cfg configuration file. The first "Map Names" entry in the list 43 | # will be the default map initially displayed by aprsmap. Additionally, 44 | # the first three "Map Names" in the list below will be assigned to shortcut 45 | # keys <7>, <8>, and <9>. 46 | 47 | Map Names|1|tiles 0.25 25 48 | Map Names|1|tiles_de 0.25 25 49 | Map Names|1|tiles_fr 0.25 25 50 | Map Names|1|tiles_humanitarian 0.25 25 51 | Map Names|1|tiles_topo 0.25 25 52 | Map Names|1|tiles_topplus 0.25 25 53 | Map Names|1|tiles_esristr 0.25 25 54 | Map Names|1|tiles_esrisat 0.50 50 55 | Map Names|1|tiles_transport 0.25 25 56 | Map Names|1|tiles_landscape 0.25 25 57 | Map Names|1|tiles_outdoors 0.25 25 58 | Map Names|1|tiles_cycle 0.25 25 59 | Map Names|1|tiles_mapboxsat 0.50 50 60 | -------------------------------------------------------------------------------- /aprsmap_common/maplist-hamnet: -------------------------------------------------------------------------------- 1 | # Map Names Order Format Tile Server URL API Key Comments 2 | # ------------- ------- ------- ----------------------------------------------- ----------------------------------------------- -------------------------------------------- 3 | tiles zxy png http://osm.oe2xzr.ampr.at/osm/tiles OSM tiles via Hamnet oe2xzr tile server 4 | tiles_topo zxy png http://osm.oe2xzr.ampr.at/osm/tiles_topo Topo tiles via Hamnet oe2xzr tile server 5 | tiles_cyclemap zxy png http://osm.oe2xzr.ampr.at/osm/tiles_cyclemap CycleMap tiles via Hamnet oe2xzr tile server 6 | tiles_sat zxy jpg http://osm.oe2xzr.ampr.at/osm/tiles_sat Satellite tiles via Hamnet oe2xzr tile server 7 | 8 | # Map Names - these names match "Map Names" entries defined in aprsmap.cfg 9 | # Order - map tile structure used by tile server MUST be one of the following: 10 | # zxy = {z}/{x}/{y} - the order used by most tile servers 11 | # zyx = {z}/{y}/{x} - seen used by ArcGIS and BKG tile servers 12 | # Format - this is the format & file extension of the downloaded map tile 13 | # Tile Server URL - in most cases, all mirrors actually resolve to the same IP address or resolve to a closest geo server 14 | # API Key - this optional entry is used to define the access key required by some tile servers and MUST have the format: 15 | # ?apikey= 16 | # ?access_token= 17 | # Comments - optional 18 | 19 | ############################################################################## 20 | 21 | # The following "Map Names" entries can be simply copied and pasted into 22 | # aprsmap.cfg replacing the existing default "Map Names" entries that were 23 | # initially created by aprsmap in the configuration file. 24 | # 25 | # The suggested gamma and brightness values below may also be modifed and 26 | # tested within aprsmap to suit your preference. 27 | # 28 | # You may rearrange the list of maps below in any order you desire in 29 | # the aprsmap.cfg configuration file. The first "Map Names" entry in the list 30 | # will be the default map initially displayed by aprsmap. Additionally, 31 | # the first three "Map Names" in the list below will be assigned to shortcut 32 | # keys <7>, <8>, and <9>. 33 | 34 | Map Names|1|tiles 0.25 25 35 | Map Names|1|tiles_topo 0.25 25 36 | Map Names|1|tiles_cyclemap 0.25 25 37 | Map Names|1|tiles_sat 0.45 100 38 | -------------------------------------------------------------------------------- /aprsmap_common/osm/WW15MGH.DAC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/osm/WW15MGH.DAC -------------------------------------------------------------------------------- /aprsmap_common/osm/poi/alps.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/osm/poi/alps.txt -------------------------------------------------------------------------------- /aprsmap_common/osm/poi/bc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/osm/poi/bc.txt -------------------------------------------------------------------------------- /aprsmap_common/osm/poi/sota.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/osm/poi/sota.csv -------------------------------------------------------------------------------- /aprsmap_common/symbols.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/aprsmap_common/symbols.png -------------------------------------------------------------------------------- /ci/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | SSH_PORT="22" 3 | SSH_HOST="dxlaprs@hamspirit.at" 4 | SSH_PATH="/home/dxlaprs/public_html" 5 | 6 | VER=`echo $CI_BUILD_REF | cut -b -7` 7 | ARCHLIST=`ls | grep out-` 8 | 9 | # create branch directory 10 | BRANCHD=$SSH_PATH/branch-$CI_COMMIT_REF_NAME 11 | ssh -p $SSH_PORT $SSH_HOST \ 12 | "mkdir -p $BRANCHD" 13 | 14 | for i in $ARCHLIST; do 15 | OUTNAME=`echo $i | cut -f 2 -d '-'` 16 | echo ----------------------------------------------------------- 17 | echo process $i ... 18 | # clean up artifacts 19 | rm -f $i/*.o 20 | rm -f $i/*.tgz 21 | cd $i 22 | # tgz the build output 23 | tar -czf \ 24 | dxlAPRS_$OUTNAME-$VER.tgz \ 25 | * ../aprsmap_common/* ../dxlAPRS_common/* ../scripts/* 26 | SSH_DEST=$SSH_HOST:$SSH_PATH/branch-$CI_COMMIT_REF_NAME 27 | # copy tgz to server 28 | echo "copy dxlAPRS_$OUTNAME-$VER.tgz to $SSH_DEST" 29 | scp -P $SSH_PORT dxlAPRS_$OUTNAME-$VER.tgz $SSH_DEST 30 | # create "current" links 31 | ssh -p $SSH_PORT $SSH_HOST \ 32 | "rm -f $BRANCHD/dxlAPRS_$OUTNAME-current.tgz" 33 | ssh -p $SSH_PORT $SSH_HOST \ 34 | "ln -s $BRANCHD/dxlAPRS_$OUTNAME-$VER.tgz $BRANCHD/dxlAPRS_$OUTNAME-current.tgz" 35 | cd .. 36 | # on master branch we create "current" links on html-root 37 | # for compatibility reasons 38 | if [ "$CI_COMMIT_REF_NAME" = "master" ]; then 39 | ssh -p $SSH_PORT $SSH_HOST \ 40 | "rm -f $SSH_PATH/dxlAPRS_$OUTNAME-current.tgz" 41 | ssh -p $SSH_PORT $SSH_HOST \ 42 | "ln -s $BRANCHD/dxlAPRS_$OUTNAME-$VER.tgz $SSH_PATH/dxlAPRS_$OUTNAME-current.tgz" 43 | fi 44 | done 45 | 46 | echo "source code from : $CI_PROJECT_URL" > revInfo-$VER.txt 47 | echo "commit ID : $CI_BUILD_REF" >> revInfo-$VER.txt 48 | echo "title : $CI_COMMIT_TITLE" >> revInfo-$VER.txt 49 | echo $CI_COMMIT_DESCRIPTION >> revInfo-$VER.txt 50 | echo $CI_COMMIT_MESSAGE >> revInfo-$VER.txt 51 | scp -P $SSH_PORT revInfo-$VER.txt $SSH_DEST 52 | scp -P $SSH_PORT revInfo-$VER.txt $SSH_DEST/revInfo_current.txt 53 | 54 | -------------------------------------------------------------------------------- /doc/box.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/doc/box.gif -------------------------------------------------------------------------------- /doc/box60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/doc/box60.gif -------------------------------------------------------------------------------- /doc/raspberry-gpio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/doc/raspberry-gpio.png -------------------------------------------------------------------------------- /doc/raspberry-pi-rev2-gpio-pinout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/doc/raspberry-pi-rev2-gpio-pinout.jpg -------------------------------------------------------------------------------- /dxlAPRS_common/www/calllink.txt: -------------------------------------------------------------------------------- 1 | "http://www.findu.com/cgi-bin/raw.cgi?call=$c" target="_blank" 2 | "http://www.db0anf.de/app/aprs/stations/basic?call=$c" target="_blank" 3 | "http://aprs.fi/?c=raw&call=$c&limit=50&view=normal" target="_blank" 4 | "http://aprs.fi/?c=raw&call=$c&limit=5&view=decoded" target="_blank" 5 | -------------------------------------------------------------------------------- /dxlAPRS_common/www/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/favicon.ico -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/102.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/102.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/103.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/103.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/104.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/104.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/105.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/105.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/106.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/106.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/107.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/107.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/108.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/108.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/109.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/109.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/110.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/110.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/111.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/111.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/112.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/112.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/113.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/113.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/114.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/114.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/115.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/115.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/116.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/116.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/117.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/117.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/118.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/118.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/119.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/119.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/120.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/120.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/121.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/121.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/122.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/122.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/123.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/123.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/124.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/124.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/125.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/125.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/126.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/126.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/127.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/127.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/128.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/128.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/129.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/129.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/130.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/130.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/131.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/131.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/132.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/132.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/133.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/133.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/134.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/134.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/135.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/135.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/136.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/136.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/137.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/137.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/138.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/138.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/139.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/139.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/140.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/140.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/141.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/141.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/142.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/142.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/143.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/143.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/144.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/144.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/145.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/145.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/146.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/146.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/147.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/147.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/148.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/148.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/149.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/149.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/150.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/150.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/151.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/151.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/152.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/152.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/153.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/153.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/154.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/154.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/155.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/155.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/156.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/156.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/157.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/157.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/158.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/158.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/159.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/159.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/160.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/160.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/161.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/161.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/162.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/162.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/163.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/163.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/164.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/164.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/165.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/165.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/166.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/166.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/167.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/167.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/168.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/168.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/169.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/169.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/170.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/170.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/171.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/171.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/172.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/172.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/173.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/173.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/174.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/174.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/175.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/175.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/176.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/176.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/177.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/177.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/178.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/178.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/179.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/179.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/180.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/180.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/181.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/181.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/182.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/182.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/183.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/183.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/184.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/184.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/185.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/185.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/186.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/186.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/187.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/187.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/188.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/188.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/189.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/189.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/190.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/190.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/191.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/191.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/192.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/192.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/193.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/193.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/194.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/194.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/195.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/195.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/200.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/200.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/201.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/201.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/202.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/202.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/203.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/203.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/204.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/204.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/205.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/205.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/206.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/206.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/207.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/207.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/208.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/208.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/209.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/209.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/210.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/210.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/211.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/211.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/212.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/212.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/213.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/213.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/214.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/214.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/215.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/215.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/216.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/216.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/217.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/217.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/218.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/218.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/219.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/219.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/220.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/220.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/222.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/222.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/223.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/223.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/224.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/224.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/225.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/225.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/226.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/226.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/227.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/227.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/228.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/228.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/229.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/229.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/230.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/230.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/231.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/231.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/232.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/232.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/233.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/233.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/234.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/234.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/235.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/235.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/236.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/236.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/237.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/237.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/238.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/238.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/239.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/239.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/240.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/240.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/241.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/241.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/242.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/242.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/243.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/243.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/244.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/244.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/245.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/245.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/246.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/246.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/247.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/247.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/248.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/248.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/249.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/249.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/250.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/250.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/251.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/251.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/252.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/252.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/253.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/253.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/254.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/254.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/255.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/255.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/256.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/256.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/257.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/257.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/258.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/258.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/259.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/259.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/260.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/260.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/261.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/261.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/262.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/262.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/263.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/263.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/264.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/264.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/265.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/265.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/266.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/266.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/267.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/267.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/268.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/268.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/269.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/269.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/270.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/270.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/271.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/271.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/272.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/272.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/273.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/273.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/274.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/274.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/275.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/275.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/276.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/276.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/277.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/277.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/278.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/278.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/279.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/279.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/280.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/280.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/281.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/281.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/282.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/282.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/283.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/283.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/284.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/284.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/285.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/285.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/286.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/286.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/287.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/287.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/288.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/288.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/289.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/289.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/290.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/290.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/291.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/291.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/293.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/293.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/294.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/294.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/icon/295.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/dxlAPRS_common/www/icon/295.gif -------------------------------------------------------------------------------- /dxlAPRS_common/www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Igate Index 6 | 7 | 8 |

Igate Tools

9 |
10 |

11 | MH 12 | Messages 13 | Connects 14 | Info 15 |

16 |
17 | MH 24h 18 | Map 24h 19 | Map 0.5h 20 | 21 | 22 | -------------------------------------------------------------------------------- /dxlAPRS_common/www/info.html: -------------------------------------------------------------------------------- 1 | test info 2 | -------------------------------------------------------------------------------- /dxlAPRS_common/www/maplink.txt: -------------------------------------------------------------------------------- 1 | "https://www.openstreetmap.org/?mlat=$B&mlon=$L#map=14/$B/$L" target="_blank" 2 | -------------------------------------------------------------------------------- /dxlAPRS_common/www/objectlink.txt: -------------------------------------------------------------------------------- 1 | "https://radiosondy.info/sonde.php?sondenumber=$c" target="_blank" 2 | -------------------------------------------------------------------------------- /dxlAPRS_common/www/serverlink.txt: -------------------------------------------------------------------------------- 1 | http://$c:14501 target="_blank" 2 | -------------------------------------------------------------------------------- /fftw-3.3.10.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/fftw-3.3.10.tar.gz -------------------------------------------------------------------------------- /getNEWtxt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm aprsmap_common/*.txt 4 | rm dxlARPS_common/*.txt 5 | 6 | wget http://oe5dxl.ampr.at/aprs/NEW.txt -O dxlAPRS_common/NEW.txt 7 | wget http://oe5dxl.ampr.at/wettersonde/linux/sonde2aprs.txt -O dxlAPRS_common/sonde2aprs.txt 8 | wget http://oe5dxl.ampr.at/aprs/osm-mapper/bin/NEW.txt -O aprsmap_common/NEW.txt 9 | wget http://oe5dxl.ampr.at/aprs/udpbox.txt -O dxlAPRS_common/udpbox.txt 10 | wget http://oe5dxl.ampr.at/aprs/osm-mapper/bin/hints.txt -O aprsmap_common/hints.txt 11 | wget http://oe5dxl.ampr.at/aprs/osm-mapper/bin/help.txt -O aprsmap_common/help.txt 12 | 13 | POITXT="alps.txt bc.txt fone.txt hamnet.txt sota.csv towns.csv webcam.csv" 14 | for i in $POITXT; do 15 | wget http://oe5dxl.ampr.at/aprs/osm-mapper/bin/osm/poi/$i -O aprsmap_common/osm/poi/$i 16 | done 17 | 18 | 19 | -------------------------------------------------------------------------------- /getSRC1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | EXCL="X.h Xlib.h Xutil.h cursorfont.h keysym.h jconfig.h jmorecfg.h jpeglib.h png.h" 3 | IGNL="pngread.c osic.c rsc.h pastewrapper.c pastewrapper.h ../aprsmap_common/kiss-th-d72.txt ../aprsmap_common/kiss9k6-th-d72.txt ../aprsmap_common/kisson.txt" 4 | ./getNEWtxt.sh 5 | cd src 6 | wget http://oe5dxl.ampr.at/aprs/intel-debug.tgz || exit 1 7 | tar -xzf intel-debug.tgz 8 | mv intel-debug.tgz ../ 9 | rm $EXCL 10 | rm -r -f lib_x86 11 | rm -r -f lib_x86_64 12 | for i in $IGNL; do 13 | echo ignoring changes of $i ... 14 | git checkout -- $i 15 | done 16 | 17 | cd .. 18 | ./license-add.sh 19 | git status 20 | -------------------------------------------------------------------------------- /jpegsrc.v9.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/jpegsrc.v9.tar.gz -------------------------------------------------------------------------------- /libpng-1.5.18.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/libpng-1.5.18.tar.gz -------------------------------------------------------------------------------- /libpng-1.6.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/libpng-1.6.3.tgz -------------------------------------------------------------------------------- /license-add.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | LICENSE=`cat license-header.txt` 3 | EXCLUDE=license-exclude.txt 4 | 5 | LIST=`ls src/*.c src/*.h` 6 | 7 | for i in $LIST; do 8 | FILE=`echo $i | cut -d "/" -f 2` 9 | if ! grep -c $FILE license-exclude.txt > /dev/null; then 10 | cp $i ./tmpfile 11 | echo "$LICENSE" > $i 12 | cat ./tmpfile | sed -e 's/\/\* Generated by XDS Modula-2 to ANSI C v4.20 translator \*\///1' >> $i 13 | fi 14 | done 15 | rm ./tmpfile 16 | 17 | -------------------------------------------------------------------------------- /license-exclude.txt: -------------------------------------------------------------------------------- 1 | afskmodemptt.c 2 | afskmodemptt.h 3 | pp065mb.h 4 | basictypes.h 5 | constants.h 6 | geodesy.c 7 | geodesy.h 8 | gnss_types.h 9 | gnss_error.h 10 | gps.c 11 | gps.h 12 | jmorecfg.h 13 | jconfig.h 14 | jpeglib.h 15 | navigation.c 16 | navigation.h 17 | pngread.c 18 | pngwrite.c 19 | rinex.c 20 | rinex.h 21 | sem.c 22 | sem.h 23 | stat.h 24 | time_conversion.c 25 | time_conversion.h 26 | types.h 27 | X2C.h 28 | yuma.h 29 | yuma.c 30 | osic.c 31 | osic.h 32 | udp.c 33 | tcp.c 34 | tcpb.c 35 | soundctl.c 36 | beep.c 37 | jpgdec.c 38 | Select.c 39 | xosic.h 40 | rsc_decode.c 41 | Select.h 42 | beep.h 43 | cleanup.c 44 | cleanup.h 45 | jpgdec.h 46 | pngread.h 47 | pngwrite.h 48 | tcp.h 49 | udp.h 50 | udprfnet.c 51 | soundctl.h 52 | rsc.c 53 | rsc.h 54 | mlib.h 55 | pastewrapper.h 56 | pastewrapper.c 57 | fftw.h 58 | fftw3.h 59 | -------------------------------------------------------------------------------- /license-header.txt: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | -------------------------------------------------------------------------------- /scripts/packCurrent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ -z $1 ]; then 4 | echo "give arch as argument! example: $0 armv6" 5 | exit 1 6 | fi 7 | 8 | VER=`git describe --always --dirty` 9 | 10 | BASE=out-$1/ 11 | EXCL='arm-linux-armv7hf-gcc arm-linux-armv7hf-strip arm-linux-rpi-gcc arm-linux-rpi-strip' 12 | FLIST=`ls $BASE` 13 | PACKLIST="" 14 | 15 | for i in $FLIST; do 16 | if [ -x $BASE/$i ] && [ ! -d $BASE/$i ] && [ `echo $EXCL | grep -c $i` -eq 0 ]; then 17 | PACKLIST=`echo $PACKLIST $i` 18 | fi 19 | done 20 | 21 | PACKLIST=`echo $PACKLIST ../aprsmap_common/* ../dxlAPRS_common/* ../scripts/*` 22 | 23 | echo $PACKLIST 24 | 25 | cd $BASE 26 | tar -czf ../dxlAPRS_$1-$VER.tgz $PACKLIST 27 | -------------------------------------------------------------------------------- /scripts/updateDXLaprs: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # this script unpacks and installs remote or local installation archive images created 3 | # by aprsmap build system or the packCurrent.sh script. 4 | 5 | if [ -z $1 ]; then 6 | echo "updateDXLaprs: missing architecture or local image file" 7 | echo "Usage: updateDXLaprs ARCH | file" 8 | echo " Where ARCH may be: armv6, armv6tce, armv7hf, x86_32, x86_64, ..." 9 | echo "" 10 | echo " If a local file is specified instead of one of the architectures above," 11 | echo " then this file will be used for performing the installation. The local" 12 | echo " file must be a file that was created by the packCurrent.sh script." 13 | exit 1 14 | fi 15 | 16 | # url and the template basename (no file extension) of installation archive 17 | SOURCE=http://dxlaprs.hamspirit.at 18 | FILE=dxlAPRS_$1-current 19 | 20 | # assumes HOME has been set appropriately by shell 21 | DST=$HOME/dxlAPRS 22 | DSTMAP=$DST/aprsmap 23 | DSTAPRS=$DST/aprs 24 | 25 | # these values match the default paths created in the initial aprsmap.cfg 26 | MAPDIR=osm 27 | LOGDIR=logs 28 | 29 | # sample commands for remote retrieval showing wget and curl usage 30 | GETCMDBASE="wget" 31 | #GETCMDBASE="wget2" 32 | #GETCMDBASE="curl -O" 33 | 34 | # set up the default destination directory structure 35 | [ -d $DSTMAP ] || mkdir -p $DSTMAP 36 | [ -d $DSTMAP/$MAPDIR ] || mkdir -p $DSTMAP/$MAPDIR 37 | [ -d $DSTMAP/$LOGDIR ] || mkdir -p $DSTMAP/$LOGDIR 38 | [ -d $DSTAPRS ] || mkdir -p $DSTAPRS 39 | 40 | # retrieve the image 41 | TMPDIR=$(mktemp -d) 42 | if [ $? -ne 0 ]; then 43 | echo "Unable to create temporary directory." 44 | exit 1 45 | fi 46 | 47 | # if a file exists simply assume it's a local packCurrent image else try to download 48 | if [ -f $1 ]; then 49 | FILE=$(basename $1 .tgz) 50 | cp -r $1 $TMPDIR 51 | cd $TMPDIR 52 | else 53 | cd $TMPDIR 54 | $GETCMDBASE $SOURCE/$FILE.tgz 55 | if [ $? -ne 0 ]; then 56 | echo "Unable to download image:" $SOURCE/$FILE.tgz 57 | rm -r $TMPDIR 58 | exit 1 59 | fi 60 | fi 61 | 62 | # if image file exists then unpack and move files to their destinations 63 | if [ -r $FILE.tgz ]; then 64 | gunzip $FILE.tgz 65 | tar -xf $FILE.tar 66 | rm $FILE.tar 67 | echo "Installation directory:" $DST 68 | echo "Installing aprsmap directory components..." 69 | cp -r aprsmap_common/$MAPDIR $DSTMAP 70 | rm -r aprsmap_common/$MAPDIR 71 | mv -f aprsmap_common/* $DSTMAP/ 72 | rm -r aprsmap_common 73 | mv -f aprsmap* $DSTMAP/ 74 | echo "Installing aprs directory components..." 75 | cp -r dxlAPRS_common/* $DSTAPRS/ 76 | rm -r dxlAPRS_common 77 | cp -r scripts $DSTAPRS/ 78 | rm -r scripts 79 | mv -f * $DSTAPRS/ 80 | 81 | # fixup file permissions and owners 82 | cd $DSTAPRS 83 | for f in $(ls); do 84 | test -x $f && sudo chmod 0755 $f 85 | done 86 | sudo chown root afskmodem 87 | sudo chmod +s afskmodem 88 | rm -r $TMPDIR 89 | else 90 | # either cp or remote retrieval failed somehow to get an image into TMPDIR 91 | echo "Unable to locate temporary copy of image:" $FILE.tgz 92 | rm -r $TMPDIR 93 | exit 1 94 | fi 95 | -------------------------------------------------------------------------------- /src/Execlogin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef Execlogin_H_ 11 | #define Execlogin_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | #include 16 | 17 | struct Execlogin_tEXEC; 18 | 19 | 20 | struct Execlogin_tEXEC { 21 | char * cmdfn; 22 | X2C_pCHAR * args; 23 | }; 24 | 25 | extern int32_t Execlogin_StartLogin(struct Execlogin_tEXEC *); 26 | 27 | 28 | extern void Execlogin_BEGIN(void); 29 | 30 | 31 | #endif /* Execlogin_H_ */ 32 | -------------------------------------------------------------------------------- /src/README: -------------------------------------------------------------------------------- 1 | compiling hints for C-Sources by OE5HPM@OE5XBL.#OE5.AUT.EU 2 | 3 | build for X86 with i386 (32-bit) host system 4 | or 5 | build on some native ARM machine (like raspbian on rpi) 6 | ================================================================================ 7 | install following packages: 8 | - build-essential (sudo apt-get install build-essential) 9 | - libx11-dev (sudo apt-get install libx11-dev) 10 | - libxext-dev (sudo apt-get install libxext-dev) 11 | - libpng-dev (sudo apt-get install libpng-dev) 12 | - libjpeg-dev (sudo apt-get install libjpeg-dev) 13 | 14 | make all 15 | 16 | build for X86 with i686 (64-bit) host system 17 | ================================================================================ 18 | install following packages: 19 | - build-essential (sudo apt-get install build-essential) 20 | - libX11-dev (sudo apt-get install libX11-dev) 21 | - libXext-dev (sudo apt-get install libXext-dev) 22 | - zlib1g-dev 23 | - libjpeg-dev (sudo apt-get install libjpeg-dev) 24 | 25 | make all 26 | 27 | cross-build for ARMV6 (raspberry pi) on x86 host system 28 | ================================================================================ 29 | install following packages: 30 | - build-essential (sudo apt-get install build-essential) 31 | - lib32z1 (sudo apt-get install lib32z1) 32 | - rpi-tools (git clone https://github.com/raspberrypi/tools.git ~/rpi-tools) 33 | 34 | PLATFORM=armv6 CROSS_COMPILE=~/rpi-tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- make all 35 | 36 | cross-build for ARMV7hf (bur am335x pp, bananapi, beaglebone) on x86 host system 37 | ================================================================================ 38 | install following packages: 39 | - build-essential (sudo apt-get install build-essential) 40 | - linaro-toolchain 41 | cd ~/ 42 | wget https://releases.linaro.org/components/toolchain/binaries/latest-5.1/arm-linux-gnueabihf/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf.tar.xz 43 | tar -xf gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf.tar.xz 44 | 45 | PLATFORM=armv7hf CROSS_COMPILE=/opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- make all 46 | -------------------------------------------------------------------------------- /src/Select.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | static fd_set rset, wset; 16 | static unsigned maxfd; 17 | 18 | int selectrw(long sec, long usec) 19 | { 20 | struct timeval tv; 21 | 22 | tv.tv_sec = sec; 23 | tv.tv_usec = usec; 24 | return select(maxfd+1, &rset, &wset, NULL, &tv); 25 | } 26 | 27 | int selectr(long sec, long usec) 28 | { 29 | struct timeval tv; 30 | 31 | tv.tv_sec = sec; 32 | tv.tv_usec = usec; 33 | return select(maxfd+1, &rset, NULL, NULL, (usec == 0 && sec == 0) ? NULL : &tv); 34 | } 35 | 36 | void fdclr() 37 | { 38 | FD_ZERO(&rset); 39 | FD_ZERO(&wset); 40 | maxfd = 0; 41 | } 42 | 43 | void fdsetr(long n) 44 | { 45 | if (n>maxfd) maxfd = n; 46 | FD_SET(n, &rset); 47 | } 48 | 49 | void fdsetw(long n) 50 | { 51 | if (n>maxfd) maxfd = n; 52 | FD_SET(n, &wset); 53 | } 54 | 55 | unsigned issetr(long n) 56 | { 57 | if (FD_ISSET(n, &rset)) return 1; 58 | return 0; 59 | } 60 | 61 | unsigned issetw(long n) 62 | { 63 | if (FD_ISSET(n, &wset)) return 1; 64 | return 0; 65 | } 66 | 67 | int selectrwt(uint32_t *sec, uint32_t *usec) 68 | { 69 | struct timeval tv; 70 | int ret; 71 | #ifdef MACOS 72 | struct timeval spec1, spec2; 73 | time_t s; 74 | long us; 75 | gettimeofday(&spec1, NULL); 76 | #endif 77 | 78 | tv.tv_sec = *sec; 79 | tv.tv_usec = *usec; 80 | ret=select(maxfd+1, &rset, &wset, NULL, &tv); 81 | #ifdef MACOS 82 | /* MacOS does not update tv value in select */ 83 | gettimeofday(&spec2, NULL); 84 | s = spec2.tv_sec-spec1.tv_sec; 85 | us = spec2.tv_usec - spec1.tv_usec; 86 | if (us < 0) { 87 | us += 1000000; 88 | s -= 1; 89 | } 90 | *sec -= s; 91 | *usec -= us; 92 | if (*usec < 0) { 93 | *usec += 1000000; 94 | *sec -= 1; 95 | } 96 | if (*sec < 0) { 97 | *sec = 0; 98 | *usec = 0; 99 | } 100 | #else 101 | *sec = tv.tv_sec; 102 | *usec= tv.tv_usec; 103 | #endif 104 | return ret; 105 | } 106 | 107 | /* 108 | void Usleep(long microseconds) 109 | { 110 | usleep(microseconds); 111 | } 112 | */ 113 | /* 114 | unsigned Systime() 115 | { 116 | struct timespec tv; 117 | clock_gettime(CLOCK_REALTIME, &tv); 118 | return tv.tv_sec; 119 | } 120 | 121 | unsigned monotonictime() 122 | { 123 | struct timespec tv; 124 | clock_gettime(CLOCK_MONOTONIC, &tv); 125 | return tv.tv_sec; 126 | } 127 | */ 128 | -------------------------------------------------------------------------------- /src/Select.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef Select_H_ 9 | #define Select_H_ 10 | #include "X2C.h" 11 | 12 | extern long selectrw(unsigned long, unsigned long); 13 | 14 | extern long selectr(unsigned long, unsigned long); 15 | 16 | extern void fdclr(void); 17 | 18 | extern void fdsetr(unsigned long); 19 | 20 | extern char issetr(unsigned long); 21 | 22 | extern void fdsetw(unsigned long); 23 | 24 | extern char issetw(unsigned long); 25 | 26 | extern long selectrwt(uint32_t *, uint32_t *); 27 | 28 | 29 | #endif /* Select_H_ */ 30 | -------------------------------------------------------------------------------- /src/X2C.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) Hannes Schmelzer 3 | * 4 | * this files substitutes the absolute minimum of the original XDS lib 5 | * for our project. 6 | */ 7 | #ifndef X2C_H_ 8 | #define X2C_H_ 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | #define X2C_ADDRESS char * 24 | #define X2C_pCHAR char * 25 | #define X2C_LSET_SIZE (sizeof(uint32_t) * 8) 26 | 27 | #define X2C_max_longint 0x7FFFFFFFL 28 | #define X2C_min_longint (-0x7FFFFFFFL-1) 29 | #define X2C_max_longcard 0xFFFFFFFFUL 30 | #define X2C_max_real ((float)FLT_MAX) 31 | #define X2C_min_real (-((float)FLT_MAX)) 32 | #define X2C_max_longreal ((double)DBL_MAX) 33 | #define X2C_min_longreal (-((double)DBL_MAX)) 34 | #define X2C_max_longdouble ((X2C_LONGDOUBLE)LDBL_MAX) 35 | #define X2C_min_longdouble (-((X2C_LONGDOUBLE)LDBL_MAX)) 36 | 37 | #define X2C_ASSERT(x) assert(x) 38 | #define X2C_TRAP(x) assert(0) 39 | #define X2C_CASE_TRAP 0 40 | 41 | #define X2C_ABORT(void) exit(-1) 42 | #define X2C_EXIT(void) exit(0) 43 | #define X2C_HALT(x) (exit(x)) 44 | 45 | #define X2C_CAP(x) toupper(x) 46 | 47 | #define X2C_DIVL(a, b) ((a)/(b)) 48 | #define X2C_DIVR(a, b) ((b) != 0.0f ? (a)/(b) : (a)) 49 | #define X2C_EXPRI(a, b) (pow(a,b)) 50 | #define X2C_PFREE(p) (free(p)) 51 | #define X2C_COPY(src, src_len, dst, dst_len) \ 52 | memcpy(dst, src, src_len <= dst_len ? src_len : dst_len) 53 | 54 | #define X2C_MOVE(source, dest, size) memcpy(dest, source, size) 55 | #define X2C_STRCMP(a, alen, b, blen) strncmp(a, b, alen < blen ? alen : blen) 56 | 57 | #define X2C_CHKNIL(T, p) ((T)(osic_chkptr((void *)(p)))) 58 | #define X2C_CHKPROC(T, p) ((T)(osic_chkptr((void *)(p)))) 59 | 60 | #define X2C_CAST(val, fr, to, to_ref) \ 61 | ((sizeof(fr) < sizeof(to)) ? (assert(0), (to_ref)0) : (to_ref)(val)) 62 | 63 | #define X2C_MAIN_DEFINITION 64 | #define X2C_STACK_LIMIT(x) 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /src/afskmodemptt.h: -------------------------------------------------------------------------------- 1 | #ifndef afskmodemptt_H_ 2 | #define afskmodemptt_H_ 3 | #include "X2C.h" 4 | 5 | extern X2C_ADDRESS pttinit(X2C_ADDRESS, long); 6 | 7 | extern void pttDestroy(X2C_ADDRESS); 8 | 9 | extern void pttSetclaim(X2C_ADDRESS, long); 10 | 11 | extern void pttHelp(X2C_ADDRESS, unsigned long); 12 | 13 | extern void ptt(X2C_ADDRESS, long); 14 | 15 | 16 | #endif /* afskmodemptt_H_ */ 17 | -------------------------------------------------------------------------------- /src/aprspos.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef aprspos_H_ 11 | #define aprspos_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | #ifndef aprsstr_H_ 16 | #include "aprsstr.h" 17 | #endif 18 | 19 | #define aprspos_PI 3.1415926535 20 | 21 | #define aprspos_PI2 6.283185307 22 | 23 | #define aprspos_RAD 1.7453292519444E-2 24 | 25 | #define aprspos_FEET 0.3048 26 | 27 | #define aprspos_KNOTS 1.852 28 | 29 | #define aprspos_WKNOTS 1.609 30 | 31 | #define aprspos_SKNOTS 1.609 32 | 33 | #define aprspos_ENCODEGPS "g" 34 | 35 | #define aprspos_ENCODEMICE "m" 36 | 37 | #define aprspos_ENCODECOMP "c" 38 | 39 | #define aprspos_ENCODEGPSDAO "G" 40 | 41 | #define aprspos_ENCODEMICEDAO "M" 42 | 43 | #define aprspos_ENCODEAREA "A" 44 | 45 | #define aprspos_ENCODEMULTILINE "L" 46 | 47 | #define aprspos_EARTH 6370.0 48 | 49 | #define aprspos_AREASYMT "\\" 50 | 51 | #define aprspos_AREASYM "l" 52 | 53 | extern float aprspos_rad0(float); 54 | 55 | extern char aprspos_posvalid(struct aprsstr_POSITION); 56 | 57 | extern float aprspos_distance(struct aprsstr_POSITION, 58 | struct aprsstr_POSITION); 59 | 60 | extern float aprspos_azimuth(struct aprsstr_POSITION, 61 | struct aprsstr_POSITION); 62 | 63 | extern void aprspos_GetPos(struct aprsstr_POSITION *, uint32_t *, 64 | uint32_t *, int32_t *, char *, char *, 65 | char [], uint32_t, uint32_t, uint32_t, char [], 66 | uint32_t, char *); 67 | 68 | extern void aprspos_GetSym(char [], uint32_t, char *, char *); 69 | 70 | extern void aprspos_wgs84s(float, float, float, float *, 71 | float *, float *); 72 | 73 | extern void aprspos_wgs84r(float, float, float, float *, 74 | float *, float *); 75 | 76 | 77 | extern void aprspos_BEGIN(void); 78 | 79 | 80 | #endif /* aprspos_H_ */ 81 | -------------------------------------------------------------------------------- /src/aprsstr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef aprsstr_H_ 11 | #define aprsstr_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | 16 | typedef uint32_t aprsstr_TIME; 17 | 18 | typedef uint32_t aprsstr_IPNUM; 19 | 20 | typedef uint32_t aprsstr_UDPPORT; 21 | 22 | typedef uint8_t aprsstr_SET8; 23 | 24 | typedef uint32_t aprsstr_GHOSTSET[9]; 25 | 26 | struct aprsstr_POSITION; 27 | 28 | 29 | struct aprsstr_POSITION { 30 | float long0; 31 | float lat; 32 | }; 33 | 34 | #define aprsstr_CALLLEN 7 35 | 36 | #define aprsstr_HBIT 128 37 | 38 | extern char aprsstr_showctrl; 39 | 40 | extern void aprsstr_Assign(char [], uint32_t, char [], uint32_t); 41 | 42 | extern void aprsstr_Append(char [], uint32_t, char [], uint32_t); 43 | 44 | extern void aprsstr_Delstr(char [], uint32_t, uint32_t, uint32_t); 45 | 46 | extern void aprsstr_Extractword(char [], uint32_t, char [], 47 | uint32_t); 48 | 49 | extern uint32_t aprsstr_Length(char [], uint32_t); 50 | 51 | extern void aprsstr_IntToStr(int32_t, uint32_t, char [], uint32_t); 52 | 53 | extern void aprsstr_CardToStr(uint32_t, uint32_t, char [], 54 | uint32_t); 55 | 56 | extern void aprsstr_FixToStr(float, uint32_t, char [], uint32_t); 57 | 58 | extern char aprsstr_StrToCard(char [], uint32_t, uint32_t *); 59 | 60 | extern char aprsstr_StrToInt(char [], uint32_t, int32_t *); 61 | 62 | extern char aprsstr_StrToFix(float *, char [], uint32_t); 63 | 64 | extern char aprsstr_StrCmp(char [], uint32_t, char [], 65 | uint32_t); 66 | 67 | extern int32_t aprsstr_InStr(char [], uint32_t, char [], 68 | uint32_t); 69 | 70 | extern void aprsstr_TimeToStr(uint32_t, char [], uint32_t); 71 | 72 | extern void aprsstr_DateToStr(uint32_t, char [], uint32_t); 73 | 74 | extern char aprsstr_StrToTime(char [], uint32_t, uint32_t *); 75 | 76 | extern void aprsstr_CtrlHex(char [], uint32_t); 77 | 78 | extern int32_t aprsstr_GetIp2(char [], uint32_t, uint32_t *, 79 | uint32_t *, uint32_t *, char *); 80 | 81 | extern void aprsstr_ipv4tostr(uint32_t, char [], uint32_t); 82 | 83 | extern char aprsstr_Call2Str(char [], uint32_t, char [], 84 | uint32_t, uint32_t, uint32_t *); 85 | 86 | extern void aprsstr_mon2raw(char [], uint32_t, char [], uint32_t, 87 | int32_t *); 88 | 89 | extern void aprsstr_raw2mon(char [], uint32_t, char [], uint32_t, 90 | uint32_t, uint32_t *, aprsstr_GHOSTSET); 91 | 92 | extern void aprsstr_extrudp2(char [], uint32_t, char [], 93 | uint32_t, int32_t *); 94 | 95 | extern void aprsstr_AppCRC(char [], uint32_t, int32_t); 96 | 97 | extern void aprsstr_HashCh(char, uint8_t *, uint8_t *); 98 | 99 | extern uint32_t aprsstr_Hash(char [], uint32_t, int32_t, 100 | int32_t); 101 | 102 | extern void aprsstr_cleanfilename(char [], uint32_t); 103 | 104 | extern void aprsstr_Caps(char [], uint32_t); 105 | 106 | extern void aprsstr_rightbound(char [], uint32_t, uint32_t); 107 | 108 | extern void aprsstr_loctopos(struct aprsstr_POSITION *, char [], 109 | uint32_t); 110 | 111 | extern void aprsstr_postoloc(char [], uint32_t, 112 | struct aprsstr_POSITION); 113 | 114 | extern void aprsstr_posinval(struct aprsstr_POSITION *); 115 | 116 | 117 | extern void aprsstr_BEGIN(void); 118 | 119 | 120 | #endif /* aprsstr_H_ */ 121 | -------------------------------------------------------------------------------- /src/aprstat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef aprstat_H_ 11 | #define aprstat_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | #ifndef aprsdecode_H_ 16 | #include "aprsdecode.h" 17 | #endif 18 | #ifndef maptool_H_ 19 | #include "maptool.h" 20 | #endif 21 | 22 | struct aprstat_LASTVAL; 23 | 24 | 25 | struct aprstat_LASTVAL { 26 | float temp; 27 | float hyg; 28 | float baro; 29 | float winds; 30 | float winddir; 31 | float gust; 32 | float rain; 33 | float rain1; 34 | float rain24; 35 | float lumi; 36 | float siev; 37 | uint16_t dust10; 38 | uint16_t dust2; 39 | uint16_t dust1; 40 | uint16_t dust01; 41 | }; 42 | 43 | extern void aprstat_kmhist(maptool_pIMAGE *, aprsdecode_pOPHIST, 44 | char *); 45 | 46 | extern void aprstat_althist(maptool_pIMAGE *, aprsdecode_pOPHIST, 47 | char *, float *, uint32_t *, uint32_t *, 48 | uint32_t *, uint32_t *); 49 | 50 | extern void aprstat_btimehist(maptool_pIMAGE *, aprsdecode_pOPHIST); 51 | 52 | extern void aprstat_wxgraph(maptool_pIMAGE *, aprsdecode_pOPHIST, uint32_t, 53 | uint16_t *, struct aprstat_LASTVAL *); 54 | 55 | 56 | extern void aprstat_BEGIN(void); 57 | 58 | 59 | #endif /* aprstat_H_ */ 60 | -------------------------------------------------------------------------------- /src/aprstext.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef aprstext_H_ 11 | #define aprstext_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | #ifndef aprsdecode_H_ 16 | #include "aprsdecode.h" 17 | #endif 18 | #ifndef aprsstr_H_ 19 | #include "aprsstr.h" 20 | #endif 21 | 22 | /* aprs tracks on osm map by oe5dxl */ 23 | #define aprstext_TEXTCOLEND "\376" 24 | 25 | #define aprstext_TEXTCOLLGR "\367" 26 | 27 | #define aprstext_TEXTCOLRED "\370" 28 | 29 | #define aprstext_TEXTCOLBLU "\371" 30 | 31 | #define aprstext_TEXTCOLYEL "\372" 32 | 33 | #define aprstext_TEXTCOLORA "\373" 34 | 35 | #define aprstext_TEXTCOLVIO "\374" 36 | 37 | #define aprstext_TEXTINSERTSYMBOL "\375" 38 | 39 | extern void aprstext_decode(char [], uint32_t, aprsdecode_pFRAMEHIST, 40 | aprsdecode_pFRAMEHIST, aprsdecode_pVARDAT, uint32_t, 41 | char, struct aprsdecode_DAT *); 42 | 43 | extern void aprstext_strcp(char [], uint32_t, uint32_t, uint32_t, 44 | char [], uint32_t); 45 | 46 | extern void aprstext_optext(uint32_t, char [], uint32_t, 47 | struct aprsdecode_CLICKOBJECT *, char *, char [], 48 | uint32_t); 49 | 50 | extern void aprstext_measure(struct aprsstr_POSITION, 51 | struct aprsstr_POSITION, char [], uint32_t, 52 | char); 53 | 54 | extern void aprstext_postostr(struct aprsstr_POSITION, char, char [], 55 | uint32_t); 56 | 57 | extern void aprstext_degtopos(char [], uint32_t, 58 | struct aprsstr_POSITION *); 59 | 60 | extern void aprstext_deghtopos(char [], uint32_t, 61 | struct aprsstr_POSITION *); 62 | 63 | extern void aprstext_degdeztopos(char [], uint32_t, 64 | struct aprsstr_POSITION *); 65 | 66 | extern void aprstext_deganytopos(char [], uint32_t, 67 | struct aprsstr_POSITION *); 68 | 69 | extern char aprstext_getmypos(struct aprsstr_POSITION *); 70 | 71 | extern void aprstext_listop(char); 72 | 73 | extern void aprstext_listtyps(char, char, char [], 74 | uint32_t); 75 | 76 | extern void aprstext_listin(char [], uint32_t, char, char, 77 | char, int32_t, int32_t, int32_t); 78 | 79 | extern void aprstext_DateLocToStr(uint32_t, char [], uint32_t); 80 | /* append (+localtime) to time */ 81 | 82 | extern void aprstext_encbeacon(char [], uint32_t, uint32_t *); 83 | 84 | extern float aprstext_FtoC(float); 85 | /* fahrenheit to celsius */ 86 | 87 | extern float aprstext_CtoF(float); 88 | 89 | extern aprsdecode_pOPHIST aprstext_oppo(aprsdecode_MONCALL); 90 | 91 | extern void aprstext_setmarkalti(aprsdecode_pFRAMEHIST, aprsdecode_pOPHIST, 92 | char); 93 | 94 | extern void aprstext_setmark1(struct aprsstr_POSITION, char, 95 | int32_t, uint32_t); 96 | 97 | extern void aprstext_Apphex(char [], uint32_t, char [], 98 | uint32_t); 99 | 100 | extern char aprstext_isacall(char [], uint32_t); 101 | 102 | extern void aprstext_logfndate(uint32_t, char [], uint32_t); 103 | 104 | extern void aprstext_sievert2str(float, char [], uint32_t); 105 | 106 | extern void aprstext_compressdata(struct aprsstr_POSITION, uint32_t, 107 | uint32_t, int32_t, char [], uint32_t, char [], 108 | uint32_t); 109 | 110 | extern void aprstext_decodelistline(char [], uint32_t, char [], 111 | uint32_t, uint32_t); 112 | 113 | extern char aprstext_callwrong(char [], uint32_t); 114 | 115 | 116 | extern void aprstext_BEGIN(void); 117 | 118 | 119 | #endif /* aprstext_H_ */ 120 | -------------------------------------------------------------------------------- /src/basictypes.h: -------------------------------------------------------------------------------- 1 | /** 2 | \file basictypes.h 3 | \brief GNSS core 'c' function library: basic types. 4 | \author Glenn D. MacGougan (GDM) 5 | \date 2007-11-29 6 | \since 2006-11-10 7 | 8 | \b "LICENSE INFORMATION" \n 9 | Copyright (c) 2007, refer to 'author' doxygen tags \n 10 | All rights reserved. \n 11 | 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided the following conditions are met: \n 14 | 15 | - Redistributions of source code must retain the above copyright 16 | notice, this list of conditions and the following disclaimer. \n 17 | - Redistributions in binary form must reproduce the above copyright 18 | notice, this list of conditions and the following disclaimer in the 19 | documentation and/or other materials provided with the distribution. \n 20 | - The name(s) of the contributor(s) may not be used to endorse or promote 21 | products derived from this software without specific prior written 22 | permission. \n 23 | 24 | THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS 25 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 26 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 28 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 29 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 | SUCH DAMAGE. 35 | */ 36 | 37 | #ifndef _C_BASICTYPES_H_ 38 | #define _C_BASICTYPES_H_ 39 | 40 | #ifdef __cplusplus 41 | extern "C" { 42 | #endif 43 | 44 | /// The 'c' boolean type is a define for (int). TRUE(0), FALSE(1). 45 | typedef int BOOL; 46 | 47 | #ifndef FALSE 48 | #define FALSE (0) 49 | #endif 50 | 51 | #ifndef TRUE 52 | #define TRUE (1) 53 | #endif 54 | 55 | #ifdef __cplusplus 56 | } 57 | #endif 58 | 59 | #endif // _C_BASICTYPES_H_ 60 | -------------------------------------------------------------------------------- /src/beep.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #include 9 | #ifndef MACOS 10 | #include 11 | #endif 12 | #include 13 | #include 14 | 15 | int cbell(int hz, int ms) 16 | { 17 | int fd; 18 | int ret; 19 | 20 | ret=-2; 21 | fd=open("/dev/tty0", O_WRONLY); 22 | if (fd<0) fd=open("/dev/vc/0", O_WRONLY); 23 | if (fd<0) fd=open("/dev/console", O_WRONLY); 24 | if (fd<0) return -1; 25 | 26 | #ifndef MACOS 27 | /* Not supported on MacOS */ 28 | if (ioctl(fd, KIOCSOUND, 1193180/hz)>=0) 29 | { 30 | usleep(ms*1000); 31 | ioctl(fd, KIOCSOUND, 0); 32 | ret=0; 33 | } 34 | #endif 35 | close(fd); 36 | return ret; 37 | } 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/beep.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef beep_H_ 9 | #define beep_H_ 10 | #include "X2C.h" 11 | 12 | extern long cbell(long, long); 13 | 14 | 15 | #endif /* beep_H_ */ 16 | -------------------------------------------------------------------------------- /src/cleanup.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #include 9 | #include 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | int logout1(int pid, char *line) 23 | { 24 | int fd; 25 | struct utmp ut; 26 | 27 | if ((fd = open(_PATH_UTMP, O_RDWR, 0)) < 0) return 0; 28 | 29 | while (read(fd, &ut, sizeof(struct utmp)) == sizeof(struct utmp)) { 30 | if(ut.ut_pid!=pid) continue; 31 | strncpy(line, ut.ut_line, UT_LINESIZE); 32 | bzero(ut.ut_name, UT_NAMESIZE); 33 | bzero(ut.ut_host, UT_HOSTSIZE); 34 | time(&ut.ut_time); 35 | lseek(fd, -(off_t)sizeof(struct utmp), L_INCR); 36 | write(fd, &ut, sizeof(struct utmp)); 37 | close(fd); 38 | return 1; 39 | } 40 | close(fd); 41 | return 0; 42 | } 43 | 44 | 45 | void logwtmp(const char *line, const char *name, const char *host) 46 | { 47 | struct utmp ut; 48 | struct stat buf; 49 | int fd; 50 | 51 | if ((fd = open(_PATH_WTMP, O_WRONLY|O_APPEND, 0)) < 0) return; 52 | if (fstat(fd, &buf) == 0) { 53 | ut.ut_pid = getpid(); 54 | ut.ut_type = (name[0] != '\0')? USER_PROCESS : DEAD_PROCESS; 55 | strncpy(ut.ut_id, "", 2); 56 | strncpy(ut.ut_line, line, sizeof(ut.ut_line)); 57 | strncpy(ut.ut_name, name, sizeof(ut.ut_name)); 58 | strncpy(ut.ut_host, host, sizeof(ut.ut_host)); 59 | time(&ut.ut_time); 60 | if (write(fd, &ut, sizeof(struct utmp)) != sizeof(struct utmp)) 61 | ftruncate(fd, buf.st_size); 62 | } 63 | close(fd); 64 | } 65 | 66 | 67 | 68 | #define DEVPATH "/dev/" 69 | void cleanup(int sig) { 70 | int status, pid; 71 | char line[UT_LINESIZE+sizeof(DEVPATH)]; 72 | 73 | if(sig!=SIGCHLD) return; 74 | while( (pid=waitpid(-1, &status, WNOHANG /* |WUNTRACED */ )) > 0 ) { 75 | /* 76 | if(WIFSTOPPED(status)) { 77 | fprintf(stderr,"process %d stopped by signal %d!\n", 78 | pid, WSTOPSIG(status)); 79 | continue; 80 | } 81 | */ 82 | sprintf(line,DEVPATH); 83 | if( logout1(pid, line+sizeof(DEVPATH)-1) ) { 84 | logwtmp(line+sizeof(DEVPATH)-1, "", ""); 85 | chmod(line, 0666); 86 | chown(line, 0, 0); 87 | line[sizeof(DEVPATH)-1]='p'; /* ttyXX -> ptyXX */ 88 | chmod(line, 0666); 89 | chown(line, 0, 0); 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/cleanup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef cleanup_H_ 9 | #define cleanup_H_ 10 | #include "X2C.h" 11 | 12 | typedef long SigNum; 13 | 14 | extern void cleanup(long); 15 | 16 | 17 | #endif /* cleanup_H_ */ 18 | -------------------------------------------------------------------------------- /src/complex.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef complex_H_ 11 | #define complex_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | 16 | struct complex_Complex; 17 | 18 | 19 | struct complex_Complex { 20 | float Re; 21 | float Im; 22 | }; 23 | 24 | #define complex_PI 3.1415926536 25 | 26 | extern void complex_cmplx(struct complex_Complex *, float, float); 27 | 28 | extern float complex_cabs(struct complex_Complex); 29 | 30 | extern float complex_arc(struct complex_Complex); 31 | 32 | extern void complex_cadd(struct complex_Complex *, struct complex_Complex, 33 | struct complex_Complex); 34 | 35 | extern void complex_csub(struct complex_Complex *, struct complex_Complex, 36 | struct complex_Complex); 37 | 38 | extern void complex_cmul(struct complex_Complex *, struct complex_Complex, 39 | struct complex_Complex); 40 | 41 | extern void complex_cdiv(struct complex_Complex *, struct complex_Complex, 42 | struct complex_Complex); 43 | 44 | extern void complex_csqrt(struct complex_Complex *, struct complex_Complex); 45 | 46 | extern void complex_csin(struct complex_Complex *, struct complex_Complex); 47 | 48 | extern void complex_ccos(struct complex_Complex *, struct complex_Complex); 49 | 50 | extern void complex_cexp(struct complex_Complex *, struct complex_Complex); 51 | 52 | extern void complex_cln(struct complex_Complex *, struct complex_Complex); 53 | 54 | 55 | extern void complex_BEGIN(void); 56 | 57 | 58 | #endif /* complex_H_ */ 59 | -------------------------------------------------------------------------------- /src/constants.h: -------------------------------------------------------------------------------- 1 | /** 2 | \file constants.h 3 | \brief GNSS core 'c' function library: Contains constants. 4 | \author Glenn D. MacGougan (GDM) 5 | \date 2007-11-29 6 | \since 2005-07-30 7 | 8 | \b "LICENSE INFORMATION" \n 9 | Copyright (c) 2007, refer to 'author' doxygen tags \n 10 | All rights reserved. \n 11 | 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided the following conditions are met: \n 14 | 15 | - Redistributions of source code must retain the above copyright 16 | notice, this list of conditions and the following disclaimer. \n 17 | - Redistributions in binary form must reproduce the above copyright 18 | notice, this list of conditions and the following disclaimer in the 19 | documentation and/or other materials provided with the distribution. \n 20 | - The name(s) of the contributor(s) may not be used to endorse or promote 21 | products derived from this software without specific prior written 22 | permission. \n 23 | 24 | THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS 25 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 26 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 28 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 29 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 | SUCH DAMAGE. 35 | */ 36 | 37 | #ifndef _C_CONSTANTS_H_ 38 | #define _C_CONSTANTS_H_ 39 | 40 | #ifdef __cplusplus 41 | extern "C" { 42 | #endif 43 | 44 | //#define PI (3.1415926535898) // value from GPS-ICD pp. 101 used in orbit curve fit calculations by the control segment 45 | 46 | #ifndef PI 47 | #define PI (3.1415926535897932384626433832795) //!< better value 48 | #endif 49 | 50 | #ifndef TWOPI 51 | #define TWOPI (6.283185307179586476925286766559) //!< 2.0*PI 52 | #endif 53 | 54 | #ifndef HALFPI 55 | #define HALFPI (1.5707963267948966192313216916398) //!< PI/2.0 56 | #endif 57 | 58 | #ifdef QUARTERPI 59 | #define QUARTERPI (0.78539816339744830961566084581988) //!< PI/4.0 60 | #endif 61 | 62 | #ifndef DEG2RAD 63 | #define DEG2RAD (0.017453292519943295769236907684886) //!< PI/180.0 64 | #endif 65 | 66 | #ifndef RAD2DEG 67 | #define RAD2DEG (57.295779513082320876798154814105) //!< 180.0/PI 68 | #endif 69 | 70 | #ifndef SECONDS_IN_WEEK 71 | #define SECONDS_IN_WEEK (604800.0) //!< [s] 72 | #endif 73 | 74 | #ifndef LIGHTSPEED 75 | #define LIGHTSPEED (299792458.0) //!< light speed constant defined in ICD-GPS-200C p. 89 [m/s] 76 | #endif 77 | 78 | #ifndef ONE_MS_IN_M 79 | #define ONE_MS_IN_M (299792.4580) //!< 1 millisecond * light speed constant defined in ICD-GPS-200C p. 89 [m/s] 80 | #endif 81 | 82 | 83 | #ifndef GPS_FREQUENCYL1 84 | #define GPS_FREQUENCYL1 (1575.42e06) //!< [Hz] 85 | #endif 86 | 87 | #ifndef GPS_FREQUENCYL2 88 | #define GPS_FREQUENCYL2 (1227.60e06) //!< [Hz] 89 | #endif 90 | 91 | 92 | #ifndef GPS_WAVELENGTHL1 93 | #define GPS_WAVELENGTHL1 (0.19029367279836488047631742646405) //!< [m] 94 | #endif 95 | 96 | 97 | #ifndef GPS_WAVELENGTHL2 98 | #define GPS_WAVELENGTHL2 (0.24421021342456825) //!< [m] 99 | #endif 100 | 101 | 102 | // not a constant but a very common type 103 | #ifndef FALSE 104 | #define FALSE (0) 105 | #endif 106 | 107 | #ifndef TRUE 108 | #define TRUE (1) 109 | #endif 110 | 111 | #ifdef __cplusplus 112 | } 113 | #endif 114 | 115 | #endif // _C_CONSTANTS_H_ 116 | -------------------------------------------------------------------------------- /src/deflate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef deflate_H_ 11 | #define deflate_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | 16 | #define deflate_BSIZE 32768 17 | 18 | #define deflate_HASHSIZE 4096 19 | 20 | #define deflate_CMPSIZE 257 21 | 22 | #define deflate_CSIZE 2048 23 | 24 | #define deflate_SWITCHTOCOMP (-32) 25 | 26 | #define deflate_SWITCHTORAW 32 27 | 28 | #define deflate_MAXRAWBLOCK 16384 29 | 30 | #define deflate_ENDCOMP 256 31 | 32 | #define deflate_FLUSHEOF "\002" 33 | 34 | #define deflate_FLUSHQUICK "\001" 35 | 36 | typedef uint8_t deflate_SET8; 37 | 38 | typedef uint32_t deflate_SET32; 39 | 40 | struct deflate_CONTEXT; 41 | 42 | 43 | struct deflate_CONTEXT { 44 | char ring[32768]; 45 | uint32_t fill; 46 | uint16_t hashchain[32768]; 47 | uint32_t fill1; 48 | uint16_t hash[4096]; 49 | uint32_t fill2; 50 | char matchbuf[257]; 51 | uint32_t combuf[2048]; 52 | uint32_t txbitbuf; 53 | uint32_t txbitc; 54 | uint32_t lastidx; 55 | uint32_t wp; 56 | uint32_t savep; 57 | uint32_t flen; 58 | uint32_t fdist; 59 | uint32_t mlen; 60 | uint32_t rawr; 61 | uint32_t comr; 62 | uint32_t raww; 63 | uint32_t rawwo; 64 | uint32_t comw; 65 | int32_t of; 66 | int32_t sizedif; 67 | char wascomp; 68 | }; 69 | 70 | struct deflate_XCONTEXT; 71 | 72 | 73 | struct deflate_XCONTEXT { 74 | char ring[32768]; 75 | uint32_t wp; 76 | uint32_t rxbitbuf; 77 | uint32_t lencode; 78 | uint32_t distcode; 79 | uint32_t rxbits; 80 | int32_t rawlen; 81 | char compdata; 82 | }; 83 | 84 | extern void deflate_Initexpand(struct deflate_XCONTEXT *); 85 | 86 | extern void deflate_Initdeflate(struct deflate_CONTEXT *); 87 | 88 | extern void deflate_Deflatbyte(struct deflate_CONTEXT *, char, char, 89 | char [], uint32_t, int32_t *); 90 | 91 | extern void deflate_Expandbyte(struct deflate_XCONTEXT *, char, 92 | char [], uint32_t, int32_t *, char *); 93 | 94 | 95 | extern void deflate_BEGIN(void); 96 | 97 | 98 | #endif /* deflate_H_ */ 99 | -------------------------------------------------------------------------------- /src/fft.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef fft_H_ 11 | #define fft_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | #ifndef complex_H_ 16 | #include "complex.h" 17 | #endif 18 | 19 | extern void fft_Hamming(struct complex_Complex [], uint32_t); 20 | 21 | extern void fft_Hann(struct complex_Complex [], uint32_t); 22 | 23 | extern void fft_Blackmann(struct complex_Complex [], uint32_t); 24 | 25 | extern void fft_Shift(struct complex_Complex [], uint32_t); 26 | 27 | extern void fft_Transform(struct complex_Complex [], uint32_t, 28 | char); 29 | 30 | 31 | extern void fft_BEGIN(void); 32 | 33 | 34 | #endif /* fft_H_ */ 35 | -------------------------------------------------------------------------------- /src/fftw.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #include 9 | #include 10 | #include 11 | 12 | static fftwf_plan p; 13 | 14 | fftwf_complex* plan(uint n) 15 | { 16 | fftwf_complex *io; 17 | 18 | io = (fftwf_complex*) fftw_malloc(sizeof(fftwf_complex) * n); 19 | p = fftw_plan_dft_1d(n, io, io, FFTW_FORWARD, FFTW_ESTIMATE); 20 | return io; 21 | } 22 | 23 | void fft3() 24 | { 25 | fftw_execute(p); 26 | } 27 | 28 | void clean(fftwf_complex *inout) 29 | { 30 | fftw_destroy_plan(p); 31 | fftw_free(inout); 32 | } 33 | -------------------------------------------------------------------------------- /src/fftw.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | /* 9 | * dxlAPRS toolchain 10 | * 11 | * Copyright (C) Christian Rabler 12 | * 13 | * SPDX-License-Identifier: GPL-2.0+ 14 | */ 15 | #ifndef fttw_H_ 16 | #define fttw_H_ 17 | 18 | #include "X2C.h" 19 | 20 | struct Complex; 21 | 22 | struct Complex { 23 | float Re; 24 | float Im; 25 | }; 26 | 27 | 28 | struct INOUT { 29 | struct Complex * Adr; 30 | size_t Len0; 31 | }; 32 | 33 | typedef struct Complex * pINOUT; 34 | 35 | extern pINOUT plan(uint32_t); 36 | 37 | extern void fft3(void); 38 | 39 | extern void clean(pINOUT *); 40 | 41 | 42 | 43 | #endif /* fttw_H_ */ 44 | -------------------------------------------------------------------------------- /src/frameio.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef frameio_H_ 11 | #define frameio_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | #ifndef l2_H_ 16 | #include "l2.h" 17 | #endif 18 | 19 | #define frameio_UDPSOCKS 15 20 | 21 | struct frameio_UDPSOCK; 22 | 23 | 24 | struct frameio_UDPSOCK { 25 | int32_t fd; 26 | uint32_t ipnum; 27 | uint32_t fromport; 28 | uint32_t toport; 29 | uint32_t dcdretry; 30 | uint32_t txbufretry; 31 | char checkip; 32 | char dcd; 33 | char hastxdata; 34 | uint32_t dupcnt; /* circular write pointer */ 35 | uint32_t dupcrcs[32]; /* circular crc of frames buffer*/ 36 | }; 37 | 38 | extern char frameio_crcok; 39 | 40 | extern struct frameio_UDPSOCK frameio_udpsocks0[15]; 41 | 42 | extern char frameio_GetFrame(uint32_t); 43 | 44 | extern void frameio_SendFrame(uint32_t, uint32_t, char [], 45 | uint32_t, uint32_t, l2_pDATA); 46 | 47 | extern char frameio_Sending(uint32_t); 48 | 49 | extern char frameio_DCD(uint32_t); 50 | 51 | extern void frameio_Modempoll(uint32_t); 52 | 53 | extern void frameio_Init(void); 54 | 55 | 56 | extern void frameio_BEGIN(void); 57 | 58 | 59 | #endif /* frameio_H_ */ 60 | -------------------------------------------------------------------------------- /src/gnss_error.h: -------------------------------------------------------------------------------- 1 | /** 2 | \file gnss_error.h 3 | \brief GNSS core 'c' function library: error and warning macros. 4 | \author Glenn D. MacGougan (GDM) 5 | \date 2008-03-19 6 | \since 2008-03-19 7 | 8 | \remarks 9 | 10 | \b "LICENSE INFORMATION" \n 11 | Copyright (c) 2008, refer to 'author' doxygen tags \n 12 | All rights reserved. \n 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided the following conditions are met: \n 16 | 17 | - Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. \n 19 | - Redistributions in binary form must reproduce the above copyright 20 | notice, this list of conditions and the following disclaimer in the 21 | documentation and/or other materials provided with the distribution. \n 22 | - The name(s) of the contributor(s) may not be used to endorse or promote 23 | products derived from this software without specific prior written 24 | permission. \n 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS 27 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 28 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 29 | DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 30 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 31 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 32 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 | SUCH DAMAGE. 37 | */ 38 | 39 | #ifndef _C_ERROR_H_ 40 | #define _C_ERROR_H_ 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | #include 47 | 48 | /** 49 | \brief Output an error message with the following format:\n 50 | file, function, line number, msg\n 51 | 52 | \code 53 | char msg[128]; 54 | char fname[24]; 55 | sprintf( fname, "test.txt" ); 56 | sprintf( msg, "Unable to open %s", fname ); 57 | ERROR_MSG( msg ); 58 | \endcode 59 | 60 | \author Glenn D. MacGougan (GDM) 61 | \date 2008-03-19 62 | \since 2008-03-19 63 | 64 | */ 65 | #define GNSS_ERROR_MSG( msg ) { const char *themsg = msg; if( themsg != NULL ){ printf( "\n%s,\n%s, %d,\n%s\n", __FILE__, __FUNCTION__, __LINE__, themsg ); }else{ printf( "\n%s,\n%s, %d,\nUnknown Error\n", __FILE__, __FUNCTION__, __LINE__ ); } } 66 | 67 | #ifdef __cplusplus 68 | } 69 | #endif 70 | 71 | 72 | #endif // _C_ERROR_H_ 73 | -------------------------------------------------------------------------------- /src/gpspos.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef gpspos_H_ 11 | #define gpspos_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | 16 | struct gpspos_SAT; 17 | 18 | 19 | struct gpspos_SAT { 20 | uint32_t prn; 21 | uint32_t almidx; 22 | int32_t rang; 23 | int32_t rang1; 24 | int32_t rang3; 25 | int32_t rangabs; 26 | int32_t lastd; 27 | int32_t lastd1; 28 | int32_t freq0; 29 | double userspeed; 30 | char badspeed; 31 | }; 32 | 33 | typedef struct gpspos_SAT gpspos_SATS[12]; 34 | 35 | extern int32_t gpspos_getposit(uint32_t, uint32_t *, gpspos_SATS, 36 | double, double, double, double *, 37 | double *, double *, double *, 38 | double *, double *, float *, float *, 39 | uint32_t *); 40 | 41 | extern char gpspos_readalmanach(char [], uint32_t, char [], 42 | uint32_t, char [], uint32_t, uint32_t, 43 | uint32_t *, char); 44 | 45 | 46 | extern void gpspos_BEGIN(void); 47 | 48 | 49 | #endif /* gpspos_H_ */ 50 | -------------------------------------------------------------------------------- /src/imagetext.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef imagetext_H_ 11 | #define imagetext_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | 16 | struct imagetext_PIX; 17 | 18 | 19 | struct imagetext_PIX { 20 | uint16_t r; 21 | uint16_t g; 22 | uint16_t b; 23 | }; 24 | 25 | 26 | struct imagetext_IMAGELINE { 27 | struct imagetext_PIX * Adr; 28 | size_t Len0; 29 | }; 30 | 31 | 32 | struct imagetext_IMAGE { 33 | struct imagetext_PIX * Adr; 34 | size_t Len0; 35 | size_t Size1; 36 | size_t Len1; 37 | }; 38 | 39 | typedef struct imagetext_IMAGE * imagetext_pIMAGE; 40 | 41 | extern void imagetext_writestr(imagetext_pIMAGE, uint32_t, uint32_t, 42 | uint32_t, uint32_t, uint32_t, int32_t, int32_t, 43 | int32_t, char [], uint32_t); 44 | 45 | extern uint32_t imagetext_strsize(uint32_t, char [], uint32_t); 46 | 47 | extern uint32_t imagetext_fontsizex(uint32_t); 48 | 49 | extern uint32_t imagetext_fontsizey(uint32_t); 50 | 51 | 52 | extern void imagetext_BEGIN(void); 53 | 54 | 55 | #endif /* imagetext_H_ */ 56 | -------------------------------------------------------------------------------- /src/jpgdec.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #include "X2C.h" 9 | #include 10 | #include "jpeglib.h" 11 | #include 12 | #include 13 | 14 | struct my_error_mgr { 15 | struct jpeg_error_mgr pub; /* "public" fields */ 16 | 17 | jmp_buf setjmp_buffer; /* for return to caller */ 18 | }; 19 | 20 | typedef struct my_error_mgr * my_error_ptr; 21 | 22 | METHODDEF(void) my_error_exit (j_common_ptr cinfo) 23 | { 24 | /* cinfo->err really points to a my_error_mgr struct, so coerce pointer */ 25 | my_error_ptr myerr = (my_error_ptr) cinfo->err; 26 | 27 | /* Always display the message. */ 28 | /* We could postpone this until after returning, if we chose. */ 29 | (*cinfo->err->output_message) (cinfo); 30 | 31 | /* Return control to the setjmp point */ 32 | longjmp(myerr->setjmp_buffer, 1); 33 | } 34 | 35 | int32_t readjpg(char *fn, JSAMPARRAY *row_pointers, int32_t *maxx, int32_t *maxy, int32_t *maxxbyte) 36 | { 37 | struct jpeg_decompress_struct cinfo; 38 | struct my_error_mgr jerr; 39 | FILE * infile; /* source file */ 40 | int ret; 41 | int linec; 42 | JSAMPARRAY buffer; /* Output row buffer */ 43 | int row_stride; /* physical row width in output buffer */ 44 | 45 | if ((infile = fopen(fn, "rb")) == NULL) { 46 | /* 47 | fprintf(stderr, "can't open %s\n", fn); 48 | */ 49 | return -1; 50 | } 51 | 52 | cinfo.err = jpeg_std_error(&jerr.pub); 53 | jerr.pub.error_exit = my_error_exit; 54 | if (setjmp(jerr.setjmp_buffer)) { 55 | jpeg_destroy_decompress(&cinfo); 56 | fclose(infile); 57 | return -2; 58 | } 59 | ret=0; 60 | jpeg_create_decompress(&cinfo); 61 | 62 | jpeg_stdio_src(&cinfo, infile); 63 | (void) jpeg_read_header(&cinfo, TRUE); 64 | (void) jpeg_start_decompress(&cinfo); 65 | 66 | if (cinfo.output_height > *maxy || cinfo.output_width > *maxx || cinfo.output_components != 3) 67 | ret=-3; 68 | 69 | row_stride = cinfo.output_width * cinfo.output_components; 70 | buffer = (*cinfo.mem->alloc_sarray) ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); 71 | 72 | linec=0; 73 | while (cinfo.output_scanline < cinfo.output_height) 74 | { 75 | (void) jpeg_read_scanlines(&cinfo, (JSAMPARRAY) buffer, 1); 76 | if (linec < *maxy) 77 | memcpy(row_pointers[linec++], buffer[0], *maxxbyte); 78 | } 79 | 80 | (void) jpeg_finish_decompress(&cinfo); 81 | jpeg_destroy_decompress(&cinfo); 82 | fclose(infile); 83 | return ret; 84 | } 85 | -------------------------------------------------------------------------------- /src/jpgdec.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef jpgdec_H_ 9 | #define jpgdec_H_ 10 | #include "X2C.h" 11 | 12 | extern int32_t readjpg(char [], char * [], int32_t *, int32_t *, int32_t *); 13 | 14 | 15 | #endif /* jpgdec_H_ */ 16 | -------------------------------------------------------------------------------- /src/lib_aarch64/build_aarch64_fftw3: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SRC_TARBALL=../../fftw-3.3.10.tar.gz 3 | BUILDDIR=`mktemp -d` 4 | export CC=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc 5 | export CFLAGS="" 6 | 7 | cp $SRC_TARBALL $BUILDDIR 8 | pushd $BUILDDIR 9 | tar -xf fftw-3.3.10.tar.gz 10 | cd fftw-3.3.10 11 | ./configure --prefix=$BUILDDIR --host=arm-none-linux-gnueabi 12 | make -j16 13 | make install 14 | popd 15 | cp $BUILDDIR/lib/libfftw3*.a . 16 | cp $BUILDDIR/include/fftw3.h . 17 | rm -r -f $BUILDDIR 18 | 19 | -------------------------------------------------------------------------------- /src/lib_aarch64/build_aarch64_libjpeg: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SRC_TARBALL=../../jpegsrc.v9.tar.gz 3 | BUILDDIR=`mktemp -d` 4 | export CC=/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc 5 | export CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a8" 6 | 7 | cp $SRC_TARBALL $BUILDDIR 8 | pushd $BUILDDIR 9 | tar -xf jpegsrc.v9.tar.gz 10 | cd jpeg-9 11 | ./configure --prefix=$BUILDDIR --host=arm-none-linux-gnueabi 12 | make -j16 13 | make install 14 | popd 15 | cp $BUILDDIR/lib/*.a . 16 | cp $BUILDDIR/include/*.h . 17 | rm -r -f $BUILDDIR 18 | 19 | -------------------------------------------------------------------------------- /src/lib_aarch64/build_aarch64_libpng: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SRC_TARBALL=../../libpng-1.6.3.tgz 3 | BUILDDIR=`mktemp -d` 4 | DESTPATH=`pwd` 5 | 6 | export CC=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc 7 | 8 | cp $SRC_TARBALL $BUILDDIR 9 | pushd $BUILDDIR 10 | tar -xf libpng-1.6.3.tgz 11 | cd libpng-1.6.3 12 | ./configure --prefix=$BUILDDIR --host=arm-none-linux-gnueabi --with-zlib-prefix=$DESTPATH 13 | make -j16 14 | make install 15 | popd 16 | cp $BUILDDIR/lib/*.a . 17 | cp $BUILDDIR/include/*.h . 18 | echo $CFLAGS 19 | rm -r -f $BUILDDIR 20 | 21 | -------------------------------------------------------------------------------- /src/lib_aarch64/build_aarch64_zlib: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SRC_TARBALL=../../zlib-1.2.8.tar.gz 3 | BUILDDIR=`mktemp -d` 4 | export CC=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc 5 | export CFLAGS="" 6 | 7 | cp $SRC_TARBALL $BUILDDIR 8 | pushd $BUILDDIR 9 | tar -xf zlib-1.2.8.tar.gz 10 | cd zlib-1.2.8 11 | ./configure --prefix=$BUILDDIR 12 | make -j16 13 | make install 14 | popd 15 | cp $BUILDDIR/lib/*.a . 16 | cp $BUILDDIR/include/*.h . 17 | rm -r -f $BUILDDIR 18 | 19 | -------------------------------------------------------------------------------- /src/lib_aarch64/jconfig.h: -------------------------------------------------------------------------------- 1 | /* jconfig.h. Generated from jconfig.cfg by configure. */ 2 | /* jconfig.cfg --- source file edited by configure script */ 3 | /* see jconfig.txt for explanations */ 4 | 5 | #define HAVE_PROTOTYPES 1 6 | #define HAVE_UNSIGNED_CHAR 1 7 | #define HAVE_UNSIGNED_SHORT 1 8 | /* #undef void */ 9 | /* #undef const */ 10 | /* #undef CHAR_IS_UNSIGNED */ 11 | #define HAVE_STDDEF_H 1 12 | #define HAVE_STDLIB_H 1 13 | #define HAVE_LOCALE_H 1 14 | /* #undef NEED_BSD_STRINGS */ 15 | /* #undef NEED_SYS_TYPES_H */ 16 | /* #undef NEED_FAR_POINTERS */ 17 | /* #undef NEED_SHORT_EXTERNAL_NAMES */ 18 | /* Define this if you get warnings about undefined structures. */ 19 | /* #undef INCOMPLETE_TYPES_BROKEN */ 20 | 21 | /* Define "boolean" as unsigned char, not int, on Windows systems. */ 22 | #ifdef _WIN32 23 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 24 | typedef unsigned char boolean; 25 | #endif 26 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 27 | #endif 28 | 29 | #ifdef JPEG_INTERNALS 30 | 31 | /* #undef RIGHT_SHIFT_IS_UNSIGNED */ 32 | #define INLINE __inline__ 33 | /* These are for configuring the JPEG memory manager. */ 34 | /* #undef DEFAULT_MAX_MEM */ 35 | /* #undef NO_MKTEMP */ 36 | 37 | #endif /* JPEG_INTERNALS */ 38 | 39 | #ifdef JPEG_CJPEG_DJPEG 40 | 41 | #define BMP_SUPPORTED /* BMP image file format */ 42 | #define GIF_SUPPORTED /* GIF image file format */ 43 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 44 | /* #undef RLE_SUPPORTED */ 45 | #define TARGA_SUPPORTED /* Targa image file format */ 46 | 47 | /* #undef TWO_FILE_COMMANDLINE */ 48 | /* #undef NEED_SIGNAL_CATCHER */ 49 | /* #undef DONT_USE_B_MODE */ 50 | 51 | /* Define this if you want percent-done progress reports from cjpeg/djpeg. */ 52 | /* #undef PROGRESS_REPORT */ 53 | 54 | #endif /* JPEG_CJPEG_DJPEG */ 55 | -------------------------------------------------------------------------------- /src/lib_aarch64/libfftw3.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_aarch64/libfftw3.a -------------------------------------------------------------------------------- /src/lib_aarch64/libjpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_aarch64/libjpeg.a -------------------------------------------------------------------------------- /src/lib_aarch64/libpng.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_aarch64/libpng.a -------------------------------------------------------------------------------- /src/lib_aarch64/libpng16.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_aarch64/libpng16.a -------------------------------------------------------------------------------- /src/lib_aarch64/libz.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_aarch64/libz.a -------------------------------------------------------------------------------- /src/lib_armv6/X11/Xosdefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * O/S-dependent (mis)feature macro definitions 3 | * 4 | Copyright 1991, 1998 The Open Group 5 | 6 | Permission to use, copy, modify, distribute, and sell this software and its 7 | documentation for any purpose is hereby granted without fee, provided that 8 | the above copyright notice appear in all copies and that both that 9 | copyright notice and this permission notice appear in supporting 10 | documentation. 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 19 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | Except as contained in this notice, the name of The Open Group shall not be 23 | used in advertising or otherwise to promote the sale, use or other dealings 24 | in this Software without prior written authorization from The Open Group. 25 | */ 26 | 27 | #ifndef _XOSDEFS_H_ 28 | # define _XOSDEFS_H_ 29 | 30 | /* 31 | * X_NOT_POSIX means does not have POSIX header files. Lack of this 32 | * symbol does NOT mean that the POSIX environment is the default. 33 | * You may still have to define _POSIX_SOURCE to get it. 34 | */ 35 | 36 | 37 | # ifdef _SCO_DS 38 | # ifndef __SCO__ 39 | # define __SCO__ 40 | # endif 41 | # endif 42 | 43 | # ifdef __i386__ 44 | # ifdef SYSV 45 | # if !defined(__SCO__) && \ 46 | !defined(__UNIXWARE__) && !defined(__sun) 47 | # if !defined(_POSIX_SOURCE) 48 | # define X_NOT_POSIX 49 | # endif 50 | # endif 51 | # endif 52 | # endif 53 | 54 | # ifdef __sun 55 | /* Imake configs define SVR4 on Solaris, but cc & gcc only define __SVR4 56 | * This check allows non-Imake configured programs to build correctly. 57 | */ 58 | # if defined(__SVR4) && !defined(SVR4) 59 | # define SVR4 1 60 | # endif 61 | # ifdef SVR4 62 | /* define this to whatever it needs to be */ 63 | # define X_POSIX_C_SOURCE 199300L 64 | # endif 65 | # endif 66 | 67 | # ifdef WIN32 68 | # ifndef _POSIX_ 69 | # define X_NOT_POSIX 70 | # endif 71 | # endif 72 | 73 | 74 | # ifdef __APPLE__ 75 | # define NULL_NOT_ZERO 76 | 77 | /* Defining any of these will sanitize the namespace to JUST want is defined by 78 | * that particular standard. If that happens, we don't get some expected 79 | * prototypes, typedefs, etc (like fd_mask). We can define _DARWIN_C_SOURCE to 80 | * loosen our belts a tad. 81 | */ 82 | # if defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) 83 | # ifndef _DARWIN_C_SOURCE 84 | # define _DARWIN_C_SOURCE 85 | # endif 86 | # endif 87 | 88 | # endif 89 | 90 | # ifdef __GNU__ 91 | # ifndef PATH_MAX 92 | # define PATH_MAX 4096 93 | # endif 94 | # ifndef MAXPATHLEN 95 | # define MAXPATHLEN 4096 96 | # endif 97 | # endif 98 | 99 | # if defined(__SCO__) || defined(__UNIXWARE__) 100 | # ifndef PATH_MAX 101 | # define PATH_MAX 1024 102 | # endif 103 | # ifndef MAXPATHLEN 104 | # define MAXPATHLEN 1024 105 | # endif 106 | # endif 107 | 108 | # if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) \ 109 | || defined(__APPLE__) || defined(__DragonFly__) 110 | # ifndef CSRG_BASED 111 | # define CSRG_BASED 112 | # endif 113 | # endif 114 | 115 | #endif /* _XOSDEFS_H_ */ 116 | 117 | -------------------------------------------------------------------------------- /src/lib_armv6/X11/keysym.h: -------------------------------------------------------------------------------- 1 | /*********************************************************** 2 | 3 | Copyright 1987, 1998 The Open Group 4 | 5 | Permission to use, copy, modify, distribute, and sell this software and its 6 | documentation for any purpose is hereby granted without fee, provided that 7 | the above copyright notice appear in all copies and that both that 8 | copyright notice and this permission notice appear in supporting 9 | documentation. 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 18 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 | 21 | Except as contained in this notice, the name of The Open Group shall not be 22 | used in advertising or otherwise to promote the sale, use or other dealings 23 | in this Software without prior written authorization from The Open Group. 24 | 25 | 26 | Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. 27 | 28 | All Rights Reserved 29 | 30 | Permission to use, copy, modify, and distribute this software and its 31 | documentation for any purpose and without fee is hereby granted, 32 | provided that the above copyright notice appear in all copies and that 33 | both that copyright notice and this permission notice appear in 34 | supporting documentation, and that the name of Digital not be 35 | used in advertising or publicity pertaining to distribution of the 36 | software without specific, written prior permission. 37 | 38 | DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 39 | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 40 | DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 41 | ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 42 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 43 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 44 | SOFTWARE. 45 | 46 | ******************************************************************/ 47 | 48 | /* default keysyms */ 49 | #define XK_MISCELLANY 50 | #define XK_XKB_KEYS 51 | #define XK_LATIN1 52 | #define XK_LATIN2 53 | #define XK_LATIN3 54 | #define XK_LATIN4 55 | #define XK_LATIN8 56 | #define XK_LATIN9 57 | #define XK_CAUCASUS 58 | #define XK_GREEK 59 | #define XK_KATAKANA 60 | #define XK_ARABIC 61 | #define XK_CYRILLIC 62 | #define XK_HEBREW 63 | #define XK_THAI 64 | #define XK_KOREAN 65 | #define XK_ARMENIAN 66 | #define XK_GEORGIAN 67 | #define XK_VIETNAMESE 68 | #define XK_CURRENCY 69 | #define XK_MATHEMATICAL 70 | #define XK_BRAILLE 71 | #define XK_SINHALA 72 | 73 | #include 74 | 75 | -------------------------------------------------------------------------------- /src/lib_armv6/build_armv6_fftw3: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SRC_TARBALL=../../fftw-3.3.10.tar.gz 3 | BUILDDIR=`mktemp -d` 4 | export CC=/opt/rpi-tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-gcc 5 | export CFLAGS="-march=armv6zk -mfpu=vfp -mfloat-abi=hard -mcpu=arm1176jzf-s" 6 | 7 | cp $SRC_TARBALL $BUILDDIR 8 | pushd $BUILDDIR 9 | tar -xf fftw-3.3.10.tar.gz 10 | cd fftw-3.3.10 11 | ./configure --prefix=$BUILDDIR --host=arm-none-linux-gnueabi 12 | make -j16 13 | make install 14 | popd 15 | cp $BUILDDIR/lib/libfftw*.a . 16 | cp $BUILDDIR/include/fftw3.h . 17 | rm -r -f $BUILDDIR 18 | 19 | -------------------------------------------------------------------------------- /src/lib_armv6/crossARMv6-libpng: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # architecture prefix 4 | ARCH="arm-bcm2708hardfp-linux-gnueabi" 5 | 6 | # path to the toolchain and kernel base 7 | TOOL_PATH=/home/petermaierh/rpi-tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/ 8 | 9 | # path to the toolchain base 10 | BASE_PATH=$TOOL_PATH 11 | 12 | # cumulative toolchain prefix 13 | PREFIX=$BASE_PATH/bin/$ARCH 14 | 15 | export CC=$PREFIX-gcc 16 | export CXX=$PREFIX-g++ 17 | export LD=$PREFIX-ld 18 | export NM="$PREFIX-nm -B" 19 | export AR=$PREFIX-ar 20 | export RANLIB=$PREFIX-ranlib 21 | export STRIP=$PREFIX-strip 22 | export OBJCOPY=$PREFIX-objcopy 23 | export LN_S="ln -s" 24 | 25 | export CFLAGS="-Wall -O3 -funroll-loops -I$BASE_PATH/include -I../zlib-1.2.8 -march=armv6zk -mfpu=vfp -mfloat-abi=hard -mcpu=arm1176jzf-s" 26 | export CPPFLAGS="-I$BASE_PATH/include" 27 | export CXXFLAGS="" 28 | 29 | export LDFLAGS="-L$BASE_PATH/lib -L$BASE_PATH/$ARCH/lib -L$BASE_PATH/lib/gcc/arm-bcm2708hardfp-linux-gnueabi/4.7.1 -L../zlib-1.2.8" 30 | 31 | ./configure --host=$ARCH --prefix=$BASE_PATH --libdir=/home/petermaierh/work/dxlAPRS/src/lib_armv6/ 32 | make 33 | make install 34 | 35 | -------------------------------------------------------------------------------- /src/lib_armv6/crossARMv6-libpng15: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # architecture prefix 4 | ARCH="arm-bcm2708hardfp-linux-gnueabi" 5 | 6 | # path to the toolchain and kernel base 7 | TOOL_PATH=/home/petermaierh/rpi-tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/ 8 | 9 | # path to the toolchain base 10 | BASE_PATH=$TOOL_PATH 11 | 12 | # cumulative toolchain prefix 13 | PREFIX=$BASE_PATH/bin/$ARCH 14 | 15 | export CC=$PREFIX-gcc 16 | export CXX=$PREFIX-g++ 17 | export LD=$PREFIX-ld 18 | export NM="$PREFIX-nm -B" 19 | export AR=$PREFIX-ar 20 | export RANLIB=$PREFIX-ranlib 21 | export STRIP=$PREFIX-strip 22 | export OBJCOPY=$PREFIX-objcopy 23 | export LN_S="ln -s" 24 | 25 | export CFLAGS="-Wall -O3 -funroll-loops -I$BASE_PATH/include -I../zlib-1.2.8 -march=armv6zk -mfpu=vfp -mfloat-abi=hard -mcpu=arm1176jzf-s" 26 | export CPPFLAGS="-I$BASE_PATH/include" 27 | export CXXFLAGS="" 28 | 29 | export LDFLAGS="-L$BASE_PATH/lib -L$BASE_PATH/$ARCH/lib -L$BASE_PATH/lib/gcc/arm-bcm2708hardfp-linux-gnueabi/4.7.1 -L../zlib-1.2.8" 30 | 31 | ./configure --host=$ARCH --prefix=$BASE_PATH --libdir=/home/petermaierh/work/dxlAPRS/src/lib_armv6/libpng15 --includedir=/home/petermaierh/work/dxlAPRS/src/lib_armv6/libpng15 32 | make 33 | make install 34 | 35 | -------------------------------------------------------------------------------- /src/lib_armv6/crossARMv6-zlib: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | CC=../src/arm-linux-rpi-gcc CFLAGS="-march=armv6zk -mfpu=vfp -mfloat-abi=hard -mcpu=arm1176jzf-s" ./configure 3 | CC=../src/arm-linux-rpi-gcc CFLAGS="-march=armv6zk -mfpu=vfp -mfloat-abi=hard -mcpu=arm1176jzf-s" make 4 | 5 | -------------------------------------------------------------------------------- /src/lib_armv6/jconfig.h: -------------------------------------------------------------------------------- 1 | /* jconfig.h. Generated from jconfig.cfg by configure. */ 2 | /* jconfig.cfg --- source file edited by configure script */ 3 | /* see jconfig.txt for explanations */ 4 | 5 | #define HAVE_PROTOTYPES 1 6 | #define HAVE_UNSIGNED_CHAR 1 7 | #define HAVE_UNSIGNED_SHORT 1 8 | /* #undef void */ 9 | /* #undef const */ 10 | /* #undef CHAR_IS_UNSIGNED */ 11 | #define HAVE_STDDEF_H 1 12 | #define HAVE_STDLIB_H 1 13 | #define HAVE_LOCALE_H 1 14 | /* #undef NEED_BSD_STRINGS */ 15 | /* #undef NEED_SYS_TYPES_H */ 16 | /* #undef NEED_FAR_POINTERS */ 17 | /* #undef NEED_SHORT_EXTERNAL_NAMES */ 18 | /* Define this if you get warnings about undefined structures. */ 19 | /* #undef INCOMPLETE_TYPES_BROKEN */ 20 | 21 | /* Define "boolean" as unsigned char, not int, on Windows systems. */ 22 | #ifdef _WIN32 23 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 24 | typedef unsigned char boolean; 25 | #endif 26 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 27 | #endif 28 | 29 | #ifdef JPEG_INTERNALS 30 | 31 | /* #undef RIGHT_SHIFT_IS_UNSIGNED */ 32 | #define INLINE __inline__ 33 | /* These are for configuring the JPEG memory manager. */ 34 | /* #undef DEFAULT_MAX_MEM */ 35 | /* #undef NO_MKTEMP */ 36 | 37 | #endif /* JPEG_INTERNALS */ 38 | 39 | #ifdef JPEG_CJPEG_DJPEG 40 | 41 | #define BMP_SUPPORTED /* BMP image file format */ 42 | #define GIF_SUPPORTED /* GIF image file format */ 43 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 44 | /* #undef RLE_SUPPORTED */ 45 | #define TARGA_SUPPORTED /* Targa image file format */ 46 | 47 | /* #undef TWO_FILE_COMMANDLINE */ 48 | /* #undef NEED_SIGNAL_CATCHER */ 49 | /* #undef DONT_USE_B_MODE */ 50 | 51 | /* Define this if you want percent-done progress reports from cjpeg/djpeg. */ 52 | /* #undef PROGRESS_REPORT */ 53 | 54 | #endif /* JPEG_CJPEG_DJPEG */ 55 | -------------------------------------------------------------------------------- /src/lib_armv6/libX11.so: -------------------------------------------------------------------------------- 1 | libX11.so.6.3.0 -------------------------------------------------------------------------------- /src/lib_armv6/libX11.so.6: -------------------------------------------------------------------------------- 1 | libX11.so.6.3.0 -------------------------------------------------------------------------------- /src/lib_armv6/libX11.so.6.3.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libX11.so.6.3.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXau.so: -------------------------------------------------------------------------------- 1 | libXau.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXau.so.6: -------------------------------------------------------------------------------- 1 | libXau.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXau.so.6.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libXau.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXdmcp.so: -------------------------------------------------------------------------------- 1 | libXdmcp.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXdmcp.so.6: -------------------------------------------------------------------------------- 1 | libXdmcp.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXdmcp.so.6.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libXdmcp.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXext.so: -------------------------------------------------------------------------------- 1 | libXext.so.6.4.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXext.so.6: -------------------------------------------------------------------------------- 1 | libXext.so.6.4.0 -------------------------------------------------------------------------------- /src/lib_armv6/libXext.so.6.4.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libXext.so.6.4.0 -------------------------------------------------------------------------------- /src/lib_armv6/libfftw3.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libfftw3.a -------------------------------------------------------------------------------- /src/lib_armv6/libjpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libjpeg.a -------------------------------------------------------------------------------- /src/lib_armv6/libpng15/libpng.a: -------------------------------------------------------------------------------- 1 | libpng15.a -------------------------------------------------------------------------------- /src/lib_armv6/libpng15/libpng15.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libpng15/libpng15.a -------------------------------------------------------------------------------- /src/lib_armv6/libpng15/png.h: -------------------------------------------------------------------------------- 1 | libpng15/png.h -------------------------------------------------------------------------------- /src/lib_armv6/libpng15/pngconf.h: -------------------------------------------------------------------------------- 1 | libpng15/pngconf.h -------------------------------------------------------------------------------- /src/lib_armv6/libpng15/pnglibconf.h: -------------------------------------------------------------------------------- 1 | libpng15/pnglibconf.h -------------------------------------------------------------------------------- /src/lib_armv6/libpng16/libpng.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libpng16/libpng.a -------------------------------------------------------------------------------- /src/lib_armv6/libxcb.so: -------------------------------------------------------------------------------- 1 | libxcb.so.1.1.0 -------------------------------------------------------------------------------- /src/lib_armv6/libxcb.so.1: -------------------------------------------------------------------------------- 1 | libxcb.so.1.1.0 -------------------------------------------------------------------------------- /src/lib_armv6/libxcb.so.1.1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libxcb.so.1.1.0 -------------------------------------------------------------------------------- /src/lib_armv6/libz.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv6/libz.a -------------------------------------------------------------------------------- /src/lib_armv7hf/X11/Xosdefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * O/S-dependent (mis)feature macro definitions 3 | * 4 | Copyright 1991, 1998 The Open Group 5 | 6 | Permission to use, copy, modify, distribute, and sell this software and its 7 | documentation for any purpose is hereby granted without fee, provided that 8 | the above copyright notice appear in all copies and that both that 9 | copyright notice and this permission notice appear in supporting 10 | documentation. 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 19 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | Except as contained in this notice, the name of The Open Group shall not be 23 | used in advertising or otherwise to promote the sale, use or other dealings 24 | in this Software without prior written authorization from The Open Group. 25 | */ 26 | 27 | #ifndef _XOSDEFS_H_ 28 | # define _XOSDEFS_H_ 29 | 30 | /* 31 | * X_NOT_POSIX means does not have POSIX header files. Lack of this 32 | * symbol does NOT mean that the POSIX environment is the default. 33 | * You may still have to define _POSIX_SOURCE to get it. 34 | */ 35 | 36 | 37 | # ifdef _SCO_DS 38 | # ifndef __SCO__ 39 | # define __SCO__ 40 | # endif 41 | # endif 42 | 43 | # ifdef __i386__ 44 | # ifdef SYSV 45 | # if !defined(__SCO__) && \ 46 | !defined(__UNIXWARE__) && !defined(__sun) 47 | # if !defined(_POSIX_SOURCE) 48 | # define X_NOT_POSIX 49 | # endif 50 | # endif 51 | # endif 52 | # endif 53 | 54 | # ifdef __sun 55 | /* Imake configs define SVR4 on Solaris, but cc & gcc only define __SVR4 56 | * This check allows non-Imake configured programs to build correctly. 57 | */ 58 | # if defined(__SVR4) && !defined(SVR4) 59 | # define SVR4 1 60 | # endif 61 | # ifdef SVR4 62 | /* define this to whatever it needs to be */ 63 | # define X_POSIX_C_SOURCE 199300L 64 | # endif 65 | # endif 66 | 67 | # ifdef WIN32 68 | # ifndef _POSIX_ 69 | # define X_NOT_POSIX 70 | # endif 71 | # endif 72 | 73 | 74 | # ifdef __APPLE__ 75 | # define NULL_NOT_ZERO 76 | 77 | /* Defining any of these will sanitize the namespace to JUST want is defined by 78 | * that particular standard. If that happens, we don't get some expected 79 | * prototypes, typedefs, etc (like fd_mask). We can define _DARWIN_C_SOURCE to 80 | * loosen our belts a tad. 81 | */ 82 | # if defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) 83 | # ifndef _DARWIN_C_SOURCE 84 | # define _DARWIN_C_SOURCE 85 | # endif 86 | # endif 87 | 88 | # endif 89 | 90 | # ifdef __GNU__ 91 | # ifndef PATH_MAX 92 | # define PATH_MAX 4096 93 | # endif 94 | # ifndef MAXPATHLEN 95 | # define MAXPATHLEN 4096 96 | # endif 97 | # endif 98 | 99 | # if defined(__SCO__) || defined(__UNIXWARE__) 100 | # ifndef PATH_MAX 101 | # define PATH_MAX 1024 102 | # endif 103 | # ifndef MAXPATHLEN 104 | # define MAXPATHLEN 1024 105 | # endif 106 | # endif 107 | 108 | # if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) \ 109 | || defined(__APPLE__) || defined(__DragonFly__) 110 | # ifndef CSRG_BASED 111 | # define CSRG_BASED 112 | # endif 113 | # endif 114 | 115 | #endif /* _XOSDEFS_H_ */ 116 | 117 | -------------------------------------------------------------------------------- /src/lib_armv7hf/X11/keysym.h: -------------------------------------------------------------------------------- 1 | /*********************************************************** 2 | 3 | Copyright 1987, 1998 The Open Group 4 | 5 | Permission to use, copy, modify, distribute, and sell this software and its 6 | documentation for any purpose is hereby granted without fee, provided that 7 | the above copyright notice appear in all copies and that both that 8 | copyright notice and this permission notice appear in supporting 9 | documentation. 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 18 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 | 21 | Except as contained in this notice, the name of The Open Group shall not be 22 | used in advertising or otherwise to promote the sale, use or other dealings 23 | in this Software without prior written authorization from The Open Group. 24 | 25 | 26 | Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. 27 | 28 | All Rights Reserved 29 | 30 | Permission to use, copy, modify, and distribute this software and its 31 | documentation for any purpose and without fee is hereby granted, 32 | provided that the above copyright notice appear in all copies and that 33 | both that copyright notice and this permission notice appear in 34 | supporting documentation, and that the name of Digital not be 35 | used in advertising or publicity pertaining to distribution of the 36 | software without specific, written prior permission. 37 | 38 | DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 39 | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 40 | DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 41 | ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 42 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 43 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 44 | SOFTWARE. 45 | 46 | ******************************************************************/ 47 | 48 | /* default keysyms */ 49 | #define XK_MISCELLANY 50 | #define XK_XKB_KEYS 51 | #define XK_LATIN1 52 | #define XK_LATIN2 53 | #define XK_LATIN3 54 | #define XK_LATIN4 55 | #define XK_LATIN8 56 | #define XK_LATIN9 57 | #define XK_CAUCASUS 58 | #define XK_GREEK 59 | #define XK_KATAKANA 60 | #define XK_ARABIC 61 | #define XK_CYRILLIC 62 | #define XK_HEBREW 63 | #define XK_THAI 64 | #define XK_KOREAN 65 | #define XK_ARMENIAN 66 | #define XK_GEORGIAN 67 | #define XK_VIETNAMESE 68 | #define XK_CURRENCY 69 | #define XK_MATHEMATICAL 70 | #define XK_BRAILLE 71 | #define XK_SINHALA 72 | 73 | #include 74 | 75 | -------------------------------------------------------------------------------- /src/lib_armv7hf/build_armv7hf_fftw3: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SRC_TARBALL=../../fftw-3.3.10.tar.gz 3 | BUILDDIR=`mktemp -d` 4 | export CC=/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc 5 | export CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a8" 6 | 7 | cp $SRC_TARBALL $BUILDDIR 8 | pushd $BUILDDIR 9 | tar -xf fftw-3.3.10.tar.gz 10 | cd fftw-3.3.10 11 | ./configure --prefix=$BUILDDIR --host=arm-none-linux-gnueabi 12 | make -j16 13 | make install 14 | popd 15 | cp $BUILDDIR/lib/libfftw3*.a . 16 | cp $BUILDDIR/include/fftw3.h . 17 | rm -r -f $BUILDDIR 18 | 19 | -------------------------------------------------------------------------------- /src/lib_armv7hf/crossARMv7hf-libjpeg: -------------------------------------------------------------------------------- 1 | CC=../src/arm-linux-armv7hf-gcc CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a8" ./configure --host=arm-linux-gnueabihf --prefix=/tmp/libjpeg --libdir=/home/petermaierh/work/dxlAPRS/src/lib_armv7hf --includedir=/home/petermaierh/work/dxlAPRS/src/lib_armv7hf 2 | CC=../src/arm-linux-armv7hf-gcc CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a8" make 3 | CC=../src/arm-linux-armv7hf-gcc CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a8" make install 4 | 5 | -------------------------------------------------------------------------------- /src/lib_armv7hf/crossARMv7hf-libpng: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # architecture prefix 4 | ARCH="arm-linux-gnueabihf" 5 | 6 | # path to the toolchain and kernel base 7 | TOOL_PATH=/home/petermaierh/gcc-linaro-arm-linux-gnueabihf-4.8-2014-07-1 8 | 9 | # path to the toolchain base 10 | BASE_PATH=$TOOL_PATH 11 | 12 | # cumulative toolchain prefix 13 | PREFIX=$BASE_PATH/bin/$ARCH 14 | 15 | export CC=$PREFIX-gcc 16 | export CXX=$PREFIX-g++ 17 | export LD=$PREFIX-ld 18 | export NM="$PREFIX-nm -B" 19 | export AR=$PREFIX-ar 20 | export RANLIB=$PREFIX-ranlib 21 | export STRIP=$PREFIX-strip 22 | export OBJCOPY=$PREFIX-objcopy 23 | export LN_S="ln -s" 24 | 25 | export CFLAGS="-Wall -O3 -funroll-loops -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a8 -I$BASE_PATH/include -I../zlib-1.2.8" 26 | export CPPFLAGS="-I$BASE_PATH/include" 27 | export CXXFLAGS="" 28 | 29 | export LDFLAGS="-L$BASE_PATH/lib -L$BASE_PATH/$ARCH/lib -L$BASE_PATH/lib/gcc/arm-linux-gnueabihf/4.8.2 -L../zlib-1.2.8" 30 | 31 | ./configure --host=$ARCH --prefix=/tmp/libpng --libdir=/home/petermaierh/work/dxlAPRS/src/lib_armv7hf --includedir=/home/petermaierh/work/dxlAPRS/src/lib_armv7hf 32 | make 33 | make install -------------------------------------------------------------------------------- /src/lib_armv7hf/crossARMv7hf-zlib: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | CC=../src/arm-linux-armv7hf-gcc CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a8" ./configure 3 | CC=../src/arm-linux-armv7hf-gcc CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a8" make 4 | 5 | -------------------------------------------------------------------------------- /src/lib_armv7hf/jconfig.h: -------------------------------------------------------------------------------- 1 | /* jconfig.h. Generated from jconfig.cfg by configure. */ 2 | /* jconfig.cfg --- source file edited by configure script */ 3 | /* see jconfig.txt for explanations */ 4 | 5 | #define HAVE_PROTOTYPES 1 6 | #define HAVE_UNSIGNED_CHAR 1 7 | #define HAVE_UNSIGNED_SHORT 1 8 | /* #undef void */ 9 | /* #undef const */ 10 | /* #undef CHAR_IS_UNSIGNED */ 11 | #define HAVE_STDDEF_H 1 12 | #define HAVE_STDLIB_H 1 13 | #define HAVE_LOCALE_H 1 14 | /* #undef NEED_BSD_STRINGS */ 15 | /* #undef NEED_SYS_TYPES_H */ 16 | /* #undef NEED_FAR_POINTERS */ 17 | /* #undef NEED_SHORT_EXTERNAL_NAMES */ 18 | /* Define this if you get warnings about undefined structures. */ 19 | /* #undef INCOMPLETE_TYPES_BROKEN */ 20 | 21 | /* Define "boolean" as unsigned char, not int, on Windows systems. */ 22 | #ifdef _WIN32 23 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 24 | typedef unsigned char boolean; 25 | #endif 26 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 27 | #endif 28 | 29 | #ifdef JPEG_INTERNALS 30 | 31 | /* #undef RIGHT_SHIFT_IS_UNSIGNED */ 32 | #define INLINE __inline__ 33 | /* These are for configuring the JPEG memory manager. */ 34 | /* #undef DEFAULT_MAX_MEM */ 35 | /* #undef NO_MKTEMP */ 36 | 37 | #endif /* JPEG_INTERNALS */ 38 | 39 | #ifdef JPEG_CJPEG_DJPEG 40 | 41 | #define BMP_SUPPORTED /* BMP image file format */ 42 | #define GIF_SUPPORTED /* GIF image file format */ 43 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 44 | /* #undef RLE_SUPPORTED */ 45 | #define TARGA_SUPPORTED /* Targa image file format */ 46 | 47 | /* #undef TWO_FILE_COMMANDLINE */ 48 | /* #undef NEED_SIGNAL_CATCHER */ 49 | /* #undef DONT_USE_B_MODE */ 50 | 51 | /* Define this if you want percent-done progress reports from cjpeg/djpeg. */ 52 | /* #undef PROGRESS_REPORT */ 53 | 54 | #endif /* JPEG_CJPEG_DJPEG */ 55 | -------------------------------------------------------------------------------- /src/lib_armv7hf/libX11.so: -------------------------------------------------------------------------------- 1 | libX11.so.6.3.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libX11.so.6: -------------------------------------------------------------------------------- 1 | libX11.so.6.3.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libX11.so.6.3.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libX11.so.6.3.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXau.so: -------------------------------------------------------------------------------- 1 | libXau.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXau.so.6: -------------------------------------------------------------------------------- 1 | libXau.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXau.so.6.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libXau.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXdmcp.so: -------------------------------------------------------------------------------- 1 | libXdmcp.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXdmcp.so.6: -------------------------------------------------------------------------------- 1 | libXdmcp.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXdmcp.so.6.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libXdmcp.so.6.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXext.so: -------------------------------------------------------------------------------- 1 | libXext.so.6.4.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXext.so.6: -------------------------------------------------------------------------------- 1 | libXext.so.6.4.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libXext.so.6.4.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libXext.so.6.4.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libfftw3.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libfftw3.a -------------------------------------------------------------------------------- /src/lib_armv7hf/libjpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libjpeg.a -------------------------------------------------------------------------------- /src/lib_armv7hf/libjpeg.la: -------------------------------------------------------------------------------- 1 | # libjpeg.la - a libtool library file 2 | # Generated by libtool (GNU libtool) 2.4.2 3 | # 4 | # Please DO NOT delete this file! 5 | # It is necessary for linking the library. 6 | 7 | # The name that we can dlopen(3). 8 | dlname='libjpeg.so.9' 9 | 10 | # Names of this library. 11 | library_names='libjpeg.so.9.0.0 libjpeg.so.9 libjpeg.so' 12 | 13 | # The name of the static archive. 14 | old_library='libjpeg.a' 15 | 16 | # Linker flags that can not go in dependency_libs. 17 | inherited_linker_flags='' 18 | 19 | # Libraries that this one depends upon. 20 | dependency_libs='' 21 | 22 | # Names of additional weak libraries provided by this library 23 | weak_library_names='' 24 | 25 | # Version information for libjpeg. 26 | current=9 27 | age=0 28 | revision=0 29 | 30 | # Is this an already installed library? 31 | installed=yes 32 | 33 | # Should we warn about portability when linking against -modules? 34 | shouldnotlink=no 35 | 36 | # Files to dlopen/dlpreopen 37 | dlopen='' 38 | dlpreopen='' 39 | 40 | # Directory that this library needs to be installed in: 41 | libdir='/home/petermaierh/work/dxlARPS/src/lib_armv7hf' 42 | -------------------------------------------------------------------------------- /src/lib_armv7hf/libjpeg.so: -------------------------------------------------------------------------------- 1 | libjpeg.so.9.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libjpeg.so.9: -------------------------------------------------------------------------------- 1 | libjpeg.so.9.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libjpeg.so.9.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libjpeg.so.9.0.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libpng.a: -------------------------------------------------------------------------------- 1 | libpng16.a -------------------------------------------------------------------------------- /src/lib_armv7hf/libpng16.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libpng16.a -------------------------------------------------------------------------------- /src/lib_armv7hf/libxcb.so: -------------------------------------------------------------------------------- 1 | libxcb.so.1.1.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libxcb.so.1: -------------------------------------------------------------------------------- 1 | libxcb.so.1.1.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libxcb.so.1.1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libxcb.so.1.1.0 -------------------------------------------------------------------------------- /src/lib_armv7hf/libz.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_armv7hf/libz.a -------------------------------------------------------------------------------- /src/lib_armv7hf/png.h: -------------------------------------------------------------------------------- 1 | libpng16/png.h -------------------------------------------------------------------------------- /src/lib_armv7hf/pngconf.h: -------------------------------------------------------------------------------- 1 | libpng16/pngconf.h -------------------------------------------------------------------------------- /src/lib_armv7hf/pnglibconf.h: -------------------------------------------------------------------------------- 1 | libpng16/pnglibconf.h -------------------------------------------------------------------------------- /src/lib_x86_32/build_x86-32_fftw3: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SRC_TARBALL=../../fftw-3.3.10.tar.gz 3 | BUILDDIR=`mktemp -d` 4 | 5 | cp $SRC_TARBALL $BUILDDIR 6 | pushd $BUILDDIR 7 | tar -xf fftw-3.3.10.tar.gz 8 | cd fftw-3.3.10 9 | ./configure --prefix=$BUILDDIR --build=i686-pc-linux-gnu CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 10 | make -j16 11 | make install 12 | popd 13 | cp $BUILDDIR/lib/libfftw*.a . 14 | cp $BUILDDIR/include/fftw3.h . 15 | #rm -r -f $BUILDDIR 16 | 17 | -------------------------------------------------------------------------------- /src/lib_x86_32/libfftw3.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_x86_32/libfftw3.a -------------------------------------------------------------------------------- /src/lib_x86_64/build_x86-64_fftw3: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SRC_TARBALL=../../fftw-3.3.10.tar.gz 3 | BUILDDIR=`mktemp -d` 4 | 5 | cp $SRC_TARBALL $BUILDDIR 6 | pushd $BUILDDIR 7 | tar -xf fftw-3.3.10.tar.gz 8 | cd fftw-3.3.10 9 | ./configure --prefix=$BUILDDIR #--enable-float 10 | make -j16 11 | make install 12 | popd 13 | cp $BUILDDIR/lib/libfftw*.a . 14 | cp $BUILDDIR/include/fftw3.h . 15 | rm -r -f $BUILDDIR 16 | 17 | -------------------------------------------------------------------------------- /src/lib_x86_64/libfftw3.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/lib_x86_64/libfftw3.a -------------------------------------------------------------------------------- /src/libsrtm.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef libsrtm_H_ 11 | #define libsrtm_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | #ifndef aprsstr_H_ 16 | #include "aprsstr.h" 17 | #endif 18 | 19 | #define libsrtm_ATTRWATER 3 20 | 21 | #define libsrtm_ATTRWOOD 2 22 | 23 | #define libsrtm_ATTRURBAN 1 24 | 25 | struct libsrtm_METAINFO; 26 | 27 | 28 | struct libsrtm_METAINFO { 29 | char withslant; 30 | char aliasattr; 31 | float slantx; 32 | float slanty; 33 | float attrweights[8]; 34 | }; 35 | 36 | typedef struct libsrtm_METAINFO * libsrtm_pMETAINFO; 37 | 38 | extern uint32_t libsrtm_srtmmem; 39 | 40 | extern uint32_t libsrtm_srtmmaxmem; 41 | 42 | extern uint32_t libsrtm_accesses; 43 | 44 | extern uint32_t libsrtm_accessescached; 45 | 46 | extern char libsrtm_srtmdir[1024]; 47 | 48 | extern char libsrtm_bicubic; 49 | 50 | extern int32_t libsrtm_opensrtm(uint8_t, uint32_t, uint32_t); 51 | 52 | extern float libsrtm_getsrtm(struct aprsstr_POSITION, uint32_t, 53 | float *); 54 | 55 | extern float libsrtm_getsrtmlong(double, double, uint32_t, 56 | char, float *, uint8_t *, libsrtm_pMETAINFO); 57 | 58 | extern void libsrtm_initsrtm(void); 59 | 60 | extern void libsrtm_closesrtmfile(void); 61 | 62 | extern float libsrtm_egm96(struct aprsstr_POSITION, char *); 63 | 64 | 65 | extern void libsrtm_BEGIN(void); 66 | 67 | 68 | #endif /* libsrtm_H_ */ 69 | -------------------------------------------------------------------------------- /src/panorama.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/panorama.c -------------------------------------------------------------------------------- /src/pastewrapper.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | void pasteget(Display* dis, Window win, Atom property, uint32_t* nn, unsigned char** pstr) 14 | { 15 | int ii; 16 | long nnl; 17 | long nc; 18 | Atom atom1; 19 | 20 | XGetWindowProperty(dis, win, property, 0L, 64L, 0L, 0UL, &atom1, &ii, &nnl, &nc, pstr); 21 | 22 | *nn = (uint32_t)nnl; 23 | } 24 | -------------------------------------------------------------------------------- /src/pastewrapper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef pastewrapper_H_ 9 | #define pastewrapper_H_ 10 | #include "X2C.h" 11 | #include 12 | 13 | void pasteget(PtrDisplay, uint32_t, uint32_t, uint32_t *, PAUChar *); 14 | 15 | 16 | #endif /* pastewrapper_H_ */ 17 | -------------------------------------------------------------------------------- /src/plutoio.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef plutoio_H_ 9 | #define plutoio_H_ 10 | #include "X2C.h" 11 | 12 | typedef short * pIQBUF; 13 | 14 | extern int32_t initiio(uint32_t, uint32_t, uint32_t, uint32_t, 15 | uint32_t, uint32_t, uint32_t, uint32_t); 16 | 17 | extern int32_t Initiio(char []); 18 | 19 | extern void closeiio(void); 20 | 21 | extern int32_t receive(pIQBUF); 22 | 23 | extern int32_t transmitbuf(void); 24 | 25 | extern void PlutoTxOff(char); 26 | 27 | extern void PlutoRxOff(char); 28 | 29 | extern void setPlutoGpo(int32_t); 30 | 31 | extern int32_t startrx(uint32_t); 32 | 33 | extern int32_t starttx(uint32_t, pIQBUF *); 34 | 35 | extern int32_t setrxgainmode(char []); 36 | 37 | extern int32_t setrxgain(short); 38 | 39 | extern int32_t settxgain(short); 40 | 41 | extern int32_t setddsfreq(int32_t); 42 | 43 | extern int32_t setfreq(double, char); 44 | 45 | extern int32_t setbw(uint32_t, char); 46 | 47 | extern int32_t setsampel(uint32_t, char); 48 | 49 | extern int32_t setport(char [], char); 50 | 51 | extern int32_t settxbufs(uint32_t); 52 | 53 | extern int32_t firenable(char); 54 | 55 | 56 | #endif /* plutoio_H_ */ 57 | -------------------------------------------------------------------------------- /src/pngread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef pngread_H_ 9 | #define pngread_H_ 10 | #include "X2C.h" 11 | 12 | extern int32_t readpng(char [], X2C_ADDRESS [], int32_t *, int32_t *, int32_t *); 13 | 14 | 15 | #endif /* pngread_H_ */ 16 | -------------------------------------------------------------------------------- /src/pngwrite.c: -------------------------------------------------------------------------------- 1 | #include 2 | /* 3 | #include 4 | #include 5 | #include 6 | */ 7 | 8 | typedef struct { 9 | char red; 10 | char green; 11 | char blue; 12 | } pixel_t; 13 | 14 | /* A picture. */ 15 | 16 | typedef struct { 17 | pixel_t *pixels; 18 | size_t width; 19 | size_t height; 20 | } bitmap_t; 21 | 22 | /* Given "bitmap", this returns the pixel of bitmap at the point 23 | ("x", "y"). */ 24 | 25 | static pixel_t * pixel_at (bitmap_t * bitmap, int x, int y) 26 | { 27 | return bitmap->pixels + bitmap->width * y + x; 28 | } 29 | 30 | /* Write "bitmap" to a PNG file specified by "path"; returns 0 on 31 | success, non-zero on error. */ 32 | 33 | int writepng(const char *path, bitmap_t *bitmap) 34 | { 35 | FILE * fp; 36 | png_structp png_ptr = NULL; 37 | png_infop info_ptr = NULL; 38 | size_t x, y; 39 | png_byte ** row_pointers = NULL; 40 | /* "status" contains the return value of this function. At first 41 | it is set to a value which means 'failure'. When the routine 42 | has finished its work, it is set to a value which means 43 | 'success'. */ 44 | int status = -1; 45 | /* The following number is set by trial and error only. I cannot 46 | see where it it is documented in the libpng manual. 47 | */ 48 | int pixel_size = 3; 49 | int depth = 8; 50 | 51 | fp = fopen (path, "wb"); 52 | if (! fp) { 53 | goto fopen_failed; 54 | } 55 | 56 | png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); 57 | if (png_ptr == NULL) { 58 | goto png_create_write_struct_failed; 59 | } 60 | 61 | info_ptr = png_create_info_struct (png_ptr); 62 | if (info_ptr == NULL) { 63 | goto png_create_info_struct_failed; 64 | } 65 | 66 | /* Set up error handling. */ 67 | 68 | if (setjmp (png_jmpbuf (png_ptr))) { 69 | goto png_failure; 70 | } 71 | 72 | /* Set image attributes. */ 73 | 74 | png_set_IHDR (png_ptr, 75 | info_ptr, 76 | bitmap->width, 77 | bitmap->height, 78 | depth, 79 | PNG_COLOR_TYPE_RGB, 80 | PNG_INTERLACE_NONE, 81 | PNG_COMPRESSION_TYPE_DEFAULT, 82 | PNG_FILTER_TYPE_DEFAULT); 83 | 84 | /* Initialize rows of PNG. */ 85 | 86 | row_pointers = png_malloc (png_ptr, bitmap->height * sizeof (png_byte *)); 87 | for (y = 0; y < bitmap->height; ++y) { 88 | png_byte *row = 89 | png_malloc (png_ptr, sizeof (char) * bitmap->width * pixel_size); 90 | row_pointers[y] = row; 91 | for (x = 0; x < bitmap->width; ++x) { 92 | pixel_t * pixel = pixel_at (bitmap, x, y); 93 | *row++ = pixel->red; 94 | *row++ = pixel->green; 95 | *row++ = pixel->blue; 96 | } 97 | } 98 | 99 | /* Write the image data to "fp". */ 100 | 101 | png_init_io (png_ptr, fp); 102 | png_set_rows (png_ptr, info_ptr, row_pointers); 103 | png_write_png (png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL); 104 | 105 | /* The routine has successfully written the file, so we set 106 | "status" to a value which indicates success. */ 107 | 108 | status = 0; 109 | 110 | for (y = 0; y < bitmap->height; y++) { 111 | png_free (png_ptr, row_pointers[y]); 112 | } 113 | png_free (png_ptr, row_pointers); 114 | 115 | png_failure: 116 | png_create_info_struct_failed: 117 | png_destroy_write_struct (&png_ptr, &info_ptr); 118 | 119 | png_create_write_struct_failed: 120 | fclose (fp); 121 | 122 | fopen_failed: 123 | return status; 124 | 125 | } 126 | 127 | -------------------------------------------------------------------------------- /src/pngwrite.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef pngwrite_H_ 9 | #define pngwrite_H_ 10 | #include "X2C.h" 11 | 12 | struct PNGPIXEL; 13 | 14 | 15 | struct PNGPIXEL { 16 | unsigned char red; 17 | unsigned char green; 18 | unsigned char blue; 19 | }; 20 | 21 | typedef struct PNGPIXEL * pIMAGE; 22 | 23 | 24 | struct pngwrite__D0 { 25 | struct PNGPIXEL * Adr; 26 | size_t Len0; 27 | }; 28 | 29 | struct PNGPIXMAP; 30 | 31 | 32 | struct PNGPIXMAP { 33 | pIMAGE image; 34 | unsigned long width; 35 | unsigned long height; 36 | }; 37 | 38 | extern long writepng(char [], struct PNGPIXMAP *); 39 | 40 | 41 | #endif /* pngwrite_H_ */ 42 | -------------------------------------------------------------------------------- /src/pngwritepalette.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #include 9 | #include 10 | #include 11 | 12 | /* Write "bitmap" to a PNG file specified by "path"; returns 0 on 13 | success, non-zero on error. */ 14 | 15 | int writepng(const char *path, char **rowpointers, uint32_t width, uint32_t height, 16 | png_color *palette, uint32_t palettelen, uint32_t palettedepth, 17 | char *transparency 18 | ) 19 | { 20 | FILE * fp; 21 | png_structp png_ptr = NULL; 22 | png_infop info_ptr = NULL; 23 | size_t x, y; 24 | 25 | png_byte ** row_pointers = NULL; 26 | 27 | /* "status" contains the return value of this function. At first 28 | it is set to a value which means 'failure'. When the routine 29 | has finished its work, it is set to a value which means 30 | 'success'. */ 31 | int status = -1; 32 | /* The following number is set by trial and error only. I cannot 33 | see where it it is documented in the libpng manual. 34 | */ 35 | int pixel_size = 1; 36 | 37 | fp = fopen (path, "wb"); 38 | if (! fp) { 39 | goto fopen_failed; 40 | } 41 | 42 | png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); 43 | if (png_ptr == NULL) { 44 | goto png_create_write_struct_failed; 45 | } 46 | 47 | info_ptr = png_create_info_struct (png_ptr); 48 | if (info_ptr == NULL) { 49 | goto png_create_info_struct_failed; 50 | } 51 | 52 | /* Set up error handling. */ 53 | 54 | if (setjmp (png_jmpbuf (png_ptr))) { 55 | goto png_failure; 56 | } 57 | 58 | /* Set image attributes. */ 59 | 60 | png_set_IHDR (png_ptr, 61 | info_ptr, 62 | width, 63 | height, 64 | palettedepth, 65 | PNG_COLOR_TYPE_PALETTE, 66 | PNG_INTERLACE_NONE, 67 | PNG_COMPRESSION_TYPE_DEFAULT, 68 | PNG_FILTER_TYPE_DEFAULT); 69 | 70 | /* Initialize rows of PNG. */ 71 | 72 | 73 | row_pointers = png_malloc (png_ptr, height * sizeof (png_byte *)); 74 | for (y = 0; y < height; ++y) 75 | row_pointers[y] = rowpointers[y]; 76 | 77 | 78 | /* Write the image data to "fp". */ 79 | 80 | png_init_io (png_ptr, fp); 81 | png_set_rows (png_ptr, info_ptr, row_pointers); 82 | 83 | png_set_PLTE (png_ptr, info_ptr, palette, palettelen); 84 | 85 | png_set_tRNS (png_ptr, info_ptr, transparency, palettelen, NULL); 86 | 87 | 88 | png_write_png (png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL); 89 | 90 | /* The routine has successfully written the file, so we set 91 | "status" to a value which indicates success. */ 92 | 93 | status = 0; 94 | 95 | /* 96 | for (y = 0; y < bitmap->height; y++) { 97 | png_free (png_ptr, row_pointers[y]); 98 | } 99 | */ 100 | png_free (png_ptr, row_pointers); 101 | 102 | png_failure: 103 | png_create_info_struct_failed: 104 | png_destroy_write_struct (&png_ptr, &info_ptr); 105 | 106 | png_create_write_struct_failed: 107 | fclose (fp); 108 | 109 | fopen_failed: 110 | return status; 111 | 112 | } 113 | 114 | -------------------------------------------------------------------------------- /src/pngwritepalette.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef pngwritepalette_H_ 9 | #define pngwritepalette_H_ 10 | #include "X2C.h" 11 | 12 | struct PNGPALETTE; 13 | 14 | 15 | struct PNGPALETTE { 16 | uint8_t r; 17 | uint8_t g; 18 | uint8_t b; 19 | }; 20 | 21 | typedef uint8_t * pLINE; 22 | 23 | typedef pLINE * pROWPOINTERS; 24 | 25 | typedef struct PNGPALETTE * pPNGPALETTE; 26 | 27 | 28 | struct pngwritepalette__D0 { 29 | struct PNGPALETTE * Adr; 30 | size_t Len0; 31 | }; 32 | 33 | typedef uint8_t * pRNS; 34 | 35 | 36 | struct pngwritepalette__D1 { 37 | uint8_t * Adr; 38 | size_t Len0; 39 | }; 40 | 41 | extern int32_t writepng(char [], pROWPOINTERS, uint32_t, uint32_t, 42 | pPNGPALETTE, uint32_t, uint32_t, pRNS); 43 | 44 | 45 | #endif /* pngwritepalette_H_ */ 46 | -------------------------------------------------------------------------------- /src/python-scripts/loradec.py: -------------------------------------------------------------------------------- 1 | import json, base64, socket, wx 2 | 3 | AXUDP=("127.0.0.1",4020) 4 | PORT=5100 5 | IP=("0.0.0.0",PORT) 6 | metainfo=True 7 | 8 | sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 9 | sock.bind(IP) 10 | 11 | while True: 12 | data, addr=sock.recvfrom(1500) 13 | # print(data) 14 | 15 | try: 16 | obj = json.loads(data.decode()) 17 | # print(obj) 18 | payload=base64.b64decode(obj["payload"]) #base64 coded frame 19 | print("payload=", payload) 20 | except: print("json decode error") 21 | else: 22 | if obj["crc"]!=1: print("no crc or crc error") 23 | elif obj["net"]!=0x12: print("wrong net-id") 24 | elif len(payload)>5: 25 | j=0 #seek begin of frame 26 | while (j<3) and ((payload[j]ord("9"))) and ((payload[j]ord("Z"))): j+=1 27 | s="" 28 | for i in range(j,len(payload)): s+=chr(payload[i]) #remove junk and make string type 29 | 30 | if metainfo and not (s.find(",") in range(0,s.find(":"))): # only if no digi path 31 | try: v=obj["snr"] 32 | except: pass 33 | else: s+=" snr="+"{:.1f}".format(v)+"dB" 34 | try: v=obj["afc"] 35 | except: pass 36 | else: s+=" afc="+"{:.0f}".format(v)+"Hz" 37 | try: v=obj["preamb"] 38 | except: pass 39 | else: s+=" txd="+"{:.0f}".format(v)+"ms" 40 | try: v=obj["eye"] 41 | except: pass 42 | else: s+=" q="+"{:.0f}".format(v)+"%" 43 | try: 44 | v=obj["sf"] 45 | vi=obj["invers"] 46 | except: pass 47 | else: 48 | s+=" sf="+"{:.0f}".format(v) 49 | if vi: s+="(inv)" 50 | try: v=obj["cr"] 51 | except: pass 52 | else: s+=" cr="+"{:.0f}".format(v) 53 | try: v=obj["ver"] 54 | except: pass 55 | else: s+=" vers="+v 56 | 57 | print("frame:",s) 58 | try: wx.sendax(sock, s, AXUDP, {"level": obj["level"], "quality": obj["eye"], "txdel": obj["preamb"], "afc": obj["afc"], "snr": obj["snr"]}) 59 | except: print("axudp encode error") 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /src/python-scripts/sendjwx.py: -------------------------------------------------------------------------------- 1 | import wx, json, time, os, socket 2 | 3 | WXFILE="jwx"; 4 | NODATE=0 # send no date/time if system time not correct 5 | DHM=1 # send day in month, hour, minute 6 | HMS=2 # send hour, minute, second 7 | MYCALL="NOCALL-1" 8 | DESTCALL="APZWXP-1" # ssid is used for efficient digipeating 9 | VIA="" # for junk like "WIDE1-1" 10 | LAT=78.2500 # decimal degrees 11 | LONG=13.0020 12 | COMMENT="wx test" 13 | SYMBOL="/_" 14 | UDP=("127.0.0.1",4020) # axudp destination on same or other computer 15 | COMPRESSED=False 16 | 17 | sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 18 | while True: 19 | try: f=open(WXFILE,'r') 20 | except: print("file not readable") 21 | else: 22 | try:wxj = json.load(f) 23 | except:print("wx line read error") 24 | else: 25 | wxj["pressure"]=wxj["pressure"]*0.01 26 | wxline = wx.beacontext(MYCALL,DESTCALL,VIA,NODATE,SYMBOL,LAT,LONG,wxj,COMMENT,COMPRESSED) 27 | print(wxline) 28 | try: wx.sendax(sock, wxline, UDP, {}) 29 | except: print("wx udp send error") 30 | f.close() 31 | os.remove(WXFILE) 32 | time.sleep(10) 33 | -------------------------------------------------------------------------------- /src/python-scripts/sendwx.py: -------------------------------------------------------------------------------- 1 | import wx 2 | 3 | NODATE=0 # send no date/time if system time not correct 4 | DHM=1 # send day in month, hour, minute 5 | HMS=2 # send hour, minute, second 6 | MYCALL="OE0AAA-1" 7 | DESTCALL="APZWXP-1" # ssid is used for efficient digipeating 8 | VIA="" # for junk like "WIDE1-1" 9 | LAT=78.2500 # decimal degrees 10 | LONG=13.0020 11 | COMMENT=":temperhum test" 12 | SYMBOL="/_" 13 | UDP=("127.0.0.1",7001) # axudp destination on same or other computer 14 | 15 | # insert "import sendwx" and any of the functions where wx values are ready in sensor readout programm 16 | # try manual sending with "sendwx.wxudp(20,50)" "sendwx.wxfile(20,50)" "sendwx.wxbeacon(20,50)" 17 | 18 | # in temper-python-master/temperusb/cli.py maybe it works around "print(output)" 19 | # sendwx.wxfile(reading[sensor]['temperature_c'], reading[sensor]['humidity_pc']) 20 | 21 | 22 | # if you want to send other beacons or run an aprs digi, make a beacon.txt file like: 23 | # OE0AAA-1>APZWXP-2:@\\hh7815.00N/01300.12E_\\[/tmp/wxline.txt]:temperhum test 24 | # OE0AAA-1>APNL01-1:!7815.00N/01300.12E/other beacon 25 | # and send it with 26 | # ./udpbox -R 0.0.0.0:0 -b 600:beacon.txt -r 127.0.0.1:9032 -v 27 | # file: .../...g...t073h77 28 | # tmp wx file will be deleted after sending so no wrong beacons go out until next sensor readout 29 | # file may be written any time, beacon time is made by udpbox 30 | def wxfile(temp, hum): 31 | wx.wrfile("/tmp/wxline.txt","/tmp/wxtmp",wx.wxaprs({"celsius":temp,"hum":hum},True)) 32 | 33 | def wxline(temp, hum): 34 | return wx.beacontext(MYCALL,DESTCALL,VIA,DHM,SYMBOL,LAT,LONG,{"celsius":temp,"hum":hum,},COMMENT,True) 35 | #more wx values may be appended, labels see in wx.py 36 | 37 | 38 | # writes a beacon text line in monitor format as used in aprsis 39 | # OE0AAA-1>APZWXP-1:@024418h7815.00N/01300.12E_.../...g...t073h77:temperhum test 40 | # send it with ./udpbox -R 0.0.0.0:0 -b 600:/tmp/wxline.txt -r 127.0.0.1:9032 -v 41 | def wxbeacon(temp, hum): 42 | wx.wrfile("/tmp/wxline.txt","/tmp/wxtmp",wxline(temp, hum)) 43 | 44 | 45 | 46 | # send as axudp 47 | # to afskmodem: ./afskmodem -f 22050 -M 0 -U 0.0.0.0:0:9032 48 | # to direwolf: ./udpflex -U :0:9032 -T 127.0.0.1:8001 -V 49 | # to tnc: ./udpflex -U :0:9032 -t /dev/ttyS0:9600 -k -u -V 50 | # to udpgate4 or aprsmap rf port 51 | # timing has to be done by calling this function (every 10 to 30min or so) 52 | def wxudp(sock, temp, hum): 53 | try: 54 | wx.sendax(sock, wxline(temp, hum), UDP, {}) 55 | except: 56 | print("wx udp send error") 57 | -------------------------------------------------------------------------------- /src/rinex.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/src/rinex.h -------------------------------------------------------------------------------- /src/rsc.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | /* 9 | * dxlAPRS toolchain 10 | * 11 | * Copyright (C) Christian Rabler 12 | * 13 | * SPDX-License-Identifier: GPL-2.0+ 14 | */ 15 | #define N 255 16 | #define R 24 17 | #define K (N-R) 18 | 19 | void *init_rs_char(int symsize,int gfpoly,int fcr,int prim,int nroots,int pad); 20 | int decode_rs_char(void *arg, 21 | unsigned char *data, int *eras_pos, int no_eras); 22 | 23 | void *rs; 24 | 25 | void initrsc() 26 | { 27 | rs = init_rs_char( 8, 0x11d, 0, 1, R, 0); 28 | } 29 | 30 | 31 | int decodersc(unsigned char *data, int *eras_pos, int no_eras) 32 | { 33 | return decode_rs_char(rs, data, eras_pos, no_eras); 34 | } 35 | -------------------------------------------------------------------------------- /src/rsc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef rsc_H_ 9 | #define rsc_H_ 10 | #include "X2C.h" 11 | 12 | 13 | extern void initrsc(void); 14 | 15 | extern long decodersc(char [], int [], int); 16 | 17 | 18 | #endif /* rsc_H_ */ 19 | -------------------------------------------------------------------------------- /src/sdr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef sdr_H_ 11 | #define sdr_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | 16 | #define sdr_mSSB "s" 17 | 18 | #define sdr_mFM "f" 19 | 20 | #define sdr_mAM "a" 21 | 22 | #define sdr_mSCAN "S" 23 | 24 | #define sdr_mIQ "i" 25 | 26 | #define sdr_MAXFIR 2048 27 | 28 | typedef short sdr_AUDIOSAMPLE[65536]; 29 | 30 | typedef short * sdr_pAUDIOSAMPLE; 31 | 32 | struct sdr_TAP; 33 | 34 | 35 | struct sdr_TAP { 36 | int32_t uc1; 37 | int32_t uc2; 38 | int32_t il; 39 | float ucr1; 40 | float ucr2; 41 | float ilr; 42 | }; 43 | 44 | struct sdr_SSBTAP; 45 | 46 | 47 | struct sdr_SSBTAP { 48 | float uc1; 49 | float uc2; 50 | float uc3; 51 | float il; 52 | float il2; 53 | }; 54 | 55 | struct sdr_FIR; 56 | 57 | 58 | struct sdr_FIR { 59 | float tab[2048]; 60 | float re[2048]; 61 | float im[2048]; 62 | uint32_t halfband; 63 | uint32_t wp; 64 | uint32_t lastlen; 65 | uint32_t len; 66 | float fg; 67 | }; 68 | 69 | typedef struct sdr_FIR * sdr_pFIR; 70 | 71 | struct sdr_RX; 72 | 73 | 74 | struct sdr_RX { 75 | uint32_t df; 76 | uint32_t dffrac; 77 | uint32_t width; 78 | uint32_t agc; 79 | uint32_t idx; 80 | int32_t maxafc; 81 | char squelch; 82 | char afcrun; 83 | char modulation; 84 | sdr_pAUDIOSAMPLE samples; 85 | sdr_pAUDIOSAMPLE qsamples; 86 | uint32_t phase; 87 | uint32_t bfo; 88 | uint32_t fine; 89 | struct sdr_TAP tapre; 90 | struct sdr_TAP tapim; 91 | int32_t median; 92 | int32_t afckhz; 93 | float w1; 94 | float lastlev; 95 | float rssi; 96 | float afcrssi; 97 | float sqsum; 98 | float a1; 99 | uint32_t fracphase; 100 | uint32_t bfophase; 101 | struct sdr_SSBTAP ssbre; 102 | struct sdr_SSBTAP ssbim; 103 | float ssbfgq; 104 | float ssbfg; 105 | float agcspeed; 106 | sdr_pFIR fir; 107 | }; 108 | 109 | typedef struct sdr_RX * sdr_pRX; 110 | 111 | extern int32_t sdr_debfd; 112 | 113 | extern int32_t sdr_afcspeed; 114 | 115 | extern int32_t sdr_getsdr(uint32_t, sdr_pRX [], uint32_t); 116 | 117 | extern void sdr_setparm(uint32_t, uint32_t); 118 | 119 | extern char sdr_startsdr(char [], uint32_t, char [], 120 | uint32_t, uint32_t, uint32_t, char, uint32_t); 121 | 122 | extern void sdr_genfir(float, float, uint32_t, sdr_pFIR *); 123 | 124 | 125 | extern void sdr_BEGIN(void); 126 | 127 | 128 | #endif /* sdr_H_ */ 129 | -------------------------------------------------------------------------------- /src/sondeaprs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef sondeaprs_H_ 11 | #define sondeaprs_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | #ifndef aprsstr_H_ 16 | #include "aprsstr.h" 17 | #endif 18 | 19 | typedef uint32_t sondeaprs_TIME; 20 | 21 | struct sondeaprs_SDRBLOCK; 22 | 23 | 24 | struct sondeaprs_SDRBLOCK { 25 | uint32_t freq; 26 | uint32_t maxafc; 27 | uint32_t db; 28 | int32_t afc; 29 | char name[4]; 30 | char valid; 31 | }; 32 | 33 | #define sondeaprs_VERSION "sondemod 1.37b" 34 | 35 | #define sondeaprs_minusG "G" 36 | 37 | #define sondeaprs_minusE "E" 38 | 39 | #define sondeaprs_minusP "P" 40 | 41 | #define sondeaprs_minusa "a" 42 | 43 | #define sondeaprs_LASTSECONDS 3600 44 | 45 | #define sondeaprs_BEFOREBURST 100000 46 | 47 | struct sondeaprs__D0; 48 | 49 | 50 | struct sondeaprs__D0 { 51 | uint32_t num; 52 | uint32_t level; 53 | }; 54 | 55 | typedef struct sondeaprs__D0 sondeaprs_SATSIG[12]; 56 | 57 | typedef struct sondeaprs__D0 * sondeaprs_pSATSIG; 58 | 59 | struct sondeaprs_UDPDESTS; 60 | 61 | typedef struct sondeaprs_UDPDESTS * sondeaprs_pUDPDESTS; 62 | 63 | 64 | struct sondeaprs_UDPDESTS { 65 | sondeaprs_pUDPDESTS next; 66 | uint32_t ipnum; 67 | uint32_t port; 68 | }; 69 | 70 | struct sondeaprs_XDATA; 71 | 72 | struct sondeaprs__D1; 73 | 74 | 75 | struct sondeaprs__D1 { 76 | uint32_t len; 77 | char frame[256]; 78 | }; 79 | 80 | 81 | struct sondeaprs_XDATA { 82 | uint32_t cnt; 83 | struct sondeaprs__D1 xdata[10]; 84 | }; 85 | 86 | extern void sondeaprs_senddata(double, double, double, 87 | double, double, double, double, 88 | double, double, double, double, 89 | double, double, double, double, 90 | double, uint32_t, uint32_t, char [], 91 | uint32_t, uint32_t, uint32_t, uint32_t, double, 92 | char [], uint32_t, uint32_t, double, 93 | char, char, int32_t, char [], uint32_t, 94 | char [], uint32_t, sondeaprs_pSATSIG, 95 | struct sondeaprs_SDRBLOCK, int32_t, 96 | struct sondeaprs_XDATA); 97 | 98 | extern int32_t sondeaprs_GetIp(char [], uint32_t, uint32_t *, 99 | uint32_t *, uint32_t *); 100 | 101 | extern char sondeaprs_via[100]; 102 | 103 | extern char sondeaprs_destcall[100]; 104 | 105 | extern char sondeaprs_objname[100]; 106 | 107 | extern char sondeaprs_commentfn[1025]; 108 | 109 | extern char sondeaprs_csvfilename[1025]; 110 | 111 | extern char sondeaprs_sym[2]; 112 | 113 | extern uint32_t sondeaprs_toport; 114 | 115 | extern uint32_t sondeaprs_maxsenddistance; 116 | 117 | extern uint32_t sondeaprs_expire; 118 | 119 | extern uint32_t sondeaprs_ipnum; 120 | 121 | extern char sondeaprs_verb; 122 | 123 | extern char sondeaprs_verb2; 124 | 125 | extern char sondeaprs_nofilter; 126 | 127 | extern char sondeaprs_json; 128 | 129 | extern int32_t sondeaprs_comptyp; 130 | 131 | extern int32_t sondeaprs_udpsock; 132 | 133 | extern char sondeaprs_anyip; 134 | 135 | extern char sondeaprs_sendmon; 136 | 137 | extern char sondeaprs_dao; 138 | 139 | extern struct aprsstr_POSITION sondeaprs_mypos; 140 | 141 | extern float sondeaprs_myalt; 142 | 143 | struct sondeaprs__D2; 144 | 145 | 146 | struct sondeaprs__D2 { 147 | uint32_t beacontime; 148 | uint32_t below; 149 | }; 150 | 151 | extern struct sondeaprs__D2 sondeaprs_beacontimes[20]; 152 | 153 | struct sondeaprs__D3; 154 | 155 | 156 | struct sondeaprs__D3 { 157 | struct aprsstr_POSITION leftdown; 158 | struct aprsstr_POSITION rightup; 159 | }; 160 | 161 | extern struct sondeaprs__D3 sondeaprs_rectfence; 162 | 163 | extern sondeaprs_pUDPDESTS sondeaprs_axudpdests; 164 | 165 | extern sondeaprs_pUDPDESTS sondeaprs_jsondests; 166 | 167 | 168 | extern void sondeaprs_BEGIN(void); 169 | 170 | 171 | #endif /* sondeaprs_H_ */ 172 | -------------------------------------------------------------------------------- /src/soundctl.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | #ifndef MACOS 10 | #include 11 | #endif 12 | #include 13 | 14 | /* there is actually no sound support on MACOS */ 15 | #ifdef MACOS 16 | int samplesize(int fd, int bits) 17 | { 18 | return 0; 19 | } 20 | 21 | int channels(int fd, int n) 22 | { 23 | return 0; 24 | } 25 | 26 | int sampelrate(int fd, int f) 27 | { 28 | return 0; 29 | } 30 | 31 | int setfragment(int fd, int f) 32 | { 33 | return 0; 34 | } 35 | 36 | void pcmsync(int fd) 37 | { 38 | return; 39 | } 40 | 41 | int getoutfilled(int fd) 42 | { 43 | return 0; 44 | } 45 | 46 | int recnum(void) 47 | { 48 | return 0; 49 | } 50 | 51 | int getsampelrate(int fd) 52 | { 53 | return 0; 54 | } 55 | 56 | int getmixer(int fd, int device) 57 | { 58 | return 0; 59 | } 60 | 61 | void setmixer(int fd, int device, int level) 62 | { 63 | return; 64 | } 65 | #else 66 | int samplesize(int fd, int bits) 67 | { 68 | return ioctl(fd, SOUND_PCM_WRITE_BITS, &bits); 69 | } 70 | 71 | int channels(int fd, int n) 72 | { 73 | return ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &n); 74 | } 75 | 76 | int sampelrate(int fd, int f) 77 | { 78 | return ioctl(fd, SOUND_PCM_WRITE_RATE, &f); 79 | } 80 | 81 | int setfragment(int fd, int f) 82 | { 83 | return ioctl(fd, SOUND_PCM_SETFRAGMENT, &f); 84 | } 85 | 86 | void pcmsync(int fd) 87 | { 88 | ioctl(fd, SOUND_PCM_SYNC, 0); 89 | } 90 | 91 | int getoutfilled(int fd) 92 | { 93 | int bytes; 94 | ioctl(fd, SNDCTL_DSP_GETODELAY, &bytes); 95 | return bytes; 96 | } 97 | 98 | int getsampelrate(int fd) 99 | { 100 | int f; 101 | ioctl(fd, SOUND_PCM_READ_RATE, &f); 102 | return f; 103 | } 104 | 105 | int getmixer(int fd, int device) 106 | { 107 | int level=-1; 108 | ioctl(fd, MIXER_READ(device), &level); 109 | return level; 110 | } 111 | 112 | int recnum() 113 | { 114 | return SOUND_MIXER_RECSRC; 115 | } 116 | 117 | void setmixer(int fd, int device, int level) 118 | { 119 | ioctl(fd, MIXER_WRITE(device), &level); 120 | } 121 | #endif 122 | -------------------------------------------------------------------------------- /src/soundctl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef soundctl_H_ 9 | #define soundctl_H_ 10 | #include "X2C.h" 11 | 12 | extern long samplesize(long, unsigned long); 13 | 14 | extern long channels(long, unsigned long); 15 | 16 | extern long sampelrate(long, unsigned long); 17 | 18 | extern long setfragment(long, unsigned long); 19 | 20 | extern void pcmsync(long); 21 | 22 | extern long getoutfilled(long); 23 | 24 | extern unsigned long getsampelrate(long); 25 | 26 | extern unsigned long getmixer(long, long); 27 | 28 | extern void setmixer(long, unsigned long, unsigned long); 29 | 30 | extern unsigned long recnum(void); 31 | 32 | 33 | #endif /* soundctl_H_ */ 34 | -------------------------------------------------------------------------------- /src/tcp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef tcp_H_ 9 | #define tcp_H_ 10 | 11 | extern long resolv(char [], uint32_t *); 12 | 13 | extern long connectto(char [], char []); 14 | 15 | extern long waitconnect(char [], unsigned long); 16 | 17 | extern long acceptconnect(long, char [], uint32_t *); 18 | 19 | extern void ipnum2str(char [], char [], unsigned long); 20 | 21 | extern long sendsock(long, char [], long); 22 | 23 | extern long sendmore(long, char [], long); 24 | 25 | extern long readsock(long, char [], long); 26 | 27 | extern long getsockipnum(long, char [], uint32_t *); 28 | 29 | extern long getpeeripnum(long, char [], uint32_t *); 30 | 31 | extern void ipnumport2str(char [], unsigned long, char [], unsigned long, 32 | char [], unsigned long); 33 | 34 | extern long getunack(long); 35 | 36 | extern void stoptxrx(long, long); 37 | 38 | 39 | #endif /* tcp_H_ */ 40 | -------------------------------------------------------------------------------- /src/tcpb.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | //#define _GNU_SOURCE 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | //-------------------- 22 | 23 | 24 | 25 | 26 | int32_t connecttob(char *url, char *port) 27 | { 28 | struct addrinfo hints, *res, *rp; 29 | int sockfd; 30 | 31 | memset(&hints, 0, sizeof hints); 32 | hints.ai_family = AF_UNSPEC; 33 | hints.ai_socktype = SOCK_STREAM; 34 | if (getaddrinfo(url, port, &hints, &res) != 0) return -1; 35 | // if (res == 0) return -1; 36 | for (rp = res; rp != NULL; rp = rp->ai_next) { 37 | sockfd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); 38 | if (sockfd<0) continue; 39 | 40 | //nodelay 41 | int flag_TCP_nodelay = 1; 42 | if ( (setsockopt( sockfd, IPPROTO_TCP, TCP_NODELAY, 43 | (char *)&flag_TCP_nodelay, sizeof(flag_TCP_nodelay))) < 0) return -1; 44 | //nodelay 45 | int flags=fcntl(sockfd, F_GETFL, 0); 46 | if (flags<0) return -1; 47 | 48 | flags|=O_NONBLOCK; 49 | fcntl(sockfd, F_SETFL, flags); 50 | 51 | if (connect(sockfd, rp->ai_addr, rp->ai_addrlen) < 0) 52 | { 53 | int flags=fcntl(sockfd, F_GETFL, 0); 54 | if (flags<0) return -1; 55 | 56 | flags&=~O_NONBLOCK; 57 | fcntl(sockfd, F_SETFL, flags); 58 | 59 | break; 60 | } 61 | 62 | close(sockfd); 63 | } 64 | freeaddrinfo(res); 65 | if (rp = NULL) return -1; 66 | 67 | return sockfd; 68 | } 69 | 70 | 71 | int32_t readsockb(int fd, char *buf, int len) 72 | { 73 | int res=recv(fd, buf, len, MSG_WAITALL); 74 | if (res==0) return -1; 75 | if ((res<0) && (errno==EAGAIN)) return 0; 76 | return res; 77 | } 78 | 79 | 80 | -------------------------------------------------------------------------------- /src/tcpb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef tcpb_H_ 9 | #define tcpb_H_ 10 | #include "X2C.h" 11 | 12 | extern int32_t connecttob(char [], char []); 13 | 14 | extern int32_t readsockb(long, char [], long); 15 | 16 | 17 | #endif /* tcpb_H_ */ 18 | -------------------------------------------------------------------------------- /src/udp.c: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | 16 | #ifndef O_CLOEXEC 17 | # define O_CLOEXEC 02000000 18 | #endif 19 | 20 | int openudp() 21 | { 22 | int fd; 23 | /*return socket(PF_INET, SOCK_DGRAM|O_CLOEXEC, 0);*/ 24 | fd = socket(PF_INET, SOCK_DGRAM, 0); 25 | fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); 26 | return fd; 27 | } 28 | 29 | int bindudp(int fd, unsigned port) 30 | { 31 | struct sockaddr_in addr; 32 | 33 | memset(&addr, 0, sizeof(addr)); 34 | addr.sin_family = AF_INET; 35 | addr.sin_port=htons(port); 36 | addr.sin_addr.s_addr=0; /* =inet_addr(ipnum); */ 37 | return bind(fd, (struct sockaddr *)&addr, sizeof(addr)); 38 | } 39 | 40 | int socknonblock(int fd) 41 | { 42 | int flags=fcntl(fd, F_GETFL, 0); 43 | if (flags<0) return -1; 44 | flags|=O_NONBLOCK; 45 | return fcntl(fd, F_SETFL, flags); 46 | } 47 | 48 | 49 | int udpreceive(int fd, char *buf, int blen, uint32_t *fromport, uint32_t *fromip) 50 | { 51 | int adrlen, len; 52 | struct sockaddr_in addr; 53 | 54 | adrlen=sizeof(addr); 55 | len=recvfrom(fd, buf, blen, MSG_DONTWAIT, (struct sockaddr *) &addr, &adrlen); 56 | *fromport=ntohs(addr.sin_port); 57 | *fromip=ntohl(addr.sin_addr.s_addr); 58 | return len; 59 | } 60 | 61 | int udpreceiveblock(int fd, char *buf, int blen, uint32_t *fromport, uint32_t *fromip) 62 | { 63 | int adrlen, len; 64 | struct sockaddr_in addr; 65 | 66 | adrlen=sizeof(addr); 67 | len=recvfrom(fd, buf, blen, 0, (struct sockaddr *) &addr, &adrlen); 68 | *fromport=ntohs(addr.sin_port); 69 | *fromip=ntohl(addr.sin_addr.s_addr); 70 | return len; 71 | } 72 | 73 | int udpsend(int fd, char *buf, int blen, int toport, int toip) 74 | { 75 | struct sockaddr_in addr; 76 | 77 | memset(&addr, 0, sizeof(addr)); 78 | addr.sin_family = AF_INET; 79 | addr.sin_port=htons(toport); 80 | addr.sin_addr.s_addr=htonl(toip); 81 | return sendto(fd, buf, blen, 0, (struct sockaddr *) &addr, sizeof(addr)); 82 | } 83 | -------------------------------------------------------------------------------- /src/udp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | #ifndef udp_H_ 9 | #define udp_H_ 10 | 11 | extern long openudp(void); 12 | 13 | extern long bindudp(long, unsigned long); 14 | 15 | extern long socknonblock(long); 16 | 17 | extern long udpreceive(long, char [], long, uint32_t *, uint32_t *); 18 | 19 | extern long udpreceiveblock(long, char [], long, uint32_t *, uint32_t *); 20 | 21 | extern long udpsend(long, char [], long, unsigned long, unsigned long); 22 | 23 | 24 | #endif /* udp_H_ */ 25 | -------------------------------------------------------------------------------- /src/url.txt: -------------------------------------------------------------------------------- 1 | https://github.com/oe5hpm/dxlAPRS 2 | -------------------------------------------------------------------------------- /src/xosi.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Christian Rabler 5 | * 6 | * SPDX-License-Identifier: GPL-2.0+ 7 | */ 8 | 9 | 10 | #ifndef xosi_H_ 11 | #define xosi_H_ 12 | #ifndef X2C_H_ 13 | #include "X2C.h" 14 | #endif 15 | 16 | /* grafical os interface */ 17 | typedef int32_t xosi_PROCHANDLE; 18 | 19 | #define xosi_WHITELEVEL 1024 20 | 21 | struct xosi__D0; 22 | 23 | 24 | /*+OVERSHOOT*/ 25 | struct xosi__D0 { 26 | uint32_t r; 27 | uint32_t g; 28 | uint32_t b; 29 | }; 30 | 31 | extern struct xosi__D0 xosi_gammalut[1024]; 32 | 33 | struct xosi_PROCESSHANDLE; 34 | 35 | 36 | struct xosi_PROCESSHANDLE { 37 | int32_t pid; 38 | char started; 39 | char runs; 40 | int32_t exitcode; 41 | }; 42 | 43 | enum xosi_CURSORTYP {xosi_cOFF, xosi_cPULL4, xosi_cPULLLEFT, xosi_cPULLRIGHT, 44 | xosi_cPULLUP, xosi_cPULLDOWN, xosi_cPULLLEFTUP, 45 | xosi_cPULLRIGHTDOWN}; 46 | 47 | 48 | struct xosi_CUTBUF; 49 | 50 | 51 | struct xosi_CUTBUF { 52 | char * text; 53 | uint32_t cutlen; 54 | uint32_t cutpos; 55 | }; 56 | 57 | extern uint32_t xosi_newxsize; 58 | 59 | extern uint32_t xosi_newysize; 60 | 61 | struct xosi__D1; 62 | 63 | 64 | struct xosi__D1 { 65 | uint32_t x; 66 | uint32_t y; 67 | }; 68 | 69 | extern struct xosi__D1 xosi_xmouse; 70 | 71 | extern char xosi_zooming; 72 | 73 | extern char xosi_pulling; 74 | 75 | extern char xosi_Shift; 76 | 77 | extern char xosi_Ctrl; 78 | 79 | extern char xosi_headmh[251]; 80 | 81 | extern struct xosi_CUTBUF xosi_cutbuffer; 82 | 83 | extern int32_t xosi_InitX(char [], uint32_t, char [], uint32_t, 84 | uint32_t, uint32_t); 85 | 86 | extern void xosi_Gammatab(float); 87 | 88 | extern void xosi_getscreenbuf(char * *, uint32_t *, uint32_t *, 89 | uint32_t *); 90 | 91 | extern void xosi_rgbtoscreen(void); 92 | 93 | extern void xosi_allocxbuf(uint32_t, uint32_t); 94 | 95 | extern void xosi_cutpaste(void); 96 | 97 | extern void xosi_paste(void); 98 | 99 | extern void xosi_beep(int32_t, uint32_t, uint32_t); 100 | 101 | extern void xosi_xevent(void); 102 | 103 | extern void xosi_Eventloop(uint32_t); 104 | 105 | extern void xosi_sethand(uint8_t); 106 | 107 | extern void xosi_StartProg(char [], uint32_t, 108 | struct xosi_PROCESSHANDLE *); 109 | 110 | extern void xosi_CheckProg(struct xosi_PROCESSHANDLE *); 111 | 112 | extern void xosi_StopProg(struct xosi_PROCESSHANDLE *); 113 | 114 | extern void xosi_Umlaut(char [], uint32_t); 115 | 116 | extern void xosi_setxwinsize(int32_t, int32_t); 117 | 118 | extern void xosi_closewin(void); 119 | 120 | extern void xosi_WrHeadline(void); 121 | 122 | #define xosi_BYTEPIXEL 4 123 | /* WIN32 screen rgb */ 124 | 125 | 126 | extern void xosi_BEGIN(void); 127 | 128 | 129 | #endif /* xosi_H_ */ 130 | -------------------------------------------------------------------------------- /src/xosic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * dxlAPRS toolchain 3 | * 4 | * Copyright (C) Hannes Schmelzer 5 | * Copyright (C) Christian Rabler 6 | * 7 | * SPDX-License-Identifier: GPL-2.0+ 8 | */ 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | #ifndef __XOSIC_H__ 15 | #define __XOSIC_H__ 16 | 17 | typedef XSizeHints *PtrXSizeHints; 18 | typedef XSizeHints *PAXSizeHints; 19 | typedef Visual *PtrVisual; 20 | typedef XImage *PtrXImage; 21 | typedef Screen *PtrScreen; 22 | typedef Display *PtrDisplay; 23 | typedef PtrDisplay *PAPDisplay; 24 | typedef XKeyboardControl *PtrXKeyboardControl; 25 | typedef XKeyboardControl *PAXKeyboardControl; 26 | typedef XEvent *PtrXEvent; 27 | typedef unsigned char *PAUChar; 28 | typedef char *PChar; 29 | 30 | #endif /* __XOSIC_H__ */ 31 | -------------------------------------------------------------------------------- /tracker/.gitignore: -------------------------------------------------------------------------------- 1 | *.eep 2 | *.hex 3 | *.lst 4 | 5 | -------------------------------------------------------------------------------- /tracker/buildMC: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | gavrasm -S $1.asm 3 | if test -e $1.hex ; then 4 | hex2bin $1.hex 5 | fi 6 | -------------------------------------------------------------------------------- /tracker/dxlTracker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/tracker/dxlTracker.png -------------------------------------------------------------------------------- /tracker/eeprom.txt: -------------------------------------------------------------------------------- 1 | 00 ... valid rmnc linex 2 | 01 ... ssid of destination 3 | 02 ... source Call [0] 4 | 03 ... source Call [1] 5 | 04 ... source Call [2] 6 | 05 ... source Call [3] 7 | 06 ... source Call [4] 8 | 07 ... source Call [5] 9 | 08 ... source ssid 10 | 09 ... cmd 11 | 0A ... pid 12 | 0B ... mic-e 13 | 0C ... 0terminierung 14 | 0D ... speed-limit 15 | 0E ... send-intervall high speed 16 | 0F ... symbol [0] 17 | 10 ... symbol [1] 18 | 11 ... symbol 0-terminierung 19 | 12 ... textbytes 20 | . 21 | . 22 | . 23 | 13 ... textbytes 0-terminierung 24 | 14 ... no-txt frames 25 | 15 ... tx-delay 26 | 27 | ; ssid of destination, source call+ssid, cmd, pid, mic-e 28 | -------------------------------------------------------------------------------- /tracker/emu: -------------------------------------------------------------------------------- 1 | ./tinyemu -C 13 -q 10000000 -B 57600 -s /tmp/rohr -d 2 asm/aprs.bin -b 1 -c 0 -w /tmp/pwm -e /tmp/eeprom 2 | 3 | -------------------------------------------------------------------------------- /tracker/flashMCU: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | avrdude -c usbasp -p t13 -U flash:w:aprs.hex 3 | avrdude -c usbasp -p t13 -U lfuse:w:0x30:m 4 | avrdude -c usbasp -p t13 -U hfuse:w:0xFB:m 5 | 6 | -------------------------------------------------------------------------------- /tracker/gps1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | stty 57600 -echo raw < /dev/ttyS2 3 | # echo -ne "\044#Pe20,110,158,138,106,136,176,152,115,3,240,96,0,6,8,62,47,0,67,104,114,105,115,0,25" > /tmp/rohr 4 | usleep 100000 5 | # echo -ne "\044#Pe20,110,158,138,106,136,176,152,115,3,240,96,0,6,8,62,47,0,67,104,114,105,115,0,25" > /tmp/rohr 6 | usleep 500000 7 | while true; do 8 | cat g.txt > /dev/ttyS2 9 | usleep 500000 10 | done; 11 | -------------------------------------------------------------------------------- /tracker/makefile: -------------------------------------------------------------------------------- 1 | # MCU name 2 | MCU = t13 3 | 4 | # Fuse settings for ATTiny13 5 | ifeq ($(MCU), t13) 6 | #FUSE_BITS = -u -U lfuse:w:0xff:m -U hfuse:w:0xcf:m 7 | HFUSE=0xFB 8 | LFUSE=0x38 9 | HEX_FILE_NAME = aprs 10 | endif 11 | 12 | AVRDUDE_PROGRAMMER = USBasp 13 | AVRDUDE_PORT = usb # programmer connected to USB port 14 | AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex $(FUSE_BITS) 15 | AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep 16 | AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) 17 | 18 | # Uncomment the following if you want avrdude's erase cycle counter. 19 | # Note that this counter needs to be initialized first using -Yn, 20 | # see avrdude manual. 21 | AVRDUDE_ERASE += -y 22 | # --------------------------------------------------------------------------- 23 | # Define programs and commands. 24 | SHELL = sh 25 | CC = avr-gcc 26 | OBJCOPY = avr-objcopy 27 | OBJDUMP = avr-objdump 28 | SIZE = avr-size 29 | 30 | # Programming support using avrdude. 31 | AVRDUDE = avrdude 32 | 33 | REMOVE = rm -f 34 | COPY = cp 35 | 36 | HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex 37 | ELFSIZE = $(SIZE) -A $(TARGET).elf 38 | 39 | # Define Messages 40 | # English 41 | MSG_ERRORS_NONE = Errors: none 42 | MSG_BEGIN = -------- begin -------- 43 | MSG_END = -------- end -------- 44 | MSG_ASSEMBLING = Assembling: 45 | MSG_CLEANING = Cleaning project: 46 | 47 | # Default target. 48 | 49 | # Program the device. 50 | program: aprs.hex 51 | $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) 52 | 53 | fuses: 54 | $(AVRDUDE) $(AVRDUDE_FLAGS) -u -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m 55 | 56 | %.hex: %.asm 57 | @echo 58 | gavrasm -S aprs.asm 59 | 60 | 61 | -------------------------------------------------------------------------------- /tracker/pack: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | zip dxl-aprsTracker-tiny13-10MHz-4800Bd.zip aprs.asm aprs.bin aprs.hex 3 | -------------------------------------------------------------------------------- /tracker/tinyemu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/tracker/tinyemu -------------------------------------------------------------------------------- /zlib-1.2.8.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oe5hpm/dxlAPRS/6f75aa58501eab7dd8b04fc5324f169882bd28b8/zlib-1.2.8.tar.gz --------------------------------------------------------------------------------