<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-trx/+/22942">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add a (hidden) VTY parameter for Rx/Tx freq. shifting<br><br>Change-Id: I360e8ba91471757210c7f096c04928a6fbb91c61<br>Related: SYS#4454<br>---<br>M CommonLibs/config_defs.h<br>M CommonLibs/trx_vty.c<br>M Transceiver52M/Transceiver.cpp<br>M Transceiver52M/osmo-trx.cpp<br>4 files changed, 22 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/CommonLibs/config_defs.h b/CommonLibs/config_defs.h</span><br><span>index a9ed25e..17352c3 100644</span><br><span>--- a/CommonLibs/config_defs.h</span><br><span>+++ b/CommonLibs/config_defs.h</span><br><span>@@ -46,6 +46,7 @@</span><br><span> enum FillerType filler;</span><br><span> bool multi_arfcn;</span><br><span> double offset;</span><br><span style="color: hsl(120, 100%, 40%);">+ double freq_offset_khz;</span><br><span> double rssi_offset;</span><br><span> bool force_rssi_offset; /* Force value set in VTY? */</span><br><span> bool swap_channels;</span><br><span>diff --git a/CommonLibs/trx_vty.c b/CommonLibs/trx_vty.c</span><br><span>index 0bb83fe..d1da450 100644</span><br><span>--- a/CommonLibs/trx_vty.c</span><br><span>+++ b/CommonLibs/trx_vty.c</span><br><span>@@ -244,6 +244,19 @@</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_ATTR(cfg_freq_offset, cfg_freq_offset_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "freq-offset FLOAT",</span><br><span style="color: hsl(120, 100%, 40%);">+ "Apply an artificial offset to Rx/Tx carrier frequency\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "Frequency offset in kHz (e.g. -145300)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ CMD_ATTR_HIDDEN)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ struct trx_ctx *trx = trx_from_vty(vty);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ trx->cfg.freq_offset_khz = atof(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return CMD_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> DEFUN(cfg_rssi_offset, cfg_rssi_offset_cmd,</span><br><span> "rssi-offset FLOAT [relative]",</span><br><span> "Set the RSSI to dBm offset in dB (default=0)\n"</span><br><span>@@ -593,6 +606,8 @@</span><br><span> vty_out(vty, " multi-arfcn %s%s", trx->cfg.multi_arfcn ? "enable" : "disable", VTY_NEWLINE);</span><br><span> if (trx->cfg.offset != 0)</span><br><span> vty_out(vty, " offset %f%s", trx->cfg.offset, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (trx->cfg.freq_offset_khz != 0)</span><br><span style="color: hsl(120, 100%, 40%);">+ vty_out(vty, " freq-offset %f%s", trx->cfg.freq_offset_khz, VTY_NEWLINE);</span><br><span> if (!(trx->cfg.rssi_offset == 0 && !trx->cfg.force_rssi_offset))</span><br><span> vty_out(vty, " rssi-offset %f%s%s", trx->cfg.rssi_offset,</span><br><span> trx->cfg.force_rssi_offset ? " relative": "", VTY_NEWLINE);</span><br><span>@@ -758,6 +773,7 @@</span><br><span> install_element(TRX_NODE, &cfg_clock_ref_cmd);</span><br><span> install_element(TRX_NODE, &cfg_multi_arfcn_cmd);</span><br><span> install_element(TRX_NODE, &cfg_offset_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+ install_element(TRX_NODE, &cfg_freq_offset_cmd);</span><br><span> install_element(TRX_NODE, &cfg_rssi_offset_cmd);</span><br><span> install_element(TRX_NODE, &cfg_swap_channels_cmd);</span><br><span> install_element(TRX_NODE, &cfg_egprs_cmd);</span><br><span>diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp</span><br><span>index 0a1ba6f..91f06ec 100644</span><br><span>--- a/Transceiver52M/Transceiver.cpp</span><br><span>+++ b/Transceiver52M/Transceiver.cpp</span><br><span>@@ -954,7 +954,7 @@</span><br><span> // tune receiver</span><br><span> int freqKhz;</span><br><span> sscanf(params, "%d", &freqKhz);</span><br><span style="color: hsl(0, 100%, 40%);">- mRxFreq = freqKhz * 1e3;</span><br><span style="color: hsl(120, 100%, 40%);">+ mRxFreq = (freqKhz + cfg->freq_offset_khz) * 1e3;</span><br><span> if (!mRadioInterface->tuneRx(mRxFreq, chan)) {</span><br><span> LOGCHAN(chan, DTRXCTRL, FATAL) << "RX failed to tune";</span><br><span> sprintf(response,"RSP RXTUNE 1 %d",freqKhz);</span><br><span>@@ -965,7 +965,7 @@</span><br><span> // tune txmtr</span><br><span> int freqKhz;</span><br><span> sscanf(params, "%d", &freqKhz);</span><br><span style="color: hsl(0, 100%, 40%);">- mTxFreq = freqKhz * 1e3;</span><br><span style="color: hsl(120, 100%, 40%);">+ mTxFreq = (freqKhz + cfg->freq_offset_khz) * 1e3;</span><br><span> if (!mRadioInterface->tuneTx(mTxFreq, chan)) {</span><br><span> LOGCHAN(chan, DTRXCTRL, FATAL) << "TX failed to tune";</span><br><span> sprintf(response,"RSP TXTUNE 1 %d",freqKhz);</span><br><span>diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp</span><br><span>index 2d45932..b227863 100644</span><br><span>--- a/Transceiver52M/osmo-trx.cpp</span><br><span>+++ b/Transceiver52M/osmo-trx.cpp</span><br><span>@@ -542,7 +542,9 @@</span><br><span> ost << " Filler Burst TSC........ " << trx->cfg.rtsc << std::endl;</span><br><span> ost << " Filler Burst RACH Delay. " << trx->cfg.rach_delay << std::endl;</span><br><span> ost << " Multi-Carrier........... " << trx->cfg.multi_arfcn << std::endl;</span><br><span style="color: hsl(0, 100%, 40%);">- ost << " Tuning offset........... " << trx->cfg.offset << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+ ost << " LO freq. offset......... " << trx->cfg.offset << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+ if (trx->cfg.freq_offset_khz != 0)</span><br><span style="color: hsl(120, 100%, 40%);">+ ost << " Tune freq. offset....... " << trx->cfg.freq_offset_khz << std::endl;</span><br><span> ost << " RSSI to dBm offset...... " << trx->cfg.rssi_offset << (trx->cfg.force_rssi_offset ? "" : " (relative)") << std::endl;</span><br><span> ost << " Swap channels........... " << trx->cfg.swap_channels << std::endl;</span><br><span> ost << " Tx Antennas.............";</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-trx/+/22942">change 22942</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-trx/+/22942"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-trx </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I360e8ba91471757210c7f096c04928a6fbb91c61 </div>
<div style="display:none"> Gerrit-Change-Number: 22942 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-CC: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>