Add file missing from pyhw2
authordttsp <dttsp>
Wed, 22 Jun 2005 20:18:43 +0000 (20:18 +0000)
committerdttsp <dttsp>
Wed, 22 Jun 2005 20:18:43 +0000 (20:18 +0000)
pyhw2/hardware.h [new file with mode: 0644]

diff --git a/pyhw2/hardware.h b/pyhw2/hardware.h
new file mode 100644 (file)
index 0000000..c0e4d7f
--- /dev/null
@@ -0,0 +1,393 @@
+// hardware.h
+// version 2
+
+#ifndef _hardware_h
+#define _hardware_h
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/wait.h>  
+#include <sys/mman.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>  
+#include <signal.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <values.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <ctype.h>
+#include <string.h>
+#include <math.h>
+#include <assert.h>
+#include <libgen.h>
+
+#include <pthread.h>
+#include <semaphore.h>
+
+#include <linux/ppdev.h>
+#include <linux/parport.h>
+
+#ifndef PRIVATE
+#define PRIVATE static
+#endif
+#ifndef PUBLIC
+#define PUBLIC extern
+#endif
+
+typedef int BOOL;
+typedef unsigned char BYTE;
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+PUBLIC double DttSP_SampleRate;
+
+typedef enum {
+  IARU1 = 1,
+  IARU2 = 2,
+  IARU3 = 3,
+} BandPlan;
+
+typedef enum {
+  BYPASS,
+  MEMORY,
+  FULL,
+  LAST,
+} ATUTuneMode;
+
+typedef enum {
+  POSITIVE = 0,        // DEMI144-28FRS
+  NEGATIVE,    // 25W DEMI
+  NONE,                // For Elecraft or similar XVTR
+} XVTRTRMode;
+
+// Constants for BPF relays
+typedef enum {
+  bsnone = 0,                  //none
+  bs0 = 0x01,                  //2.5MHz LPF
+  bs1 = 0x02,                  //2-6MHz BPF
+  bs2 = 0x08,                  //5-12MHz BPF
+  bs3 = 0x04,                  //10-24MHz BPF
+  bs4 = 0x10,                  //20-40MHz BPF
+  bs5 = 0x20,                  //35-60MHz BPF
+} BandSetting;
+
+// PIO Control Pin Numbers
+typedef enum {
+  EXT = 1,                     //C0
+  BPF = 14,                    //C1
+  DAT = 16,                    //C2
+  ADR = 17,                    //C3
+} CtrlPin;
+
+// PIO Status Mask
+typedef enum {
+  PIN_12       = 0x08,         //S3
+  Dash         = 0x10,         //S4
+  Dot          = 0x20,         //S5
+  PA_DATA      = 0x40,         //S6
+  PIN_11       = 0x80,         //S7
+} StatusPin;
+
+// External control port mask
+typedef enum {
+  P1 = 0x01,
+  P2 = 0x02,
+  P3 = 0x04,
+  P4 = 0x08,
+  P5 = 0x10,
+  P6 = 0x20,
+  P7 = 0x40,
+} ExtPin;
+
+// RFE CONTROLS:
+
+// Control and data lines for RFE serial decoders
+#define SER            0x01
+#define SCK            0x02
+#define SCLR_NOT       0x04
+#define DCDR_NE                0x20
+
+// RFE 1:4 Decoder (74HC139) values to drive shift register RCK lines
+typedef enum {
+  IC11 = 0x00,
+  IC7  = 0x08,
+  IC9  = 0x18,
+  IC10 = 0x10,
+} RFE_RCK;
+
+// RFE control constants
+
+// On board low pass filter relays
+#define LPF0 0x01
+#define LPF1 0x02
+#define LPF2 0x04
+#define LPF3 0x08
+#define LPF4 0x10
+#define LPF5 0x20
+#define LPF6 0x40
+#define LPF7 0x80
+#define LPF8 0x01
+#define LPF9 0x02
+
+// Band pass filter relays
+#define BPF0 0x80
+#define BPF1 0x40
+// Note: BPF2 and BPF3 are reverse order
+// on BPF board
+#define BPF2 0x10
+#define BPF3 0x20
+#define BPF4 0x08
+#define BPF5 0x04
+
+// IC11 Variables
+// Register memory for IC11
+PUBLIC int ic11_memory;                
+// Power Amplifier low pass filters
+#define PAF0           0x01
+#define PAF1           0x02                            
+#define PAF2           0x04
+// Analog to Digital Clock
+#define ADC_CLK                0x08
+// Analog to Digital Data In
+#define ADC_DI         0x10
+// Analog to Digital Chip Select (inverse logic)
+#define ADC_CS_NOT     0x20
+// Power amplifier TR relay
+#define PATR           0x40
+// Automatic Tuning Unit control
+#define ATUCTL         0x80
+
+// IC7 Variables
+// Register memory for IC7
+PUBLIC int ic7_memory;         
+// Controls both AMP1 and AMP2 relays
+#define AMP_RLYS       0x03    
+// 2M transverter TR relay (on for RX) XVRX on schematic
+#define XVTR_TR_RLY    0x04    
+// Switches 2M transverter switching relay into signal path
+#define XVTR_RLY       0x08    
+// Attenuator relay
+#define ATTN_RLY       0x10    
+// Impulse circuit switches impulse into signal path
+#define IMPULSE_RLY    0x20    
+// Spare control line to PA (inverse logic)
+#define PA_BIAS_NOT    0x40    
+// Generates 5ns Pulse
+#define IMPULSE                0x80    
+
+PUBLIC BOOL rfe_enabled;               // True if RFE board is enabled
+PUBLIC BOOL xvtr_enabled;              // Transverter is enabled
+
+// done with RFE controls
+
+// PA variables
+PUBLIC BOOL pa_enabled;
+// 0
+#define PA_LPF_OFF     0                               
+// 1
+#define PA_LPF_12_10   PAF0                            
+// 2
+#define PA_LPF_17_15   PAF1                            
+// 3
+#define PA_LPF_30_20   PAF0+PAF1               
+// 4
+#define PA_LPF_60_40   PAF2                            
+// 5
+#define PA_LPF_80      PAF2+PAF0               
+// 6
+#define PA_LPF_160     PAF2+PAF1               
+#define PA_FORWARD_PWR 0
+#define PA_REVERSE_PWR 1
+
+// Constants latch outputs
+#define  TR    0x40
+#define  MUTE  0x80
+#define  GAIN  0x80
+#define  WRB   0x40
+#define  RESET 0x80
+
+// Latch Memories
+PUBLIC BandSetting band_relay;
+PUBLIC int external_output;
+PUBLIC int mute_relay;
+PUBLIC int transmit_relay;
+PUBLIC int gain_relay;
+PUBLIC int latch_delay;
+
+// DDS Control Constants
+// DDS Comparator power down
+#define COMP_PD                0x10            
+// DDS Digital Power down
+#define DIG_PD         0x01            
+// Bypass DDS PLL
+#define BYPASS_PLL     0x20            
+// Internal IO Update
+#define INT_IOUD       0x01            
+// Offset Shift Keying enable
+#define OSK_EN         0x20            
+// Offset Shift Keying
+#define OSK_INT                0x10            
+// Bypass Inverse Sinc Filter
+#define BYPASS_SINC    0x40            
+// Set PLL Range
+#define PLL_RANGE      0x40            
+
+// DDS Clock properties
+PUBLIC double dds_clock;
+PUBLIC int pll_mult;
+PUBLIC double dds_clock_correction;
+PUBLIC double sysClock;
+PUBLIC int ioud_clock;
+PUBLIC ushort dac_mult;
+
+// DDS Frequency Control properties
+PUBLIC double dds_freq;
+PUBLIC double if_freq;
+PUBLIC BOOL if_shift;
+PUBLIC BOOL spur_reduction;
+PUBLIC double dds_step_size;
+PUBLIC int sample_rate;
+PUBLIC int fft_length;
+PUBLIC double FFT_Bin_Size;
+PUBLIC int tune_fft;
+PUBLIC double tune_frac_rel;
+PUBLIC double vfo_offset;
+//extern double last_VFO;
+
+PUBLIC double min_freq;
+PUBLIC double max_freq;
+
+// PIO register base address
+PUBLIC u_short baseAdr;
+
+// Current Bandplan
+PUBLIC BandPlan curBandPlan;
+
+PUBLIC double TWO_TO_THE_48_DIVIDED_BY_200;
+PUBLIC long last_tuning_word;
+// private Mutex parallel_mutex;
+// private Mutex dataline_mutex;
+
+PUBLIC BOOL usb_enabled;
+
+#define SDR1K_LATCH_EXT 0x01
+#define SDR1K_LATCH_BPF 0x02
+
+//------------------------------------------------------------------------
+
+PUBLIC BOOL        openPort(char *port);
+PUBLIC void        closePort(void);
+PUBLIC void        USB_Sdr1kLatch(int, BYTE);
+PUBLIC BYTE       USB_Sdr1kGetStatusPort(void);
+PUBLIC int        USB_Sdr1kGetADC(void);
+PUBLIC void        USB_Sdr1kDDSReset(void);
+PUBLIC void        USB_Sdr1kDDSWrite(BYTE addr, BYTE data);
+PUBLIC void        USB_Sdr1kSRLoad(BYTE reg, BYTE data);
+PUBLIC void        DttSP_ChangeOsc(double val);
+
+PUBLIC void        Init                  (void);
+PUBLIC void        PowerOn               (void);
+PUBLIC void        StandBy               (void);
+PUBLIC void        Impulse               (void);
+
+PUBLIC BYTE        StatusPort            (void);
+PUBLIC void        SetExt                (ExtPin pin);
+PUBLIC void        ResExt                (ExtPin pin);
+PUBLIC BOOL        PinValue              (ExtPin pin);
+PUBLIC void        SetBPF                (double vfo_value);
+PUBLIC void        TestPort              (void);
+PUBLIC void        RCKStrobe             (BOOL ClearReg, RFE_RCK Reg);
+PUBLIC void        SRLoad                (RFE_RCK Reg, int Data);
+PUBLIC void        ResetRFE              (void);
+PUBLIC void        PA_SetLPF             (int i);
+PUBLIC BYTE        PA_GetADC             (int chan);
+PUBLIC BOOL        PA_ATUTune            (ATUTuneMode mode);
+
+PUBLIC BOOL        getEnableLPF0         (void);
+PUBLIC void        setEnableLPF0         (BOOL value);
+PUBLIC BOOL        getExtended           (void);
+PUBLIC void        setExtended           (BOOL value);
+PUBLIC BOOL        getX2Enabled          (void);
+PUBLIC void        setX2Enabled          (BOOL value);
+PUBLIC int         getX2Delay            (void);
+PUBLIC void        setX2Delay            (int value);
+PUBLIC BOOL        getRFE_Enabled        (void);
+PUBLIC void        setRFE_Enabled        (BOOL value);
+PUBLIC BOOL        getPA_Enabled         (void);
+PUBLIC void        setPA_Enabled         (BOOL value);
+PUBLIC BOOL        getXVTR_Enabled       (void);
+PUBLIC BOOL        setXVTR_Enabled       (BOOL value);
+PUBLIC BOOL        getUSB_Enabled        (void);
+PUBLIC void        setUSB_Enabled        (BOOL value);
+PUBLIC XVTRTRMode  getCurrentXVTRTRMode  (void);
+PUBLIC void        setCurrentXVTRTRMode  (XVTRTRMode value);
+PUBLIC int         getLatchDelay         (void);
+PUBLIC void        setLatchDelay         (int value);
+PUBLIC double      getMinFreq            (void);
+PUBLIC double      getMaxFreq            (void);
+PUBLIC u_short     getBaseAddr           (void);
+PUBLIC u_short     setBaseAddr           (u_short value);
+PUBLIC BandSetting getBandRelay          (void);
+PUBLIC void        setBandRelay          (BandSetting value);
+PUBLIC BOOL        getTransmitRelay      (void);
+PUBLIC void        setTransmitRelay      (BOOL value);
+PUBLIC BOOL        getMuteRelay          (void);
+PUBLIC void        setMuteRelay          (BOOL value);
+PUBLIC BOOL        getGainRelay          (void);
+PUBLIC void        setGainRelay          (BOOL value);
+PUBLIC int         getExternalOutput     (void);
+PUBLIC void        setExternalOutput     (int value);
+PUBLIC double      getDDSClockCorrection (void);
+PUBLIC void        setDDSClockCorrection (double value);
+PUBLIC int         getPLLMult            (void);
+PUBLIC void        setPLLMult            (int value);
+PUBLIC double      getDDSClock           (void);
+PUBLIC void        setDDSClock           (double value);
+PUBLIC BOOL        getIFShift            (void);
+PUBLIC void        setIFShift            (BOOL value);
+PUBLIC BOOL        getSpurReduction      (void);
+PUBLIC BOOL        setSpurReduction      (BOOL value);
+PUBLIC double      getIFFreq             (void);
+PUBLIC void        setIFFreq             (double value);
+PUBLIC double      getDDSFreq            (void);
+PUBLIC void        setDDSFreq            (double value);
+PUBLIC int         getSampleRate         (void);
+PUBLIC void        setSampleRate         (int value);
+PUBLIC int         getFFTLength          (void);
+PUBLIC void        setFFTLength          (int value);
+PUBLIC int         getTuneFFT            (void);
+PUBLIC double      getTuneFracRel        (void);
+PUBLIC double      getVFOOffset          (void);
+PUBLIC void        setVFOOffset          (double value);
+PUBLIC int         getIOUDClock          (void);
+PUBLIC void        setIOUDClock          (int value);
+PUBLIC u_short     getDACMult            (void);
+PUBLIC void        setDACMult            (u_short value);
+PUBLIC BOOL        getAMP_Relay          (void);
+PUBLIC BOOL        setAMP_Relay          (BOOL value);
+PUBLIC BOOL        getATTN_Relay         (void);
+PUBLIC void        setATTN_Relay         (BOOL value);
+PUBLIC BOOL        getXVTR_TR_Relay      (void);
+PUBLIC BOOL        setXVTR_TR_Relay      (BOOL value);
+PUBLIC BOOL        getXVTR_Relay         (void);
+PUBLIC BOOL        setXVTR_Relay         (BOOL value);
+PUBLIC BOOL        getIMPULSE_Relay      (void);
+PUBLIC BOOL        setIMPULSE_Relay      (BOOL value);
+PUBLIC BOOL        getPA_TransmitRelay   (void);
+PUBLIC BOOL        setPA_TransmitRelay   (BOOL value);
+PUBLIC BOOL        getPA_BiasOn          (void);
+PUBLIC BOOL        setPA_BiasOn          (BOOL value);
+
+//------------------------------------------------------------------------
+
+#endif