Пример #1
0
        public NetworkMeasure Parse( )
        {
            NetworkMeasure measure = new NetworkMeasure();

            foreach (var task in tasks)
            {
                if (!task.IsCompleted)
                {
                    task.Wait();
                }

                Dictionary <NetworkMeasureProperty, string> values = task.Result;

                foreach (var value in values)
                {
                    try
                    {
                        measure.SetProperty(value.Key, value.Value);
                    }
                    catch (Exception ex)
                    {
                        throw new BadRequestConfigException("Request config node had bad values !", ex);
                    }
                }
            }
            tasks.Clear();
            return(measure);
        }
Пример #2
0
        public void addNetworkMonitor()
        {
            string httpUrl = "https://www.developer.huawei.com";
            // 1. Create a networkMeasure for this special network request
            NetworkMeasure networkMeasure = APMS.getInstance().createNetworkMeasure(httpUrl, "GET");

            NetworkPropertyTest(networkMeasure);
            // 2. Add custom property for this network measure
            networkMeasure.putProperty("activityName", "MainActivity");
            // 3. start this network measure
            Debug.Log("networkMeasure start");
            networkMeasure.start();

            networkMeasure.setBytesSent(1024);
            networkMeasure.setContentType("UTF-8");

            Debug.Log("start the fake url request process");
            for (int i = 0; i < 1024; i++)
            {
            }

            int bodysize = 1024;

            // 4. Set response body size for this network measure
            networkMeasure.setBytesReceived(bodysize);

            // 5. Set network response code for this network measure
            int responseCode = 400;

            networkMeasure.setStatusCode(responseCode);

            // 6. Stop this network measure
            networkMeasure.stop();
            Debug.Log("networkMeasure stop");
        }
Пример #3
0
        public void UpdateTextsData(NetworkMeasure data)
        {
            tbMainDisplay.Text = $"{data.TotalMonth.ToString(3)} / {data.TrafficMaxLimit}";

            double percents = Math.Round(data.TotalMonth / data.TrafficMaxLimit * 100, 4);

            tbPercents.Text   = $"{percents} %";
            progressBar.Value = percents;

            if (data.DownloadRate > Octet.FromMega(1))
            {
                tbNetUse.Text = "Un téléchargement est certainement en cours !";
            }
            else
            {
                tbNetUse.Text = "Utilisation normale de la bande passante.";
            }
        }
Пример #4
0
        public void NetworkPropertyTest(NetworkMeasure networkMeasure)
        {
            UnityEngine.Debug.Log("NetworkPropertyTest start");

            networkMeasure.putProperty("Unity", "unity.com");
            networkMeasure.putProperty("Group", "R&D");

            string value = networkMeasure.getProperty("Unity");

            Debug.Log("get prop name: Unity, value: " + value);

            networkMeasure.removeProperty("Unity");

            Map propertyMap = networkMeasure.getProperties();

            if (propertyMap != null)
            {
                UnityEngine.Debug.Log("NetworkPropertyTest success");
            }
        }
Пример #5
0
        public async void CustomNetworkEvent()
        {
            OkHttpClient okHttpClient = new OkHttpClient();
            Request      request      = new Request.Builder()
                                        .Url(CUSTOMURL)
                                        .Post(RequestBody.Create(Square.OkHttp3.MediaType.Parse("text/x-markdown; charset=utf-8"), REQUESTBODY))
                                        .Build();

            // Define custom network event
            NetworkMeasure networkMeasure = APMS.Instance.CreateNetworkMeasure(CUSTOMURL, "POST");

            networkMeasure.SetBytesSent(request.Headers().ByteCount());
            long bytesReceive = 0L;

            networkMeasure.Start();

            try
            {
                Response response = await okHttpClient.NewCall(request).ExecuteAsync();

                networkMeasure.SetStatusCode(response.Code());

                if (response.Body() != null)
                {
                    networkMeasure.SetBytesReceived(response.Body().ContentLength());
                    networkMeasure.SetContentType(response.Body().ContentType().ToString());
                    bytesReceive = DealResponseBody(response.Body());
                    response.Body().Close();
                }
                networkMeasure.PutProperty("Property", bytesReceive.ToString());
                networkMeasure.Stop();
            }
            catch (Exception ex)
            {
                networkMeasure.SetStatusCode(0);
                networkMeasure.PutProperty("Error Message", ex.Message);
                networkMeasure.PutProperty("Bytes", bytesReceive.ToString());
                networkMeasure.Stop();
            }
        }
Пример #6
0
        public void UpdateTextsData(NetworkMeasure newData, NetworkMeasure oldData)
        {
            //text

            tbDownTotal.Text = newData.CurrentDownload;
            tbUpTotal.Text   = newData.CurrentUpload;

            tbDownTraffic.Text = newData.DownloadRate;
            tbUpTraffic.Text   = newData.UploadRate;

            tbDownEv.Text = newData.CurrentDownload - oldData.CurrentDownload;
            tbUpEv.Text   = newData.CurrentUpload - oldData.CurrentUpload;

            tbHeaderEv.Text = "Evolution depuis " + oldData.DateTime.ToString("T");

            //start day
            lblStartDay.Content = newData.StartDay;


            //Days

            int daysInMonth = GetDaysBetween(DateTime.Now, DateTime.Now.AddMonths(1));

            int      startDay = newData.StartDay;
            DateTime now      = DateTime.Now;
            int      remainingDays;

            if (now.Day < startDay)
            {
                remainingDays = startDay - now.Day;
            }
            else
            {
                remainingDays = DateTime.DaysInMonth(now.Year, now.Month) - now.Day + startDay;
            }

            //At the start, the newData per day we have
            Octet newDataPerDay = newData.TrafficMaxLimit / daysInMonth;

            //Now, the newData remaining per remaining day
            Octet newDataRemainPerDay = (newData.TrafficMaxLimit - newData.TotalMonth) / remainingDays;


            this.lblDataPerDayStart.Content = newDataPerDay.ToString();

            this.lblDataPerDayRemain.Content = newDataRemainPerDay.ToString();

            if (newDataPerDay > newDataRemainPerDay)
            {
                this.lblDataPerDayRemain.Foreground = App.colorHighWarning;
            }
            else
            {
                this.lblDataPerDayRemain.Foreground = App.colorGood;
            }



            //colorization

            if (newData.DownloadRate > Octet.FromMega(5))
            {
                this.tbDownTraffic.Foreground = App.colorHighWarning;
            }
            else if (newData.DownloadRate > Octet.FromMega(1))
            {
                this.tbDownTraffic.Foreground = App.colorWarning;
            }
            else
            {
                this.tbDownTraffic.Foreground = App.colorNormalBlack;
            }

            if (newData.UploadRate > Octet.FromMega(2))
            {
                this.tbUpTraffic.Foreground = App.colorHighWarning;
            }
            else if (newData.UploadRate > Octet.FromKilo(500))
            {
                this.tbUpTraffic.Foreground = App.colorWarning;
            }
            else
            {
                this.tbUpTraffic.Foreground = App.colorNormalBlack;
            }

            int GetDaysBetween(DateTime start, DateTime stop) => (int)(stop - start).TotalDays;
        }