コード例 #1
0
        /// <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("");
        }
コード例 #2
0
 /// <summary>
 ///  Callback for the socket, reset all the reference to the socket
 /// </summary>
 /// <param name="totalFrameSend">How many frame socket send during the activity</param>
 private void OnSocketClose(long totalFrameSend)
 {
     sendingSocket   = null;
     cameraTransform = null;
     this.callbackOnSocketClose?.Invoke(totalFrameSend);
 }