debian/0000755000000000000000000000000012165647513007200 5ustar debian/quisk.docs0000644000000000000000000000032512110554727011200 0ustar docs1.html docs2.html docs.html help.html libusb.txt quisk_conf_defaults.py quisk_conf_model.py quisk_conf_sdr8600.py quisk_conf_sdriq.py debian/quisk_conf_charleston.py debian/quisk_conf_fcd.py quisk_conf_kx3.py debian/copyright0000644000000000000000000000452212146544126011131 0ustar GPL licensed source code downloaded via source package links from http://james.ahlstrom.name/quisk/quisk-3.6.10.tar.gz and http://amrad.org/projects/dsp/charleston-1.0.tar.gz The Icon image file: http://wa5znu.org/2009/04/quisk-lppan-k3/quisk-icon.png Copyright (C) 2009 Leigh L. Klotz Jr. WA5ZNU Debianized by A. Maitland Bottoms on 12 January 2012. Debian packaging: Copyright (C) 2012 A. Maitland Bottoms, AA4HS This software is Copyright (C) 2007-2011 by James C. Ahlstrom, and is licensed for use under the GNU General Public License (GPL). See http://www.opensource.org. Note that there is NO WARRANTY AT ALL. USE AT YOUR OWN RISK!! The GNU General Public License (GPL) Version 2, June 1991 A full copy of the license is in the file: /usr/share/common-licenses/GPL-2 Files in the charleston directory are: Copyright (C) 2010 Terry Fox also licensed GPL-2. Files in the usb directory are from the PyUSB project and are: Copyright (C) 2009-2010 Wander Lairson Costa. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. debian/patches/0000755000000000000000000000000012134576530010623 5ustar debian/patches/debian-setup0000644000000000000000000000255711732365123013134 0ustar --- a/setup.py +++ b/setup.py @@ -27,6 +27,14 @@ #runtime_library_dirs = ['.'], ) +module3 = Extension ('quisk.charleston.chas_rx1', + #libraries = [':../_quisk.so', 'm', 'usb'], + libraries = ['m', 'usb'], + sources = ['import_quisk_api.c', 'charleston/chas_rx1.c'], + include_dirs = ['.', '..'], + #library_dirs = ['..'], + ) + modulew1 = Extension ('quisk._quisk', include_dirs = ['../fftw3', 'C:/Program Files (x86)/Microsoft DirectX SDK (February 2010)/Include', 'C:/Program Files/Microsoft DirectX SDK (February 2010)/Include',], @@ -50,7 +58,7 @@ if sys.platform == "win32": Modules = [modulew1, modulew2] else: - Modules = [module1, module2] + Modules = [module1, module2, module3] setup (name = 'quisk', version = Version, @@ -73,9 +81,9 @@ author_email = 'jahlstr@gmail.com', url = 'http://james.ahlstrom.name/quisk/', download_url = 'http://james.ahlstrom.name/quisk/', - packages = ['quisk', 'quisk.sdriqpkg', 'quisk.n2adr', 'quisk.softrock', 'quisk.usb'], + packages = ['quisk', 'quisk.charleston', 'quisk.sdriqpkg', 'quisk.n2adr', 'quisk.softrock', 'quisk.usb'], package_dir = {'quisk' : '.'}, - package_data = {'quisk' : ['*.txt', '*.html']}, + package_data = {'quisk' : ['CHANGELOG.txt', 'libusb.txt', '*.html']}, ext_modules = Modules, classifiers = [ 'Development Status :: 6 - Mature', debian/patches/charleston-capi0000644000000000000000000000202411745306611013616 0ustar --- a/charleston/chas_rx1.c +++ b/charleston/chas_rx1.c @@ -11,6 +11,7 @@ #include // NOT NEEDED for SDR-IQ support #include // needed for SDR-IQ support #include // TF added for Charleston Rx1 support +#define IMPORT_QUISK_API #include "quisk.h" #include "chas_rx1.h" @@ -820,9 +821,7 @@ return NULL; // Record our C-language Start/Stop/Read functions for use by sound.c. - pt_sample_start = &quisk_start_chas_rx1; - pt_sample_stop = &quisk_stop_chas_rx1; - pt_sample_read = &quisk_read_chas_rx1; + quisk_sample_source(&quisk_start_chas_rx1, &quisk_stop_chas_rx1, &quisk_read_chas_rx1); quisk_open_chas_rx1(buf, 128); // Charleston RX1 specific return PyString_FromString(buf); // return a string message @@ -935,4 +934,9 @@ PyMODINIT_FUNC initchas_rx1 (void) { Py_InitModule ("chas_rx1", QuiskMethods); + // Import pointers to functions and variables from module _quisk + if (import_quisk_api()) { + printf("Failure to import pointers from _quisk\n"); + return; //Error + } } debian/patches/linux-ppdev0000644000000000000000000000165311746000074013017 0ustar --- a/is_key_down.c +++ b/is_key_down.c @@ -35,7 +35,9 @@ // Not MS Windows: #include #include +#ifdef __linux__ #include +#endif #include #include #include @@ -134,6 +136,7 @@ // Access the parallel port static int open_key_pport(const char * name) { +#ifdef __linux__ int byte; if (fd >= 0) @@ -152,11 +155,13 @@ ioctl(fd, PPWCONTROL, &byte); return 0; // Success } +#endif return -1; } static void close_key_pport(void) { +#ifdef __linux__ int byte; if (fd >= 0) { @@ -164,6 +169,7 @@ ioctl(fd, PPWCONTROL, &byte); close(fd); } +#endif fd = -1; } @@ -175,6 +181,7 @@ static int is_key_down_pport(void) { +#ifdef __linux__ int byte; if (fd < 0) // port not open @@ -183,6 +190,7 @@ ioctl(fd, PPRSTATUS, &byte); if (byte & 0x10) return 1; // Key is down +#endif return 0; // Key is up } debian/patches/series0000644000000000000000000000005111756750250012036 0ustar debian-setup linux-ppdev charleston-capi debian/quisk.desktop0000644000000000000000000000033211720551765011724 0ustar [Desktop Entry] Name=Quisk GenericName=Software Defined Radio Application Comment=Audio IQ signal intermediate frequency receiver Exec=quisk Icon=quisk Terminal=false Type=Application Categories=Utility;HamRadio;Tuner debian/control0000644000000000000000000000320512110175356010572 0ustar Source: quisk Section: hamradio Priority: optional Maintainer: A. Maitland Bottoms Build-Depends: debhelper (>= 9.0.0~), python, portaudio19-dev, libusb-dev, libfftw3-dev, python-all-dev, libasound2-dev, python-wxgtk2.8, hardening-wrapper Standards-Version: 3.9.3 Homepage: http://james.ahlstrom.name/quisk/ Package: quisk Architecture: any Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}, python-wxgtk2.8 Recommends: python-serial, alsa-utils, udev Description: Software Defined Radio (SDR) Quisk uses ALSA sound drivers or PortAudio and offers these capabilities: * Quisk can control the HiQSDR. * As a receiver it can use the SDR-IQ by RfSpace as a sample source. There are several decimation rates available. The QUISK receiver will read the sample data, tune it, filter it, demodulate it, and send the audio to the sound card for output to external headphones or speakers. * As a receiver it can use your soundcard as a sample source. You supply a complex (I/Q) mixer to convert radio spectrum to a low IF, and send that IF to the left and right inputs of the sound card in your computer. The demodulated audio goes to the same soundcard for output. * Quisk can control SoftRock hardware for both receive and transmit. * As a transmitter it can control an SSB/CW exciter and a transceiver using Ethernet. * As a transmitter it can accept microphone input and send that to a transmitter for SSB operation. For CW, QUISK can mute the audio and substitute a side tone. Quisk can send transmit data to your sound card for use with SoftRock or similar. debian/manpages0000644000000000000000000000001711703711007010677 0ustar debian/quisk.1 debian/changelog0000644000000000000000000000664412165646657011074 0ustar quisk (3.6.11-1) unstable; urgency=low * New upstream release -- A. Maitland Bottoms Wed, 03 Jul 2013 18:50:03 -0400 quisk (3.6.10-1) unstable; urgency=low * New upstream release -- A. Maitland Bottoms Mon, 20 May 2013 20:57:19 -0400 quisk (3.6.9-1) unstable; urgency=low * New upstream release -- A. Maitland Bottoms Fri, 19 Apr 2013 19:14:24 -0400 quisk (3.6.8-1) unstable; urgency=low * New upstream release * See /usr/share/doc/quisk/changelog.gz -- A. Maitland Bottoms Fri, 15 Mar 2013 23:13:21 -0500 quisk (3.6.7-1) unstable; urgency=low * New upstream release * See /usr/share/doc/quisk/changelog.gz -- A. Maitland Bottoms Sun, 17 Feb 2013 20:45:38 -0500 quisk (3.6.6-1) unstable; urgency=low * New upstream release * corrected the frequency measurement feature * changed the digital filters so they have a bandwidth up to 20 ksps * favorites spreadsheet -- A. Maitland Bottoms Sat, 19 Jan 2013 20:16:02 -0500 quisk (3.6.5-1) unstable; urgency=low * New upstream release * keep the waterfall colors constant * connect Quisk to the hamlib rigctld daemon * added a feature to measure the frequency of a continuous RF signal -- A. Maitland Bottoms Mon, 12 Nov 2012 12:56:03 -0500 quisk (3.6.4-1) unstable; urgency=low * New upstream release * added Hamlib control to Quisk * Quisk can now record the speaker audio and the digital samples to a WAV file -- A. Maitland Bottoms Sat, 15 Sep 2012 15:33:03 -0400 quisk (3.6.3-1) unstable; urgency=low * New upstream release * dark color design * AR8600 receiver config file is n2adr/quisk_conf_8600.py * scanning support * added a record and playback button -- A. Maitland Bottoms Fri, 27 Jul 2012 23:40:03 -0400 quisk (3.6.2-1) unstable; urgency=low * New upstream release -- A. Maitland Bottoms Tue, 22 May 2012 17:40:03 -0400 quisk (3.6.1-2) unstable; urgency=low * Use parallel port key interface only on Linux * Use ${python:Depends} (Closes: #662679) -- A. Maitland Bottoms Wed, 25 Apr 2012 07:54:00 -0400 quisk (3.6.1-1) unstable; urgency=low * New upstream release * There is a new "DGTL" mode to send Quisk audio to an external digital mode program such as Fldigi. * changed the 60 meter operation to agree with new FCC rules (for the USA) -- A. Maitland Bottoms Sun, 22 Apr 2012 21:23:02 -0400 quisk (3.6.0-1) unstable; urgency=low * New upstream release, with C API improvements -- A. Maitland Bottoms Tue, 6 Mar 2012 20:18:21 -0400 quisk (3.5.12-2) unstable; urgency=low * Include wb4jfi demod bandpass filter shadow patch -- A. Maitland Bottoms Tue, 21 Feb 2012 23:44:35 -0500 quisk (3.5.12-1) unstable; urgency=low * New upstream release -- A. Maitland Bottoms Mon, 20 Feb 2012 17:19:23 -0500 quisk (3.5.11-2) unstable; urgency=low * patched for more pythonic C extensions * python-all-dev build dependency (Closes: #656721) -- A. Maitland Bottoms Mon, 30 Jan 2012 22:26:28 -0500 quisk (3.5.11-1) unstable; urgency=low * Package for Debian (Closes: #655662) -- A. Maitland Bottoms Thu, 12 Jan 2012 17:48:55 -0500 debian/quisk.dirs0000644000000000000000000000007211720550650011205 0ustar usr/share/applications usr/share/icons/hicolor/32x32/apps debian/quisk-icon.png0000644000000000000000000000265011756762313011774 0ustar PNG  IHDR oIDATHK$Wω7McFh@7lkCH,;/l İ53+3oވ`ŀHȱTĹ?ͯ~k7hB8po_vzrn'DÃkxl?;fv%#(Ɠ' O>g&v`Ѽȍ=|Ӌ>LrtuMqq)q|k3iΝĿ AyAw60;R&㨵J"7BD"^T(ErY59܄* Q I]*H${l6Lff1&Qw'x3wE\,\5HFAF@5;wwmͨJH9<U! U w7 w.eltg)vȳ?irim"}i1MH5&flЬ`~w)Ww9םdHpRa) !WE"WWiM)YZ+zmӄ!u.2#@pq~6a8B4nu\)H]*˨m[E\ke\ IDЌ)aZ$"6@)P9˥ϕ3L^m6kIb$TuZzU8њ&nժS 2<u }_sΪR{V56Mgg~W/.ۋGo8}?ryp`M}y^6T좿Ez;>z!iͦ>fk8  y{6Y_C7b*c.qPMVj)˳>){Q֩NS1nn֋ eOS<榭RLЦo=PϞds=:M57q>GKw@̧Zw}?MH:[=O2图 A?쨷~fnPH pIENDB`debian/source/0000755000000000000000000000000011720550554010472 5ustar debian/source/include-binaries0000644000000000000000000000002611720550554013630 0ustar debian/quisk-icon.png debian/source/format0000644000000000000000000000001411703661756011710 0ustar 3.0 (quilt) debian/quisk_conf_charleston.py0000644000000000000000000000573211705434003014127 0ustar # These are the configuration parameters for Quisk using the # SDR-IQ by RfSpace or the AMRAD Charleston Rx1 as the capture device. # Please do not change this sample file. # Instead copy it to your own .quisk_conf.py and make changes there. # See quisk_conf_defaults.py for more information. # Some decimation rates and resulting sampling frequencies: # Charleston decimation must be evenly divisible by four # Charleston 160 = 480k samples # Charleston 200 = 384k samples # Charleston 300 = 256k samples # Charleston 320 = 240k samples # Charleston 400 = 192k samples (DEFAULT) # Charleston 640 = 120k samples # Charleston 800 = 96k samples # Charleston 1600 = 48k samples # SDR-IQ decimation must be 360, 500, 600, or 1250 # SDR-IQ 360 = 185k samples (185,185) # SDR-IQ 500 = 133k samples (133,333) # SDR-IQ 600 = 111k samples (111,111) # SDR-IQ 1250 = 53k samples (53,333) Charleston = 1 # sets up the SDR-IQ or Charleston test if Charleston == 1: from charleston import quisk_widgets # add Charleston widgets from charleston import quisk_hardware # Use different hardware file use_sdriq = 0 # do not use the SDR-IQ anymore sdriq_name = "Digilent" # Digilent USB interface chas_rx1_clock = 76800000.0 # Charleston clock is 76.8MHz sdriq_decimation = 800 sample_rate = int(float(chas_rx1_clock) / sdriq_decimation + 0.5) # Don't change this display_fraction = 0.90 # the edges of the full bandwidth are not valid playback_rate = 48000 # Radio sound play rate else: from sdriqpkg import quisk_hardware # use SDR-IQ hardware file use_sdriq = 1 # Use the SDR-IQ for sound sampling setup sdriq_name = "/dev/ft2450" # Name of the SDR-IQ device to open ##sdriq_name = "/dev/ttyUSB0" # name of the SDR-IQ driver to open sdriq_clock = 66666667.0 # actual sample rate (66666667 nominal) sdriq_decimation = 500 # Must be 360, 500, 600, or 1250 sample_rate = int(float(sdriq_clock) / sdriq_decimation + 0.5) # Don't change this display_fraction = 0.85 # the edges of the full bandwidth are not valid # The default hardware module is used for the SDR-IQ. # In ALSA, soundcards have these names: #name_of_sound_play = "hw:0" #name_of_sound_play = "hw:1" #name_of_sound_play = "plughw" #name_of_sound_play = "plughw:1" #name_of_sound_play = "default" #use_sdriq = 1 # Use the SDR-IQ for sound sampling setup (also chas board) #sample_rate = int(float(sdriq_clock) / sdriq_decimation + 0.5) # Don't change this name_of_sound_capt = "" # We do not capture from the soundcard name_of_sound_play = "hw:0" # Play back on this soundcard # Note: For the SDR-IQ, playback is stereo at 48000 Hertz. channel_i = 0 # Soundcard index of left channel channel_q = 1 # Soundcard index of right channel mouse_tune_method = 1 # tune freq unchanged graph_refresh = 7 latency_millisecs = 150 filter_display = 1 #graph_y_scale = 80 #graph_y_zero = 75 waterfall_y_scale = 90 waterfall_y_zero = 70 waterfall_graph_y_scale = 100 waterfall_graph_y_zero = 70 debian/quisk.10000644000000000000000000000635311711666171010422 0ustar .TH QUISK "1" "January 2012" "quisk 3.5.11" "User Commands" .SH NAME quisk \- a Software Defined Radio (SDR) .SH DESCRIPTION QUISK is the software that controls a receiver and transmitter. QUISK rhymes with "brisk", and is QSK plus a few letters to make it easier to pronounce. QSK is a Q signal meaning full breakin CW, and QUISK has been designed for low latency CW operation. It works fine for SSB and AM too. .TP It currently runs under Linux using ALSA sound drivers or PortAudio and offers these capabilities: .sp Quisk can control the HiQSDR. .sp As a receiver it can use the SDR-IQ by RfSpace as a sample source. There are several decimation rates available. The screen shots below were taken using the SDR-IQ. The QUISK receiver will read the sample data, tune it, filter it, demodulate it, and send the audio to the sound card for output to external headphones or speakers. .sp As a receiver it can use your soundcard as a sample source. You supply a complex (I/Q) mixer to convert radio spectrum to a low IF, and send that IF to the left and right inputs of the sound card in your computer. The demodulated audio goes to the same soundcard for output. .sp Quisk can control SoftRock hardware for both receive and transmit. .sp As a transmitter it can control my SSB/CW exciter and my transceiver using Ethernet. .sp As a transmitter it can accept microphone input and send that to your transmitter for SSB operation. For CW, QUISK can mute the audio and substitute a side tone. Quisk can send transmit data to your sound card for use with SoftRock or similar. If you are not using SoftRock hardware and not using Ethernet, then you can modify the C code in microphone.c to connect to your hardware. .sp If you have the SDR-IQ or the Softrock hardware, then QUISK is ready for you to use as a receiver. If you have other receive hardware, then you will need to change the file quisk_hardware.py to connect your receiver to QUISK. For example, if you change your VFO frequency with a serial port, then you need to change quisk_hardware.py to send characters to the serial port. The file quisk_hardware.py is written in the Python programming language, a very easy language to learn and use. .SH SETUP Some deployments of quisk will only need to use sound hardware with ALSA. Other setups will use serial ports (or USB serial ports) and may need permissions set up (perhaps using udev) to allow the quisk program's user access to those ports. See documentation in /usr/share/doc/quisk for more information, as well as configuration file examples. .sp The default configuration file is ~/.quisk_conf.py .sp The configuration file must be customized for the user (see the commented examples) before running quisk. .SH SYNOPSIS .B quisk [\fIoptions\fR] .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-c\fR CONFIG_FILE_PATH, \fB\-\-config\fR=\fICONFIG_FILE_PATH\fR Specify the configuration file path .TP \fB\-\-config2\fR=\fICONFIG_FILE_PATH2\fR Specify a second configuration file to read after the first .SH "SEE ALSO" http://james.ahlstrom.name/quisk/ .TP Sample config files are in /usr/share/doc/quisk/quisk_conf* copy one, edit and save as ~/.quisk_conf.py .TP For use with a Funcube Dongle see the program qthid in package qthid-fcd-controller. debian/quisk_conf_fcd.py0000644000000000000000000000213311703713324012515 0ustar # This is a sample quisk_conf.py configuration file for the Funcube Dongle. # Please do not change this sample file. # Instead copy it to your own .quisk_conf.py and make changes there. # See quisk_conf_defaults.py for more information. # The default hardware module was already imported. Import a different one here. # import quisk_hardware_fixed as quisk_hardware # In ALSA, soundcards have these names. The "hw" devices are the raw # hardware devices, and should be used for soundcard capture. #name_of_sound_capt = "hw:0" #name_of_sound_capt = "hw:1" #name_of_sound_capt = "plughw" #name_of_sound_capt = "plughw:1" #name_of_sound_capt = "default" # It is likely that your main soundcard is "hw:0" # and the Funcube Dongle appears as "hw:1" sample_rate = 96000 # ADC hardware sample rate in Hertz name_of_sound_capt = "hw:1" # Name of Funcube Dongle soundcard capture hardware device. name_of_sound_play = "hw:0" # Use the main system soundcard for play back channel_i = 0 # Soundcard index of in-phase channel: 0, 1, 2, ... channel_q = 1 # Soundcard index of quadrature channel: 0, 1, 2, ... debian/compat0000644000000000000000000000000211746001472010366 0ustar 8 debian/rules0000755000000000000000000000043011756751513010256 0ustar #!/usr/bin/make -f export DEB_BUILD_HARDENING=1 %: dh $@ --builddir=build --with python2 override_dh_auto_install: dh_auto_install cp debian/quisk.desktop debian/quisk/usr/share/applications/ cp debian/quisk-icon.png debian/quisk/usr/share/icons/hicolor/32x32/apps/quisk.png