mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-06-15 04:52:33 -04:00
Compare commits
8 Commits
35088962fe
...
51b540cf72
Author | SHA1 | Date | |
---|---|---|---|
|
51b540cf72 | ||
|
70d090101a | ||
|
d3584f6af2 | ||
|
c5efd73f6b | ||
|
4510f40729 | ||
|
56bd20d59b | ||
|
a4269dcd78 | ||
|
9f661aee30 |
@ -5935,9 +5935,6 @@ void ADSBDemodGUI::applyImportSettings()
|
||||
void ADSBDemodGUI::import()
|
||||
{
|
||||
QString urlString = "https://";
|
||||
if (!m_settings.m_importUsername.isEmpty() && !m_settings.m_importPassword.isEmpty()) {
|
||||
urlString = urlString + m_settings.m_importUsername + ":" + m_settings.m_importPassword + "@";
|
||||
}
|
||||
urlString = urlString + m_settings.m_importHost + "/api/states/all";
|
||||
QChar join = '?';
|
||||
if (!m_settings.m_importParameters.isEmpty())
|
||||
@ -5965,7 +5962,13 @@ void ADSBDemodGUI::import()
|
||||
urlString = urlString + join + "lomax=" + m_settings.m_importMaxLongitude;
|
||||
join = '&';
|
||||
}
|
||||
m_networkManager->get(QNetworkRequest(QUrl(urlString)));
|
||||
QNetworkRequest request = QNetworkRequest(QUrl(urlString));
|
||||
if (!m_settings.m_importUsername.isEmpty() && !m_settings.m_importPassword.isEmpty())
|
||||
{
|
||||
QByteArray encoded = (m_settings.m_importUsername + ":" + m_settings.m_importPassword).toLocal8Bit().toBase64();
|
||||
request.setRawHeader("Authorization", "Basic " + encoded);
|
||||
}
|
||||
m_networkManager->get(request);
|
||||
}
|
||||
|
||||
// Handle opensky-network API call reply
|
||||
|
@ -133,7 +133,7 @@ As a server:
|
||||
The Beast binary and Hex formats are as detailed here: https://wiki.jetvision.de/wiki/Mode-S_Beast:Data_Output_Formats
|
||||
|
||||
When Enable import is checked, aircraft data for aircraft anywhere in the world can be imported from OpenSky Network.
|
||||
A username and password are not required, but when specified, this allows the update period to be reduced to 5 seconds instead of 10 seconds.
|
||||
A username and password are not required, but when specified, this allows the update period to be reduced to 5 seconds instead of 10 seconds, and 4000 API calls per day instead of 400.
|
||||
To limit network traffic and processing power requirements, a geographical region can be set via the minimum and maximum latitude and longitude fields.
|
||||
|
||||
<h3>17: Open Notifications Dialog</h3>
|
||||
|
@ -891,8 +891,11 @@ void RemoteTCPSinkSink::acceptWebConnection()
|
||||
// https://bugreports.qt.io/browse/QTBUG-125874
|
||||
QTimer::singleShot(200, this, [this, client] () {
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
if (client->isValid())
|
||||
{
|
||||
m_clients.append(new WebSocket(client));
|
||||
acceptConnection(m_clients.last());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -912,8 +915,11 @@ void RemoteTCPSinkSink::acceptTCPConnection()
|
||||
|
||||
QTimer::singleShot(200, this, [this, client] () {
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
if (client->isValid())
|
||||
{
|
||||
m_clients.append(new TCPSocket(client));
|
||||
acceptConnection(m_clients.last());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -123,3 +123,10 @@ This label turns green when data has been transmitted to the device.
|
||||
- **D**: turns red if stream experiences packet drop outs
|
||||
|
||||
The stream warning indicators are reset when the acquisition is started.
|
||||
|
||||
<h2>GPIOs</h2>
|
||||
|
||||
The USRP device settings supports 8-bit `gpioDir` and `gpioPins` settings. These can be set via the Web API or Simple PTT feature.
|
||||
`gpioDir` can be set to 0 for default ATR (automatic transmit/receive) functionality or 1 for GPIO output.
|
||||
On the b210, the GPIOs are on J504 header. Bit 0 corresponds to pin 1.
|
||||
On other USRP devices, that may have multiple GPIO banks, these settings correspond to bank `FP0` (Front panel).
|
||||
|
@ -813,6 +813,25 @@ bool USRPOutput::applySettings(const USRPOutputSettings& settings, const QList<Q
|
||||
}
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("gpioDir") || force)
|
||||
{
|
||||
if (m_deviceShared.m_deviceParams->getDevice())
|
||||
{
|
||||
m_deviceShared.m_deviceParams->getDevice()->set_gpio_attr("FP0", "CTRL", ~settings.m_gpioDir, 0xff); // 0 for GPIO, 1 for ATR
|
||||
m_deviceShared.m_deviceParams->getDevice()->set_gpio_attr("FP0", "DDR", settings.m_gpioDir, 0xff); // 0 for input, 1 for output
|
||||
qDebug() << "USRPOutput::applySettings: set GPIO dir to " << settings.m_gpioDir;
|
||||
}
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("gpioPins") || force)
|
||||
{
|
||||
if (m_deviceShared.m_deviceParams->getDevice())
|
||||
{
|
||||
m_deviceShared.m_deviceParams->getDevice()->set_gpio_attr("FP0", "OUT", settings.m_gpioPins, 0xff);
|
||||
qDebug() << "USRPOutput::applySettings: set GPIO pins to " << settings.m_gpioPins;
|
||||
}
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("useReverseAPI"))
|
||||
{
|
||||
bool fullUpdate = (settingsKeys.contains("useReverseAPI") && settings.m_useReverseAPI) ||
|
||||
@ -1036,6 +1055,12 @@ void USRPOutput::webapiUpdateDeviceSettings(
|
||||
if (deviceSettingsKeys.contains("transverterMode")) {
|
||||
settings.m_transverterMode = response.getUsrpOutputSettings()->getTransverterMode() != 0;
|
||||
}
|
||||
if (deviceSettingsKeys.contains("gpioDir")) {
|
||||
settings.m_gpioDir = response.getUsrpOutputSettings()->getGpioDir();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("gpioPins")) {
|
||||
settings.m_gpioPins = response.getUsrpOutputSettings()->getGpioPins();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("useReverseAPI")) {
|
||||
settings.m_useReverseAPI = response.getUsrpOutputSettings()->getUseReverseApi() != 0;
|
||||
}
|
||||
@ -1072,6 +1097,8 @@ void USRPOutput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& resp
|
||||
response.getUsrpOutputSettings()->setLpfBw(settings.m_lpfBW);
|
||||
response.getUsrpOutputSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency);
|
||||
response.getUsrpOutputSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0);
|
||||
response.getUsrpOutputSettings()->setGpioDir(settings.m_gpioDir);
|
||||
response.getUsrpOutputSettings()->setGpioPins(settings.m_gpioPins);
|
||||
response.getUsrpOutputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0);
|
||||
|
||||
if (response.getUsrpOutputSettings()->getReverseApiAddress()) {
|
||||
@ -1172,6 +1199,12 @@ void USRPOutput::webapiReverseSendSettings(const QList<QString>& deviceSettingsK
|
||||
if (deviceSettingsKeys.contains("transverterMode") || force) {
|
||||
swgUsrpOutputSettings->setTransverterMode(settings.m_transverterMode ? 1 : 0);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("gpioDir") || force) {
|
||||
swgUsrpOutputSettings->setGpioDir(settings.m_gpioDir);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("gpioPins") || force) {
|
||||
swgUsrpOutputSettings->setGpioPins(settings.m_gpioPins);
|
||||
}
|
||||
|
||||
QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings")
|
||||
.arg(settings.m_reverseAPIAddress)
|
||||
|
@ -40,6 +40,8 @@ void USRPOutputSettings::resetToDefaults()
|
||||
m_clockSource = "internal";
|
||||
m_transverterMode = false;
|
||||
m_transverterDeltaFrequency = 0;
|
||||
m_gpioDir = 0;
|
||||
m_gpioPins = 0;
|
||||
m_useReverseAPI = false;
|
||||
m_reverseAPIAddress = "127.0.0.1";
|
||||
m_reverseAPIPort = 8888;
|
||||
@ -63,6 +65,8 @@ QByteArray USRPOutputSettings::serialize() const
|
||||
s.writeU32(11, m_reverseAPIPort);
|
||||
s.writeU32(12, m_reverseAPIDeviceIndex);
|
||||
s.writeS32(13, m_loOffset);
|
||||
s.writeU32(14, m_gpioDir);
|
||||
s.writeU32(15, m_gpioPins);
|
||||
|
||||
return s.final();
|
||||
}
|
||||
@ -102,6 +106,10 @@ bool USRPOutputSettings::deserialize(const QByteArray& data)
|
||||
d.readU32(12, &uintval, 0);
|
||||
m_reverseAPIDeviceIndex = uintval > 99 ? 99 : uintval;
|
||||
d.readS32(13, &m_loOffset, 0);
|
||||
d.readU32(14, &uintval, 0);
|
||||
m_gpioDir = uintval & 0xFF;
|
||||
d.readU32(15, &uintval, 0);
|
||||
m_gpioPins = uintval & 0xFF;
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -148,6 +156,12 @@ void USRPOutputSettings::applySettings(const QStringList& settingsKeys, const US
|
||||
if (settingsKeys.contains("transverterDeltaFrequency")) {
|
||||
m_transverterDeltaFrequency = settings.m_transverterDeltaFrequency;
|
||||
}
|
||||
if (settingsKeys.contains("gpioDir")) {
|
||||
m_gpioDir = settings.m_gpioDir;
|
||||
}
|
||||
if (settingsKeys.contains("gpioPins")) {
|
||||
m_gpioPins = settings.m_gpioPins;
|
||||
}
|
||||
if (settingsKeys.contains("useReverseAPI")) {
|
||||
m_useReverseAPI = settings.m_useReverseAPI;
|
||||
}
|
||||
@ -199,6 +213,12 @@ QString USRPOutputSettings::getDebugString(const QStringList& settingsKeys, bool
|
||||
if (settingsKeys.contains("transverterDeltaFrequency") || force) {
|
||||
ostr << " m_transverterDeltaFrequency: " << m_transverterDeltaFrequency;
|
||||
}
|
||||
if (settingsKeys.contains("gpioDir") || force) {
|
||||
ostr << " m_gpioDir: " << (int) m_gpioDir;
|
||||
}
|
||||
if (settingsKeys.contains("gpioPins") || force) {
|
||||
ostr << " m_gpioPins: " << (int) m_gpioPins;
|
||||
}
|
||||
if (settingsKeys.contains("useReverseAPI") || force) {
|
||||
ostr << " m_useReverseAPI: " << m_useReverseAPI;
|
||||
}
|
||||
|
@ -45,6 +45,8 @@ struct USRPOutputSettings
|
||||
QString m_clockSource;
|
||||
bool m_transverterMode;
|
||||
qint64 m_transverterDeltaFrequency;
|
||||
uint8_t m_gpioDir; //!< GPIO pin direction; 0 ATR (automatic transmit/receive), 1 output
|
||||
uint8_t m_gpioPins; //!< GPIO pins levels for outputs
|
||||
bool m_useReverseAPI;
|
||||
QString m_reverseAPIAddress;
|
||||
uint16_t m_reverseAPIPort;
|
||||
|
@ -143,3 +143,10 @@ On Ubuntu 20, the libuhd-dev package should be installed. The FPGA images then n
|
||||
```shell
|
||||
sudo /usr/lib/uhd/utils/uhd_images_downloader.py
|
||||
```
|
||||
|
||||
<h2>GPIOs</h2>
|
||||
|
||||
The USRP device settings supports 8-bit `gpioDir` and `gpioPins` settings. These can be set via the Web API or Simple PTT feature.
|
||||
`gpioDir` can be set to 0 for default ATR (automatic transmit/receive) functionality or 1 for GPIO output.
|
||||
On the b210, the GPIOs are on J504 header. Bit 0 corresponds to pin 1.
|
||||
On other USRP devices, that may have multiple GPIO banks, these settings correspond to bank `FP0` (Front panel).
|
||||
|
@ -895,6 +895,25 @@ bool USRPInput::applySettings(const USRPInputSettings& settings, const QList<QSt
|
||||
}
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("gpioDir") || force)
|
||||
{
|
||||
if (m_deviceShared.m_deviceParams->getDevice())
|
||||
{
|
||||
m_deviceShared.m_deviceParams->getDevice()->set_gpio_attr("FP0", "CTRL", ~settings.m_gpioDir, 0xff); // 0 for GPIO, 1 for ATR
|
||||
m_deviceShared.m_deviceParams->getDevice()->set_gpio_attr("FP0", "DDR", settings.m_gpioDir, 0xff); // 0 for input, 1 for output
|
||||
qDebug() << "USRPInput::applySettings: set GPIO dir to " << settings.m_gpioDir;
|
||||
}
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("gpioPins") || force)
|
||||
{
|
||||
if (m_deviceShared.m_deviceParams->getDevice())
|
||||
{
|
||||
m_deviceShared.m_deviceParams->getDevice()->set_gpio_attr("FP0", "OUT", settings.m_gpioPins, 0xff);
|
||||
qDebug() << "USRPInput::applySettings: set GPIO pins to " << settings.m_gpioPins;
|
||||
}
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("useReverseAPI"))
|
||||
{
|
||||
bool fullUpdate = (settingsKeys.contains("useReverseAPI") && settings.m_useReverseAPI) ||
|
||||
@ -1162,6 +1181,12 @@ void USRPInput::webapiUpdateDeviceSettings(
|
||||
if (deviceSettingsKeys.contains("transverterMode")) {
|
||||
settings.m_transverterMode = response.getUsrpInputSettings()->getTransverterMode() != 0;
|
||||
}
|
||||
if (deviceSettingsKeys.contains("gpioDir")) {
|
||||
settings.m_gpioDir = response.getUsrpInputSettings()->getGpioDir();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("gpioPins")) {
|
||||
settings.m_gpioPins = response.getUsrpInputSettings()->getGpioPins();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("useReverseAPI")) {
|
||||
settings.m_useReverseAPI = response.getUsrpInputSettings()->getUseReverseApi() != 0;
|
||||
}
|
||||
@ -1191,6 +1216,8 @@ void USRPInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& respo
|
||||
response.getUsrpInputSettings()->setLpfBw(settings.m_lpfBW);
|
||||
response.getUsrpInputSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency);
|
||||
response.getUsrpInputSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0);
|
||||
response.getUsrpInputSettings()->setGpioDir(settings.m_gpioDir);
|
||||
response.getUsrpInputSettings()->setGpioPins(settings.m_gpioPins);
|
||||
response.getUsrpInputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0);
|
||||
|
||||
if (response.getUsrpInputSettings()->getReverseApiAddress()) {
|
||||
@ -1311,6 +1338,12 @@ void USRPInput::webapiReverseSendSettings(const QList<QString>& deviceSettingsKe
|
||||
if (deviceSettingsKeys.contains("transverterMode") || force) {
|
||||
swgUsrpInputSettings->setTransverterMode(settings.m_transverterMode ? 1 : 0);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("gpioDir") || force) {
|
||||
swgUsrpInputSettings->setGpioDir(settings.m_gpioDir);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("gpioPins") || force) {
|
||||
swgUsrpInputSettings->setGpioPins(settings.m_gpioPins);
|
||||
}
|
||||
|
||||
QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings")
|
||||
.arg(settings.m_reverseAPIAddress)
|
||||
|
@ -46,6 +46,8 @@ void USRPInputSettings::resetToDefaults()
|
||||
m_replayLength = 20.0f;
|
||||
m_replayStep = 5.0f;
|
||||
m_replayLoop = false;
|
||||
m_gpioDir = 0;
|
||||
m_gpioPins = 0;
|
||||
m_useReverseAPI = false;
|
||||
m_reverseAPIAddress = "127.0.0.1";
|
||||
m_reverseAPIPort = 8888;
|
||||
@ -76,6 +78,8 @@ QByteArray USRPInputSettings::serialize() const
|
||||
s.writeFloat(18, m_replayLength);
|
||||
s.writeFloat(19, m_replayStep);
|
||||
s.writeBool(20, m_replayLoop);
|
||||
s.writeU32(21, m_gpioDir);
|
||||
s.writeU32(22, m_gpioPins);
|
||||
|
||||
return s.final();
|
||||
}
|
||||
@ -124,6 +128,10 @@ bool USRPInputSettings::deserialize(const QByteArray& data)
|
||||
d.readFloat(18, &m_replayLength, 20.0f);
|
||||
d.readFloat(19, &m_replayStep, 5.0f);
|
||||
d.readBool(20, &m_replayLoop, false);
|
||||
d.readU32(21, &uintval, 0);
|
||||
m_gpioDir = uintval & 0xFF;
|
||||
d.readU32(22, &uintval, 0);
|
||||
m_gpioPins = uintval & 0xFF;
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -191,6 +199,12 @@ void USRPInputSettings::applySettings(const QStringList& settingsKeys, const USR
|
||||
if (settingsKeys.contains("replayLoop")) {
|
||||
m_replayLoop = settings.m_replayLoop;
|
||||
}
|
||||
if (settingsKeys.contains("gpioDir")) {
|
||||
m_gpioDir = settings.m_gpioDir;
|
||||
}
|
||||
if (settingsKeys.contains("gpioPins")) {
|
||||
m_gpioPins = settings.m_gpioPins;
|
||||
}
|
||||
if (settingsKeys.contains("useReverseAPI")) {
|
||||
m_useReverseAPI = settings.m_useReverseAPI;
|
||||
}
|
||||
@ -263,6 +277,12 @@ QString USRPInputSettings::getDebugString(const QStringList& settingsKeys, bool
|
||||
if (settingsKeys.contains("replayLoop") || force) {
|
||||
ostr << " m_replayLoop: " << m_replayLoop;
|
||||
}
|
||||
if (settingsKeys.contains("gpioDir") || force) {
|
||||
ostr << " m_gpioDir: " << (int) m_gpioDir;
|
||||
}
|
||||
if (settingsKeys.contains("gpioPins") || force) {
|
||||
ostr << " m_gpioPins: " << (int) m_gpioPins;
|
||||
}
|
||||
if (settingsKeys.contains("useReverseAPI") || force) {
|
||||
ostr << " m_useReverseAPI: " << m_useReverseAPI;
|
||||
}
|
||||
|
@ -56,6 +56,8 @@ struct USRPInputSettings
|
||||
float m_replayLength; //!< Replay buffer size in seconds
|
||||
float m_replayStep; //!< Replay forward/back step size in seconds
|
||||
bool m_replayLoop; //!< Replay buffer repeatedly without recording new data
|
||||
uint8_t m_gpioDir; //!< GPIO pin direction; 0 ATR (automatic transmit/receive), 1 output
|
||||
uint8_t m_gpioPins; //!< GPIO pins levels for outputs
|
||||
bool m_useReverseAPI;
|
||||
QString m_reverseAPIAddress;
|
||||
uint16_t m_reverseAPIPort;
|
||||
|
@ -1319,9 +1319,15 @@ bool ChannelWebAPIUtils::patchDeviceSetting(unsigned int deviceIndex, const QStr
|
||||
SWGSDRangel::SWGErrorResponse errorResponse2;
|
||||
delete jsonObj;
|
||||
|
||||
DeviceSampleSource *source = deviceSet->m_deviceAPI->getSampleSource();
|
||||
|
||||
if (DeviceSampleSource *source = deviceSet->m_deviceAPI->getSampleSource()) {
|
||||
httpRC = source->webapiSettingsPutPatch(false, deviceSettingsKeys, deviceSettingsResponse, *errorResponse2.getMessage());
|
||||
} else if (DeviceSampleSink *sink = deviceSet->m_deviceAPI->getSampleSink()) {
|
||||
httpRC = sink->webapiSettingsPutPatch(false, deviceSettingsKeys, deviceSettingsResponse, *errorResponse2.getMessage());
|
||||
} else if (DeviceSampleMIMO *mimo = deviceSet->m_deviceAPI->getSampleMIMO()) {
|
||||
httpRC = mimo->webapiSettingsPutPatch(false, deviceSettingsKeys, deviceSettingsResponse, *errorResponse2.getMessage());
|
||||
} else {
|
||||
httpRC = 404;
|
||||
}
|
||||
|
||||
if (httpRC/100 == 2)
|
||||
{
|
||||
|
@ -13451,6 +13451,18 @@ margin-bottom: 20px;
|
||||
"properties" : {
|
||||
"sampleRate" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"latitude" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"longitude" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"altitude" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
}
|
||||
},
|
||||
"description" : "RemoteTCPInput"
|
||||
@ -16824,6 +16836,14 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"gpioDir" : {
|
||||
"type" : "integer",
|
||||
"format" : "int8"
|
||||
},
|
||||
"gpioPins" : {
|
||||
"type" : "integer",
|
||||
"format" : "int8"
|
||||
},
|
||||
"useReverseAPI" : {
|
||||
"type" : "integer",
|
||||
"description" : "Synchronize with reverse API (1 for yes, 0 for no)"
|
||||
@ -16893,6 +16913,14 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"gpioDir" : {
|
||||
"type" : "integer",
|
||||
"format" : "int8"
|
||||
},
|
||||
"gpioPins" : {
|
||||
"type" : "integer",
|
||||
"format" : "int8"
|
||||
},
|
||||
"useReverseAPI" : {
|
||||
"type" : "integer",
|
||||
"description" : "Synchronize with reverse API (1 for yes, 0 for no)"
|
||||
@ -59441,7 +59469,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2024-07-16T23:20:27.082+02:00
|
||||
Generated 2024-12-24T11:56:24.260+01:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -61,3 +61,12 @@ RemoteTCPInputReport:
|
||||
properties:
|
||||
sampleRate:
|
||||
type: integer
|
||||
latitude:
|
||||
type: number
|
||||
format: float
|
||||
longitude:
|
||||
type: number
|
||||
format: float
|
||||
altitude:
|
||||
type: number
|
||||
format: float
|
||||
|
@ -30,6 +30,12 @@ USRPInputSettings:
|
||||
transverterDeltaFrequency:
|
||||
type: integer
|
||||
format: int64
|
||||
gpioDir:
|
||||
type: integer
|
||||
format: int8
|
||||
gpioPins:
|
||||
type: integer
|
||||
format: int8
|
||||
useReverseAPI:
|
||||
description: Synchronize with reverse API (1 for yes, 0 for no)
|
||||
type: integer
|
||||
@ -65,6 +71,12 @@ USRPOutputSettings:
|
||||
transverterDeltaFrequency:
|
||||
type: integer
|
||||
format: int64
|
||||
gpioDir:
|
||||
type: integer
|
||||
format: int8
|
||||
gpioPins:
|
||||
type: integer
|
||||
format: int8
|
||||
useReverseAPI:
|
||||
description: Synchronize with reverse API (1 for yes, 0 for no)
|
||||
type: integer
|
||||
|
@ -30,6 +30,12 @@ USRPInputSettings:
|
||||
transverterDeltaFrequency:
|
||||
type: integer
|
||||
format: int64
|
||||
gpioDir:
|
||||
type: integer
|
||||
format: int8
|
||||
gpioPins:
|
||||
type: integer
|
||||
format: int8
|
||||
useReverseAPI:
|
||||
description: Synchronize with reverse API (1 for yes, 0 for no)
|
||||
type: integer
|
||||
@ -65,6 +71,12 @@ USRPOutputSettings:
|
||||
transverterDeltaFrequency:
|
||||
type: integer
|
||||
format: int64
|
||||
gpioDir:
|
||||
type: integer
|
||||
format: int8
|
||||
gpioPins:
|
||||
type: integer
|
||||
format: int8
|
||||
useReverseAPI:
|
||||
description: Synchronize with reverse API (1 for yes, 0 for no)
|
||||
type: integer
|
||||
|
@ -13451,6 +13451,18 @@ margin-bottom: 20px;
|
||||
"properties" : {
|
||||
"sampleRate" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"latitude" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"longitude" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"altitude" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
}
|
||||
},
|
||||
"description" : "RemoteTCPInput"
|
||||
@ -16824,6 +16836,14 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"gpioDir" : {
|
||||
"type" : "integer",
|
||||
"format" : "int8"
|
||||
},
|
||||
"gpioPins" : {
|
||||
"type" : "integer",
|
||||
"format" : "int8"
|
||||
},
|
||||
"useReverseAPI" : {
|
||||
"type" : "integer",
|
||||
"description" : "Synchronize with reverse API (1 for yes, 0 for no)"
|
||||
@ -16893,6 +16913,14 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"gpioDir" : {
|
||||
"type" : "integer",
|
||||
"format" : "int8"
|
||||
},
|
||||
"gpioPins" : {
|
||||
"type" : "integer",
|
||||
"format" : "int8"
|
||||
},
|
||||
"useReverseAPI" : {
|
||||
"type" : "integer",
|
||||
"description" : "Synchronize with reverse API (1 for yes, 0 for no)"
|
||||
@ -59441,7 +59469,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2024-07-16T23:20:27.082+02:00
|
||||
Generated 2024-12-24T11:56:24.260+01:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -30,6 +30,12 @@ SWGRemoteTCPInputReport::SWGRemoteTCPInputReport(QString* json) {
|
||||
SWGRemoteTCPInputReport::SWGRemoteTCPInputReport() {
|
||||
sample_rate = 0;
|
||||
m_sample_rate_isSet = false;
|
||||
latitude = 0.0f;
|
||||
m_latitude_isSet = false;
|
||||
longitude = 0.0f;
|
||||
m_longitude_isSet = false;
|
||||
altitude = 0.0f;
|
||||
m_altitude_isSet = false;
|
||||
}
|
||||
|
||||
SWGRemoteTCPInputReport::~SWGRemoteTCPInputReport() {
|
||||
@ -40,11 +46,20 @@ void
|
||||
SWGRemoteTCPInputReport::init() {
|
||||
sample_rate = 0;
|
||||
m_sample_rate_isSet = false;
|
||||
latitude = 0.0f;
|
||||
m_latitude_isSet = false;
|
||||
longitude = 0.0f;
|
||||
m_longitude_isSet = false;
|
||||
altitude = 0.0f;
|
||||
m_altitude_isSet = false;
|
||||
}
|
||||
|
||||
void
|
||||
SWGRemoteTCPInputReport::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
SWGRemoteTCPInputReport*
|
||||
@ -60,6 +75,12 @@ void
|
||||
SWGRemoteTCPInputReport::fromJsonObject(QJsonObject &pJson) {
|
||||
::SWGSDRangel::setValue(&sample_rate, pJson["sampleRate"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&latitude, pJson["latitude"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&longitude, pJson["longitude"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&altitude, pJson["altitude"], "float", "");
|
||||
|
||||
}
|
||||
|
||||
QString
|
||||
@ -79,9 +100,15 @@ SWGRemoteTCPInputReport::asJsonObject() {
|
||||
if(m_sample_rate_isSet){
|
||||
obj->insert("sampleRate", QJsonValue(sample_rate));
|
||||
}
|
||||
if(m_latitude_isSet){
|
||||
obj->insert("latitude", QJsonValue(latitude));
|
||||
}
|
||||
if(m_longitude_isSet){
|
||||
obj->insert("longitude", QJsonValue(longitude));
|
||||
}
|
||||
if(m_altitude_isSet){
|
||||
obj->insert("altitude", QJsonValue(altitude));
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
@ -96,6 +123,36 @@ SWGRemoteTCPInputReport::setSampleRate(qint32 sample_rate) {
|
||||
this->m_sample_rate_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGRemoteTCPInputReport::getLatitude() {
|
||||
return latitude;
|
||||
}
|
||||
void
|
||||
SWGRemoteTCPInputReport::setLatitude(float latitude) {
|
||||
this->latitude = latitude;
|
||||
this->m_latitude_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGRemoteTCPInputReport::getLongitude() {
|
||||
return longitude;
|
||||
}
|
||||
void
|
||||
SWGRemoteTCPInputReport::setLongitude(float longitude) {
|
||||
this->longitude = longitude;
|
||||
this->m_longitude_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGRemoteTCPInputReport::getAltitude() {
|
||||
return altitude;
|
||||
}
|
||||
void
|
||||
SWGRemoteTCPInputReport::setAltitude(float altitude) {
|
||||
this->altitude = altitude;
|
||||
this->m_altitude_isSet = true;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
SWGRemoteTCPInputReport::isSet(){
|
||||
@ -104,6 +161,15 @@ SWGRemoteTCPInputReport::isSet(){
|
||||
if(m_sample_rate_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_latitude_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_longitude_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_altitude_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
}while(false);
|
||||
return isObjectUpdated;
|
||||
}
|
||||
|
@ -43,21 +43,31 @@ public:
|
||||
|
||||
qint32 getSampleRate();
|
||||
void setSampleRate(qint32 sample_rate);
|
||||
float getLatitude() { return latitude; }
|
||||
float getLongitude() { return longitude; }
|
||||
float getAltitude() { return altitude; }
|
||||
void setLatitude(float latitude) { this->latitude = latitude; }
|
||||
void setLongitude(float longitude) { this->longitude = longitude; }
|
||||
void setAltitude(float altitude) { this->altitude = altitude; }
|
||||
|
||||
float getLatitude();
|
||||
void setLatitude(float latitude);
|
||||
|
||||
float getLongitude();
|
||||
void setLongitude(float longitude);
|
||||
|
||||
float getAltitude();
|
||||
void setAltitude(float altitude);
|
||||
|
||||
|
||||
virtual bool isSet() override;
|
||||
|
||||
private:
|
||||
qint32 sample_rate;
|
||||
bool m_sample_rate_isSet;
|
||||
|
||||
float latitude;
|
||||
bool m_latitude_isSet;
|
||||
|
||||
float longitude;
|
||||
bool m_longitude_isSet;
|
||||
|
||||
float altitude;
|
||||
bool m_altitude_isSet;
|
||||
|
||||
};
|
||||
|
||||
|
@ -54,6 +54,10 @@ SWGUSRPInputSettings::SWGUSRPInputSettings() {
|
||||
m_transverter_mode_isSet = false;
|
||||
transverter_delta_frequency = 0L;
|
||||
m_transverter_delta_frequency_isSet = false;
|
||||
gpio_dir = 0;
|
||||
m_gpio_dir_isSet = false;
|
||||
gpio_pins = 0;
|
||||
m_gpio_pins_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
m_use_reverse_api_isSet = false;
|
||||
reverse_api_address = nullptr;
|
||||
@ -96,6 +100,10 @@ SWGUSRPInputSettings::init() {
|
||||
m_transverter_mode_isSet = false;
|
||||
transverter_delta_frequency = 0L;
|
||||
m_transverter_delta_frequency_isSet = false;
|
||||
gpio_dir = 0;
|
||||
m_gpio_dir_isSet = false;
|
||||
gpio_pins = 0;
|
||||
m_gpio_pins_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
m_use_reverse_api_isSet = false;
|
||||
reverse_api_address = new QString("");
|
||||
@ -126,6 +134,8 @@ SWGUSRPInputSettings::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(reverse_api_address != nullptr) {
|
||||
delete reverse_api_address;
|
||||
}
|
||||
@ -170,6 +180,10 @@ SWGUSRPInputSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&transverter_delta_frequency, pJson["transverterDeltaFrequency"], "qint64", "");
|
||||
|
||||
::SWGSDRangel::setValue(&gpio_dir, pJson["gpioDir"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&gpio_pins, pJson["gpioPins"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString");
|
||||
@ -233,6 +247,12 @@ SWGUSRPInputSettings::asJsonObject() {
|
||||
if(m_transverter_delta_frequency_isSet){
|
||||
obj->insert("transverterDeltaFrequency", QJsonValue(transverter_delta_frequency));
|
||||
}
|
||||
if(m_gpio_dir_isSet){
|
||||
obj->insert("gpioDir", QJsonValue(gpio_dir));
|
||||
}
|
||||
if(m_gpio_pins_isSet){
|
||||
obj->insert("gpioPins", QJsonValue(gpio_pins));
|
||||
}
|
||||
if(m_use_reverse_api_isSet){
|
||||
obj->insert("useReverseAPI", QJsonValue(use_reverse_api));
|
||||
}
|
||||
@ -379,6 +399,26 @@ SWGUSRPInputSettings::setTransverterDeltaFrequency(qint64 transverter_delta_freq
|
||||
this->m_transverter_delta_frequency_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGUSRPInputSettings::getGpioDir() {
|
||||
return gpio_dir;
|
||||
}
|
||||
void
|
||||
SWGUSRPInputSettings::setGpioDir(qint32 gpio_dir) {
|
||||
this->gpio_dir = gpio_dir;
|
||||
this->m_gpio_dir_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGUSRPInputSettings::getGpioPins() {
|
||||
return gpio_pins;
|
||||
}
|
||||
void
|
||||
SWGUSRPInputSettings::setGpioPins(qint32 gpio_pins) {
|
||||
this->gpio_pins = gpio_pins;
|
||||
this->m_gpio_pins_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGUSRPInputSettings::getUseReverseApi() {
|
||||
return use_reverse_api;
|
||||
@ -463,6 +503,12 @@ SWGUSRPInputSettings::isSet(){
|
||||
if(m_transverter_delta_frequency_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_gpio_dir_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_gpio_pins_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_use_reverse_api_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
|
@ -81,6 +81,12 @@ public:
|
||||
qint64 getTransverterDeltaFrequency();
|
||||
void setTransverterDeltaFrequency(qint64 transverter_delta_frequency);
|
||||
|
||||
qint32 getGpioDir();
|
||||
void setGpioDir(qint32 gpio_dir);
|
||||
|
||||
qint32 getGpioPins();
|
||||
void setGpioPins(qint32 gpio_pins);
|
||||
|
||||
qint32 getUseReverseApi();
|
||||
void setUseReverseApi(qint32 use_reverse_api);
|
||||
|
||||
@ -136,6 +142,12 @@ private:
|
||||
qint64 transverter_delta_frequency;
|
||||
bool m_transverter_delta_frequency_isSet;
|
||||
|
||||
qint32 gpio_dir;
|
||||
bool m_gpio_dir_isSet;
|
||||
|
||||
qint32 gpio_pins;
|
||||
bool m_gpio_pins_isSet;
|
||||
|
||||
qint32 use_reverse_api;
|
||||
bool m_use_reverse_api_isSet;
|
||||
|
||||
|
@ -48,6 +48,10 @@ SWGUSRPOutputSettings::SWGUSRPOutputSettings() {
|
||||
m_transverter_mode_isSet = false;
|
||||
transverter_delta_frequency = 0L;
|
||||
m_transverter_delta_frequency_isSet = false;
|
||||
gpio_dir = 0;
|
||||
m_gpio_dir_isSet = false;
|
||||
gpio_pins = 0;
|
||||
m_gpio_pins_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
m_use_reverse_api_isSet = false;
|
||||
reverse_api_address = nullptr;
|
||||
@ -84,6 +88,10 @@ SWGUSRPOutputSettings::init() {
|
||||
m_transverter_mode_isSet = false;
|
||||
transverter_delta_frequency = 0L;
|
||||
m_transverter_delta_frequency_isSet = false;
|
||||
gpio_dir = 0;
|
||||
m_gpio_dir_isSet = false;
|
||||
gpio_pins = 0;
|
||||
m_gpio_pins_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
m_use_reverse_api_isSet = false;
|
||||
reverse_api_address = new QString("");
|
||||
@ -111,6 +119,8 @@ SWGUSRPOutputSettings::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(reverse_api_address != nullptr) {
|
||||
delete reverse_api_address;
|
||||
}
|
||||
@ -149,6 +159,10 @@ SWGUSRPOutputSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&transverter_delta_frequency, pJson["transverterDeltaFrequency"], "qint64", "");
|
||||
|
||||
::SWGSDRangel::setValue(&gpio_dir, pJson["gpioDir"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&gpio_pins, pJson["gpioPins"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString");
|
||||
@ -203,6 +217,12 @@ SWGUSRPOutputSettings::asJsonObject() {
|
||||
if(m_transverter_delta_frequency_isSet){
|
||||
obj->insert("transverterDeltaFrequency", QJsonValue(transverter_delta_frequency));
|
||||
}
|
||||
if(m_gpio_dir_isSet){
|
||||
obj->insert("gpioDir", QJsonValue(gpio_dir));
|
||||
}
|
||||
if(m_gpio_pins_isSet){
|
||||
obj->insert("gpioPins", QJsonValue(gpio_pins));
|
||||
}
|
||||
if(m_use_reverse_api_isSet){
|
||||
obj->insert("useReverseAPI", QJsonValue(use_reverse_api));
|
||||
}
|
||||
@ -319,6 +339,26 @@ SWGUSRPOutputSettings::setTransverterDeltaFrequency(qint64 transverter_delta_fre
|
||||
this->m_transverter_delta_frequency_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGUSRPOutputSettings::getGpioDir() {
|
||||
return gpio_dir;
|
||||
}
|
||||
void
|
||||
SWGUSRPOutputSettings::setGpioDir(qint32 gpio_dir) {
|
||||
this->gpio_dir = gpio_dir;
|
||||
this->m_gpio_dir_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGUSRPOutputSettings::getGpioPins() {
|
||||
return gpio_pins;
|
||||
}
|
||||
void
|
||||
SWGUSRPOutputSettings::setGpioPins(qint32 gpio_pins) {
|
||||
this->gpio_pins = gpio_pins;
|
||||
this->m_gpio_pins_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGUSRPOutputSettings::getUseReverseApi() {
|
||||
return use_reverse_api;
|
||||
@ -394,6 +434,12 @@ SWGUSRPOutputSettings::isSet(){
|
||||
if(m_transverter_delta_frequency_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_gpio_dir_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_gpio_pins_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_use_reverse_api_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
|
@ -72,6 +72,12 @@ public:
|
||||
qint64 getTransverterDeltaFrequency();
|
||||
void setTransverterDeltaFrequency(qint64 transverter_delta_frequency);
|
||||
|
||||
qint32 getGpioDir();
|
||||
void setGpioDir(qint32 gpio_dir);
|
||||
|
||||
qint32 getGpioPins();
|
||||
void setGpioPins(qint32 gpio_pins);
|
||||
|
||||
qint32 getUseReverseApi();
|
||||
void setUseReverseApi(qint32 use_reverse_api);
|
||||
|
||||
@ -118,6 +124,12 @@ private:
|
||||
qint64 transverter_delta_frequency;
|
||||
bool m_transverter_delta_frequency_isSet;
|
||||
|
||||
qint32 gpio_dir;
|
||||
bool m_gpio_dir_isSet;
|
||||
|
||||
qint32 gpio_pins;
|
||||
bool m_gpio_pins_isSet;
|
||||
|
||||
qint32 use_reverse_api;
|
||||
bool m_use_reverse_api_isSet;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user