From 5aa9be7aabc668d0ae83809eb1cd17efcf923665 Mon Sep 17 00:00:00 2001 From: Stedd Date: Sun, 22 Oct 2023 14:55:57 +0200 Subject: [PATCH] Added configurable refresh rate sampling time It seems data comes in bursts, so a sampling time of 1 second gave false numbers --- Assets/Scripts/ReceiveData.cs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/Assets/Scripts/ReceiveData.cs b/Assets/Scripts/ReceiveData.cs index 90e2bcb..349ff9a 100644 --- a/Assets/Scripts/ReceiveData.cs +++ b/Assets/Scripts/ReceiveData.cs @@ -1,6 +1,7 @@ using System; using GameDev.UDP; using UnityEngine; +using UnityEngine.Serialization; [RequireComponent(typeof(UDPManager))] public class ReceiveData : MonoBehaviour @@ -8,10 +9,16 @@ public class ReceiveData : MonoBehaviour [Header("Connections")] [SerializeField] private UDPManager _udpManager; + [Header("Config")] + [SerializeField] private float _sampleTimeSetting; + [Header("State")] - [SerializeField] private float _updateRate; - [SerializeField] private ulong _packages; - [field: SerializeField] public byte[] ReceivedData { get; set; } + [SerializeField] private float _updateRateHz; + [SerializeField] private ulong _packagesReceived; + private byte[] ReceivedData { get; set; } + + private int _newPackages; + private float _sampleTime; [field: Header("ReceivedData")] [field: SerializeField] private byte Watchdog { get; set; } @@ -40,12 +47,10 @@ public class ReceiveData : MonoBehaviour [field: SerializeField] private float RightMotorAngVel { get; set; } [field: SerializeField] private int M1Raw { get; set; } [field: SerializeField] private int M2Raw { get; set; } - private int _newPackages; - private float _sampleTime; private void OnEnable() { - _sampleTime = 1; + _sampleTime = _sampleTimeSetting; _udpManager.ReceivedNewUdpData += ProcessData; } @@ -56,7 +61,7 @@ public class ReceiveData : MonoBehaviour private void ProcessData() { - _packages++; + _packagesReceived++; _newPackages++; ReceivedData = _udpManager.Data; var i = 0; @@ -97,9 +102,9 @@ public class ReceiveData : MonoBehaviour { if (_sampleTime < 0) { - _updateRate = _newPackages; + _updateRateHz = _newPackages; _newPackages = 0; - _sampleTime = 1; + _sampleTime = _sampleTimeSetting; } else {