Using ScriptableObjects

This commit is contained in:
Stedd 2023-10-28 18:10:35 +02:00
parent 274fe0f003
commit d8612d7d35
4 changed files with 67 additions and 52 deletions

3
.gitmodules vendored
View File

@ -1,3 +1,6 @@
[submodule "Assets/Modules/GameDev.UDP"]
path = Assets/Modules/GameDev.UDP
url = https://gitea.strixhab.net/Stedd/GameDev.UDP.git
[submodule "Assets/Modules/GameDev.CoreSystems"]
path = Assets/Modules/GameDev.CoreSystems
url = https://gitea.strixhab.net/Stedd/GameDev.CoreSystems.git

@ -0,0 +1 @@
Subproject commit c82e4960a869641c6937967614cb667e1f232380

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fde4f49a306d5c444b9640418640f0a7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,6 @@
using System;
using GameDev.UDP;
using ScriptableObjectArchitecture;
using UnityEngine;
using UnityEngine.Serialization;
@ -21,32 +22,33 @@ public class ReceiveData : MonoBehaviour
private float _sampleTime;
[field: Header("ReceivedData")]
[field: SerializeField] private byte Watchdog { get; set; }
[field: SerializeField] private byte States { get; set; }
[field: SerializeField] private int M1SpeedCmd { get; set; }
[field: SerializeField] private int M2SpeedCmd { get; set; }
[field: SerializeField] private float AccelerometerPitch { get; set; }
[field: SerializeField] private float FilteredPitch { get; set; }
[field: SerializeField] private float PitchRate { get; set; }
[field: SerializeField] private float RemSpeedRef { get; set; }
[field: SerializeField] private float RemTurnSpeedRef { get; set; }
[field: SerializeField] private float ScContOut { get; set; }
[field: SerializeField] private float TcContOut { get; set; }
[field: SerializeField] private float OlContOut { get; set; }
[field: SerializeField] private float RefIL { get; set; }
[field: SerializeField] private float ActIL { get; set; }
[field: SerializeField] private float ErrorIL { get; set; }
[field: SerializeField] private float ILContOut { get; set; }
[field: SerializeField] private float IerrorIL { get; set; }
[field: SerializeField] private float ILAntiWindup { get; set; }
[field: SerializeField] private float SpeedCmd1 { get; set; }
[field: SerializeField] private float SpeedCmd2 { get; set; }
[field: SerializeField] private float BotLinVel { get; set; }
[field: SerializeField] private float BotAngVel { get; set; }
[field: SerializeField] private float LeftMotorAngVel { get; set; }
[field: SerializeField] private float RightMotorAngVel { get; set; }
[field: SerializeField] private int M1Raw { get; set; }
[field: SerializeField] private int M2Raw { get; set; }
[field: SerializeField] private ByteReference Watchdog { get; set; }
[field: SerializeField] private ByteReference States { get; set; }
[field: SerializeField] private IntReference M1SpeedCmd { get; set; }
[field: SerializeField] private IntReference M2SpeedCmd { get; set; }
[field: SerializeField] private FloatReference AccelerometerPitch { get; set; }
[field: SerializeField] private FloatReference FilteredPitch { get; set; }
[field: SerializeField] private FloatReference PitchRate { get; set; }
[field: SerializeField] private FloatReference RemSpeedRef { get; set; }
[field: SerializeField] private FloatReference RemTurnSpeedRef { get; set; }
[field: SerializeField] private FloatReference ScContOut { get; set; }
[field: SerializeField] private FloatReference TcContOut { get; set; }
[field: SerializeField] private FloatReference OlContOut { get; set; }
[field: SerializeField] private FloatReference RefIL { get; set; }
[field: SerializeField] private FloatReference ActIL { get; set; }
[field: SerializeField] private FloatReference ErrorIL { get; set; }
[field: SerializeField] private FloatReference ILContOut { get; set; }
[field: SerializeField] private FloatReference IerrorIL { get; set; }
[field: SerializeField] private FloatReference ILAntiWindup { get; set; }
[field: SerializeField] private FloatReference SpeedCmd1 { get; set; }
[field: SerializeField] private FloatReference SpeedCmd2 { get; set; }
[field: SerializeField] private FloatReference BotLinVel { get; set; }
[field: SerializeField] private FloatReference BotAngVel { get; set; }
[field: SerializeField] private FloatReference LeftMotorAngVel { get; set; }
[field: SerializeField] private FloatReference RightMotorAngVel { get; set; }
[field: SerializeField] private IntReference M1Raw { get; set; }
[field: SerializeField] private IntReference M2Raw { get; set; }
[field: SerializeField] private IntReference Millis { get; set; }
private void OnEnable()
{
@ -65,32 +67,33 @@ public class ReceiveData : MonoBehaviour
_newPackages++;
ReceivedData = _udpManager.Data;
var i = 0;
Watchdog = ReceivedData[i];
States = ReceivedData[i += 1];
M1SpeedCmd = BitConverter.ToInt16(ReceivedData, i += 1);
M2SpeedCmd = BitConverter.ToInt16(ReceivedData, i += 2);
AccelerometerPitch = BitConverter.ToSingle(ReceivedData, i += 2);
FilteredPitch = BitConverter.ToSingle(ReceivedData, i += 4);
PitchRate = BitConverter.ToSingle(ReceivedData, i += 4);
RemSpeedRef = BitConverter.ToSingle(ReceivedData, i += 4);
RemTurnSpeedRef = BitConverter.ToSingle(ReceivedData, i += 4);
ScContOut = BitConverter.ToSingle(ReceivedData, i += 4);
TcContOut = BitConverter.ToSingle(ReceivedData, i += 4);
OlContOut = BitConverter.ToSingle(ReceivedData, i += 4);
RefIL = BitConverter.ToSingle(ReceivedData, i += 4);
ActIL = BitConverter.ToSingle(ReceivedData, i += 4);
ErrorIL = BitConverter.ToSingle(ReceivedData, i += 4);
ILContOut = BitConverter.ToSingle(ReceivedData, i += 4);
IerrorIL = BitConverter.ToSingle(ReceivedData, i += 4);
ILAntiWindup = BitConverter.ToSingle(ReceivedData, i += 4);
SpeedCmd1 = BitConverter.ToSingle(ReceivedData, i += 4);
SpeedCmd2 = BitConverter.ToSingle(ReceivedData, i += 4);
BotLinVel = BitConverter.ToSingle(ReceivedData, i += 4);
BotAngVel = BitConverter.ToSingle(ReceivedData, i += 4);
LeftMotorAngVel = BitConverter.ToSingle(ReceivedData, i += 4);
RightMotorAngVel = BitConverter.ToSingle(ReceivedData, i += 4);
M1Raw = BitConverter.ToInt32(ReceivedData, i += 4);
M2Raw = BitConverter.ToInt32(ReceivedData, i += 4);
Watchdog.Value = ReceivedData[i];
States.Value = ReceivedData[i += 1];
M1SpeedCmd.Value = BitConverter.ToInt16(ReceivedData, i += 1);
M2SpeedCmd.Value = BitConverter.ToInt16(ReceivedData, i += 2);
AccelerometerPitch.Value = BitConverter.ToSingle(ReceivedData, i += 2);
FilteredPitch.Value = BitConverter.ToSingle(ReceivedData, i += 4);
PitchRate.Value = BitConverter.ToSingle(ReceivedData, i += 4);
RemSpeedRef.Value = BitConverter.ToSingle(ReceivedData, i += 4);
RemTurnSpeedRef.Value = BitConverter.ToSingle(ReceivedData, i += 4);
ScContOut.Value = BitConverter.ToSingle(ReceivedData, i += 4);
TcContOut.Value = BitConverter.ToSingle(ReceivedData, i += 4);
OlContOut.Value = BitConverter.ToSingle(ReceivedData, i += 4);
RefIL.Value = BitConverter.ToSingle(ReceivedData, i += 4);
ActIL.Value = BitConverter.ToSingle(ReceivedData, i += 4);
ErrorIL.Value = BitConverter.ToSingle(ReceivedData, i += 4);
ILContOut.Value = BitConverter.ToSingle(ReceivedData, i += 4);
IerrorIL.Value = BitConverter.ToSingle(ReceivedData, i += 4);
ILAntiWindup.Value = BitConverter.ToSingle(ReceivedData, i += 4);
SpeedCmd1.Value = BitConverter.ToSingle(ReceivedData, i += 4);
SpeedCmd2.Value = BitConverter.ToSingle(ReceivedData, i += 4);
BotLinVel.Value = BitConverter.ToSingle(ReceivedData, i += 4);
BotAngVel.Value = BitConverter.ToSingle(ReceivedData, i += 4);
LeftMotorAngVel.Value = BitConverter.ToSingle(ReceivedData, i += 4);
RightMotorAngVel.Value = BitConverter.ToSingle(ReceivedData, i += 4);
M1Raw.Value = BitConverter.ToInt32(ReceivedData, i += 4);
M2Raw.Value = BitConverter.ToInt32(ReceivedData, i += 4);
Millis.Value = BitConverter.ToInt32(ReceivedData, i += 4);
}
private void FixedUpdate()