diff --git a/consolereader.cpp b/consolereader.cpp index 9cb9696..40ac137 100644 --- a/consolereader.cpp +++ b/consolereader.cpp @@ -122,7 +122,7 @@ void ConsoleReader::listSockets() for (std::vector::const_iterator i = sockets->begin() ; i != sockets->end(); ++i) { std::cout << "_____________________________________________________________________________\n" << std::endl; std::cout << "IP Address: " << (*i)->ip.toString().toStdString() << "\t MAC Address: " << (*i)->mac.toHex().toStdString() << "\t Power: " << ((*i)->powered ? "On" : "Off") << std::endl; - std::cout << "Socket Name: " << (*i)->socketName.toStdString() << "\t Remote Password: " << (*i)->remotePassword.toStdString() << "\t Timezone: " << (*i)->timeZone.toHex().toStdString() << std::endl; + std::cout << "Socket Name: " << (*i)->socketName.toStdString() << "\t Remote Password: " << (*i)->remotePassword.toStdString() << "\t Timezone: " << +(*i)->timezone << std::endl; std::cout << "Countdown: " << (*i)->countdown << " " << ((*i)->countdownEnabled ? "(enabled)" : "(disabled)") << "\t\t Time: " << (*i)->socketDateTime.toString().toStdString() << std::endl; } std::cout << "_____________________________________________________________________________\n" << std::endl; diff --git a/socket.cpp b/socket.cpp index ee12369..72516a4 100644 --- a/socket.cpp +++ b/socket.cpp @@ -138,37 +138,36 @@ void Socket::powerOn() void Socket::changeSocketName(QString newName) { QByteArray name = newName.toLatin1().leftJustified(16, ' ', true); - writeSocketData(name, remotePassword, timeZone, countdown); + writeSocketData(name, remotePassword, timezone, countdown); } void Socket::changeSocketPassword(QString newPassword) { QByteArray password = newPassword.toLatin1().leftJustified(12, ' ', true); - writeSocketData(socketName, password, timeZone, countdown); + writeSocketData(socketName, password, timezone, countdown); } void Socket::changeTimezone(int8_t newTimezone) { - QByteArray timezone = intToHex(newTimezone, 1); // timezone takes 1 byte - writeSocketData(socketName, remotePassword, timezone, countdown); + writeSocketData(socketName, remotePassword, newTimezone, countdown); } void Socket::setCountDown(uint16_t countdown) { - writeSocketData(socketName, remotePassword, timeZone, countdown); + writeSocketData(socketName, remotePassword, timezone, countdown); } void Socket::toggleCountDown() { countdownEnabled=!countdownEnabled; - writeSocketData(socketName, remotePassword, timeZone, countdown); + writeSocketData(socketName, remotePassword, timezone, countdown); } -void Socket::writeSocketData(QByteArray socketName, QByteArray remotePassword, QByteArray timeZone, uint16_t countdown) +void Socket::writeSocketData(QByteArray socketName, QByteArray remotePassword, int8_t timezone, uint16_t countdown) { QByteArray countDown = intToHex(countdown, 2); // 2 bytes - QByteArray record = QByteArray::fromHex("01:00") /* record number = 1*/ + versionID + mac + twenties + rmac + twenties + remotePassword + socketName + icon + hardwareVersion + firmwareVersion + wifiFirmwareVersion + port + staticServerIP + port + domainServerName + localIP + localGatewayIP + localNetMask + dhcpNode + discoverable + timeZoneSet + timeZone + (countdownEnabled ? QByteArray::fromHex("01:00") : QByteArray::fromHex("00:ff")) + countDown + zeros + zeros + zeros + QStringLiteral("000000000000000000000000000000").toLocal8Bit(); + QByteArray record = QByteArray::fromHex("01:00") /* record number = 1*/ + versionID + mac + twenties + rmac + twenties + remotePassword + socketName + icon + hardwareVersion + firmwareVersion + wifiFirmwareVersion + port + staticServerIP + port + domainServerName + localIP + localGatewayIP + localNetMask + dhcpNode + discoverable + timeZoneSet + intToHex(timezone, 1) + (countdownEnabled ? QByteArray::fromHex("01:00") : QByteArray::fromHex("00:ff")) + countDown + zeros + zeros + zeros + QStringLiteral("000000000000000000000000000000").toLocal8Bit(); QByteArray recordLength = intToHex(record.length(), 2); // 2 bytes @@ -272,7 +271,7 @@ bool Socket::parseReply(QByteArray reply) ++index; timeZoneSet = reply.mid(index, 1); ++index; - timeZone = reply.mid(index, 1); + timezone = hexToInt(reply.mid(index, 1)); ++index; countdownEnabled = reply.mid(index, 2) == QByteArray::fromHex("01:00"); index += 2; diff --git a/socket.h b/socket.h index f976355..0a0b48d 100644 --- a/socket.h +++ b/socket.h @@ -56,7 +56,7 @@ public: QByteArray mac; bool powered; QByteArray socketName, remotePassword; - QByteArray timeZone; + int8_t timezone; uint16_t countdown; bool countdownEnabled; QDateTime socketDateTime; @@ -81,7 +81,7 @@ private: start(); } void run(); - void writeSocketData(QByteArray socketName, QByteArray remotePassword, QByteArray timeZone, uint16_t countdown); + void writeSocketData(QByteArray socketName, QByteArray remotePassword, int8_t timeZone, uint16_t countdown); QByteArray intToHex(unsigned int value, unsigned int length, bool littleEndian = true); int hexToInt(QByteArray value, bool littleEndian = true);