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:
parent
65fc49450e
commit
5aa9be7aab
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using GameDev.UDP;
|
using GameDev.UDP;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
|
|
||||||
[RequireComponent(typeof(UDPManager))]
|
[RequireComponent(typeof(UDPManager))]
|
||||||
public class ReceiveData : MonoBehaviour
|
public class ReceiveData : MonoBehaviour
|
||||||
|
@ -8,10 +9,16 @@ public class ReceiveData : MonoBehaviour
|
||||||
[Header("Connections")]
|
[Header("Connections")]
|
||||||
[SerializeField] private UDPManager _udpManager;
|
[SerializeField] private UDPManager _udpManager;
|
||||||
|
|
||||||
|
[Header("Config")]
|
||||||
|
[SerializeField] private float _sampleTimeSetting;
|
||||||
|
|
||||||
[Header("State")]
|
[Header("State")]
|
||||||
[SerializeField] private float _updateRate;
|
[SerializeField] private float _updateRateHz;
|
||||||
[SerializeField] private ulong _packages;
|
[SerializeField] private ulong _packagesReceived;
|
||||||
[field: SerializeField] public byte[] ReceivedData { get; set; }
|
private byte[] ReceivedData { get; set; }
|
||||||
|
|
||||||
|
private int _newPackages;
|
||||||
|
private float _sampleTime;
|
||||||
|
|
||||||
[field: Header("ReceivedData")]
|
[field: Header("ReceivedData")]
|
||||||
[field: SerializeField] private byte Watchdog { get; set; }
|
[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 float RightMotorAngVel { get; set; }
|
||||||
[field: SerializeField] private int M1Raw { get; set; }
|
[field: SerializeField] private int M1Raw { get; set; }
|
||||||
[field: SerializeField] private int M2Raw { get; set; }
|
[field: SerializeField] private int M2Raw { get; set; }
|
||||||
private int _newPackages;
|
|
||||||
private float _sampleTime;
|
|
||||||
|
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
_sampleTime = 1;
|
_sampleTime = _sampleTimeSetting;
|
||||||
_udpManager.ReceivedNewUdpData += ProcessData;
|
_udpManager.ReceivedNewUdpData += ProcessData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +61,7 @@ public class ReceiveData : MonoBehaviour
|
||||||
|
|
||||||
private void ProcessData()
|
private void ProcessData()
|
||||||
{
|
{
|
||||||
_packages++;
|
_packagesReceived++;
|
||||||
_newPackages++;
|
_newPackages++;
|
||||||
ReceivedData = _udpManager.Data;
|
ReceivedData = _udpManager.Data;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
|
@ -97,9 +102,9 @@ public class ReceiveData : MonoBehaviour
|
||||||
{
|
{
|
||||||
if (_sampleTime < 0)
|
if (_sampleTime < 0)
|
||||||
{
|
{
|
||||||
_updateRate = _newPackages;
|
_updateRateHz = _newPackages;
|
||||||
_newPackages = 0;
|
_newPackages = 0;
|
||||||
_sampleTime = 1;
|
_sampleTime = _sampleTimeSetting;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue