|
@@ -42,7 +42,7 @@ void UdpReciver::readDatagrams()
|
|
|
|
|
|
void UdpReciver::ReceiveDecode(QByteArray &data)
|
|
|
{
|
|
|
- static int BATH_LENTH = 31;
|
|
|
+ static int BATH_LENTH = 10;
|
|
|
// 防包太大
|
|
|
if (data.size() > 2048) {
|
|
|
//qDebug() << "size too large";
|
|
@@ -52,11 +52,10 @@ void UdpReciver::ReceiveDecode(QByteArray &data)
|
|
|
char first;
|
|
|
char second;
|
|
|
// 寻找报文开头
|
|
|
- while (data.size() >= BATH_LENTH) {
|
|
|
+ while (data.size() >= 10) {
|
|
|
while (1) {
|
|
|
first = data[0];
|
|
|
- second = data[1];
|
|
|
- if (first == '#' && second == '#') {
|
|
|
+ if (first == 0x7E) {
|
|
|
break;
|
|
|
}
|
|
|
// 删除一个字符
|
|
@@ -64,19 +63,44 @@ void UdpReciver::ReceiveDecode(QByteArray &data)
|
|
|
if (data.size() < BATH_LENTH)
|
|
|
return;
|
|
|
}
|
|
|
- int high = data.at(22);
|
|
|
- int low = data.at(23);
|
|
|
- int dataLen = (high << 8) | low;
|
|
|
- //qDebug() << "dataLen:" << dataLen;
|
|
|
- // 长度不对
|
|
|
- if ((dataLen + sizeof(packageDataHead)) > data.size()) {
|
|
|
- //qDebug() << "message len error";
|
|
|
- return;
|
|
|
+
|
|
|
+
|
|
|
+ QJsonObject object;
|
|
|
+ object = QJsonDocument::fromJson(data).object();
|
|
|
+ QByteArray jsonData();
|
|
|
+ if (object.contains("member")) {
|
|
|
+ QJsonArray array = object.value("member").toArray();
|
|
|
+ qDebug() << array[0].toString();
|
|
|
+ qDebug() << array[1].toString();
|
|
|
+ qDebug() << array[2].toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ int jsonSize = data[3]<<8 | data[4];
|
|
|
+
|
|
|
+ if(data[1] == 0x02) //LightsInfo
|
|
|
+ {
|
|
|
+
|
|
|
}
|
|
|
- QByteArray temp = data.left(sizeof(packageDataHead) + dataLen + 1);
|
|
|
- //queue_mutex.lock();
|
|
|
- readData.enqueue(temp);
|
|
|
- //queue_mutex.unlock();
|
|
|
- data.remove(0, sizeof(packageDataHead) + dataLen + 1);//need check,20210915,jiaolili
|
|
|
+ else if(data[1] == 0x04)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// int high = data.at(22);
|
|
|
+// int low = data.at(23);
|
|
|
+// int dataLen = (high << 8) | low;
|
|
|
+// //qDebug() << "dataLen:" << dataLen;
|
|
|
+// // 长度不对
|
|
|
+// if ((dataLen + sizeof(packageDataHead)) > data.size()) {
|
|
|
+// //qDebug() << "message len error";
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// QByteArray temp = data.left(sizeof(packageDataHead) + dataLen + 1);
|
|
|
+// //queue_mutex.lock();
|
|
|
+// readData.enqueue(temp);
|
|
|
+// //queue_mutex.unlock();
|
|
|
+// data.remove(0, sizeof(packageDataHead) + dataLen + 1);//need check,20210915,jiaolili
|
|
|
}
|
|
|
}
|