diff --git a/socket.cpp b/socket.cpp index 67f7702..8892e27 100644 --- a/socket.cpp +++ b/socket.cpp @@ -96,7 +96,7 @@ void Socket::changeSocketName ( QString newName ) { QByteArray name = newName.toLatin1().leftJustified(16, ' ', true); - datagram[WriteSocketData] = magicKey + QByteArray::fromHex ( "00 a5" ) + commandID[WriteSocketData] + mac + twenties + zeros + QByteArray::fromHex ( "04:00:01" ) /*table number and unknown*/ + QByteArray::fromHex ( "8a:00" ) /* record length = 138 bytes*/ + QByteArray::fromHex ( "01:00" ) /* record number = 1*/ + versionID + mac + twenties + rmac + twenties + remotePassword + name + icon + hardwareVersion + firmwareVersion + wifiFirmwareVersion + port + fromIP ( 42,121,111,208 ) + port + QStringLiteral("vicenter.orvibo.com ").toLatin1() + twenties + twenties + twenties + ip.toString().toLatin1() + localGatewayIP + QByteArray::fromHex ( "ff:ff:ff:00:01:01:00:08:00:ff:00:00" ); + datagram[WriteSocketData] = magicKey + QByteArray::fromHex ( "00 a5" ) + commandID[WriteSocketData] + mac + twenties + zeros + QByteArray::fromHex ( "04:00:01" ) /*table number and unknown*/ + QByteArray::fromHex ( "8a:00" ) /* record length = 138 bytes*/ + QByteArray::fromHex ( "01:00" ) /* record number = 1*/ + versionID + mac + twenties + rmac + twenties + remotePassword + name + icon + hardwareVersion + firmwareVersion + wifiFirmwareVersion + port + staticServerIP + port + QStringLiteral("vicenter.orvibo.com ").toLatin1() + twenties + twenties + twenties + localIP + localGatewayIP + QByteArray::fromHex ( "ff:ff:ff:00:01:01:00:08:00:ff:00:00" ); sendDatagram ( WriteSocketData ); } @@ -176,9 +176,13 @@ bool Socket::parseReply ( QByteArray reply ) index += 4; firmwareVersion = reply.mid ( index, 4 ); index += 4; - wifiFirmwareVersion = reply.mid (index, 4); - index += 56; - localGatewayIP = reply.mid (index, 4); + wifiFirmwareVersion = reply.mid ( index, 4 ); + index += 6; + staticServerIP = reply.mid ( index, 4 ); // 42.121.111.208 is used + index += 46; + localIP = reply.mid ( index, 4 ); + index += 4; + localGatewayIP = reply.mid ( index, 4 ); Q_EMIT stateChanged(); break; } @@ -202,9 +206,3 @@ bool Socket::parseReply ( QByteArray reply ) return true; } - -QByteArray Socket::fromIP ( unsigned char a, unsigned char b, unsigned char c, unsigned char d ) -{ - qWarning() << QByteArray::number ( a, 16 ) + QByteArray::number ( b, 16 ) + QByteArray::number ( c, 16 ) + QByteArray::number ( d, 16 ); - return QByteArray::number ( a, 16 ) + QByteArray::number ( b, 16 ) + QByteArray::number ( c, 16 ) + QByteArray::number ( d, 16 ); -} diff --git a/socket.h b/socket.h index 14dc247..b7933ce 100644 --- a/socket.h +++ b/socket.h @@ -44,7 +44,7 @@ public: void changeSocketName ( QString newName ); bool parseReply ( QByteArray ); - QHostAddress ip, localIP; + QHostAddress ip; QByteArray mac; bool powered; QByteArray name, remotePassword; @@ -53,7 +53,6 @@ private: enum Datagram {Subscribe, PowerOff, PowerOn, TableData, SocketData, TimingData, WriteSocketData, MaxCommands}; void sendDatagram ( Datagram ); - QByteArray fromIP ( unsigned char, unsigned char, unsigned char, unsigned char ); void subscribe(); void listen() { start(); } void run(); @@ -66,9 +65,11 @@ private: QByteArray hardwareVersion; QByteArray firmwareVersion; QByteArray wifiFirmwareVersion; // CC3000 firmware version - QByteArray socketTableNumber, socketTableVersion, timingTableNumber, timingTableVersion; // FIXME: not used yet + QByteArray staticServerIP; QByteArray port = QByteArray::fromHex ( "10:27" ); // 10000 in hex (little endian) + QByteArray localIP; // same as QHostAddress ip but in QByteArray, maybe fix later... QByteArray localGatewayIP; + QByteArray socketTableNumber, socketTableVersion, timingTableNumber, timingTableVersion; // FIXME: not used yet const QByteArray twenties = QByteArray::fromHex ( "20 20 20 20 20 20" ); // mac address padding, 6 spaces const QByteArray zeros = QByteArray::fromHex ( "00 00 00 00" );