Added configurable refresh rate sampling time

It seems data comes in bursts, so a sampling time of 1 second gave false
numbers
This commit is contained in:
Stedd 2023-10-22 14:55:57 +02:00
parent 65fc49450e
commit 5aa9be7aab
1 changed files with 14 additions and 9 deletions

View File

@ -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
{