ZigBeeParser: Add SensorData note.

This commit is contained in:
Mentalflow 2024-03-05 22:50:18 +08:00
parent dcdf352bbc
commit cc08435a3a
Signed by: Mentalflow
GPG Key ID: 5AE68D4401A2EE71
1 changed files with 16 additions and 1 deletions

View File

@ -231,6 +231,7 @@ void ZigBeeDataResolver::des_port_parser(zigbee_protocol::ZigbeeFrame &zframe, b
object.insert("type","zigbee_recv_data"); object.insert("type","zigbee_recv_data");
if (*(u16 *)frame == CRYPTO_ZDATA_FRAME_HEAD) if (*(u16 *)frame == CRYPTO_ZDATA_FRAME_HEAD)
{ {
QString note_text = "解密数据为按照未加密传输重新打包的原始数据,因此数据长度会有差异\n";
new_base_frame(sizeof(ndata)) nbframe; new_base_frame(sizeof(ndata)) nbframe;
memcpy(&nbframe, bframe, BASE_FRAME_PREFIX_LEN); memcpy(&nbframe, bframe, BASE_FRAME_PREFIX_LEN);
zigbee_protocol::ZigbeeFrame nzframe = zframe; zigbee_protocol::ZigbeeFrame nzframe = zframe;
@ -241,7 +242,21 @@ void ZigBeeDataResolver::des_port_parser(zigbee_protocol::ZigbeeFrame &zframe, b
nzframe.setData((char*)&nbframe,nbframe.length); nzframe.setData((char*)&nbframe,nbframe.length);
zdata = QByteArray((char *)nzframe.data(), nzframe.size()); zdata = QByteArray((char *)nzframe.data(), nzframe.size());
object.insert("decrypted_text", QJsonValue(QString(zdata.toHex(' ').toUpper()))); object.insert("decrypted_text", QJsonValue(QString(zdata.toHex(' ').toUpper())));
object.insert("note_text",QJsonValue("解密数据为未加密传输时的原始数据包")); switch (ndata.type) {
case SENSOR_DATA_TYPE:
{
note_text += "传感器数据:";
sensor_data* sdata = (sensor_data*)ndata.data;
note_text += "PPM:" + QString::number(sdata->ppm) + ' ';
note_text += "Temperature:" + QString::number(sdata->temp) + ' ';
note_text += "Humidity:" + QString::number(sdata->humi) + ' ';
note_text += "Flare:" + QString::number(sdata->flare) + ' ';
break;
}
default:
break;
}
object.insert("note_text",QJsonValue(note_text));
} }
if (QRandomGenerator::global()->bounded(2)!=0 && is_demo) if (QRandomGenerator::global()->bounded(2)!=0 && is_demo)
object.insert("decrypted_text", QJsonValue(QString(zdata.toHex(' ').toUpper()))); object.insert("decrypted_text", QJsonValue(QString(zdata.toHex(' ').toUpper())));