Added ability to select ADC1 or ADC2 from the floating rcvr widget.

This commit is contained in:
mh 2018-01-13 08:07:56 -05:00
parent 7f760f11ed
commit efde2f1a1f
16 changed files with 328 additions and 49 deletions

View File

@ -1,7 +1,7 @@
[General]
cudaSDR%20BETA%20=v0.3.2.13
cudaSDR%20BETA=v0.3.2.13+
cudaSDR%20BETA%20=v0.3.2.13+
saved=Friday 29 December 2017 10:07:10
saved=Saturday 13 January 2018 08:01:05
[ChirpWSPR]
chirpAmplitude=75
@ -114,8 +114,8 @@ pennylane=false
audio_port=15000
hpsdr_local_ipAddress=192.168.1.1
listen_port=11000
metis_port=49359
server_ipAddress=192.168.15.1
metis_port=50792
server_ipAddress=192.168.1.1
server_port=52685
socketBufferSize=32
@ -167,6 +167,7 @@ txState80m=0
txStateGen=0
[receiver0]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -201,7 +202,7 @@ attenuatorGen=off
audioVolume=34
averaging=on
averagingCnt=5
centerFrequency=3716500
centerFrequency=3713673
clickVFO=on
dBmPanScaleMax10cm=-10
dBmPanScaleMax10m=-30
@ -297,8 +298,8 @@ lastCenterFrequency60m=5260000
lastCenterFrequency630m=472000
lastCenterFrequency6m=50000000
lastCenterFrequency70cm=420000000
lastCenterFrequency80m=3716500
lastCenterFrequencyGen=1375098
lastCenterFrequency80m=3713673
lastCenterFrequencyGen=1374997
lastVfoFrequency10cm=902000000
lastVfoFrequency10m=28676442
lastVfoFrequency125cm=222000000
@ -319,17 +320,18 @@ lastVfoFrequency60m=5260000
lastVfoFrequency630m=472000
lastVfoFrequency6m=50000000
lastVfoFrequency70cm=420000000
lastVfoFrequency80m=3740100
lastVfoFrequencyGen=13959500
lastVfoFrequency80m=3793000
lastVfoFrequencyGen=1371299
mouseWheelFreqStep=100
panLocked=off
panMode=FILLEDLINE
vfoFrequency=3740100
vfoFrequency=3793000
waterfallMode=ENHANCED
waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver1]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -364,7 +366,7 @@ attenuatorGen=off
audioVolume=40
averaging=on
averagingCnt=5
centerFrequency=28000000
centerFrequency=14209365
clickVFO=on
dBmPanScaleMax10cm=-10
dBmPanScaleMax10m=-53
@ -374,7 +376,7 @@ dBmPanScaleMax13cm=-10
dBmPanScaleMax15m=-10
dBmPanScaleMax160m=-19
dBmPanScaleMax17m=-10
dBmPanScaleMax20m=-34
dBmPanScaleMax20m=-15
dBmPanScaleMax2200m=-10
dBmPanScaleMax23cm=-10
dBmPanScaleMax2m=-10
@ -386,7 +388,7 @@ dBmPanScaleMax60m=-10
dBmPanScaleMax630m=-10
dBmPanScaleMax6m=-10
dBmPanScaleMax70cm=-10
dBmPanScaleMax80m=-44
dBmPanScaleMax80m=-49
dBmPanScaleMaxGen=-10
dBmPanScaleMin10cm=-120
dBmPanScaleMin10m=-163
@ -396,7 +398,7 @@ dBmPanScaleMin13cm=-120
dBmPanScaleMin15m=-120
dBmPanScaleMin160m=-129
dBmPanScaleMin17m=-120
dBmPanScaleMin20m=-144
dBmPanScaleMin20m=-125
dBmPanScaleMin2200m=-120
dBmPanScaleMin23cm=-120
dBmPanScaleMin2m=-120
@ -408,7 +410,7 @@ dBmPanScaleMin60m=-120
dBmPanScaleMin630m=-120
dBmPanScaleMin6m=-120
dBmPanScaleMin70cm=-120
dBmPanScaleMin80m=-154
dBmPanScaleMin80m=-159
dBmPanScaleMinGen=-120
dspCore=qtdsp
dspMode10cm=LSB
@ -434,8 +436,8 @@ dspMode70cm=LSB
dspMode80m=LSB
dspModeGen=LSB
fftAuto=off
filterHi=-150
filterLo=-3050
filterHi=3050
filterLo=150
framesPerSecond=25
freqRulerPosition=5
grid=on
@ -461,16 +463,16 @@ lastCenterFrequency630m=472000
lastCenterFrequency6m=50000000
lastCenterFrequency70cm=420000000
lastCenterFrequency80m=3673284
lastCenterFrequencyGen=7201153
lastCenterFrequencyGen=27998784
lastVfoFrequency10cm=902000000
lastVfoFrequency10m=28000000
lastVfoFrequency10m=28025492
lastVfoFrequency125cm=222000000
lastVfoFrequency12m=24890000
lastVfoFrequency13cm=902000000
lastVfoFrequency15m=21000000
lastVfoFrequency160m=1864900
lastVfoFrequency17m=18068000
lastVfoFrequency20m=14255000
lastVfoFrequency20m=14219200
lastVfoFrequency2200m=135700
lastVfoFrequency23cm=902000000
lastVfoFrequency2m=144000000
@ -483,16 +485,17 @@ lastVfoFrequency630m=472000
lastVfoFrequency6m=50000000
lastVfoFrequency70cm=420000000
lastVfoFrequency80m=3680200
lastVfoFrequencyGen=27958000
lastVfoFrequencyGen=27980600
mouseWheelFreqStep=100
panLocked=off
panMode=FILLEDLINE
vfoFrequency=28000000
vfoFrequency=14219200
waterfallMode=ENHANCED
waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver10]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -656,6 +659,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver11]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -700,7 +704,7 @@ dBmPanScaleMax13cm=-10
dBmPanScaleMax15m=-10
dBmPanScaleMax160m=-19
dBmPanScaleMax17m=-10
dBmPanScaleMax20m=-10
dBmPanScaleMax20m=-23
dBmPanScaleMax2200m=-10
dBmPanScaleMax23cm=-10
dBmPanScaleMax2m=-10
@ -722,7 +726,7 @@ dBmPanScaleMin13cm=-120
dBmPanScaleMin15m=-120
dBmPanScaleMin160m=-129
dBmPanScaleMin17m=-120
dBmPanScaleMin20m=-120
dBmPanScaleMin20m=-133
dBmPanScaleMin2200m=-120
dBmPanScaleMin23cm=-120
dBmPanScaleMin2m=-120
@ -819,6 +823,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver12]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -853,7 +858,7 @@ attenuatorGen=off
audioVolume=23
averaging=on
averagingCnt=5
centerFrequency=7000000
centerFrequency=7012632
clickVFO=on
dBmPanScaleMax10cm=-10
dBmPanScaleMax10m=-10
@ -869,7 +874,7 @@ dBmPanScaleMax23cm=-10
dBmPanScaleMax2m=-10
dBmPanScaleMax30m=-10
dBmPanScaleMax33cm=-10
dBmPanScaleMax40m=-10
dBmPanScaleMax40m=-23
dBmPanScaleMax5cm=-10
dBmPanScaleMax60m=-10
dBmPanScaleMax630m=-10
@ -891,7 +896,7 @@ dBmPanScaleMin23cm=-120
dBmPanScaleMin2m=-120
dBmPanScaleMin30m=-120
dBmPanScaleMin33cm=-120
dBmPanScaleMin40m=-120
dBmPanScaleMin40m=-133
dBmPanScaleMin5cm=-120
dBmPanScaleMin60m=-120
dBmPanScaleMin630m=-120
@ -943,7 +948,7 @@ lastCenterFrequency23cm=902000000
lastCenterFrequency2m=144000000
lastCenterFrequency30m=10100000
lastCenterFrequency33cm=902000000
lastCenterFrequency40m=7000000
lastCenterFrequency40m=7012632
lastCenterFrequency5cm=902000000
lastCenterFrequency60m=5260000
lastCenterFrequency630m=472000
@ -965,7 +970,7 @@ lastVfoFrequency23cm=902000000
lastVfoFrequency2m=144000000
lastVfoFrequency30m=10117200
lastVfoFrequency33cm=902000000
lastVfoFrequency40m=7000000
lastVfoFrequency40m=7019532
lastVfoFrequency5cm=902000000
lastVfoFrequency60m=5260000
lastVfoFrequency630m=472000
@ -976,12 +981,13 @@ lastVfoFrequencyGen=10051000
mouseWheelFreqStep=100
panLocked=off
panMode=FILLEDLINE
vfoFrequency=7000000
vfoFrequency=7019532
waterfallMode=ENHANCED
waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver13]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -1145,6 +1151,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver14]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -1308,6 +1315,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver15]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -1365,7 +1373,7 @@ dBmPanScaleMax630m=-10
dBmPanScaleMax6m=-5
dBmPanScaleMax70cm=-10
dBmPanScaleMax80m=-9
dBmPanScaleMaxGen=-3
dBmPanScaleMaxGen=-30
dBmPanScaleMin10cm=-120
dBmPanScaleMin10m=-136
dBmPanScaleMin125cm=-120
@ -1387,7 +1395,7 @@ dBmPanScaleMin630m=-120
dBmPanScaleMin6m=-115
dBmPanScaleMin70cm=-120
dBmPanScaleMin80m=-119
dBmPanScaleMinGen=-113
dBmPanScaleMinGen=-140
dspCore=qtdsp
dspMode10cm=LSB
dspMode10m=LSB
@ -1471,6 +1479,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver16]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -1634,6 +1643,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver17]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -1797,6 +1807,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver18]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -1960,6 +1971,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver19]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -2123,6 +2135,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver2]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -2157,7 +2170,7 @@ attenuatorGen=off
audioVolume=23
averaging=on
averagingCnt=5
centerFrequency=10100000
centerFrequency=10099616
clickVFO=on
dBmPanScaleMax10cm=-10
dBmPanScaleMax10m=-10
@ -2254,7 +2267,7 @@ lastCenterFrequency630m=472000
lastCenterFrequency6m=50000000
lastCenterFrequency70cm=420000000
lastCenterFrequency80m=3672000
lastCenterFrequencyGen=1800000
lastCenterFrequencyGen=10099616
lastVfoFrequency10cm=902000000
lastVfoFrequency10m=28000000
lastVfoFrequency125cm=222000000
@ -2267,7 +2280,7 @@ lastVfoFrequency20m=14000000
lastVfoFrequency2200m=135700
lastVfoFrequency23cm=902000000
lastVfoFrequency2m=144000000
lastVfoFrequency30m=10117200
lastVfoFrequency30m=10116816
lastVfoFrequency33cm=902000000
lastVfoFrequency40m=7000000
lastVfoFrequency5cm=902000000
@ -2280,12 +2293,13 @@ lastVfoFrequencyGen=10051000
mouseWheelFreqStep=100
panLocked=off
panMode=FILLEDLINE
vfoFrequency=10117200
vfoFrequency=10116816
waterfallMode=ENHANCED
waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver3]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -2432,7 +2446,7 @@ lastVfoFrequency23cm=902000000
lastVfoFrequency2m=144000000
lastVfoFrequency30m=10117200
lastVfoFrequency33cm=902000000
lastVfoFrequency40m=7067548
lastVfoFrequency40m=7122200
lastVfoFrequency5cm=902000000
lastVfoFrequency60m=5260000
lastVfoFrequency630m=472000
@ -2443,12 +2457,13 @@ lastVfoFrequencyGen=10051000
mouseWheelFreqStep=100
panLocked=off
panMode=FILLEDLINE
vfoFrequency=7067548
vfoFrequency=7122200
waterfallMode=ENHANCED
waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver4]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -2612,6 +2627,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver5]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -2775,6 +2791,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver6]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -2938,6 +2955,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver7]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -3101,6 +3119,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver8]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30
@ -3264,6 +3283,7 @@ waterfallOffsetHi=20
waterfallOffsetLo=-5
[receiver9]
adcMode=ADC1
agcAttacktime=1
agcDecaytime=250
agcFixedGain=30

View File

@ -1,3 +1,3 @@
[General]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\x3\x97\0\0\0\x33\0\0\f(\0\0\x6\x1\0\0\x3\x97\0\0\0X\0\0\f(\0\0\x6\x1\0\0\0\0\0\0\0\0\xf\0)
windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\x1\0\0\0\xf5\0\0\x4\xdc\xfc\x2\0\0\0\x5\xfb\0\0\0\x12\0R\0\x61\0\x64\0i\0o\0\x43\0t\0r\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x34\0\xff\xff\xff\xfb\0\0\0\x14\0S\0\x65\0r\0v\0\x65\0r\0\x43\0t\0r\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x34\0\xff\xff\xff\xfb\0\0\0\x12\0H\0P\0S\0\x44\0R\0\x43\0t\0r\0l\x1\0\0\0\xb3\0\0\x4\xdc\0\0\x4\xdc\0\xff\xff\xff\xfb\0\0\0\x12\0\x43\0h\0i\0r\0p\0\x43\0t\0r\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x34\0\xff\xff\xff\xfb\0\0\0\x16\0\x44\0i\0s\0p\0l\0\x61\0y\0\x43\0t\0r\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x34\0\xff\xff\xff\0\0\a\x97\0\0\x4\xdc\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0U\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\x1\0\0\0\x18\0\x44\0i\0s\0p\0l\0\x61\0y\0P\0\x61\0n\0\x65\0l\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x2\0\0\0\x1\0\0\0\x16\0M\0\x61\0i\0n\0\x42\0u\0t\0t\0o\0n\0s\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\x2[\0\0\x2\xae\0\0\t\xae\0\0\a_\0\0\x2[\0\0\x2\xd3\0\0\t\xae\0\0\a_\0\0\0\0\0\0\0\0\xf\0)
windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\x1\0\0\0\xf5\0\0\x3\xc3\xfc\x2\0\0\0\x5\xfb\0\0\0\x12\0R\0\x61\0\x64\0i\0o\0\x43\0t\0r\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x32\0\xff\xff\xff\xfb\0\0\0\x14\0S\0\x65\0r\0v\0\x65\0r\0\x43\0t\0r\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x32\0\xff\xff\xff\xfb\0\0\0\x12\0H\0P\0S\0\x44\0R\0\x43\0t\0r\0l\x1\0\0\0\xb1\0\0\x3\xc3\0\0\x3\xc3\0\xff\xff\xff\xfb\0\0\0\x12\0\x43\0h\0i\0r\0p\0\x43\0t\0r\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x32\0\xff\xff\xff\xfb\0\0\0\x16\0\x44\0i\0s\0p\0l\0\x61\0y\0\x43\0t\0r\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x32\0\xff\xff\xff\0\0\x6Y\0\0\x3\xc3\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x93\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\x1\0\0\0\x18\0\x44\0i\0s\0p\0l\0\x61\0y\0P\0\x61\0n\0\x65\0l\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x2\0\0\0\x1\0\0\0\x16\0M\0\x61\0i\0n\0\x42\0u\0t\0t\0o\0n\0s\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)

View File

@ -59,6 +59,8 @@
*/
static int firstTimeRxInit;
static quint8 adc_rx1_4, adc_rx5_8, adc_rx9_16;
static quint8 new_adc_rx1_4, new_adc_rx5_8, new_adc_rx9_16;
DataEngine::DataEngine(QObject *parent)
: QObject(parent)
@ -532,7 +534,6 @@ bool DataEngine::getFirmwareVersions() {
if (!initReceivers(rcvrs)) return false;
if (!m_dataIO) createDataIO();
if (!m_dataProcessor) createDataProcessor();
@ -3358,7 +3359,7 @@ void DataProcessor::encodeCCBytes() {
if (de->io.tx_freq_change >= 0) {
de->io.output_buffer[4] = de->RX.at(de->io.tx_freq_change)->getCtrFrequency() >> 24;
de->io.output_buffer[4] = de->RX.at(de->io.tx_freq_change)->getCtrFrequency() >> 24;
de->io.output_buffer[5] = de->RX.at(de->io.tx_freq_change)->getCtrFrequency() >> 16;
de->io.output_buffer[6] = de->RX.at(de->io.tx_freq_change)->getCtrFrequency() >> 8;
de->io.output_buffer[7] = de->RX.at(de->io.tx_freq_change)->getCtrFrequency();
@ -3380,13 +3381,13 @@ void DataProcessor::encodeCCBytes() {
// C0 = 0 0 0 1 0 0 0 x C1, C2, C3, C4 NCO Frequency in Hz for Receiver _7
// C0 = 0 0 1 0 0 1 0 x C1, C2, C3, C4 NCO Frequency in Hz for Receiver _8 // Was 0 0 0 1 0 0 1 x
// C0 = 0 0 1 1 0 1 0 x C1, C2, C3, C4 NCO Frequency in Hz for Receiver _16
// C0 = 0 0 1 1 0 1 0 x C1, C2, C3, C4 NCO Frequency in Hz for Receiver _16
// C0 = 0 1 0 1 0 1 0 x C1, C2, C3, C4 NCO Frequency in Hz for Receiver _32
// RRK, workaround for gige timing bug, make sure all rx freq's are sent on init.
if (firstTimeRxInit) {
firstTimeRxInit -= 1;
de->io.rx_freq_change = firstTimeRxInit;
}
// RRK, workaround for gige timing bug, make sure all rx freq's are sent on init.
if (firstTimeRxInit) {
firstTimeRxInit -= 1;
de->io.rx_freq_change = firstTimeRxInit;
}
if (de->io.rx_freq_change >= 0) {
@ -3526,9 +3527,42 @@ void DataProcessor::encodeCCBytes() {
for (int i = 0; i < 5; i++)
de->io.output_buffer[i+3] = de->io.control_out[i];
// check if we need to update ADC C&C's
new_adc_rx1_4 = new_adc_rx5_8 = new_adc_rx9_16 = 0;
for (int i = 0; i < set->getNumberOfReceivers(); i++) {
if (i < 4) new_adc_rx1_4 |= de->RX.at(i)->getADCMode() << (i * 2);
else if (i < 8) new_adc_rx5_8 |= de->RX.at(i)->getADCMode() << ((i-4) * 2);
else if (i < 16) new_adc_rx9_16 |= de->RX.at(i)->getADCMode() << (i-8);
}
if ((new_adc_rx1_4 != adc_rx1_4) || (new_adc_rx5_8 != adc_rx5_8) || (new_adc_rx9_16 != adc_rx9_16))
m_sendState = 4;
else
m_sendState = 0;
break;
case 4:
// setup data for ADC c&c's
adc_rx1_4 = new_adc_rx1_4;
adc_rx5_8 = new_adc_rx5_8;
adc_rx9_16 = new_adc_rx9_16;
de->io.control_out[0] = 0x1C; // 0 0 0 1 1 1 0 x
de->io.control_out[1] = adc_rx1_4; // C1
de->io.control_out[2] = adc_rx5_8; // C2
de->io.control_out[3] = 0x0; // C3, ADC Input Attenuator Tx (0-31dB) [4:0]
de->io.control_out[4] = adc_rx9_16; // C4
// fill the out buffer with the C&C bytes
for (int i = 0; i < 5; i++)
de->io.output_buffer[i+3] = de->io.control_out[i];
//DATA_PROCESSOR_DEBUG << "rx_adc_change rcvr: " << hex << new_adc_rx1_4 << "," << hex << new_adc_rx5_8 << "," << hex << new_adc_rx9_16;
// round finished
m_sendState = 0;
break;
}
de->io.mutex.unlock();

View File

@ -119,6 +119,12 @@ void Receiver::setupConnections() {
this,
SLOT(setHamBand(QObject *, int, bool, HamBand)));
CHECKED_CONNECT(
set,
SIGNAL(adcModeChanged(QObject *, int, ADCMode)),
this,
SLOT(setADCMode(QObject *, int, ADCMode)));
CHECKED_CONNECT(
set,
SIGNAL(agcModeChanged(QObject *, int, AGCMode, bool)),
@ -220,6 +226,7 @@ void Receiver::setReceiverData(TReceiver data) {
m_hamBand = m_receiverData.hamBand;
m_dspMode = m_receiverData.dspMode;
m_dspModeList = m_receiverData.dspModeList;
m_adcMode = m_receiverData.adcMode;
m_agcMode = m_receiverData.agcMode;
m_agcGain = m_receiverData.acgGain;
m_agcFixedGain_dB = m_receiverData.agcFixedGain_dB;
@ -478,6 +485,18 @@ void Receiver::setDspMode(QObject *sender, int rx, DSPMode mode) {
//emit messageEvent(msg.arg(rx).arg(set->getDSPModeString(m_dspMode)));
}
void Receiver::setADCMode(QObject *sender, int rx, ADCMode mode) {
Q_UNUSED(sender)
if (m_receiver != rx) return;
if (m_adcMode == mode) return;
m_adcMode = mode;
//RECEIVER_DEBUG << "RRK setADCMode = " << m_adcMode;
}
void Receiver::setAGCMode(QObject *sender, int rx, AGCMode mode, bool hang) {
Q_UNUSED(sender)

View File

@ -62,6 +62,7 @@ public:
QSDR::_DSPCore getDSPCoreMode() const;
QHostAddress getPeerAddress() { return m_peerAddress; }
HamBand getHamBand() { return m_hamBand; }
ADCMode getADCMode() { return m_adcMode; }
AGCMode getAGCMode() { return m_agcMode; }
QList<int> getMercuryAttenuators() { return m_mercuryAttenuators; }
QList<DSPMode> getDSPModeList() { return m_dspModeList; }
@ -116,6 +117,7 @@ public slots:
void setSampleRate(int value);
void setHamBand(QObject* sender, int rx, bool byBtn, HamBand band);
void setDspMode(QObject* sender, int rx, DSPMode mode);
void setADCMode(QObject* sender, int rx, ADCMode mode);
void setAGCMode(QObject* sender, int rx, AGCMode mode, bool hang);
void setAGCGain(QObject* sender, int rx, int value);
void setAudioVolume(QObject* sender, int rx, float value);
@ -171,6 +173,7 @@ private:
HamBand m_hamBand;
DSPMode m_dspMode;
AGCMode m_agcMode;
ADCMode m_adcMode;
TDefaultFilterMode m_filterMode;
QList<long> m_lastCtrFrequencyList;

View File

@ -163,6 +163,9 @@ QGLReceiverPanel::QGLReceiverPanel(QWidget *parent, int rx)
m_mouseWheelFreqStep = m_rxDataList.at(m_receiver).mouseWheelFreqStep;
m_adcMode = m_rxDataList.at(m_receiver).adcMode;
m_adcModeString = set->getADCModeString(m_receiver);
m_agcMode = m_rxDataList.at(m_receiver).agcMode;
m_agcModeString = set->getAGCModeString(m_receiver);
m_agcFixedGain = m_rxDataList.at(m_receiver).agcFixedGain_dB;
@ -545,6 +548,12 @@ void QGLReceiverPanel::setupConnections() {
this,
SLOT(setAGCLinesStatus(QObject *, bool, int)));
CHECKED_CONNECT(
set,
SIGNAL(adcModeChanged(QObject *, int, ADCMode)),
this,
SLOT(setADCMode(QObject *, int, ADCMode)));
CHECKED_CONNECT(
set,
SIGNAL(dspModeChanged(QObject *, int, DSPMode)),
@ -1976,6 +1985,7 @@ void QGLReceiverPanel::drawReceiverInfo() {
int alpha;
QColor colFlt;
QColor colADC;
QColor colAGC;
QColor colDSP;
QRect rect;
@ -1986,6 +1996,7 @@ void QGLReceiverPanel::drawReceiverInfo() {
colDSP = QColor(1, 190, 180, 180);
colFlt = QColor(200, 190, 50, 180);
colADC = QColor(215, 130, 50, 180);
if (m_showAGCLines)
colAGC = QColor(255, 170, 90, 180);
else
@ -1999,12 +2010,14 @@ void QGLReceiverPanel::drawReceiverInfo() {
colFlt = QColor(110, 100, 1, 180);
colDSP = QColor(1, 100, 90, 180);
colAGC = QColor(165, 80, 1);
colADC = QColor(165, 80, 1);
}
}
else {
alpha = 100;
colFlt = m_darkColor;
colADC = m_darkColor;
colAGC = m_darkColor;
colDSP = m_darkColor;
}
@ -2044,6 +2057,17 @@ void QGLReceiverPanel::drawReceiverInfo() {
qglColor(QColor(0, 0, 0));
m_oglTextSmall->renderText(x1+1, y1-2, 3.0f, str);
// ADC mode
x1 += m_fonts.smallFontMetrics->width(str) + 4;
str = "%1";
str = str.arg(m_adcModeString);
rect = QRect(x1, y1, m_fonts.smallFontMetrics->width(str) + 4, m_fonts.fontHeightSmallFont + 2);
drawGLRect(rect, colADC, 2.0f);
qglColor(QColor(0, 0, 0));
m_oglTextSmall->renderText(x1+1, y1-2, 3.0f, str);
// VFO frequency
TFrequency f;
f.freqMHz = (int)(m_vfoFrequency / 1000);
@ -4474,6 +4498,18 @@ void QGLReceiverPanel::setAGCLineFixedLevel(QObject *sender, int rx, qreal value
//GRAPHICS_DEBUG << "m_agcFixedGain = " << m_agcFixedGain;
}
void QGLReceiverPanel::setADCMode(QObject *sender, int rx, ADCMode mode) {
Q_UNUSED(sender)
if (m_receiver != rx) return;
m_adcMode = mode;
m_adcModeString = set->getADCModeString(m_receiver);
update();
}
void QGLReceiverPanel::setAGCMode(QObject *sender, int rx, AGCMode mode, bool hangEnabled) {
Q_UNUSED(sender)

View File

@ -91,6 +91,7 @@ private:
DualModeAverager* averager;
RadioPopupWidget* radioPopup;
ADCMode m_adcMode;
AGCMode m_agcMode;
DSPMode m_dspMode;
PanGraphicsMode m_panMode;
@ -102,6 +103,7 @@ private:
QTime peakHoldTimer;
QString m_bandText;
QString m_adcModeString;
QString m_agcModeString;
QString m_dspModeString;
QString m_filterWidthString;
@ -416,6 +418,7 @@ private slots:
void updateADCStatus();
void setFramesPerSecond(QObject* sender, int rx, int value);
void setDSPMode(QObject* sender, int rx, DSPMode mode);
void setADCMode(QObject* sender, int rx, ADCMode mode);
void setAGCMode(QObject* sender, int rx, AGCMode mode, bool hangEnabled);
void setAGCLineLevels(QObject* sender, int rx, qreal thresh, qreal hang);
void setAGCLineFixedLevel(QObject* sender, int rx, qreal value);

View File

@ -22,4 +22,4 @@
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
*/

View File

@ -85,6 +85,13 @@ typedef enum _dspMode {
} DSPMode;
typedef enum _adcMode {
adc1,
adc2
} ADCMode;
typedef enum _agcMode {
agcOFF,
@ -115,6 +122,7 @@ typedef enum _defaultFilterMode {
Q_DECLARE_METATYPE (HamBand)
Q_DECLARE_METATYPE (DSPMode)
Q_DECLARE_METATYPE (ADCMode)
Q_DECLARE_METATYPE (AGCMode)
Q_DECLARE_METATYPE (TDefaultFilterMode)

View File

@ -275,6 +275,12 @@ void MainWindow::setupConnections() {
this,
SLOT(setTxAllowed(QObject *, bool)));
CHECKED_CONNECT(
set,
SIGNAL(adcModeChanged(QObject *, int, ADCMode)),
this,
SLOT(setADCMode(QObject *, int, ADCMode)));
CHECKED_CONNECT(
set,
SIGNAL(agcModeChanged(QObject *, int, AGCMode, bool)),
@ -414,6 +420,7 @@ void MainWindow::setup() {
setAttenuatorButton();
m_agcMode = set->getAGCMode(0);
m_adcMode = set->getADCMode(0);
// initialize all Signal/Slot connections
setupConnections();
@ -1784,6 +1791,14 @@ void MainWindow::setTxAllowed(QObject *sender, bool value) {
}
}
void MainWindow::setADCMode(QObject *sender, int rx, ADCMode mode) {
Q_UNUSED(sender)
Q_UNUSED(rx)
m_adcMode = mode;
}
void MainWindow::setAGCMode(QObject *sender, int rx, AGCMode mode, bool hang) {
Q_UNUSED(sender)

View File

@ -200,6 +200,7 @@ private:
QSlider* m_volumeSlider;
QSlider* m_agcGainSlider;
ADCMode m_adcMode;
AGCMode m_agcMode;
DataEngine* m_dataEngine;
@ -318,6 +319,7 @@ private slots:
void getNetworkInterfaces();
void setMainVolume(int value);
//void setHamBand(QObject *sender, int rx, bool byButton, HamBand band);
void setADCMode(QObject *sender, int rx, ADCMode mode);
void setAGCMode(QObject *sender, int rx, AGCMode mode, bool hang);
void setAGCGain(int value);
//void setAGCGain(QObject *sender, int rx, int value);

View File

@ -84,6 +84,7 @@ RadioPopupWidget::RadioPopupWidget(QWidget *parent, int rx)
m_hamBand = m_receiverDataList.at(m_receiver).hamBand;
//m_dspMode = m_receiverDataList.at(m_receiver).dspMode;
m_dspModeList = m_receiverDataList.at(m_receiver).dspModeList;
m_adcMode = m_receiverDataList.at(m_receiver).adcMode;
m_agcMode = m_receiverDataList.at(m_receiver).agcMode;
m_filterMode = m_receiverDataList.at(m_receiver).defaultFilterMode;
m_filterLo = m_receiverDataList.at(m_receiver).filterLo;
@ -119,6 +120,7 @@ RadioPopupWidget::RadioPopupWidget(QWidget *parent, int rx)
createOptionsBtnGroup();
createFFTOptionsGroup();
createBandBtnGroup();
createAdcBtnGroup();
createModeBtnGroup();
createAgcBtnGroup();
createFilterBtnWidgetA();
@ -156,6 +158,8 @@ RadioPopupWidget::RadioPopupWidget(QWidget *parent, int rx)
mainLayout->addSpacing(16);
mainLayout->addLayout(bandVBox);
mainLayout->addSpacing(8);
mainLayout->addLayout(adcVBox);
mainLayout->addSpacing(8);
mainLayout->addLayout(modeVBox);
mainLayout->addSpacing(8);
mainLayout->addWidget(m_filterStackedWidget);
@ -170,6 +174,7 @@ RadioPopupWidget::RadioPopupWidget(QWidget *parent, int rx)
bandBtnList.at(m_hamBand)->update();
dspModeChanged(this, 0, m_dspModeList.at(m_hamBand));
adcModeChanged(this, m_receiver, m_adcMode);
agcModeChanged(this, 0, m_agcMode, false);
filterChanged(this, 0, m_filterLo, m_filterHi);
@ -268,6 +273,12 @@ void RadioPopupWidget::setupConnections() {
this,
SLOT(dspModeChanged(QObject *, int, DSPMode)));
CHECKED_CONNECT(
set,
SIGNAL(adcModeChanged(QObject *, int, ADCMode)),
this,
SLOT(adcModeChanged(QObject *, int, ADCMode)));
CHECKED_CONNECT(
set,
SIGNAL(agcModeChanged(QObject *, int, AGCMode, bool)),
@ -739,6 +750,34 @@ void RadioPopupWidget::createBandBtnGroup() {
}
void RadioPopupWidget::createAdcBtnGroup() {
adc1Btn = new AeroButton("ADC1", this);
adcModeBtnList.append(adc1Btn);
CHECKED_CONNECT(adc1Btn, SIGNAL(clicked()), this, SLOT(adcModeChangedByBtn()));
adc2Btn = new AeroButton("ADC2", this);
adcModeBtnList.append(adc2Btn);
CHECKED_CONNECT(adc2Btn, SIGNAL(clicked()), this, SLOT(adcModeChangedByBtn()));
foreach (AeroButton *btn, adcModeBtnList) {
btn->setRoundness(0);
btn->setFixedHeight(btn_height);
btn->setStyleSheet(set->getMiniButtonStyle());
btn->update();
}
QHBoxLayout *hbox1 = new QHBoxLayout();
hbox1->setContentsMargins(0, 0, 0, 0);
hbox1->setSpacing(0);
hbox1->addWidget(adc1Btn);
hbox1->addWidget(adc2Btn);
adcVBox = new QVBoxLayout;
adcVBox->setSpacing(1);
adcVBox->addLayout(hbox1);
}
void RadioPopupWidget::createModeBtnGroup() {
lsbBtn = new AeroButton("LSB", this);
@ -2249,6 +2288,41 @@ void RadioPopupWidget::filterChanged(QObject *sender, int rx, qreal low, qreal h
}
}
void RadioPopupWidget::adcModeChangedByBtn() {
AeroButton *button = qobject_cast<AeroButton *>(sender());
int btn = adcModeBtnList.indexOf(button);
foreach(AeroButton *btn, adcModeBtnList) {
btn->setBtnState(AeroButton::OFF);
btn->update();
}
set->setADCMode(this, m_receiver, (ADCMode) btn);
m_adcMode = (ADCMode) btn;
button->setBtnState(AeroButton::ON);
button->update();
}
void RadioPopupWidget::adcModeChanged(QObject *sender, int rx, ADCMode mode) {
Q_UNUSED(sender)
//RADIOPOPUP_DEBUG << "RadioPopupWidget::adcModeChanged rx: " << rx;
if (m_receiver != rx) return;
m_adcMode = mode;
foreach(AeroButton *btn, adcModeBtnList) {
btn->setBtnState(AeroButton::OFF);
btn->update();
}
adcModeBtnList.at(mode)->setBtnState(AeroButton::ON);
adcModeBtnList.at(mode)->update();
}
void RadioPopupWidget::agcModeChangedByBtn() {
AeroButton *button = qobject_cast<AeroButton *>(sender());

View File

@ -95,6 +95,7 @@ private:
QVBoxLayout* optionsVBox;
QVBoxLayout* fftOptionsVBox;
QVBoxLayout* bandVBox;
QVBoxLayout* adcVBox;
QVBoxLayout* modeVBox;
QVBoxLayout* agcVBox;
//QVBoxLayout* mercuryBtnVBox();
@ -181,6 +182,11 @@ private:
QList<AeroButton *> dspModeBtnList;
AeroButton* adc1Btn;
AeroButton* adc2Btn;
QList<AeroButton *> adcModeBtnList;
AeroButton* showAGCLines;
AeroButton* agcOFF;
AeroButton* agcLONG;
@ -240,6 +246,7 @@ private:
HamBand m_hamBand;
//DSPMode m_dspMode;
ADCMode m_adcMode;
AGCMode m_agcMode;
TDefaultFilterMode m_filterMode;
@ -288,6 +295,7 @@ private slots:
void createOptionsBtnGroup();
void createFFTOptionsGroup();
void createBandBtnGroup();
void createAdcBtnGroup();
void createModeBtnGroup();
void createAgcBtnGroup();
void createFilterBtnWidgetA();
@ -314,6 +322,8 @@ private slots:
void bandChanged(QObject *sender, int rx, bool byButton, HamBand band);
void dspModeChangedByBtn();
void dspModeChanged(QObject *sender, int rx, DSPMode mode);
void adcModeChangedByBtn();
void adcModeChanged(QObject *sender, int rx, ADCMode mode);
void agcModeChangedByBtn();
void agcModeChanged(QObject *sender, int rx, AGCMode mode, bool hang);
void agcShowLinesChanged();

View File

@ -112,6 +112,10 @@ private:
AeroButton *samBtn;
AeroButton *drmBtn;
QList<AeroButton *> adcModeBtnList;
AeroButton *adc1Btn;
AeroButton *adc2Btn;
AeroButton *filter1kBtnA;
AeroButton *filter1k8BtnA;
AeroButton *filter2k1BtnA;
@ -162,6 +166,7 @@ private:
QList<DSPMode> m_dspModeList;
HamBand m_hamBand;
//DSPMode m_dspMode;
ADCMode m_adcMode;
AGCMode m_agcMode;
TDefaultFilterMode m_filterMode;

View File

@ -58,6 +58,7 @@ Settings::Settings(QObject *parent)
qRegisterMetaType<QSDR::_HWInterfaceMode>();
qRegisterMetaType<HamBand>();
qRegisterMetaType<DSPMode>();
qRegisterMetaType<ADCMode>();
qRegisterMetaType<AGCMode>();
qRegisterMetaType<TDefaultFilterMode>();
qRegisterMetaType<TNetworkDevicecard>();
@ -813,6 +814,14 @@ int Settings::loadSettings() {
else
m_receiverDataList[i].hangEnabled = true;
cstr = m_rxStringList.at(i);
cstr.append("/adcMode");
str = settings->value(cstr, "ADC1").toString();
if (str == "ADC1")
m_receiverDataList[i].adcMode = adc1;
else
m_receiverDataList[i].adcMode = adc2;
cstr = m_rxStringList.at(i);
cstr.append("/panMode");
@ -1873,6 +1882,14 @@ int Settings::saveSettings() {
else if (m_receiverDataList[i].agcMode == agcFAST)
settings->setValue(str, "FAST");
str = m_rxStringList.at(i);
str.append("/adcMode");
if (m_receiverDataList[i].adcMode == adc1)
settings->setValue(str, "ADC1");
else if (m_receiverDataList[i].adcMode == adc2)
settings->setValue(str, "ADC2");
str = m_rxStringList.at(i);
str.append("/panMode");
@ -3627,6 +3644,23 @@ AGCMode Settings::getAGCMode(int rx) {
return m_receiverDataList.at(rx).agcMode;
}
ADCMode Settings::getADCMode(int rx) {
return m_receiverDataList.at(rx).adcMode;
}
QString Settings::getADCModeString(int rx) {
ADCMode mode = getADCMode(rx);
QString str;
if (mode == adc1)
str = "ADC1";
else
str = "ADC2";
return str;
}
QString Settings::getAGCModeString(int rx) {
AGCMode mode = getAGCMode(rx);
@ -3660,6 +3694,16 @@ QString Settings::getAGCModeString(int rx) {
return str;
}
void Settings::setADCMode(QObject *sender, int rx, ADCMode mode) {
QMutexLocker locker(&settingsMutex);
if (m_receiverDataList[rx].adcMode == mode) return;
m_receiverDataList[rx].adcMode = mode;
emit adcModeChanged(sender, rx, mode);
}
void Settings::setAGCMode(QObject *sender, int rx, AGCMode mode) {
QMutexLocker locker(&settingsMutex);

View File

@ -446,6 +446,7 @@ typedef struct _hpsdrParameter {
//int hpsdr_122_88MhzSource;
int mic_source;
int rxClass;
int rx_adc_change;
int rx_freq_change;
int tx_freq_change;
@ -506,6 +507,7 @@ typedef struct _receiver {
HamBand hamBand;
HamBand lastHamBand;
DSPMode dspMode;
ADCMode adcMode;
AGCMode agcMode;
TDefaultFilterMode defaultFilterMode;
PanGraphicsMode panMode;
@ -846,6 +848,7 @@ signals:
void hamBandChanged(QObject *sender, int rx, bool byButton, HamBand band);
void dspModeChanged(QObject *sender, int rx, DSPMode mode);
void adcModeChanged(QObject *sender, int rx, ADCMode mode);
void agcModeChanged(QObject *sender, int rx, AGCMode mode, bool hangEnabled);
void agcHangEnabledChanged(QObject *sender, int rx, bool hang);
void agcGainChanged(QObject *sender, int rx, int value);
@ -1077,7 +1080,9 @@ public:
qreal getMainVolume(int rx);
qreal getMouseWheelFreqStep(int rx);// { return m_mouseWheelFreqStep; }
ADCMode getADCMode(int rx);
AGCMode getAGCMode(int rx);
QString getADCModeString(int rx);
QString getAGCModeString(int rx);
int getAGCGain(int rx);
qreal getAGCMaximumGain_dB(int rx);
@ -1268,6 +1273,7 @@ public slots:
void setHamBand(QObject* sender, int rx, bool byButton, HamBand band);
void setDSPMode(QObject* sender, int rx, DSPMode mode);
void setADCMode(QObject* sender, int rx, ADCMode mode);
void setAGCMode(QObject* sender, int rx, AGCMode mode);
void setAGCGain(QObject* sender, int rx, int value);
void setAGCMaximumGain_dB(QObject *sender, int rx, qreal value);