Esempio n. 1
0
void
QSpinBoxReal32::updateDisplay(void)
{
    getLineEdit()->setUpdatesEnabled(false                              );
    
    QString                    value(_spinHelper.getValueByStr().c_str());
    
    value.setNum                    (value.toFloat()                    );
    getLineEdit()->setText          (value                              );
    getLineEdit()->setEnabled       (isEnabled() && !getReadOnly()      );
    getLineEdit()->setUpdatesEnabled(true                               );

    getLineEdit()->repaint          (false                              );

    bool bUpEnabled   =
        (isEnabled  ()                == true                       ) &&
        (getReadOnly()                == false                      ) &&
        ((_spinHelper.getValue()      <  _spinHelper.getUpperBound()) ||
         (_spinHelper.getWrapAround() == true                       )   );

    bool bDownEnabled =
        (isEnabled  ()                == true                       ) &&
        (getReadOnly()                == false                      ) &&
        ((_spinHelper.getValue()      >  _spinHelper.getLowerBound()) ||
         (_spinHelper.getWrapAround() == true                       )   );

    _pSpinWidget->setUpEnabled  (bUpEnabled  );
    _pSpinWidget->setDownEnabled(bDownEnabled);

    repaint(false);
}
Esempio n. 2
0
void
QSpinBoxReal32::wheelEvent(QWheelEvent *pWheelEvent)
{
    Real32 offset         = pWheelEvent->delta()/120.0;
    Int32  integralOffset = static_cast<Int32>(offset);

    pWheelEvent->accept();

    if(getReadOnly() == true)
        return;

    while(integralOffset < 0)
    {
        ++integralOffset;

        this->stepDown();
    }

    while(integralOffset > 0)
    {
        --integralOffset;

        this->stepUp();
    }
}
void TelescopeClientJsonRts2::replyFinished(QNetworkReply *reply)
{
	if (reply->error() != QNetworkReply::NoError)
	{
		if (reply->url().path().endsWith("/api/cmd") && reply->error() == QNetworkReply::ProtocolInvalidOperationError)
		{
			setReadOnly(true);
			return;
		}
		qDebug() << "TelescopeRTS2(" << name << ")::replyFinished: error " << reply->error() << " url: " << reply->url().toString();
		telName = "";
		if (reconnectTimer < 0)
			reconnectTimer = startTimer(15000);

		return;
	}

	if (reconnectTimer > 0)
	{
		killTimer(reconnectTimer);
		reconnectTimer = -1;
	}

	QByteArray data = reply->readAll();
	//qDebug() << "TelescopeRTS2(" << name << ")::replyFinished: data " << (QString) data;

	QJsonDocument doc;
	QJsonParseError jsonError;
	doc = QJsonDocument::fromJson(data, &jsonError);

	if (reply->url().path().endsWith("/api/devbytype"))
	{
		QJsonArray arr = doc.array();
		telName = arr[0].toString();

		getReadOnly();
	}
	else if (reply->url().path().endsWith("/api/deviceinfo"))
	{
		QJsonObject docObject = doc.object();
		setReadOnly(docObject["readonly"].toBool());

		QUrl rurl(baseurl);

		rurl.setPath(baseurl.path() + "/api/get");

		QUrlQuery query;
		query.addQueryItem("d", telName);
		rurl.setQuery(query);

		request.setUrl(rurl);

		qDebug() << "TelescopeRTS2(" << name << ")::replyFinished: request url:" << rurl.toString();

		refreshTimer();
	}
	else if (reply->url().path().endsWith("/api/get"))
	{
		QJsonObject docObject = doc.object();
		QJsonObject dObject = docObject["d"].toObject();
		QJsonObject telObject = dObject["TEL"].toObject();

		telLongitude = dObject["LONGITUD"].toDouble() * M_PI / 180.0;
		telLatitude = dObject["LATITUDE"].toDouble() * M_PI / 180.0;
		telAltitude = dObject["ALTITUDE"].toDouble();
		telTargetDist = dObject["target_distance"].toDouble() * M_PI / 180.0;

		const double ra = telObject["ra"].toDouble() * M_PI / 180.0;
		const double dec = telObject["dec"].toDouble() * M_PI / 180.0;
		const double cdec = cos(dec);
	
		qDebug() << "TelescopeRTS2(" << name << ")::replyFinished: RADEC" << ra << dec;

		lastPos.set(cos(ra)*cdec, sin(ra)*cdec, sin(dec));
		interpolatedPosition.add(lastPos, getNow(), server_micros, 0);

		QTimer::singleShot(refresh_delay, this, SLOT(refreshTimer()));
	}
	else if (reply->url().path().endsWith("/api/cmd"))
	{
		QJsonObject docObject = doc.object();
		int cmdRet = docObject["ret"].toInt();
		qDebug() << "Move command finished: " << cmdRet;
		if (cmdRet == 0)
			getReadOnly();
		else
			setReadOnly(true);
	}
	else
	{
		qWarning() << "TelescopeRTS2(" << name << ")::replyFinished: unhandled reply: " << reply->url().toString();
	}
	reply->deleteLater();
}