From 26d3fce10a661c1aa827eb85229a850235b46b87 Mon Sep 17 00:00:00 2001 From: TheUnrealDragon Date: Thu, 9 Apr 2026 14:26:21 +0530 Subject: [PATCH] v0.0.6 --- Main.qml | 4 +++- .../WaterLevelService.java | 23 +++++++++++++++++-- udplistener.cpp | 19 +++++++++++---- 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/Main.qml b/Main.qml index 414d6cb..3c6831a 100644 --- a/Main.qml +++ b/Main.qml @@ -554,7 +554,9 @@ Window { else { water_level.color = root.water_color; } - + if(root.distance_count > 1000) { + root.distance_count = 5; + } console.log("Current reading is: " + current_reading) console.log("Normalized height is: " + normalized_height) water_level.current_level = normalized_height; diff --git a/android/src/org/qtproject/example/appwaterLevelSensor/WaterLevelService.java b/android/src/org/qtproject/example/appwaterLevelSensor/WaterLevelService.java index 641d174..8d2c64e 100644 --- a/android/src/org/qtproject/example/appwaterLevelSensor/WaterLevelService.java +++ b/android/src/org/qtproject/example/appwaterLevelSensor/WaterLevelService.java @@ -23,6 +23,7 @@ import java.time.Duration; public class WaterLevelService extends Service { private static float alert_thres_distance = 1000000; + private boolean bits_flipped = false; public class UDPCommandClient implements Runnable { private DatagramSocket socket_cmd_recv; @@ -40,13 +41,25 @@ public class WaterLevelService extends Service { DatagramPacket packet = new DatagramPacket(buffer, buffer.length); socket_cmd_recv.receive(packet); String str = new String(buffer, StandardCharsets.UTF_8); + Log.d("UDP Service ", "Received command packet " + str); if(str.startsWith("", ""); alert_thres_distance = Float.parseFloat(str); } - Log.d("UDP Service ", "Received command packet " + str); + else if(str.startsWith("", ""); + Log.d("UDP Service ", "Flipping " + str); + if(str.toLowerCase() == "false") { + bits_flipped = false; + } + else if(str.toLowerCase() == "true") { + bits_flipped = true; + } + } } } @@ -105,7 +118,13 @@ public class WaterLevelService extends Service { } catch(java.net.SocketTimeoutException e) { continue; } - float f = ByteBuffer.wrap(buffer).order(ByteOrder.LITTLE_ENDIAN).getFloat(); + float f; + if(bits_flipped) { + f = ByteBuffer.wrap(buffer).order(ByteOrder.LITTLE_ENDIAN).getFloat(); + } + else { + f = ByteBuffer.wrap(buffer).order(ByteOrder.BIG_ENDIAN).getFloat(); + } Log.d("UDP Service ", "Received packet: " + f); Log.d("UDP Service ", "Threshold is: " + alert_thres_distance); boolean duration_passed = false; diff --git a/udplistener.cpp b/udplistener.cpp index 1668465..bbf4927 100644 --- a/udplistener.cpp +++ b/udplistener.cpp @@ -61,16 +61,27 @@ void UDPListener::setConfig(float distance, bool flip_bits) command_socket = new QUdpSocket(this); bool bind = command_socket->bind(8181); if(bind) { - QNetworkDatagram data; - data.setDestination(QHostAddress::LocalHost, 8178); + QNetworkDatagram data1, data2; + data1.setDestination(QHostAddress::LocalHost, 8178); + data2.setDestination(QHostAddress::LocalHost, 8178); + QString s_data = ""; while(s_data.toUtf8().size() != 1024) { s_data += "="; } - data.setData(s_data.toUtf8()); - command_socket->writeDatagram(data); + data1.setData(s_data.toUtf8()); + command_socket->writeDatagram(data1); + command_socket->flush(); + QString b_data = ""; + while(b_data.toUtf8().size() != 1024) { + b_data += "="; + } + data2.setData(b_data.toUtf8()); + command_socket->writeDatagram(data2); command_socket->flush(); command_socket->close(); + command_socket->deleteLater(); + command_socket = nullptr; } } averages.clear();