// **************** 4 перегруженных функции для записи лог-файлов ******************************** // Запись в указанный файл public void MyLog(string myRecName, String myInfo) { if (_ComPars.WriteLog) { int myCurrentTime = _Time.CurrentTime(); _RecFile[myRecName].WriteLine(myInfo.Replace(".", ",") + " CurrentTime = " + myCurrentTime); } }
// Запросить в Интернете, получить, и записать полетные данные в текстовую строку 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 + " Буду делать следующий запрос"); } }