From c230cac4cbd103b8edaefe2dc29301c28ef7a0ee Mon Sep 17 00:00:00 2001 From: Jon Gunnar Fossum <jon.gunnar.fossum@gmail.com> Date: Sat, 1 May 2021 13:24:34 +0200 Subject: [PATCH] Add UDPCameraSender script This sript takes the feed from the clients camera and converts it to pixel data. It is then supposed to ssend that data to the edge server, but that has not ben successful yet. --- Frontend/5G-WAR-Frontend/Assets/Scripts.meta | 8 +++ .../Assets/Scripts/UDPCameraSender.cs | 66 +++++++++++++++++++ .../Assets/Scripts/UDPCameraSender.cs.meta | 11 ++++ 3 files changed, 85 insertions(+) create mode 100644 Frontend/5G-WAR-Frontend/Assets/Scripts.meta create mode 100644 Frontend/5G-WAR-Frontend/Assets/Scripts/UDPCameraSender.cs create mode 100644 Frontend/5G-WAR-Frontend/Assets/Scripts/UDPCameraSender.cs.meta diff --git a/Frontend/5G-WAR-Frontend/Assets/Scripts.meta b/Frontend/5G-WAR-Frontend/Assets/Scripts.meta new file mode 100644 index 0000000..d8e2b45 --- /dev/null +++ b/Frontend/5G-WAR-Frontend/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b8121de81bb8824c847588025c8509b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Frontend/5G-WAR-Frontend/Assets/Scripts/UDPCameraSender.cs b/Frontend/5G-WAR-Frontend/Assets/Scripts/UDPCameraSender.cs new file mode 100644 index 0000000..4953af6 --- /dev/null +++ b/Frontend/5G-WAR-Frontend/Assets/Scripts/UDPCameraSender.cs @@ -0,0 +1,66 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Net.Sockets; +using System.Text; + +public class UDPCameraSender : MonoBehaviour +{ + private WebCamTexture camTexture = new WebCamTexture(); + private UdpClient udpClient = new UdpClient(); + + // Start is called before the first frame update + void Start() + { + // TODO: REQUEST CAMERA PERMISSION!! + + // OLD IMPLEMENTATION + var devices = WebCamTexture.devices; + if (devices.Length < 1) throw new System.Exception("No webcams was found"); + + camTexture.deviceName = devices[0].name; + foreach(var camDevice in devices) + { + if (camDevice.isFrontFacing) + { + camTexture.deviceName = camDevice.name; + break; + } + } //*/ + + } + + // Update is called once per frame + void Update() + { + + } + + public void SendCamToEdge() + { + //try + { + // Define target + udpClient.Connect("192.0.0.0", 6767); + // convert Texture to jpeg + + var tex2DData = Convert_WebCamTexture_To_Texture2d(camTexture); + //camTexture.GetPixels32(); + //ImageConversion.EncodeArrayToJPG( */ + + + // Send image + //byte[] sendbytes = Encoding.UTF8.GetBytes(); + + //udpClient.SendAsync() + } + } + + private Texture2D Convert_WebCamTexture_To_Texture2d(WebCamTexture _webCamTexture) + { + Texture2D _texture2D = new Texture2D(_webCamTexture.width, _webCamTexture.height); + _texture2D.SetPixels32(_webCamTexture.GetPixels32()); + + return _texture2D; + } +} diff --git a/Frontend/5G-WAR-Frontend/Assets/Scripts/UDPCameraSender.cs.meta b/Frontend/5G-WAR-Frontend/Assets/Scripts/UDPCameraSender.cs.meta new file mode 100644 index 0000000..c455ac1 --- /dev/null +++ b/Frontend/5G-WAR-Frontend/Assets/Scripts/UDPCameraSender.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8fa575f5b18c5d046b8923a8cc048bcb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- GitLab