mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-25 17:28:50 -05:00
Update API
This commit is contained in:
parent
555888c7cf
commit
fb394165a3
@ -244,6 +244,8 @@ void GS232Controller::applySettings(const GS232ControllerSettings& settings, boo
|
|||||||
<< " m_protocol: " << settings.m_protocol
|
<< " m_protocol: " << settings.m_protocol
|
||||||
<< " m_serialPort: " << settings.m_serialPort
|
<< " m_serialPort: " << settings.m_serialPort
|
||||||
<< " m_baudRate: " << settings.m_baudRate
|
<< " m_baudRate: " << settings.m_baudRate
|
||||||
|
<< " m_host: " << settings.m_host
|
||||||
|
<< " m_port: " << settings.m_port
|
||||||
<< " m_track: " << settings.m_track
|
<< " m_track: " << settings.m_track
|
||||||
<< " m_source: " << settings.m_source
|
<< " m_source: " << settings.m_source
|
||||||
<< " m_title: " << settings.m_title
|
<< " m_title: " << settings.m_title
|
||||||
@ -269,6 +271,12 @@ void GS232Controller::applySettings(const GS232ControllerSettings& settings, boo
|
|||||||
if ((m_settings.m_baudRate != settings.m_baudRate) || force) {
|
if ((m_settings.m_baudRate != settings.m_baudRate) || force) {
|
||||||
reverseAPIKeys.append("baudRate");
|
reverseAPIKeys.append("baudRate");
|
||||||
}
|
}
|
||||||
|
if ((m_settings.m_host != settings.m_host) || force) {
|
||||||
|
reverseAPIKeys.append("host");
|
||||||
|
}
|
||||||
|
if ((m_settings.m_port != settings.m_port) || force) {
|
||||||
|
reverseAPIKeys.append("port");
|
||||||
|
}
|
||||||
if ((m_settings.m_track != settings.m_track) || force) {
|
if ((m_settings.m_track != settings.m_track) || force) {
|
||||||
reverseAPIKeys.append("track");
|
reverseAPIKeys.append("track");
|
||||||
}
|
}
|
||||||
@ -427,6 +435,8 @@ void GS232Controller::webapiFormatFeatureSettings(
|
|||||||
response.getGs232ControllerSettings()->setElevation(settings.m_elevation);
|
response.getGs232ControllerSettings()->setElevation(settings.m_elevation);
|
||||||
response.getGs232ControllerSettings()->setSerialPort(new QString(settings.m_serialPort));
|
response.getGs232ControllerSettings()->setSerialPort(new QString(settings.m_serialPort));
|
||||||
response.getGs232ControllerSettings()->setBaudRate(settings.m_baudRate);
|
response.getGs232ControllerSettings()->setBaudRate(settings.m_baudRate);
|
||||||
|
response.getGs232ControllerSettings()->setHost(new QString(settings.m_host));
|
||||||
|
response.getGs232ControllerSettings()->setPort(settings.m_port);
|
||||||
response.getGs232ControllerSettings()->setTrack(settings.m_track);
|
response.getGs232ControllerSettings()->setTrack(settings.m_track);
|
||||||
response.getGs232ControllerSettings()->setSource(new QString(settings.m_source));
|
response.getGs232ControllerSettings()->setSource(new QString(settings.m_source));
|
||||||
response.getGs232ControllerSettings()->setAzimuthOffset(settings.m_azimuthOffset);
|
response.getGs232ControllerSettings()->setAzimuthOffset(settings.m_azimuthOffset);
|
||||||
@ -475,6 +485,12 @@ void GS232Controller::webapiUpdateFeatureSettings(
|
|||||||
if (featureSettingsKeys.contains("baudRate")) {
|
if (featureSettingsKeys.contains("baudRate")) {
|
||||||
settings.m_baudRate = response.getGs232ControllerSettings()->getBaudRate();
|
settings.m_baudRate = response.getGs232ControllerSettings()->getBaudRate();
|
||||||
}
|
}
|
||||||
|
if (featureSettingsKeys.contains("host")) {
|
||||||
|
settings.m_host = *response.getGs232ControllerSettings()->getHost();
|
||||||
|
}
|
||||||
|
if (featureSettingsKeys.contains("port")) {
|
||||||
|
settings.m_port = response.getGs232ControllerSettings()->getPort();
|
||||||
|
}
|
||||||
if (featureSettingsKeys.contains("track")) {
|
if (featureSettingsKeys.contains("track")) {
|
||||||
settings.m_track = response.getGs232ControllerSettings()->getTrack() != 0;
|
settings.m_track = response.getGs232ControllerSettings()->getTrack() != 0;
|
||||||
}
|
}
|
||||||
@ -551,6 +567,12 @@ void GS232Controller::webapiReverseSendSettings(QList<QString>& featureSettingsK
|
|||||||
if (featureSettingsKeys.contains("baudRate") || force) {
|
if (featureSettingsKeys.contains("baudRate") || force) {
|
||||||
swgGS232ControllerSettings->setBaudRate(settings.m_baudRate);
|
swgGS232ControllerSettings->setBaudRate(settings.m_baudRate);
|
||||||
}
|
}
|
||||||
|
if (featureSettingsKeys.contains("host") || force) {
|
||||||
|
swgGS232ControllerSettings->setHost(new QString(settings.m_host));
|
||||||
|
}
|
||||||
|
if (featureSettingsKeys.contains("port") || force) {
|
||||||
|
swgGS232ControllerSettings->setPort(settings.m_port);
|
||||||
|
}
|
||||||
if (featureSettingsKeys.contains("track") || force) {
|
if (featureSettingsKeys.contains("track") || force) {
|
||||||
swgGS232ControllerSettings->setTrack(settings.m_track);
|
swgGS232ControllerSettings->setTrack(settings.m_track);
|
||||||
}
|
}
|
||||||
|
@ -388,14 +388,14 @@
|
|||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QLineEdit" name="host">
|
<widget class="QLineEdit" name="host">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Host name / IP address of computer running rotctld</string>
|
<string>Hostname / IP address of computer to connect to</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QComboBox" name="serialPort">
|
<widget class="QComboBox" name="serialPort">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Name of serial port to use to connect to the GS-232 controller</string>
|
<string>Name of serial port to use to connect to the rotator</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="editable">
|
<property name="editable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@ -441,7 +441,7 @@
|
|||||||
<item row="1" column="3">
|
<item row="1" column="3">
|
||||||
<widget class="QComboBox" name="baudRate">
|
<widget class="QComboBox" name="baudRate">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Serial port baud rate for the GS-232 controller</string>
|
<string>Serial port baud rate</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>3</number>
|
<number>3</number>
|
||||||
@ -521,7 +521,7 @@
|
|||||||
<item row="2" column="3">
|
<item row="2" column="3">
|
||||||
<widget class="QSpinBox" name="port">
|
<widget class="QSpinBox" name="port">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>TCP port number rotctld is listening on</string>
|
<string>TCP port number to connect to</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>65535</number>
|
<number>65535</number>
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
<h2>Introduction</h2>
|
<h2>Introduction</h2>
|
||||||
|
|
||||||
The Rotator Controller feature plugin allows SDRangel to send commands to GS-232 and SPID rotators as well as hamlib's rotctld, via serial or TCP. This allows SDRangel to point antennas mounted on a rotator to a specified azimuth and elevation.
|
The Rotator Controller feature plugin allows SDRangel to send commands to GS-232 and SPID rotators as well as hamlib's rotctld, via a serial or TCP connection.
|
||||||
|
This allows SDRangel to point antennas mounted on a rotator to a specified azimuth and elevation.
|
||||||
|
|
||||||
Azimuth and elevation can be set manually by a user in the GUI, via the REST API, or via another plugin, such as the Map Feature, the ADS-B Demodulator, or the Star Tracker.
|
Azimuth and elevation can be set manually by a user in the GUI, via the REST API, or via another plugin, such as the Map Feature, the ADS-B Demodulator, or the Star Tracker.
|
||||||
|
|
||||||
@ -58,11 +59,11 @@ Specifies the baud rate that will be used to send commands to the rotator. Typic
|
|||||||
|
|
||||||
<h3>11: Host</h3>
|
<h3>11: Host</h3>
|
||||||
|
|
||||||
Specifies the hostname / IP address of the computer running rotctld.
|
Specifies the hostname / IP address of the computer to connect to.
|
||||||
|
|
||||||
<h3>12: Port</h3>
|
<h3>12: Port</h3>
|
||||||
|
|
||||||
Specifies the TCP port number rotctld is listening on.
|
Specifies the TCP port number to connect to.
|
||||||
|
|
||||||
<h3>13: Azimuth Offset</h3>
|
<h3>13: Azimuth Offset</h3>
|
||||||
|
|
||||||
@ -91,20 +92,22 @@ This can prevent some rotators that have a limited accuracy from making unbenefi
|
|||||||
If this set to 0, every target azimuth and elevation received by the controller will be send to the rotator.
|
If this set to 0, every target azimuth and elevation received by the controller will be send to the rotator.
|
||||||
If it is set to 2, then a change in azimuth of +-1 degree from the previous azimuth, would not be sent to the rotator.
|
If it is set to 2, then a change in azimuth of +-1 degree from the previous azimuth, would not be sent to the rotator.
|
||||||
|
|
||||||
<h2>GS-232 Protocol Implementation</h2>
|
<h2>Protocol Implementations</h2>
|
||||||
|
|
||||||
|
<h3>GS-232 Protocol Implementation Notes</h3>
|
||||||
|
|
||||||
The controller uses the Waaa eee command when elevation needs to be set.
|
The controller uses the Waaa eee command when elevation needs to be set.
|
||||||
When only azimuth needs to be set, the Maaa command is used.
|
When only azimuth needs to be set, the Maaa command is used.
|
||||||
The C2 command is used to read current azimuth and elevation. A response of AZ=aaaEL=eee is expected.
|
The C2 command is used to read current azimuth and elevation. A response of AZ=aaaEL=eee is expected.
|
||||||
|
|
||||||
<h2>SPID rot2prog Protocol Implementation</h2>
|
<h3>SPID rot2prog Protocol Implementation</h3>
|
||||||
|
|
||||||
The controller uses the 0x2f set command with PH/PV=2 to set azimuth and elevation.
|
The controller uses the 0x2f set command with PH/PV=2 to set azimuth and elevation.
|
||||||
The 0x1f status command is used to read current azimuth and elevation.
|
The 0x1f status command is used to read current azimuth and elevation.
|
||||||
A 12 byte response is expected for set and status commands.
|
A 12 byte response is expected for set and status commands.
|
||||||
All frames start with 0x57 and end with 0x20.
|
All frames start with 0x57 and end with 0x20.
|
||||||
|
|
||||||
<h2>rotctld Protocol Implementation</h2>
|
<h3>rotctld Protocol Implementation</h3>
|
||||||
|
|
||||||
The controller uses the 'P' and 'p' commands to set and get azimuth and elevation.
|
The controller uses the 'P' and 'p' commands to set and get azimuth and elevation.
|
||||||
|
|
||||||
|
@ -15,6 +15,12 @@ GS232ControllerSettings:
|
|||||||
baudRate:
|
baudRate:
|
||||||
description: The baud rate to use for the serial connection to the GS-232 controller
|
description: The baud rate to use for the serial connection to the GS-232 controller
|
||||||
type: integer
|
type: integer
|
||||||
|
host:
|
||||||
|
description: Hostname / IP address of computer running rotctld.
|
||||||
|
type: string
|
||||||
|
port:
|
||||||
|
description: TCP port number rotctld is listening on.
|
||||||
|
type: integer
|
||||||
track:
|
track:
|
||||||
description: Track a target where azimuth and elevation are determined by another plugin (1 for yes, 0 for no)
|
description: Track a target where azimuth and elevation are determined by another plugin (1 for yes, 0 for no)
|
||||||
type: integer
|
type: integer
|
||||||
|
@ -6007,6 +6007,14 @@ margin-bottom: 20px;
|
|||||||
"type" : "integer",
|
"type" : "integer",
|
||||||
"description" : "The baud rate to use for the serial connection to the GS-232 controller"
|
"description" : "The baud rate to use for the serial connection to the GS-232 controller"
|
||||||
},
|
},
|
||||||
|
"host" : {
|
||||||
|
"type" : "string",
|
||||||
|
"description" : "Hostname / IP address of computer running rotctld."
|
||||||
|
},
|
||||||
|
"port" : {
|
||||||
|
"type" : "integer",
|
||||||
|
"description" : "TCP port number rotctld is listening on."
|
||||||
|
},
|
||||||
"track" : {
|
"track" : {
|
||||||
"type" : "integer",
|
"type" : "integer",
|
||||||
"description" : "Track a target where azimuth and elevation are determined by another plugin (1 for yes, 0 for no)"
|
"description" : "Track a target where azimuth and elevation are determined by another plugin (1 for yes, 0 for no)"
|
||||||
@ -51367,7 +51375,7 @@ except ApiException as e:
|
|||||||
</div>
|
</div>
|
||||||
<div id="generator">
|
<div id="generator">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
Generated 2021-11-21T00:20:10.840+01:00
|
Generated 2021-11-23T13:18:02.821+01:00
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -36,6 +36,10 @@ SWGGS232ControllerSettings::SWGGS232ControllerSettings() {
|
|||||||
m_serial_port_isSet = false;
|
m_serial_port_isSet = false;
|
||||||
baud_rate = 0;
|
baud_rate = 0;
|
||||||
m_baud_rate_isSet = false;
|
m_baud_rate_isSet = false;
|
||||||
|
host = nullptr;
|
||||||
|
m_host_isSet = false;
|
||||||
|
port = 0;
|
||||||
|
m_port_isSet = false;
|
||||||
track = 0;
|
track = 0;
|
||||||
m_track_isSet = false;
|
m_track_isSet = false;
|
||||||
source = nullptr;
|
source = nullptr;
|
||||||
@ -86,6 +90,10 @@ SWGGS232ControllerSettings::init() {
|
|||||||
m_serial_port_isSet = false;
|
m_serial_port_isSet = false;
|
||||||
baud_rate = 0;
|
baud_rate = 0;
|
||||||
m_baud_rate_isSet = false;
|
m_baud_rate_isSet = false;
|
||||||
|
host = new QString("");
|
||||||
|
m_host_isSet = false;
|
||||||
|
port = 0;
|
||||||
|
m_port_isSet = false;
|
||||||
track = 0;
|
track = 0;
|
||||||
m_track_isSet = false;
|
m_track_isSet = false;
|
||||||
source = new QString("");
|
source = new QString("");
|
||||||
@ -130,6 +138,10 @@ SWGGS232ControllerSettings::cleanup() {
|
|||||||
delete serial_port;
|
delete serial_port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(host != nullptr) {
|
||||||
|
delete host;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(source != nullptr) {
|
if(source != nullptr) {
|
||||||
delete source;
|
delete source;
|
||||||
@ -174,6 +186,10 @@ SWGGS232ControllerSettings::fromJsonObject(QJsonObject &pJson) {
|
|||||||
|
|
||||||
::SWGSDRangel::setValue(&baud_rate, pJson["baudRate"], "qint32", "");
|
::SWGSDRangel::setValue(&baud_rate, pJson["baudRate"], "qint32", "");
|
||||||
|
|
||||||
|
::SWGSDRangel::setValue(&host, pJson["host"], "QString", "QString");
|
||||||
|
|
||||||
|
::SWGSDRangel::setValue(&port, pJson["port"], "qint32", "");
|
||||||
|
|
||||||
::SWGSDRangel::setValue(&track, pJson["track"], "qint32", "");
|
::SWGSDRangel::setValue(&track, pJson["track"], "qint32", "");
|
||||||
|
|
||||||
::SWGSDRangel::setValue(&source, pJson["source"], "QString", "QString");
|
::SWGSDRangel::setValue(&source, pJson["source"], "QString", "QString");
|
||||||
@ -236,6 +252,12 @@ SWGGS232ControllerSettings::asJsonObject() {
|
|||||||
if(m_baud_rate_isSet){
|
if(m_baud_rate_isSet){
|
||||||
obj->insert("baudRate", QJsonValue(baud_rate));
|
obj->insert("baudRate", QJsonValue(baud_rate));
|
||||||
}
|
}
|
||||||
|
if(host != nullptr && *host != QString("")){
|
||||||
|
toJsonValue(QString("host"), host, obj, QString("QString"));
|
||||||
|
}
|
||||||
|
if(m_port_isSet){
|
||||||
|
obj->insert("port", QJsonValue(port));
|
||||||
|
}
|
||||||
if(m_track_isSet){
|
if(m_track_isSet){
|
||||||
obj->insert("track", QJsonValue(track));
|
obj->insert("track", QJsonValue(track));
|
||||||
}
|
}
|
||||||
@ -331,6 +353,26 @@ SWGGS232ControllerSettings::setBaudRate(qint32 baud_rate) {
|
|||||||
this->m_baud_rate_isSet = true;
|
this->m_baud_rate_isSet = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString*
|
||||||
|
SWGGS232ControllerSettings::getHost() {
|
||||||
|
return host;
|
||||||
|
}
|
||||||
|
void
|
||||||
|
SWGGS232ControllerSettings::setHost(QString* host) {
|
||||||
|
this->host = host;
|
||||||
|
this->m_host_isSet = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
qint32
|
||||||
|
SWGGS232ControllerSettings::getPort() {
|
||||||
|
return port;
|
||||||
|
}
|
||||||
|
void
|
||||||
|
SWGGS232ControllerSettings::setPort(qint32 port) {
|
||||||
|
this->port = port;
|
||||||
|
this->m_port_isSet = true;
|
||||||
|
}
|
||||||
|
|
||||||
qint32
|
qint32
|
||||||
SWGGS232ControllerSettings::getTrack() {
|
SWGGS232ControllerSettings::getTrack() {
|
||||||
return track;
|
return track;
|
||||||
@ -518,6 +560,12 @@ SWGGS232ControllerSettings::isSet(){
|
|||||||
if(m_baud_rate_isSet){
|
if(m_baud_rate_isSet){
|
||||||
isObjectUpdated = true; break;
|
isObjectUpdated = true; break;
|
||||||
}
|
}
|
||||||
|
if(host && *host != QString("")){
|
||||||
|
isObjectUpdated = true; break;
|
||||||
|
}
|
||||||
|
if(m_port_isSet){
|
||||||
|
isObjectUpdated = true; break;
|
||||||
|
}
|
||||||
if(m_track_isSet){
|
if(m_track_isSet){
|
||||||
isObjectUpdated = true; break;
|
isObjectUpdated = true; break;
|
||||||
}
|
}
|
||||||
|
@ -54,6 +54,12 @@ public:
|
|||||||
qint32 getBaudRate();
|
qint32 getBaudRate();
|
||||||
void setBaudRate(qint32 baud_rate);
|
void setBaudRate(qint32 baud_rate);
|
||||||
|
|
||||||
|
QString* getHost();
|
||||||
|
void setHost(QString* host);
|
||||||
|
|
||||||
|
qint32 getPort();
|
||||||
|
void setPort(qint32 port);
|
||||||
|
|
||||||
qint32 getTrack();
|
qint32 getTrack();
|
||||||
void setTrack(qint32 track);
|
void setTrack(qint32 track);
|
||||||
|
|
||||||
@ -121,6 +127,12 @@ private:
|
|||||||
qint32 baud_rate;
|
qint32 baud_rate;
|
||||||
bool m_baud_rate_isSet;
|
bool m_baud_rate_isSet;
|
||||||
|
|
||||||
|
QString* host;
|
||||||
|
bool m_host_isSet;
|
||||||
|
|
||||||
|
qint32 port;
|
||||||
|
bool m_port_isSet;
|
||||||
|
|
||||||
qint32 track;
|
qint32 track;
|
||||||
bool m_track_isSet;
|
bool m_track_isSet;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user