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