diff --git a/.gitmodules b/.gitmodules index 3c9275b..758d968 100644 --- a/.gitmodules +++ b/.gitmodules @@ -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 diff --git a/Assets/Modules/GameDev.CoreSystems b/Assets/Modules/GameDev.CoreSystems new file mode 160000 index 0000000..c82e496 --- /dev/null +++ b/Assets/Modules/GameDev.CoreSystems @@ -0,0 +1 @@ +Subproject commit c82e4960a869641c6937967614cb667e1f232380 diff --git a/Assets/Modules/GameDev.CoreSystems.meta b/Assets/Modules/GameDev.CoreSystems.meta new file mode 100644 index 0000000..facfab5 --- /dev/null +++ b/Assets/Modules/GameDev.CoreSystems.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fde4f49a306d5c444b9640418640f0a7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ReceiveData.cs b/Assets/Scripts/ReceiveData.cs index 349ff9a..781f1d5 100644 --- a/Assets/Scripts/ReceiveData.cs +++ b/Assets/Scripts/ReceiveData.cs @@ -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()