made certain library functions private to ensure they aren't improperly called from an arduino sketch
This commit is contained in:
		
							parent
							
								
									28f1ff016c
								
							
						
					
					
						commit
						c107df93dd
					
				
							
								
								
									
										500
									
								
								HamShield.h
								
								
								
								
							
							
						
						
									
										500
									
								
								HamShield.h
								
								
								
								
							| 
						 | 
				
			
			@ -258,6 +258,9 @@
 | 
			
		|||
 | 
			
		||||
class HamShield {
 | 
			
		||||
    public:
 | 
			
		||||
	    // public singleton for ISRs to reference
 | 
			
		||||
        static HamShield *sHamShield; // HamShield singleton, used for ISRs mostly
 | 
			
		||||
		
 | 
			
		||||
        HamShield();
 | 
			
		||||
        HamShield(uint8_t address);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -268,240 +271,205 @@ class HamShield {
 | 
			
		|||
        uint16_t readCtlReg();
 | 
			
		||||
        void softReset();
 | 
			
		||||
		
 | 
			
		||||
	// center frequency
 | 
			
		||||
	void setFrequency(uint32_t freq_khz);
 | 
			
		||||
	uint32_t getFrequency();
 | 
			
		||||
        // restrictions control
 | 
			
		||||
        void dangerMode();
 | 
			
		||||
        void safeMode();
 | 
			
		||||
		
 | 
			
		||||
	// band
 | 
			
		||||
    void setTxBand2m();
 | 
			
		||||
    void setTxBand1_2m();
 | 
			
		||||
    void setTxBand70cm();
 | 
			
		||||
    bool frequency(uint32_t freq_khz);
 | 
			
		||||
        
 | 
			
		||||
	// xtal frequency (kHz)
 | 
			
		||||
	// 12-14MHz crystal: this reg is set to crystal freq_khz
 | 
			
		||||
	// 24-28MHz crystal: this reg is set to crystal freq_khz / 2
 | 
			
		||||
	void setXtalFreq(uint16_t freq_kHz);
 | 
			
		||||
	uint16_t getXtalFreq();
 | 
			
		||||
		
 | 
			
		||||
	// adclk frequency (kHz)
 | 
			
		||||
	// 12-14MHz crystal: this reg is set to crystal freq_khz / 2
 | 
			
		||||
	// 24-28MHz crystal: this reg is set to crystal freq_khz / 4
 | 
			
		||||
	void setAdcClkFreq(uint16_t freq_kHz);
 | 
			
		||||
	uint16_t getAdcClkFreq();
 | 
			
		||||
 | 
			
		||||
	// clk mode
 | 
			
		||||
	// 12-14MHz: set to 1
 | 
			
		||||
	// 24-28MHz: set to 0
 | 
			
		||||
	void setClkMode(bool LFClk);
 | 
			
		||||
	bool getClkMode();
 | 
			
		||||
		
 | 
			
		||||
	// clk example
 | 
			
		||||
	// 12.8MHz clock
 | 
			
		||||
	// A1846S_XTAL_FREQ_REG[15:0]= xtal_freq<15:0>=12.8*1000=12800
 | 
			
		||||
	// A1846S_ADCLK_FREQ_REG[12:0] =adclk_freq<15:0>=(12.8/2)*1000=6400
 | 
			
		||||
	// A1846S_CLK_MODE_REG[0]= clk_mode =1
 | 
			
		||||
	
 | 
			
		||||
	// TX/RX control
 | 
			
		||||
		
 | 
			
		||||
	// channel mode
 | 
			
		||||
	// 11 - 25kHz channel
 | 
			
		||||
	// 00 - 12.5kHz channel
 | 
			
		||||
	// 10,01 - reserved
 | 
			
		||||
	void setChanMode(uint16_t mode);
 | 
			
		||||
	uint16_t getChanMode();
 | 
			
		||||
	
 | 
			
		||||
	// choose tx or rx
 | 
			
		||||
	void setTX(bool on_noff);
 | 
			
		||||
	bool getTX();
 | 
			
		||||
	
 | 
			
		||||
	void setRX(bool on_noff);
 | 
			
		||||
	bool getRX();
 | 
			
		||||
	
 | 
			
		||||
	void setModeTransmit(); // turn off rx, turn on tx
 | 
			
		||||
	void setModeReceive(); // turn on rx, turn off tx
 | 
			
		||||
	void setModeOff(); // turn off rx, turn off tx, set pwr_dwn bit
 | 
			
		||||
	
 | 
			
		||||
	// set tx source
 | 
			
		||||
	// 00 - Mic source
 | 
			
		||||
	// 01 - sine source from tone2
 | 
			
		||||
	// 10 - tx code from GPIO1 code_in (gpio1<1:0> must be set to 01)
 | 
			
		||||
	// 11 - no tx source
 | 
			
		||||
	void setTxSource(uint16_t tx_source);
 | 
			
		||||
	void setTxSourceMic();
 | 
			
		||||
	void setTxSourceTone1();
 | 
			
		||||
	void setTxSourceTone2();
 | 
			
		||||
	void setTxSourceTones();
 | 
			
		||||
	void setTxSourceNone();
 | 
			
		||||
	uint16_t getTxSource();
 | 
			
		||||
	
 | 
			
		||||
	// set PA_bias voltage
 | 
			
		||||
	//    000000: 1.01V
 | 
			
		||||
	//    000001:1.05V
 | 
			
		||||
	//    000010:1.09V
 | 
			
		||||
	//    000100: 1.18V
 | 
			
		||||
	//    001000: 1.34V
 | 
			
		||||
	//    010000: 1.68V
 | 
			
		||||
	//    100000: 2.45V
 | 
			
		||||
	//    1111111:3.13V
 | 
			
		||||
	void setPABiasVoltage(uint16_t voltage);
 | 
			
		||||
	uint16_t getPABiasVoltage();
 | 
			
		||||
	
 | 
			
		||||
	// Subaudio settings
 | 
			
		||||
	
 | 
			
		||||
	//   Ctcss/cdcss mode sel
 | 
			
		||||
	//      x00=disable,
 | 
			
		||||
	//      001=inner ctcss en,
 | 
			
		||||
	//      010= inner cdcss en
 | 
			
		||||
	//      101= outer ctcss en,
 | 
			
		||||
	//      110=outer cdcss en
 | 
			
		||||
	//      others =disable
 | 
			
		||||
	void setCtcssCdcssMode(uint16_t mode);
 | 
			
		||||
	uint16_t getCtcssCdcssMode();
 | 
			
		||||
	void setInnerCtcssMode();
 | 
			
		||||
	void setInnerCdcssMode();
 | 
			
		||||
	void setOuterCtcssMode();
 | 
			
		||||
	void setOuterCdcssMode();
 | 
			
		||||
	void disableCtcssCdcss();
 | 
			
		||||
	
 | 
			
		||||
	//   Ctcss_sel
 | 
			
		||||
	//      1 = ctcss_cmp/cdcss_cmp out via gpio
 | 
			
		||||
	//      0 = ctcss/cdcss sdo out vio gpio
 | 
			
		||||
	void setCtcssSel(bool cmp_nsdo);
 | 
			
		||||
	bool getCtcssSel();
 | 
			
		||||
	
 | 
			
		||||
	//   Cdcss_sel
 | 
			
		||||
	//      1 = long (24 bit) code
 | 
			
		||||
	//      0 = short(23 bit) code
 | 
			
		||||
	void setCdcssSel(bool long_nshort);
 | 
			
		||||
	bool getCdcssSel();
 | 
			
		||||
		// Cdcss neg_det_en
 | 
			
		||||
	void enableCdcssNegDet();
 | 
			
		||||
	void disableCdcssNegDet();
 | 
			
		||||
	bool getCdcssNegDetEnabled();
 | 
			
		||||
	
 | 
			
		||||
	// Cdcss pos_det_en
 | 
			
		||||
	void enableCdcssPosDet();
 | 
			
		||||
	void disableCdcssPosDet();
 | 
			
		||||
	bool getCdcssPosDetEnabled();
 | 
			
		||||
 | 
			
		||||
	// css_det_en
 | 
			
		||||
	void enableCssDet();
 | 
			
		||||
	void disableCssDet();
 | 
			
		||||
	bool getCssDetEnabled();
 | 
			
		||||
	
 | 
			
		||||
	// ctcss freq
 | 
			
		||||
        void setCtcss(float freq);
 | 
			
		||||
	void setCtcssFreq(uint16_t freq);
 | 
			
		||||
	uint16_t getCtcssFreq();
 | 
			
		||||
	void setCtcssFreqToStandard(); // freq must be 134.4Hz for standard cdcss mode
 | 
			
		||||
	
 | 
			
		||||
	// cdcss codes
 | 
			
		||||
	void setCdcssCode(uint16_t code);
 | 
			
		||||
	uint16_t getCdcssCode();
 | 
			
		||||
		bool frequency(uint32_t freq_khz);
 | 
			
		||||
		uint32_t getFrequency();
 | 
			
		||||
			
 | 
			
		||||
	// SQ
 | 
			
		||||
	void setSQOn();
 | 
			
		||||
	void setSQOff();
 | 
			
		||||
	bool getSQState();
 | 
			
		||||
	
 | 
			
		||||
	// SQ threshold
 | 
			
		||||
	void setSQHiThresh(uint16_t sq_hi_threshold); // Sq detect high th, rssi_cmp will be 1 when rssi>th_h_sq, unit 1/8dB
 | 
			
		||||
	uint16_t getSQHiThresh();
 | 
			
		||||
	void setSQLoThresh(uint16_t sq_lo_threshold); // Sq detect low th, rssi_cmp will be 0 when rssi<th_l_sq && time delay meet, unit 1/8 dB
 | 
			
		||||
	uint16_t getSQLoThresh();
 | 
			
		||||
	
 | 
			
		||||
	// SQ out select
 | 
			
		||||
	void setSQOutSel();
 | 
			
		||||
	void clearSQOutSel();
 | 
			
		||||
	bool getSQOutSel();
 | 
			
		||||
	
 | 
			
		||||
	// VOX
 | 
			
		||||
	void setVoxOn();
 | 
			
		||||
	void setVoxOff();
 | 
			
		||||
	bool getVoxOn();
 | 
			
		||||
	
 | 
			
		||||
	// Vox Threshold
 | 
			
		||||
	void setVoxOpenThresh(uint16_t vox_open_thresh); // When vssi > th_h_vox, then vox will be 1(unit mV )
 | 
			
		||||
	uint16_t getVoxOpenThresh();
 | 
			
		||||
	void setVoxShutThresh(uint16_t vox_shut_thresh); // When vssi < th_l_vox && time delay meet, then vox will be 0 (unit mV )
 | 
			
		||||
	uint16_t getVoxShutThresh();
 | 
			
		||||
	
 | 
			
		||||
	// Tail Noise
 | 
			
		||||
	void enableTailNoiseElim();
 | 
			
		||||
	void disableTailNoiseElim();
 | 
			
		||||
	bool getTailNoiseElimEnabled();
 | 
			
		||||
	
 | 
			
		||||
	// tail noise shift select
 | 
			
		||||
	//   Select ctcss phase shift when use tail eliminating function when TX
 | 
			
		||||
	//     00 = 120 degree shift
 | 
			
		||||
	//     01 = 180 degree shift
 | 
			
		||||
	//     10 = 240 degree shift
 | 
			
		||||
	//     11 = reserved
 | 
			
		||||
	void setShiftSelect(uint16_t shift_sel);
 | 
			
		||||
	uint16_t getShiftSelect();
 | 
			
		||||
	
 | 
			
		||||
	// DTMF
 | 
			
		||||
	void setDTMFC0(uint16_t freq);
 | 
			
		||||
	uint16_t getDTMFC0();
 | 
			
		||||
	void setDTMFC1(uint16_t freq);
 | 
			
		||||
	uint16_t getDTMFC1();	
 | 
			
		||||
	void setDTMFC2(uint16_t freq);
 | 
			
		||||
	uint16_t getDTMFC2();
 | 
			
		||||
	void setDTMFC3(uint16_t freq);
 | 
			
		||||
	uint16_t getDTMFC3();
 | 
			
		||||
	void setDTMFC4(uint16_t freq);
 | 
			
		||||
	uint16_t getDTMFC4();
 | 
			
		||||
	void setDTMFC5(uint16_t freq);
 | 
			
		||||
	uint16_t getDTMFC5();
 | 
			
		||||
	void setDTMFC6(uint16_t freq);
 | 
			
		||||
	uint16_t getDTMFC6();
 | 
			
		||||
	void setDTMFC7(uint16_t freq);
 | 
			
		||||
	uint16_t getDTMFC7();
 | 
			
		||||
	
 | 
			
		||||
	// TX FM deviation
 | 
			
		||||
	void setFMVoiceCssDeviation(uint16_t deviation);
 | 
			
		||||
	uint16_t getFMVoiceCssDeviation();
 | 
			
		||||
	void setFMCssDeviation(uint16_t deviation);
 | 
			
		||||
	uint16_t getFMCssDeviation();
 | 
			
		||||
	
 | 
			
		||||
	// RX voice range
 | 
			
		||||
	void setVolume1(uint16_t volume);
 | 
			
		||||
	uint16_t getVolume1();
 | 
			
		||||
	void setVolume2(uint16_t volume);
 | 
			
		||||
	uint16_t getVolume2();
 | 
			
		||||
	
 | 
			
		||||
	// GPIO
 | 
			
		||||
	void setGpioMode(uint16_t gpio, uint16_t mode);
 | 
			
		||||
	void setGpioHiZ(uint16_t gpio);
 | 
			
		||||
	void setGpioFcn(uint16_t gpio);
 | 
			
		||||
	void setGpioLow(uint16_t gpio);
 | 
			
		||||
	void setGpioHi(uint16_t gpio);
 | 
			
		||||
	uint16_t getGpioMode(uint16_t gpio);
 | 
			
		||||
	uint16_t getGpios();
 | 
			
		||||
	
 | 
			
		||||
	// Int
 | 
			
		||||
	void enableInterrupt(uint16_t interrupt);
 | 
			
		||||
	void disableInterrupt(uint16_t interrupt);
 | 
			
		||||
	bool getInterruptEnabled(uint16_t interrupt);
 | 
			
		||||
	
 | 
			
		||||
	// ST mode
 | 
			
		||||
	void setStMode(uint16_t mode);
 | 
			
		||||
	uint16_t getStMode();
 | 
			
		||||
	void setStFullAuto();
 | 
			
		||||
	void setStRxAutoTxManu();
 | 
			
		||||
	void setStFullManu();
 | 
			
		||||
	
 | 
			
		||||
	// Pre-emphasis, De-emphasis filter
 | 
			
		||||
	void bypassPreDeEmph();
 | 
			
		||||
	void usePreDeEmph();
 | 
			
		||||
	bool getPreDeEmphEnabled();
 | 
			
		||||
	
 | 
			
		||||
	// Read Only Status Registers
 | 
			
		||||
	int16_t readRSSI();
 | 
			
		||||
	uint16_t readVSSI();
 | 
			
		||||
	uint16_t readDTMFIndex(); // may want to split this into two (index1 and index2)
 | 
			
		||||
	uint16_t readDTMFCode();
 | 
			
		||||
		// channel mode
 | 
			
		||||
		// 11 - 25kHz channel
 | 
			
		||||
		// 00 - 12.5kHz channel
 | 
			
		||||
		// 10,01 - reserved
 | 
			
		||||
		void setChanMode(uint16_t mode);
 | 
			
		||||
		uint16_t getChanMode();
 | 
			
		||||
		
 | 
			
		||||
		void setModeTransmit(); // turn off rx, turn on tx
 | 
			
		||||
		void setModeReceive(); // turn on rx, turn off tx
 | 
			
		||||
		void setModeOff(); // turn off rx, turn off tx, set pwr_dwn bit
 | 
			
		||||
		
 | 
			
		||||
		// set tx source
 | 
			
		||||
		// 00 - Mic source
 | 
			
		||||
		// 01 - sine source from tone2
 | 
			
		||||
		// 10 - tx code from GPIO1 code_in (gpio1<1:0> must be set to 01)
 | 
			
		||||
		// 11 - no tx source
 | 
			
		||||
		void setTxSource(uint16_t tx_source);
 | 
			
		||||
		void setTxSourceMic();
 | 
			
		||||
		void setTxSourceTone1();
 | 
			
		||||
		void setTxSourceTone2();
 | 
			
		||||
		void setTxSourceTones();
 | 
			
		||||
		void setTxSourceNone();
 | 
			
		||||
		uint16_t getTxSource();
 | 
			
		||||
		
 | 
			
		||||
		// PA bias voltage is unused (maybe remove this)
 | 
			
		||||
		// set PA_bias voltage
 | 
			
		||||
		//    000000: 1.01V
 | 
			
		||||
		//    000001:1.05V
 | 
			
		||||
		//    000010:1.09V
 | 
			
		||||
		//    000100: 1.18V
 | 
			
		||||
		//    001000: 1.34V
 | 
			
		||||
		//    010000: 1.68V
 | 
			
		||||
		//    100000: 2.45V
 | 
			
		||||
		//    1111111:3.13V
 | 
			
		||||
		void setPABiasVoltage(uint16_t voltage);
 | 
			
		||||
		uint16_t getPABiasVoltage();
 | 
			
		||||
		
 | 
			
		||||
		// Subaudio settings
 | 
			
		||||
		
 | 
			
		||||
		//   Ctcss/cdcss mode sel
 | 
			
		||||
		//      x00=disable,
 | 
			
		||||
		//      001=inner ctcss en,
 | 
			
		||||
		//      010= inner cdcss en
 | 
			
		||||
		//      101= outer ctcss en,
 | 
			
		||||
		//      110=outer cdcss en
 | 
			
		||||
		//      others =disable
 | 
			
		||||
		void setCtcssCdcssMode(uint16_t mode);
 | 
			
		||||
		uint16_t getCtcssCdcssMode();
 | 
			
		||||
		void setInnerCtcssMode();
 | 
			
		||||
		void setInnerCdcssMode();
 | 
			
		||||
		void setOuterCtcssMode();
 | 
			
		||||
		void setOuterCdcssMode();
 | 
			
		||||
		void disableCtcssCdcss();
 | 
			
		||||
		
 | 
			
		||||
		//   Ctcss_sel
 | 
			
		||||
		//      1 = ctcss_cmp/cdcss_cmp out via gpio
 | 
			
		||||
		//      0 = ctcss/cdcss sdo out vio gpio
 | 
			
		||||
		void setCtcssSel(bool cmp_nsdo);
 | 
			
		||||
		bool getCtcssSel();
 | 
			
		||||
		
 | 
			
		||||
		//   Cdcss_sel
 | 
			
		||||
		//      1 = long (24 bit) code
 | 
			
		||||
		//      0 = short(23 bit) code
 | 
			
		||||
		void setCdcssSel(bool long_nshort);
 | 
			
		||||
		bool getCdcssSel();
 | 
			
		||||
		// Cdcss neg_det_en
 | 
			
		||||
		void enableCdcssNegDet();
 | 
			
		||||
		void disableCdcssNegDet();
 | 
			
		||||
		bool getCdcssNegDetEnabled();
 | 
			
		||||
		
 | 
			
		||||
		// Cdcss pos_det_en
 | 
			
		||||
		void enableCdcssPosDet();
 | 
			
		||||
		void disableCdcssPosDet();
 | 
			
		||||
		bool getCdcssPosDetEnabled();
 | 
			
		||||
 | 
			
		||||
		// css_det_en
 | 
			
		||||
		void enableCssDet();
 | 
			
		||||
		void disableCssDet();
 | 
			
		||||
		bool getCssDetEnabled();
 | 
			
		||||
		
 | 
			
		||||
		// ctcss freq
 | 
			
		||||
		void setCtcss(float freq);
 | 
			
		||||
		void setCtcssFreq(uint16_t freq);
 | 
			
		||||
		uint16_t getCtcssFreq();
 | 
			
		||||
		void setCtcssFreqToStandard(); // freq must be 134.4Hz for standard cdcss mode
 | 
			
		||||
		
 | 
			
		||||
		// cdcss codes
 | 
			
		||||
		void setCdcssCode(uint16_t code);
 | 
			
		||||
		uint16_t getCdcssCode();
 | 
			
		||||
				
 | 
			
		||||
		// SQ
 | 
			
		||||
		void setSQOn();
 | 
			
		||||
		void setSQOff();
 | 
			
		||||
		bool getSQState();
 | 
			
		||||
		
 | 
			
		||||
		// SQ threshold
 | 
			
		||||
		void setSQHiThresh(uint16_t sq_hi_threshold); // Sq detect high th, rssi_cmp will be 1 when rssi>th_h_sq, unit 1/8dB
 | 
			
		||||
		uint16_t getSQHiThresh();
 | 
			
		||||
		void setSQLoThresh(uint16_t sq_lo_threshold); // Sq detect low th, rssi_cmp will be 0 when rssi<th_l_sq && time delay meet, unit 1/8 dB
 | 
			
		||||
		uint16_t getSQLoThresh();
 | 
			
		||||
		
 | 
			
		||||
		// SQ out select
 | 
			
		||||
		void setSQOutSel();
 | 
			
		||||
		void clearSQOutSel();
 | 
			
		||||
		bool getSQOutSel();
 | 
			
		||||
		
 | 
			
		||||
		// VOX
 | 
			
		||||
		void setVoxOn();
 | 
			
		||||
		void setVoxOff();
 | 
			
		||||
		bool getVoxOn();
 | 
			
		||||
		
 | 
			
		||||
		// Vox Threshold
 | 
			
		||||
		void setVoxOpenThresh(uint16_t vox_open_thresh); // When vssi > th_h_vox, then vox will be 1(unit mV )
 | 
			
		||||
		uint16_t getVoxOpenThresh();
 | 
			
		||||
		void setVoxShutThresh(uint16_t vox_shut_thresh); // When vssi < th_l_vox && time delay meet, then vox will be 0 (unit mV )
 | 
			
		||||
		uint16_t getVoxShutThresh();
 | 
			
		||||
		
 | 
			
		||||
		// Tail Noise
 | 
			
		||||
		void enableTailNoiseElim();
 | 
			
		||||
		void disableTailNoiseElim();
 | 
			
		||||
		bool getTailNoiseElimEnabled();
 | 
			
		||||
		
 | 
			
		||||
		// tail noise shift select
 | 
			
		||||
		//   Select ctcss phase shift when use tail eliminating function when TX
 | 
			
		||||
		//     00 = 120 degree shift
 | 
			
		||||
		//     01 = 180 degree shift
 | 
			
		||||
		//     10 = 240 degree shift
 | 
			
		||||
		//     11 = reserved
 | 
			
		||||
		void setShiftSelect(uint16_t shift_sel);
 | 
			
		||||
		uint16_t getShiftSelect();
 | 
			
		||||
		
 | 
			
		||||
		// DTMF
 | 
			
		||||
		void setDTMFC0(uint16_t freq);
 | 
			
		||||
		uint16_t getDTMFC0();
 | 
			
		||||
		void setDTMFC1(uint16_t freq);
 | 
			
		||||
		uint16_t getDTMFC1();	
 | 
			
		||||
		void setDTMFC2(uint16_t freq);
 | 
			
		||||
		uint16_t getDTMFC2();
 | 
			
		||||
		void setDTMFC3(uint16_t freq);
 | 
			
		||||
		uint16_t getDTMFC3();
 | 
			
		||||
		void setDTMFC4(uint16_t freq);
 | 
			
		||||
		uint16_t getDTMFC4();
 | 
			
		||||
		void setDTMFC5(uint16_t freq);
 | 
			
		||||
		uint16_t getDTMFC5();
 | 
			
		||||
		void setDTMFC6(uint16_t freq);
 | 
			
		||||
		uint16_t getDTMFC6();
 | 
			
		||||
		void setDTMFC7(uint16_t freq);
 | 
			
		||||
		uint16_t getDTMFC7();
 | 
			
		||||
		
 | 
			
		||||
		// TX FM deviation
 | 
			
		||||
		void setFMVoiceCssDeviation(uint16_t deviation);
 | 
			
		||||
		uint16_t getFMVoiceCssDeviation();
 | 
			
		||||
		void setFMCssDeviation(uint16_t deviation);
 | 
			
		||||
		uint16_t getFMCssDeviation();
 | 
			
		||||
		
 | 
			
		||||
		// RX voice range
 | 
			
		||||
		void setVolume1(uint16_t volume);
 | 
			
		||||
		uint16_t getVolume1();
 | 
			
		||||
		void setVolume2(uint16_t volume);
 | 
			
		||||
		uint16_t getVolume2();
 | 
			
		||||
		
 | 
			
		||||
		// GPIO
 | 
			
		||||
		void setGpioMode(uint16_t gpio, uint16_t mode);
 | 
			
		||||
		void setGpioHiZ(uint16_t gpio);
 | 
			
		||||
		void setGpioFcn(uint16_t gpio);
 | 
			
		||||
		void setGpioLow(uint16_t gpio);
 | 
			
		||||
		void setGpioHi(uint16_t gpio);
 | 
			
		||||
		uint16_t getGpioMode(uint16_t gpio);
 | 
			
		||||
		uint16_t getGpios();
 | 
			
		||||
		
 | 
			
		||||
		// Int
 | 
			
		||||
		void enableInterrupt(uint16_t interrupt);
 | 
			
		||||
		void disableInterrupt(uint16_t interrupt);
 | 
			
		||||
		bool getInterruptEnabled(uint16_t interrupt);
 | 
			
		||||
		
 | 
			
		||||
		// ST mode
 | 
			
		||||
		void setStMode(uint16_t mode);
 | 
			
		||||
		uint16_t getStMode();
 | 
			
		||||
		void setStFullAuto();
 | 
			
		||||
		void setStRxAutoTxManu();
 | 
			
		||||
		void setStFullManu();
 | 
			
		||||
		
 | 
			
		||||
		// Pre-emphasis, De-emphasis filter
 | 
			
		||||
		void bypassPreDeEmph();
 | 
			
		||||
		void usePreDeEmph();
 | 
			
		||||
		bool getPreDeEmphEnabled();
 | 
			
		||||
		
 | 
			
		||||
		// Read Only Status Registers
 | 
			
		||||
		int16_t readRSSI();
 | 
			
		||||
		uint16_t readVSSI();
 | 
			
		||||
		uint16_t readDTMFIndex(); // may want to split this into two (index1 and index2)
 | 
			
		||||
		uint16_t readDTMFCode();
 | 
			
		||||
 | 
			
		||||
        // set output power of radio
 | 
			
		||||
        void setRfPower(uint8_t pwr);
 | 
			
		||||
| 
						 | 
				
			
			@ -512,11 +480,6 @@ class HamShield {
 | 
			
		|||
        bool setMURSChannel(uint8_t channel);
 | 
			
		||||
        bool setWXChannel(uint8_t channel);
 | 
			
		||||
        uint8_t scanWXChannel();
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
        // restrictions control
 | 
			
		||||
        void dangerMode();
 | 
			
		||||
        void safeMode();
 | 
			
		||||
  
 | 
			
		||||
        // utilities
 | 
			
		||||
        uint32_t scanMode(uint32_t start,uint32_t stop, uint8_t speed, uint16_t step, uint16_t threshold);
 | 
			
		||||
| 
						 | 
				
			
			@ -526,23 +489,23 @@ class HamShield {
 | 
			
		|||
        void buttonMode(uint8_t mode);
 | 
			
		||||
        static void isr_ptt();
 | 
			
		||||
        static void isr_reset();
 | 
			
		||||
	void morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]);
 | 
			
		||||
	uint8_t morseLookup(char letter);
 | 
			
		||||
		void morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]);
 | 
			
		||||
		uint8_t morseLookup(char letter);
 | 
			
		||||
        bool waitForChannel(long timeout, long breakwindow, int setRSSI);
 | 
			
		||||
        void SSTVVISCode(int code);
 | 
			
		||||
        void SSTVTestPattern(int code);
 | 
			
		||||
        void toneWait(uint16_t freq, long timer);
 | 
			
		||||
        void toneWaitU(uint16_t freq, long timer);
 | 
			
		||||
        bool parityCalc(int code);
 | 
			
		||||
       // void AFSKOut(char buffer[80]); 
 | 
			
		||||
		// void AFSKOut(char buffer[80]); 
 | 
			
		||||
 | 
			
		||||
       // AFSK routines
 | 
			
		||||
       bool AFSKStart();
 | 
			
		||||
       bool AFSKEnabled() { return afsk.enabled(); }
 | 
			
		||||
       bool AFSKStop();
 | 
			
		||||
       bool AFSKOut(const char *);
 | 
			
		||||
		// AFSK routines
 | 
			
		||||
		bool AFSKStart();
 | 
			
		||||
		bool AFSKEnabled() { return afsk.enabled(); }
 | 
			
		||||
		bool AFSKStop();
 | 
			
		||||
		bool AFSKOut(const char *);
 | 
			
		||||
       
 | 
			
		||||
       class AFSK afsk;
 | 
			
		||||
		class AFSK afsk;
 | 
			
		||||
       
 | 
			
		||||
    private:
 | 
			
		||||
        uint8_t devAddr;
 | 
			
		||||
| 
						 | 
				
			
			@ -554,17 +517,40 @@ class HamShield {
 | 
			
		|||
        uint32_t GMRS[];
 | 
			
		||||
        uint32_t MURS[];
 | 
			
		||||
        uint32_t WX[];
 | 
			
		||||
        
 | 
			
		||||
        // public singleton for ISRs to reference
 | 
			
		||||
      public:
 | 
			
		||||
        static HamShield *sHamShield; // HamShield singleton, used for ISRs mostly
 | 
			
		||||
        
 | 
			
		||||
//          int8_t A1846S::readWord(uint8_t devAddr, uint8_t regAddr, uint16_t *data, uint16_t timeout);
 | 
			
		||||
//          int8_t A1846S::readBits(uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint16_t *data, uint16_t timeout);
 | 
			
		||||
//          int8_t A1846S::readBit(uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint16_t *data, uint16_t timeout);
 | 
			
		||||
//          int8_t A1846S::writeWord(uint8_t devAddr, uint8_t regAddr, uint16_t *data, uint16_t timeout);
 | 
			
		||||
//          bool A1846S::writeBits(uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint16_t data);
 | 
			
		||||
//          bool A1846S::writeBit(uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint16_t data);
 | 
			
		||||
		
 | 
			
		||||
		// private utility functions
 | 
			
		||||
		// these functions should not be called in the Arduino sketch
 | 
			
		||||
		// just use the above public functions to do everything
 | 
			
		||||
		
 | 
			
		||||
		void setFrequency(uint32_t freq_khz);
 | 
			
		||||
		void setTxBand2m();
 | 
			
		||||
		void setTxBand1_2m();
 | 
			
		||||
		void setTxBand70cm();
 | 
			
		||||
		
 | 
			
		||||
		// xtal frequency (kHz)
 | 
			
		||||
		// 12-14MHz crystal: this reg is set to crystal freq_khz
 | 
			
		||||
		// 24-28MHz crystal: this reg is set to crystal freq_khz / 2
 | 
			
		||||
		void setXtalFreq(uint16_t freq_kHz);
 | 
			
		||||
		uint16_t getXtalFreq();
 | 
			
		||||
			
 | 
			
		||||
		// adclk frequency (kHz)
 | 
			
		||||
		// 12-14MHz crystal: this reg is set to crystal freq_khz / 2
 | 
			
		||||
		// 24-28MHz crystal: this reg is set to crystal freq_khz / 4
 | 
			
		||||
		void setAdcClkFreq(uint16_t freq_kHz);
 | 
			
		||||
		uint16_t getAdcClkFreq();
 | 
			
		||||
 | 
			
		||||
		// clk mode
 | 
			
		||||
		// 12-14MHz: set to 1
 | 
			
		||||
		// 24-28MHz: set to 0
 | 
			
		||||
		void setClkMode(bool LFClk);
 | 
			
		||||
		bool getClkMode();
 | 
			
		||||
		
 | 
			
		||||
		// choose tx or rx
 | 
			
		||||
		void setTX(bool on_noff);
 | 
			
		||||
		bool getTX();
 | 
			
		||||
		
 | 
			
		||||
		void setRX(bool on_noff);
 | 
			
		||||
		bool getRX();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif /* _HAMSHIELD_H_ */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue