fixed some bugs

This commit is contained in:
Simon Stürz 2014-12-10 18:40:29 +01:00 committed by Michael Zanetti
parent a4cb391374
commit 35e4796941
2 changed files with 11 additions and 10 deletions

View File

@ -21,11 +21,11 @@
Radio433BrennenstuhlGateway::Radio433BrennenstuhlGateway(QObject *parent) :
QObject(parent)
{
// UDP socket for discovering...
m_port = 49880;
// UDP socket to sending data to gateway
m_gateway = new QUdpSocket(this);
connect(m_gateway, &QUdpSocket::readyRead, this, &Radio433BrennenstuhlGateway::readDataDiscovery);
connect(m_gateway, &QUdpSocket::readyRead, this, &Radio433BrennenstuhlGateway::readData);
connect(m_gateway, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(gatewayError(QAbstractSocket::SocketError)));
// Timer for discovery of the Gateway
@ -66,9 +66,10 @@ bool Radio433BrennenstuhlGateway::sendData(int delay, QList<int> rawData)
message.append("TXP:0,0,10,0," + QString::number(delay) + "," + QString::number(rawData.count()/2) + "," + data + ";");
if (m_gateway->writeDatagram(message, m_gatewayAddress, m_gatewayPort) > 0) {
if (m_gateway->writeDatagram(message, m_gatewayAddress, m_port) > 0) {
m_available = true;
} else {
qDebug() << "ERROR: could not send command to Brennenstihl Gateway";
m_available = false;
emit availableChanged(false);
return false;
@ -80,8 +81,8 @@ bool Radio433BrennenstuhlGateway::enable()
{
m_available = false;
if (!m_gateway->bind(49880, QUdpSocket::ShareAddress)) {
qWarning() << "ERROR: Radio 433 MHz Brennenstuhl LAN Gateway discovery could not bind to port 49880";
if (!m_gateway->bind(m_port, QUdpSocket::ShareAddress)) {
qWarning() << "ERROR: Radio 433 MHz Brennenstuhl LAN Gateway discovery could not bind to port " << m_port;
return false;
}
@ -100,7 +101,7 @@ bool Radio433BrennenstuhlGateway::disable()
void Radio433BrennenstuhlGateway::discover()
{
// send search string to broadcast over port 49880
m_gateway->writeDatagram("SEARCH HCGW", QHostAddress::Broadcast, 49880);
m_gateway->writeDatagram("SEARCH HCGW", QHostAddress::Broadcast, m_port);
m_timeout->start();
}
@ -109,7 +110,7 @@ bool Radio433BrennenstuhlGateway::available()
return m_available;
}
void Radio433BrennenstuhlGateway::readDataDiscovery()
void Radio433BrennenstuhlGateway::readData()
{
QByteArray data;
QHostAddress address;
@ -124,6 +125,7 @@ void Radio433BrennenstuhlGateway::readDataDiscovery()
if (data.startsWith("HCGW:")) {
m_timeout->stop();
if (!m_available) {
m_gatewayAddress = address;
m_available = true;
emit availableChanged(true);
}

View File

@ -38,9 +38,8 @@ public:
private:
bool m_available;
QUdpSocket *m_gateway;
int m_gatewayPort;
QHostAddress m_gatewayAddress;
int m_port;
QTimer *m_discoverTimer;
QTimer *m_timeout;
@ -51,7 +50,7 @@ signals:
void availableChanged(const bool &available);
private slots:
void readDataDiscovery();
void readData();
void gatewayError(QAbstractSocket::SocketError error);
void timeout();
};