Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Программа работы с бытовыми навигаторами в практике геодезиста

Тема в разделе "Другие программы", создана пользователем sklimkim, 30 дек 2010.

  1. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    ИСПРАВЛЕНИЯ (уже!):
    Прошу прощения, в режиме без записи в файлы программа обращалась к несуществующему файлу и падала. Вот исправленный вариант:
    (Добавление)
    Здравстуйте коллега и тезка!
    Спасибо за выложенный пример. Я долго искал нечто подобное.

    Спецификацию РИНЕКС-протокола я читал и не раз, но ответов на свои вопросы не увидел.
    Ваши комментарии всегда внятны, поэтому, если не возражаете, у меня есть вопросы.

    Вот 2 блока данных:
    3 4
    000 MARKER NAME
    1 MARKER NUMBER
    2.1000 0.0000 0.0000 ANTENNA: DELTA H/E/N
    --> THIS IS THE START OF A NEW SITE <-- COMMENT
    11 5 23 8 18 51.0000000 0 10 2 16 4 20 13 7 23 30 10R83

    2 1
    --> START OF KINEMATIC DATA <-- COMMENT
    11 5 23 8 19 51.0000000 0 10 2 16 4 20 13 7 23 30 10R83

    В заголовка файла MARKER NAME=2322, а здесь MARKER NAME=000 (и далее инкрементно до 031).
    В заголовка файла MARKER NUMBER=<NONE>, а здесь MARKER NUMBER=1 (и далее инкрементно до 32).
    Это особенности программы приемника + конвертера?
    Но не это главное. Между этими блоками 60 сек. и 60 записей приемника в РИНЕКС.

    START OF A NEW SITE - это начало новой станции для РИНЕКСА?
    Последующие (до START OF KINEMATIC DATA) есть что?
    Как их понимает и что с ними должна делать программа постобработки?

    После START OF KINEMATIC DATA
    11 5 23 8 19 51.0000000 -- 11 5 23 8 23 49.0000000 без малого 4 мин измерений.
    Каждая секунда/эпоха пишет что? Некую точку на трассе из ~240 точек или что-то иное?
    Как их понимает и что с ними должна делать программа постобработки?

    РИНЕКС-строки 3 4 и 2 1 кодируют что?

    В первой строке каждой эпохи
    11 5 23 7 58 28.0000000 0 11 32 2 16 4 20 13 7 23 30 10R83
    после секунд (28.0000000) стоит 0 - я вычитал (протокол РИНЕКС), что это флаг эпохи.

    Перечитывая протокол РИНЕКС я записал себе (даже в main.c):
    EpochFlag - флaг тeкущeй эпoxи (для СТАТИКИ = 0, изменять: для КИНЕМАТИКИ = 2 для OnTheFly = 5 (при начале движения и переходе к кинематике)

    Простите великодушно за обилие вопросов. Я хочу научить свою программу правильно писать в РИНЕКС обычную топо-съемку.
     

    Вложения:

    #161
  2. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Для chnav

    В приемниках на SirfStar-II и SirfStar-III бинарные данные имеют различия в представлении (и декдировании соответственно) не только для float и double, но и для integer и short integer (даже 1-байтовые данные представлены по разному - например MID-28 SincFlag).

    Вот что пришлось делать:
    void ParsingSirfStarMessages(int MessageNum)
    {
    ... ...
    dblNum = bRoll(8); // для SirfStar double и float требуется перестановка байтов
    memcpy(&dMsg, dblNum, 8);
    MID1C.PR = dMsg; // Pseudo Range (m)
    ......
    memcpy(&ucMsg, &ByteArray, 1);
    MID1C.SincFlags = ucMsg; //
    binflags = tobin(MID1C.SincFlags); // преобразовать байт в стоку битов
    strcpy(strTmp, binflags);
    ......
    }

    BYTE* bRoll(unsigned int numBytes)
    {
    unsigned char* dblNum;
    BYTE dblBytes[8];

    if (!blnSS3) // for SirfStar-II
    {
    if (numBytes == 8)
    {
    dblBytes[0] = ByteArray[i+7]; dblBytes[1] = ByteArray[i+6];
    dblBytes[2] = ByteArray[i+5]; dblBytes[3] = ByteArray[i+4];
    dblBytes[4] = ByteArray[i+3]; dblBytes[5] = ByteArray[i+2];
    dblBytes[6] = ByteArray[i+1]; dblBytes[7] = ByteArray;
    }
    if (numBytes == 4)
    {
    dblBytes[0] = ByteArray[i+3]; dblBytes[1] = ByteArray[i+2];
    dblBytes[2] = ByteArray[i+1]; dblBytes[3] = ByteArray;
    }
    if (numBytes == 2)
    {
    dblBytes[0] = ByteArray[i+1]; dblBytes[1] = ByteArray;
    }
    dblNum = dblBytes;
    return dblNum;
    }

    if (blnSS3) // for SirfStar-III
    {
    if (numBytes == 8)
    {
    dblBytes[0] = ByteArray[i+3]; dblBytes[1] = ByteArray[i+2];
    dblBytes[2] = ByteArray[i+1]; dblBytes[3] = ByteArray;
    dblBytes[4] = ByteArray[i+7]; dblBytes[5] = ByteArray[i+6];
    dblBytes[6] = ByteArray[i+5]; dblBytes[7] = ByteArray[i+4];
    }
    if (numBytes == 4)
    {
    dblBytes[0] = ByteArray[i+3]; dblBytes[1] = ByteArray[i+2];
    dblBytes[2] = ByteArray[i+1]; dblBytes[3] = ByteArray;
    }
    if (numBytes == 2)
    {
    dblBytes[0] = ByteArray[i+1]; dblBytes[1] = ByteArray;
    }
    dblNum = dblBytes;
    return dblNum;
    }
    } // End Function bRoll()

    char* tobin(BYTE b)
    {
    char res[] = " ";
    int k=0;
    for (int i = 8 - 1; i >= 0; i--, k++)
    {
    if ((b & (1 << i)) != 0)
    res[k] = '1';
    else
    res[k] = '0';
    }
    return res;
    }

    chnav ! Поправьте меня, если что не так. И еще: как интерпретировать биты из MID-28 SincFlag, не могу понять.
     
    #162
  3. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    #163
  4. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Обновленная версия программы работы с БЫТОВЫМИ приемниками/навигаторами Garmin-SirfStar и GlobalSat-SirfStar с чипсетами SirfStar-II и SirfStar-III под ОС Windows-XP.
    Изменения/дополнения см. в файле INFO.txt
    Хотелось бы услышать и увидеть результаты полевого тестирования и даже постобработки (если получится) от геодезистов.

    P.S.
    По записи в RINEX-OBS файл информации об изменении высоты антенны (реальная необходимость при кинематической съемке) и кодировании точек, снимаемых в кинематике (а это очень привлекательно), я уже не раз задавал вопрос на этой и других конференциях. Но "знатоки" на него не захотели (не смогли?) ответить.
    Пришлось ответить самому. Посмотрите эти строки в RINEX-файлах в следующем прилагаемом LOG-архиве GNSS-Monitor2_LOG-files.zip
    Возможно я и не прав, пусть выскажутся те, кто понимает вопрос.
     

    Вложения:

    #164
  5. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    А это файлы-примеры работы программы GNSSmonitor2_WinXP с теми приборами, которые смог подключить.
    То есть по каждому приемнику/навигатору:
    - бинарный файл,
    - файл парсинга бинарных сообщений,
    - RINEX-OBS файл,
    - файл вычисленных геоцентрических координат точек по каждой эпохе,
    - файл усредненных геоцентрических координат для каждой кодированной точки.

    А для самых пытливых файл диалога программы с приемником (через COM-порт) - запрос/ответ в формате HTM, записанный программой Free Serial Port Monitor
    Этот файл можно посмотреть в web-браузере. В нем команды программы приемнику и ответы приемника в 16-ричном представлении. Может представлять интерес для программистов.

    P.S.
    Эти файлы ТОЛЬКО ПРИМЕРЫ. Запись велась с балкона дома - с одной стороны стена дома, с другой - деревья в листве. Поэтому спутников мало, записи "рваные".
    Те кто заинтересован и имеет возможность, запишите свои файлы в поле (желательно на точках с известными координатами в системе WGS) и опубликуйте их здесь.
     

    Вложения:

    #165
  6. fiascko

    Форумчанин

    Регистрация:
    12 окт 2008
    Сообщения:
    292
    Симпатии:
    1
    Адрес:
    Россия,Владимирская обл
    У меня есть возможность выехать на полигон, постоять на точках с известными координатами в СК 42, но нет 2 ноутбуков. Если бы Ваша программа (конечно, я понимаю, что это трудно) была перекомпилирована на WMobile, я бы с удовольствием съездил в поле.
     
    #166
  7. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Я этим сейчас и занимаюсь. Универсальной на все мобайлы пока не получается.
    Уточните версию на Вашем девайсе: Windows-2003 (v4.2), Mobille-5, Mobile-6.
     
    #167
  8. fiascko

    Форумчанин

    Регистрация:
    12 окт 2008
    Сообщения:
    292
    Симпатии:
    1
    Адрес:
    Россия,Владимирская обл
    у меня на всех КПК-шках WM 6.
     
    #168
  9. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Это версия программы для работы под ОС Win-CE/Mobile.
    Проверена работа с наладонниками под ОС 2002, 5 и 6.
    Время от старта программы до ее готовности к записи данных от 10 до 20 сек, в зависимости от модели приемника. ОСОБОЕННО критично время между стартом приемника и стартом программы. Приемник должен набрать некоторое количество данных (3d-фиксация, эфемериды спутников).
    Поэтому не стоит судорожно тыкать в кнопки, лучше подождать сообщения программы о том что все необходимые данные получены и можно нажать кнопку "ACCEPT".
    Если программа запущена, а приемник еще не "определился" в пространстве, то будет тихое завершение работы программы.
    В одном архиве с программой лежат примеры ее работы с 5 разными приемниками.

    Несколько слов о халяве.
    Не только бесплатного сыра не бывает. За все так, или иначе приходится платить.
    В данном случае платой будут (надеюсь) ваши файлы работы программы в поле, а также замечания/соображения о том, как лучше представить выходные данные для последующей их обработки. Обработки не только в программах постобработки от известных фирм, но и в некоторых самоделках принимающих данные из выходного файла координат (точек) и загружающего их в ....CAD в виде точек, полилиний (треков) и текстов-кодов точек. Тут я еще не все продумал.
    Особенно важно/интересно как представлять в RINEX файле данные съемки коды точек.
     

    Вложения:

    #169
  10. eshilov

    Регистрация:
    17 май 2011
    Сообщения:
    19
    Симпатии:
    3
    Начал тестировать kinematic на только что приобретенном б/у magellan triton 2000. Запускаю переименованием в tocopy.exe.
    Первое замечание: у всех созданных файлов дата создания 14,04,2006 и время примерно одинаковое для всех- чего не может быть.
    Второй момент: Непонятно пока почему иногда при переключении на магеланновскую программу. прибор не видит спутники. галку "переключить на nmea при выходе"поставил.
    А так спасибо. файлы собираются. У меня до базы 244 километра. Решение получается 0,5 метра большинство. Один раз получилось 1,7 метра причем количество эпох было больше чем в других файлах. Продолжаю изучать.
     
    #170
  11. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Оффтоп
    Вставка "пятачка" ::smile24.gif:: - Нельзя ли сделать шапку этой ветки и туда сложить варианты проги, инстукции и т.д. что не рыскать по всем страницам?
     
    #171
  12. eshilov

    Регистрация:
    17 май 2011
    Сообщения:
    19
    Симпатии:
    3
    Чето ерунда получается. разница между записями с одного места в разное время достигает десятков метров. Я чето не догоняю видимо. Наверное база далеко.
    Хотя не 40 метров же разбег. Записи какието рваные получаются. Скриншот приложил. Обрабатываю в topcon tools 7.1.Записываю kinematic-ом 0.11


    (Добавление)
    На тритоне как не бился, GNSS-Monitor2 запустить не получилось.
     

    Вложения:

    • сеанс.jpg
      сеанс.jpg
      Размер файла:
      35,5 КБ
      Просмотров:
      607
    #172
  13. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Палыч, я бы сделал, но не знаю как. Может-быть модератора попросим?

    Не смог "побороть" майкросовтовский крестик закрытия программы в ОС WinCE/Mobile, а еще одну кнопку для закрытия некуда вставлять. Этот крестик и заголовок главного окна по-разному ведут себя под разными ОС. Поэтому сделал 2 варианта (в основном из-за навигатора Mitac MIO C520).

    Подскажите кто знает, что делать с фазой полученной с SirfStar-II, она выдается в метрах, а в RINEX-OBS по-моему надо показывать ее в циклах. С Garmin все ясно - там фаза в циклах. Если кто надумает ответить, то пожалуйста правильную формулу пересчета, а не "блям-блям".
    Сравниваю свои файлы с файлами программы chnav и вижу разницу также в измерении DOPLER - его я пишу в PINEX таким, как в описании протокола SirfStar, а надо вероятно переводить из метров в Герцы. Может chnav прояснит ситуацию. Плохо я знаю SirfStar.

    Если из-за фазы в метрах будет каша, то отключите фазовые измерения уже в программе постобработки - пусть останется только кодовое измерение, пока не прояснится с пересчетом.

    Выкладываю подработанные файлы программы для ОС Win-Desktop и Win-CE/Mobile.
     

    Вложения:

    #173
  14. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    Отправил на форум и следом увидел ошибку. Извините, исправляю.
     

    Вложения:

    #174
  15. eshilov

    Регистрация:
    17 май 2011
    Сообщения:
    19
    Симпатии:
    3
    Отвечаю сам себе, вроде разобрался: магеланновская программа работает на скорости 9200 в nmea режиме.
    следовательно такие настройки и ставить в kinematik.- в разделе "переключить на nmea при выходе"
     
    #175
  16. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    О Доплере замолвите слово!

    Garmin & SirfStar-II chipsets (eTrex, GPS72, GPSMap60) Message_16 (decimal 22):
    ======================================================
    ' из DeltaPR получается Doppler=DeltaPR/Lambda, Lambda=c/L1, c=2.99792458, L1=1575420000
    Const Lambda = 0.19029367279836488047631742646405
    DeltaPR As Single ' Delta_Pseudorange_rate (m/s) - 32 bit

    и получаются доплеры такого порядка: 35000.000 Hz

    GlobalSat & SirfStar-II SirfStar-III chipsets (BT-3xx, ...) Message_1C (decimal 28):
    ======================================================
    // 1. Carrier frequency may be interpreted as the measured Doppler on the received signal.
    // The value is reported in metres per second but can be converted to hertz using the Doppler equation:
    // Doppler frequency / Carrier frequency = Velocity / Speed of light, where Doppler frequency is in Hz; Carrier frequency =
    // 1,575,420,000 Hz; Velocity is in m/s; Speed of light = 299,792,458 m/s.

    const float KDOPLER = 5.255035469; // Carrier frequency / Speed of light = 1575420000 Hz / 299792458 m/s
    if (MID1C.CountPhErr==0 && MID1C.CountLPow==0)
    Dopler[MID1C.SVID] = MID1C.C1 * KDOPLER; // Carrier-Frequency (m/Sec) --> Doppler frequency (Hz)

    и получаются доплеры несколько иного порядка: 95000.000 Hz

    Так как правильно вычислять эти доплеры, кто объяснит?

    Об эфемеридах спутников
    =================
    Эфемериды спутников В НАЧАЛЕ работы программы выдают приборы SirfStar-II и совсем не хотят выдавать их приборы SirfStar-III.
    В случае постобработки сессии (и статики и кинематики) эфемериды можно взять из интернета и тогда они не нужны в программе.
    Но если днем сделана съемка, а вечером ее надо обработать, то интернет не поможет - там еще нет данных от различных базовых станций.
    Поправки к измеренным "ровером" точкам "база" может вычислять опираясь на ТЕКУЩИЕ ЭФЕМЕРИДЫ.
    Изменение будет такое: программа после нажатия кнопки "STOP" запрашивает эфемериды, записывает их в конце бинарного файла и только потом завершает работу.
    Из приемников Garmin GPS25/35 я получал эфемериды и из них программа делала RINEX-NAV файл.
    Так нужны, или не нужны эти эфемериды?

    Об "устаревших" навигаторах
    ==========================
    Так случилось, что купил я первым навигатор Garmin GPSMap 60cx - за красоту. Хороший прибор, но никаких "сырых" данных не выдает.
    Это особенность Гармина+СирфСтара при переходе с чипсета SirfStar-II на чипсет SirfStar-III.
    Потом купил приемник Garmin GPS-35 на чипсете SirfStar-II. Его бинарный протокол совершенство для постобработки, всего 2 сообщения общим размером 300 байт.
    Но в этих байтах есть и псевдодальность и фаза и доплер, а также позиция и скорости вычисленные приемником. Но нет дисплея и входа для внешней антенны.
    Я проштудировал, что выпускает Гармин на SirfStar-II и купил навигаторы GPS-72 и eTrex Venture, а хотелось GPSMap60 (без всяких буковок).
    В первых двух нет разъема для внешней антенны. У последнего такой разъем есть, но самого навигатора нет НИГДЕ в продаже.
    Три недели назад нашел у америкосов, под рубрикой REFURBISHED (восстановленный/отремонтированный). Рискнул и купил.
    Сегодня получил и включил на тестирование. Количество спутников и уровки сигналов близко к BT-338 (SirfStar-III)
    Я не обнаружил ни царапинки ни пятнышка на корпусе, на стекле дисплея и внутри. Через 10 минут он стал выдавать сырые данные на 6-7-8-9 спутников.
    Рядом лежала внешняя антенна ANT GPS/GLONASS T-AT112 SMA-M 5M (TELCAB итал.) соединенная с GlobalSat BT-308, который находил с нее сырые данные на 3-4 спутника.
    Все это конечно первые впечатления, но они весьма приятные. Вот только найти переходник антенного кабеля SMA--на--MCX, у меня пока есть SMA--на--MMCX.
    К чему я все это? По моим наблюдениям производители бытовых навигаторов не вернутся к выдаче пользователю сырых измерений.
    Залезать внутрь прибора и искать пути разблокировки этой выдачи могут/захотят/сделают совсем немногие, а получив положительный результат скорее всего не обнародуют.
    А приборы Гармина и СирфСтар на чипах SS-II пока еще есть в продаже у очень прагматичных америкосов и китайцев. И цены на них приемлемые.
    И проработать такие приборы могут 3-5 лет. Жаль, что наши спутниковые деляги увлечены получением денежки от госструктур, транспорта и т.п.
    Поэтому дешевых приемников на 2 навигационных созвездия в близкой перспективе не видно. Американцам это надо в сослагательном наклонении.
    Европейцы никак не одолеют своего Галилея (а китайцы похоже перехватят у них частоты сделав рабочее созвездие первыми).
    То есть "Европа нам не поможет", "однозначно". Если только китайцы с корейцами не "выручат" - они успевают везде.<br><br>Тема закрыта! Продолжение в теме "Программа работы с бытовыми навигаторами в практике геодезиста - 2".
     
    #176
  17. landsurveyor

    landsurveyor Администратор. Константин
    Команда форума Форумчанин

    Регистрация:
    30 апр 2007
    Сообщения:
    3.925
    Симпатии:
    175
    Адрес:
    Санкт-Петербург
  18. sklimkim

    Форумчанин

    Регистрация:
    13 июл 2010
    Сообщения:
    218
    Симпатии:
    43
    Адрес:
    Moscow Russia
    В последние 18 месяцев у меня не было никаких программ постобработки спутниковых измерений. И только на днях нашел TopconTools-6 и GNSS-Solutions (спасибо за подсказку в старых темах В.Шуфотинскому).
    Как же я был "обрадован" тем, что мои RINEX'ы никуда не годятся. И ведь никто из читателей/писателей этой темы не сказал мне об этом. Ай-яй-яй коллеги!!!

    1. Исправлены ошибки форматирования строк в RINEX-OBS файле. Но и после этих исправлений RINEX-OBS файл "понимает" программа Topcon-Tools, а GNSS-Solutions сообщает, что формат файла неправильный.
    2. В обеих вариантах (Win-Desktop и Win-CE/Mobile) появилось наполнение окна Meassurement (Измерения). Информация в этом окне несколько различается для разных приемников (зависит от того, кто и что из них может выдать).
    3. Добавлена обработка бинарного протокола очень интересного навигатора Garmin GPSMap-60 (без всяких дополнительных букв). Он построен на чипсете SirfStar-II и оказалось, что в нем одновременно присутствуют почти все Messages навигаторов серии Garmin eTrex/GPS-72 и сообщение Message_34 полностью повторяющее Message_29 приемника Garmin GPS-25/35. Пока остановился на том, что программа будет работать с ним по набору сообщений eTrex'а, дальше будет видно.

    Примеры работы программы с разными приемниками выложу немного позже.

    Я до сих пор не знаю, как правильно обрабатывать Phase и Doppler из протокола SirfStar (MID-28). Где же знатоки, которые подскажут? Прошу помощи!

    В архиве-приложении Mobile-версия проверена только на наладоннике HP iPaq 4700 (WinCE 4.2), но должна работать и на Mobile-5.
     

    Вложения:

    #178
  19. fiascko

    Форумчанин

    Регистрация:
    12 окт 2008
    Сообщения:
    292
    Симпатии:
    1
    Адрес:
    Россия,Владимирская обл
    Обещал я проверить программу GNSSMonitor в поле на полигоне, да не выходило никак. И вот в субботу спонтанно решил все-таки обещанное сдержать. В комплект с двумя НР 214-ми, на которые установлена GNSSMonitor, взял для проверки 2 ВТ-308 с внешними антеннами.
    Сразу результаты:
    1. Результатов нет, просто потому что ничего не было записано. Делал все, как написано в прилагающемся к програме info: write files---выбираю Sirf II----порт, скорость----жму Start----соединение вроде произошло (вроде - потому что не знал, как проверить, что соединился с приемником). Внизу в двух строках было написано : for 27 sat almanac found, for 0 sat ephemer found. Ждал-ждал, нажал Accept, и в строке даже побежали байты, т.е. по сути соединение было выполнено и принимались данные, а вот только никуда не записывались. И так я простоял около 4 часов то с одним приемником, то с другим.
    2. Уходить ни с чем из поля было бы досадно, и я записал файлы через программу kinematic (благо она была сохранена на кпк).
    3. Обработать эти файлы не удалось ни в ТГО, ни в Топкон Tools. Чуть позже выложу эти файлы и прошу помощи в обработке или поясните, почему программы не хотят их обрабатывать.
     
    #179
  20. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Оффтоп
    А пчему не русский интерфейс программы?(ради любопытства ::biggrin24.gif:: )

    (Добавление)
    landsurveyor Сделайте пож шапку этой темы и сложить туда все варианты проги и инструкции с помощью автора.
     
    #180

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление