/// <summary>
        /// This function is call before init to recording and prepare the system to upload the image on the web server, also it prepare the reference to the object use during acquisition
        /// </summary>
        /// <param name="streamId">the UUID of the stream given by the data elaboration server</param>
        /// <param name="callbackOnFrameSendError">Fucntion call when frame send encounter in a error</param>
        public string InitAcquisition(string streamId, ImageSendingSocket.OnFrameSendingError callbackOnFrameSendError, ImageSendingSocket.OnSocketClose callbackOnSocketClose)
        {
            this.streamID   = streamId;
            cameraTransform = Camera.main.GetComponent <Transform>();
            worldPose       = FindObjectOfType <ARCoreWorldOriginHelper>().WorldPose;
            trsmatrix       = Matrix4x4.TRS(worldPose.position, worldPose.rotation, new Vector3(1, 1, 1));
            frameAcquired.Clear();

            if (sendingSocket == null)
            {
                this.callbackOnSocketClose = callbackOnSocketClose;
                sendingSocket = ImageSendingSocket.Instance;
                ulong bandwidthUsage = 0;
                if (Settings.Settings.Instance.ReservedBandwidth != 0)
                {
                    bandwidthUsage = Convert.ToUInt64(NetworkPerformance.Bandwidth * (1 - ((float)Settings.Settings.Instance.ReservedBandwidth / 100)));
                }

                Debug.Log("Bandwidth used during image sending: " + bandwidthUsage + " - Total bandwidth measure: " + NetworkPerformance.Bandwidth);
                if (streamId == "")
                {
                    string createStreamID = sendingSocket.InitConnectionAsHost(Settings.Settings.Instance.ElaborationServerAddress, Settings.Settings.Instance.ElaborationServerPort, SystemInfo.deviceUniqueIdentifier, bandwidthUsage, (uint)NetworkingManager.Singleton.ConnectedClientsList.Count, callbackOnFrameSendError, OnSocketClose);
                    return(createStreamID);
                }
                else
                {
                    sendingSocket.InitConnectionAsClient(Settings.Settings.Instance.ElaborationServerAddress, Settings.Settings.Instance.ElaborationServerPort, SystemInfo.deviceUniqueIdentifier, bandwidthUsage, streamId, callbackOnFrameSendError, OnSocketClose);
                    return(streamId);
                }
            }
            return("");
        }
Exemple #2
0
 public void InitAcquisition(double acquisitionDelay, string streamId, ImageSendingSocket.OnSocketClose callbackOnSocketClose)
 {
     acquisitionQueue      = new Queue <FrameToAcquire>();
     imageDelayAcquisition = acquisitionDelay;
     Debug.Log("Acquisition Delay: " + imageDelayAcquisition);
     if (stopAcquisition)
     {
         acquisitionController.StopAcquisition(0);
     }
     acquisitionController = this.GetComponent <AcquisitionController>();
     acquisitionController.InitAcquisition(streamId, OnFrameSendError, callbackOnSocketClose);
     stopAcquisition = false;
 }
Exemple #3
0
 public string InitHost(ImageSendingSocket.OnSocketClose callbackOnSocketClose)
 {
     acquisitionController = this.GetComponent <AcquisitionController>();
     return(acquisitionController.InitAcquisition("", OnFrameSendError, callbackOnSocketClose));
 }