示例#1
0
 // ****************  4 перегруженных функции для записи лог-файлов   ********************************
 // Запись в указанный файл
 public void MyLog(string myRecName, String myInfo)
 {
     if (_ComPars.WriteLog)
     {
         int myCurrentTime = _Time.CurrentTime();
         _RecFile[myRecName].WriteLine(myInfo.Replace(".", ",") + " CurrentTime = " + myCurrentTime);
     }
 }
示例#2
0
    // Запросить в Интернете, получить, и записать полетные данные в текстовую строку
    public IEnumerator GetWebData()
    {
        long myWebRequestTime  = 0;
        int  myWebRequestCount = 0;
        int  myDataTraffic     = 0;

        yield return(new WaitForEndOfFrame());

        _Record.MyLog("RawData", "@@@ GetWebData(): Начну выполнять запросы через ~ 1 секунду");
        yield return(new WaitForSeconds(1));

        _Record.MyLog("RawData", "@@@ GetWebData(): Подождали 1 секунду, начинаем");

        while (true)
        {
            myWebRequestTime = _Time.CurrentTime();
            _Record.MyLog("RawData", "@@@ GetWebData(): Начинаю запрос. Время = " + myWebRequestTime + " myURL = " + _ComPars.URL);

            // Готовим запрос
            UnityWebRequest myRequest = UnityWebRequest.Get(_ComPars.URL);
            // Выполняем запрос и получаем ответ
            yield return(myRequest.SendWebRequest());

            // Зафиксируем время ответа и интервал времени от предыдущего ответа
            ResponseTime = _Time.CurrentTime(); // Время получения данных от сервера


            myWebRequestTime = ResponseTime - myWebRequestTime; // Время, которое выполняли запрос и получали ответ
            myWebRequestCount++;                                // Номер запроса

            if (myRequest.isNetworkError || myRequest.isHttpError)
            {
                _Record.MyLog("RawData", "@@@ GetWebData(): Запрос не выполнен. Номер запроса = " + myWebRequestCount + " Время на запрос/ответ = " + myWebRequestTime);
                _Record.MyLog("RawData", "@@@ GetWebData(): Ошибка " + myRequest.error + " Продолжу работать через ~3 секунды");
                yield return(new WaitForSeconds(3));
            }
            else
            {
                // Results as text
                ResponseStr = myRequest.downloadHandler.text;
                _Record.WebData("OpenSky", ResponseStr);
                // Установим флаг "Имеются новые необработанные данные"
                NewData = true;
                // Отчитаемся о результатах запроса
                myDataTraffic += ResponseStr.Length;
                _Record.MyLog("RawData", "@@@ GetWebData(): Запрос выполнен. NewData = " + NewData + " Номер запроса = " + myWebRequestCount + " Время прихода ответа = " + ResponseTime + " Время на запрос/ответ = " + myWebRequestTime + " Получена строка длиной = " + ResponseStr.Length + " Общий траффик авиаданных = " + myDataTraffic);
                _Record.MyLog("RawData", "@@@ GetWebData(): " + ResponseStr);
            }

            myRequest.Dispose(); // завершить запрос, освободить ресурсы

            // Переждать до конца рекомендованного времени цикла, секунд (если запрос занял времени меньше)
            float myWaitTime = Mathf.Max(0.0f, (_WebCycleTime - myWebRequestTime / 1000.0f));
            _Record.MyLog("RawData", "@@@ GetWebData(): Переждем до следующего запроса секунд: " + myWaitTime + ".");
            yield return(new WaitForSeconds(myWaitTime));

            _Record.MyLog("RawData", "@@@ GetWebData(): Переждали еще секунд: " + myWaitTime + " Буду делать следующий запрос");
        }
    }