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

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

  1. sklimkim

    sklimkim Форумчанин

    Garmin60cx-&-SirfStariV.png
    А чем Вы конвертируете бинарный файл в RINEX?
    Может быть надо отрезать в начале файла нечто типа GSD4e_4.0.4-P1_RPATCH.07-GS0 - GNSS-Monitor пишет это как заголовок, чтобы можно было посмотреть: с какого устройства получен этот бинарный файл.

    Выкладываю обновление GNSS-Monitor4: протестировал на разных устройствах (под Win32) и немного изменил строки в файле координат.
    Внутри архива пары файлов для 5 разных приемников/навигаторов.

    Теперь это:
    Код:
    TOW 55328.00000000 AntennaHight 0.225
    B 55.65314295 L 37.56797584 H 225.200
    X 2858962.105 Y 2199152.645 Z 5242948.795
    PntNum 2000 EpocCount 30 StartTOW 55298.00000000 StopTOW 55328.00000000 X 2858956.919 Y 2199146.016 Z 5242751.131 dX 2.863 dY 3.590 dZ 1.445 Code STN
    
    На скриншоте одновременная работа с Garmin GPS-Map-60cx и c GlobalSat BU-353-S4
     

    Вложения:

    jrinconr нравится это.
  2. sklimkim

    sklimkim Форумчанин

    Наверное нужны некоторые пояснения к последней версии GNSS-Monitor4.
    Я не нашел для Garmin-устройств сообщения аналогичного MID-07 GlobalSat, из которого получаются поправки для приведения "сырых" измерений к началу секунды/эпохи.
    Более того, в приемнике GlobalSat BT-308 (chipset SS-2) у меня получается некая хрень, приведения работают только с BU-353-S4.
    Поэтому я исключил запись на-лету RINEX-файла и прочие вещи.
    Более того, мне думается, что надо работать со своей БАЗОЙ, на которой стоит такой же приемник, что и РОВЕР.
    Вот только БАЗУ надо ставить на точку с заранее определенными координатами, желательно в системе WGS-84 (но можно и в других - пересчет возможен).
    Тогда нет зависимости от платных сервисов. Нет зависимости и от далеко небесплатных программ постобработки.

    Программа пишет 1-й файл бинарного потока с приемника/навигатора для возможной последующей конвертации его в RINEX-файл и т.д.
    Программа пишет 2-й файл из вычисляемых приемником/навигатором координат для последующей независимой от брендовых программ обработки трека и/или точек топографической съемки в программах типа xxxx-CAD (в данном случае это можно делать в бесплатном LiteCAD'е Олега Колбаскина).
    В файле координат присутствуют ВСЕ эпохи сеанса работы, а кроме того точки, снимаемые как топографические имеют высоту антенны и код с аттрибутом. Координаты таких точек программа сама усредняет и показывает разброс координат в этом усреднении. Пользователь сам определяет сколько секунд/минут ему стоять на каждой такой точке.
    Это автономная работа приемника.
    Если на БАЗЕ велась параллельная запись, то можно приладить упрощенную постобработку: в координаты полученные на РОВЕРЕ вводить поправки получаемые на БАЗЕ - на обоих премниках пишутся временные метки TimeOfWeek.
    По моему это достойно проверки. Но у меня нет ни БАЗЫ ни возможности выйти в поле - я на пенсии, а моим бывшим коллегам не до этого.
    А с балкона дома измерения годятся только для отладки программы.
     
  3. Джонхаб

    Джонхаб Форумчанин

    Давно слежу за Вашей темой, но все больше язык скатывается на птичий.. (увы.. это для меня).
    У меня в наличии Гармин 78s, доступ к базовым станциям, одночастотные приемники, обработка в статике.
    Что нужно сделать что-бы включить Гармин 78s в работу по Вашей программе?
     
  4. umots

    umots Форумчанин

    Бинарный файл GNSSMonitor 3 конвертируется sirfdump Алексея Илларионова. А GNSSMonitor 4-3 и UPDATE не конвертируется. После нажатия клавиши START в
    GNSSMonitor 4-3 и UPDATE появляется заставка:
    reset SirfStar MiDs (hex):
    IC 1E unset, 04 29 reset
     
  5. sklimkim

    sklimkim Форумчанин

    Это я погорячился с отключением ненужных для навигации MID-1C и MID-1E
    Конечно MID-1C (MID28) отключать нельзя - он используется для создания RINEX-файла.
    MID-1E - это координаты спутников, он действительно не нужен.
    Исправлю и выложу.
     
  6. sklimkim

    sklimkim Форумчанин

    -это неизбежные издержки при обсуждении узкоспециальных вопросов в любой области.

    Для начала надо понять, что может выдавать Гармин 78s по бинарному протоколу (все обсуждения здесь идут по обработке именно бинарных, не NMEA, данных.
    Для этого в меню Вашего навигатора надо найти: Меню-->Настройки-->Интерфейс и переключиться со строки NMEA... на строку GARMIN...
    Названия могут несколько отличаться (в разных моделях Гармин) но суть такова.
    После этого можно соединить навигатор с компьютером (настольным, ноутбуком, нетбуком) Garmin-овским СПЕЦИАЛЬНЫМ КАБЕЛЕМ (сзади навигатора есть под резиновой заглушкой разъем с 4-мя штырьками), я совсем не уверен, что соединение кабелем по USB-mini разъему позволит обмениваться данными, этот разъем для других задач.
    Из тех моделей, что я держал в руках, вывод бинарных данных (протокол Garmin) возможен ТОЛЬКО на 4-х штырьковый порт.
    Гармин не только узкоглазый, но и хитрож...й
    Вероятно Вы заплатили за него 15-17тыс.руб. Попробуйте раззориться еще на 1тыс.руб. - купив такой кабель.

    Запустить программу GNSSMonitor.
    В ней выбрать тип приемника Garmin GPS-Map-60... , скорость порта (обмен данными) 9600 и стартовать запись данных.
    После остановки программы, в папке программы должны появиться новые файлы.
    Самые важные из них: xxxxxxxxxx_Binary.txt и xxxxxxxxxx_Parsing.txt (xxxxxxxxxx - это дата и время записи).
    В файле xxxxxxxxxx_Parsing.txt можнобудет увидеть строки вида:
    Record 33:
    ... ... ...
    Record 72:
    ... ... ...
    После этого можно делать выводы о том, как"прислонить" Ваш навигатор к работе с программой GNSSMonitor.
    Можете запаковать полученные фалы в архив и переслать мне, я посмотрю и отвечу.
     
  7. sklimkim

    sklimkim Форумчанин

    25-02-13_14-41-45_Binary.txt.png
    Исправление. Предъявляю скриншот бинарного файла.
    Посмотреть вложение 16061 Посмотреть вложение 16061 Посмотреть вложение 16061
     

    Вложения:

  8. umots

    umots Форумчанин

    Cklimkin записал файл GNSS-Monitor4-update2 c 353S4. Посмотрел в WinHex. Не нашел последовательности A0 A2 00 38 1C в
    своем файле. В приложенном файле к программе она есть.
     
  9. sklimkim

    sklimkim Форумчанин

    Прощения просим ("мы сами люди не местные...") ! Предыдущий вариант GNSS-Monitor4 отключил это сообщение.
    А после этого никто приемнику не сказал, что его надо снова выдавать, вот и нет его.
    Я попозже более строго это поправлю. Еще не все новые идеи устаканились.
    А пока воспользуйтесь программой SirfDemo-->Action-->Set Message Rate-->0x1C NL Meas Data и Message update rate поставьте 1
    Тогда MID-28 (0x1C) снова будет выдаваться.
     
  10. umots

    umots Форумчанин

    Влючил 1C с помощью SirfDemo. Бинарный файл стал конвертироваться.
     
  11. Джонхаб

    Джонхаб Форумчанин

     
  12. Джонхаб

    Джонхаб Форумчанин

    Странно, обратиля к дилеру по поводу кабелька к последовательному порту Гармина 78s -ответил, что и на сайте Гармина нет данного девайса.::cool24.gif::
    Лююди, где продается данный девайс???
     
  13. chnav

    chnav Форумчанин

    Джонхаб
    Зачем вам это нужно, если у вас есть доступ к нормальным профессиональным приемникам. К тому же всё-равно этому Гармину нужен ноутбук для сбора данных, невозможно прицепить внешнюю антенну. За цену этого кабеля вы можете купить обычный GlobalSat BU-353S4 или платку на µBlox 4, результат будет только лучше.
    Garmin имел смысл когда других чипов не было.
     
  14. sklimkim

    sklimkim Форумчанин

    Поиск например по словам: кабель Гармин
    http://www.doroga.ru/gps/gps_garmindop.php
    http://www.postman.ru/~makarov/pclink/garmincables.htm
    и так далее.

    Вот еще вариант (дешевле не найти - 150 руб - "собери сам" называется)
    http://www.cybershop24.ru/round_garmin_connector.html
     
  15. sklimkim

    sklimkim Форумчанин

    Он с этим навигатором мается уже больше года. Деньги "уплочены" и немалые, а отдачи нет.
    Можно соединить девайс не с ноутбуком, а с наладонником (кабели есть, я покупал для связи с HP iPAQ 4700 где-то за 500 руб.)
    А вот внешнюю антенну подключить можно - есть сзади разъем.
    Да, это так.
     
  16. sklimkim

    sklimkim Форумчанин

    Исправил так:
    при запуске включаются сообщения MID-04 MID-41 MID-28 (т.е. были они ранее включены или отключены, по-любому будут).
    Внутри архива пример для BU-353S4
     

    Вложения:

  17. sklimkim

    sklimkim Форумчанин

    О введении поправок ухода часов приемника.
    Еще раз проштудировал протокол СирфСтар:
    Раскрыть Спойлер
    Navigation Library Measurement Data – Message ID 28
    ---------------------------------------------------
    The reported Time of Measurement, Pseudorange and Carrier Phase are all uncorrected values.
    Message ID 7 contains the clock bias that must be considered.
    Adjust the GPS Software time by subtracting clock bias,
    MID28.TOW - MID07.ClBias

    adjust pseudorange by subtracting clock bias times the speed of light,
    MID28.PR - MID07.ClBias * LIGHTSPEED

    and adjust carrier phase by subtracting clock bias times speed of light/GPS L1 frequency.
    MID28.C1 - MID07.ClBias * LIGHTSPEED / 1575420000

    To adjust the reported carrier frequency do the following:
    Corrected Carrier Frequency (m/s) = Reported Carrier Frequency (m/s) – Clock Drift (Hz)*C / 1575420000 Hz.

    For a nominal clock drift value of 96.25 kHz (equal to a GPS Clock frequency of 24.5535 MHz), the correction value is 18315.766 m/s.

    Note – GPS Software Time – Clock Bias = Time of Receipt = GPS Time.

    GPS Software Time – Pseudorange (sec) = Time of Transmission = GPS Time.
    Adjust SV position in Message ID 30 by (GPS Time MID 30 – Time of Transmission) * Vsat.

    GPS Software Time(2) sec 8 Dbl 41 74 0B 0B 48 35 3F 7D 2.4921113696e+005
    Pseudorange(3) m 8 Dbl 7D 3F 35 4A 0B 0B 74 41 2.1016756638e+007
    Carrier Frequency m/s 4 Sgl 89 E9 82 46 1.6756767578e+004
    Carrier Phase4 m 8 Dbl A4 70 3D 4A 0B 0B 74 41 2.1016756640e+007
    Time in Track ms 2U 75 30 10600

    Приемники GlobalSat выдают в секундном пакете сначала MID28, а MID07 в конце.
    Из MID07 получаю (для следующей эпохи, т.к. приемник выдает MID07 в конце секундного пакета)
    Код:
    RcvClBias = (double)(MID07.ClBias) * 0.000000001;  // sec
    blnClBias = 1;  // флаг наличия RcvClBias
    
    В следующей эпохе, при обработке текущего MID28 отправляю уже исправленные TOW, PR, Phase, Dopler
    на создание строки для предыдущей эпохи в RINEX-OBS файле
    Код:
    RcvTOW = MID1C.TOW;  // время приемника
    SirfStarOBS();  // ф-ция создания записи эпохи в RINEX OBS-файл
    
    Теперь обрабатываю Message_0x1C (MID28) текущей эпохи,
    ввожу поправки из MID07 и сохраняю до следующей эпохи
    Код:
    // temp Local variables to Array OBS[MID1C.SVID].xxxxx
    MID1C.Timetag = Timetag * 0.0000000625; // now in seconds -really!!!
    MID1C.ID = SVID;  // Satellite-ID
    MID1C.TOW = GPSSWTime - RcvClBias;  // GPS SoftWare Time (Sec)
    MID1C.prange = PR - LIGHTSPEED * RcvClBias;  // Pseudo Range corrected (m)
    MID1C.C1 = C1 - RcvClBias * LIGHTSPEED / 1575420000;  // Carrier-Frequency (m/Sec)
    MID1C.CPhase = CPhase - LIGHTSPEED * RcvClBias;  // Carrier-Phase (m)
    MID1C.Dopler = dopler - MID07.ClDrift;  // Carrier-Frequency (m/Sec) --> Dopler frequency (Hz)
    MID1C.TimeTrack = TimeTrack;  // Time in Track (mSec)
    MID1C.db = CN1;  // уровень сигнала от текущего спутника по 1-му каналу приемника
    И вот что я получаю:
    Код:
    GlobalSat BT-308 (SirfStar-II) файл парсинга сообщений
    ------------------------------------------------------
    Record 07(07) Time & Clock:
    1729 - WN (full)
    244516.54 - RcvTOW
    6 - SVs in view
    91912 - RcvClBias
    0.007935 - ClDrift
    244516.545 - EstGPSTime
     
    Record 1C(28) RAW data:
    0.00856 - Timetag (Sec)
    24 - SVID
    244516.545125 - GPSSWTime (Sec) Corrected!!!
    20481041.404107 - PR (m) Corrected!!!
    17501.152344 - Carrier-Frequency Corrected!!!
    93119.356886 - Carrier-Phase (m) Corrected!!!
    58.171875 - Dopler frequency (Hz) Corrected!!!
    30000 - Time in Track
    43 - CN1 Signal-Noize (dB)
     
    GlobalSat BT-308 (SirfStar-II) RINEX-OBS файл
    ---------------------------------------------
    13 02 26 19 55 16.5451247  0 6G24G17G12G9G15G1
      20481033.219        93109.594          57.414 9
      21471613.972    -1912596.087        1692.797 2
      21842381.060      -44600.799        -2605.406 9
      21860336.191    -2123510.154        3462.969 1
      24631087.357        47698.351        3513.383 9
      25165379.013    -2116198.637        2786.969 0
     
    GlobalSat BU-353S4 (SirfStar-IV) файл парсинга сообщений
    --------------------------------------------------------
    Record 07(07) Time & Clock:
    1729
    174897.00
    11
    0.000094
    18851320 - ClDrift
    174896.999
     
    Record 1C(28) RAW data:
    91.05539
    29
    174897.018851 - GPSSWTime (Sec) Corrected!!!
    25747989.783262
    17969.552734
    25747925.467855
    -94279.437500
    30000
    28
     
    GlobalSat BU-353S4 (SirfStar-IV) RINEX-OBS файл
    -----------------------------------------------
    13 02 26 00 34 58.0189110  0 12G29G25G5G30G21G31G2G10G12G16G13G23
      25747989.783    25747925.468      -94279.438 0
      27670224.143    27670192.176        3084.250 0
      27779912.887    27779877.875        -610.430 0
      27972468.635    27972469.016        -2755.219 9
      28756221.905    28756181.755        -2864.000 0
      28685072.232    28685079.463        2025.922 9
      29254517.664    29254487.409        2025.922 0
      29666442.966      -28263.832        2025.922 0
      30398769.921      -28263.832        2025.922 0
      30553182.838    30553180.364        -3613.367 6
      30397221.924    30397189.766          378.961 0
      31146419.089      -28263.832        1667.461 0
    
    Почему скоррректированное время приемника не приводится к целой секунде?
    Ведь при таких "хвостах" .5451247 .0189110 в секундных метках
    о связи БАЗА-РОВЕР и о поправках говорить не приходится!

    Может быть я что-то не так посчитал?
    Прошу посмотреть и поправить меня!
     
  18. Lottarend

    Lottarend Форумчанин

    Да вроде все правильно сделано...
    По крайней мере в части
    А вы данные из mid7 правильно же читаете?
    Если правильно, тогда остается только пожать плечами.
     
  19. chnav

    chnav Форумчанин

    mid7 нужно применять к своей эпохе, тогда всё будет нормально.
     
  20. sklimkim

    sklimkim Форумчанин

    С эпохами я только в тексте сообщения напутал (от огорчения).
    Проблема в том, что "хвосты" у времени приемника остаются.
    Код:
    Это запись парсинга MID-07 (ClockDrift в герцах, ClockBias в секундах)
    -------------------------------------------------------------
    ret=fprintf(FileHandle2, "Record 07(07) Clock Status:\n");
    ret=fprintf(FileHandle2, "%d\n", MID07.WN);
    ret=fprintf(FileHandle2, "%.2f\n", MID07.TOW * 0.01);
    ret=fprintf(FileHandle2, "%d\n", MID07.SVs);
    ret=fprintf(FileHandle2, "%ld\n", MID07.ClDrift);
    ret=fprintf(FileHandle2, "%ld\n", MID07.ClBias);
    ret=fprintf(FileHandle2, "%.3f\n", MID07.EstGPSTime * 0.001);
    RcvClDrift = (double)MID07.ClDrift;  // Hz
    RcvClBias = (double)(MID07.ClBias) * 0.000000001;  // sec
    blnClBias = 1;  // флаг наличия RcvClBias
     
    Это запись парсинга MID-28 (все данные без коррекций)
    -----------------------------------------------------
    ret=fprintf(FileHandle2, "Record 1C(28) RAW data:\n");
    // записать текущие время, координаты и скорости в файл парсинга
    ret=fprintf(FileHandle2, "%d\n", Timetag); // mSec
    ret=fprintf(FileHandle2, "%d\n", SVID);
    ret=fprintf(FileHandle2, "%f\n", GPSSWTime);
    ret=fprintf(FileHandle2, "%f\n", PR);
    ret=fprintf(FileHandle2, "%f\n", C1);
    ret=fprintf(FileHandle2, "%f\n", CPhase);
    ret=fprintf(FileHandle2, "%f\n", Dopler);
    ret=fprintf(FileHandle2, "%d\n", TimeTrack);
    ret=fprintf(FileHandle2, "%d\n", CN1);  // уровень сигнала по 1-му каналу
     
    Исправляю время приемника на ClockBias и пишу строку в RINEX-OBS-файл
    ---------------------------------------------------------------------
    RcvTOW = GPSSWTime - RcvClBias;  // идет в ф-цию SirfStarOBS()
    SirfStarOBS();  // ф-ция создания записи эпохи в RINEX OBS-файл
     
    Заполняю массив MID-28 - из него SirfStarOBS() берет .prange .CPhase .Dopler
    ----------------------------------------------------------------------------
    OBS[MID1C.SVID].Timetag = Timetag * 0.0000000625; // in seconds - really!!!
    OBS[MID1C.SVID].ID = SVID;  // SatelliteID
    OBS[MID1C.SVID].TOW = GPSSWTime - RcvClBias;  // GPS SoftWare Time (mSec)
    OBS[MID1C.SVID].prange = PR - LIGHTSPEED * RcvClBias;  // Pseudo Range corrected (m)
    OBS[MID1C.SVID].C1 = C1 - RcvClBias * LIGHTSPEED / 1575420000;  // Carrier-Frequency (m/Sec)
    OBS[MID1C.SVID].CPhase = CPhase - LIGHTSPEED * RcvClBias;  // Carrier-Phase (m)
    OBS[MID1C.SVID].Dopler = dopler - RcvClDrift;  // Carrier-Frequency (m/Sec) --> Dopler frequency (Hz)
    OBS[MID1C.SVID].TimeTrack = TimeTrack;  // Time in Track (mSec)
    OBS[MID1C.SVID].db = CN1;  // уровень сигнала от текущего спутника по 1-му каналу приемника
    И вот что получается в файлах RINEX и Parsing:
    Раскрыть Спойлер
    GlobalSat BT-308-2
    ------------------
    RINEX-OBS.txt
    -------------
    13 02 28 11 40 45.5949577 0 7G2G13G7G31G29G4G10
    23488619.683 -385592.492 -1570.383 9
    20280345.263 3635.137 -1083.992 9
    23622276.928 -251942.037 -3597.141 1
    24844243.373 -528929.206 -3597.141 0
    25138838.515 -534141.973 -3597.141 0
    22397795.429 22550.823 1346.672 9
    22356581.714 -18680.046 -2863.148 9

    Parsing.txt
    -----------
    Record 07(07) Clock Status:
    705
    387645.59
    4
    91128
    1735969
    387645.594

    Record 1C(28) RAW data:
    31000
    13
    387645.596636
    20783222.450521
    17134.845703
    506510.795266
    0.000000
    24576
    47
    Record 1C(28) RAW data:
    31000
    7
    387645.596636
    24124687.707482
    16656.779297
    250459.936471
    0.000000
    -3072
    0
    Record 1C(28) RAW data:
    31000
    31
    387645.596636
    25348016.881944
    18026.986328
    -25212.028407
    0.000000
    -3072
    0
    Record 1C(28) RAW data:
    31000
    29
    387645.596636
    25641706.402282
    17133.496094
    -31267.665349
    0.000000
    -9216
    33
    Record 1C(28) RAW data:
    31000
    4
    387645.596636
    22901131.819792
    17597.390625
    525889.026598
    0.000000
    -11264
    45
    Record 1C(28) RAW data:
    31000
    10
    387645.596636
    22859119.460822
    16796.263672
    483857.029280
    0.000000
    28672
    43
    Record 1C(28) RAW data:
    31000
    2
    387645.596636
    23991119.535400
    17042.390625
    116883.682171
    0.000000
    8192
    0

    GlobalSat BU-353S4 (SirfStar-IV)
    --------------------------------
    RINEX-OBS.txt
    -------------
    13 02 28 12 31 3.0000598 0 12G30G13G23G10G7G16G2G4G8G20G29G5
    22926872.990 -448605.522 345.828 0
    20085862.126 -466541.804 -94292.000 0
    21007686.430 21007756.073 -94292.000 0
    21123538.303 -466541.804 -94292.000 0
    21780651.315 21780488.053 -2717.750 0
    22113101.789 22112953.749 -2717.750 0
    23127923.278 23127769.911 348.242 0
    23648441.593 23648296.598 348.242 0
    24502585.924 24502439.787 -3581.008 0
    24581030.833 -466541.804 -3581.008 0
    25041396.436 25041225.182 768.727 0
    25244076.541 -466541.804 768.727 0

    Parsing.txt
    -----------
    Record 07(07) Clock Status:
    705
    390663.00
    10
    94295
    1675960
    390662.999

    Record 1C(28) RAW data:
    712930335
    13
    390663.001676
    20570441.803822
    18023.365234
    0.000000
    0.000000
    12288
    25
    Record 1C(28) RAW data:
    712930335
    23
    390663.001676
    21492538.557861
    18301.113281
    21492600.018965
    0.000000
    12288
    27
    Record 1C(28) RAW data:
    712930335
    10
    390663.001676
    21607757.880711
    17694.201172
    21607598.233743
    0.000000
    12288
    26
    Record 1C(28) RAW data:
    712930335
    7
    390663.001676
    22264629.426370
    17426.238281
    22264457.030325
    0.000000
    12288
    27
    Record 1C(28) RAW data:
    712930335
    16
    390663.001676
    22597565.472174
    17926.060547
    22597422.570171
    0.000000
    12288
    27
    Record 1C(28) RAW data:
    712930335
    2
    390663.001676
    23612476.255575
    18009.521484
    23612322.317242
    0.000000
    12288
    34
    Record 1C(28) RAW data:
    712930335
    4
    390663.001676
    24133482.541928
    18488.785156
    24133328.413559
    0.000000
    12288
    27
    Record 1C(28) RAW data:
    712930335
    8
    390663.001676
    24986391.890420
    17261.775391
    24986244.421315
    0.000000
    12288
    34
    Record 1C(28) RAW data:
    712930335
    20
    390663.001676
    25066267.537807
    18685.332031
    0.000000
    0.000000
    12288
    22
    Record 1C(28) RAW data:
    712930335
    29
    390663.001676
    25526034.405954
    18089.294922
    25525857.443517
    0.000000
    12288
    28
    Record 1C(28) RAW data:
    712930335
    5
    390663.001676
    25727879.401003
    17258.132813
    0.000000
    0.000000
    12288
    22
    Record 1C(28) RAW data:
    712930335
    30
    390663.001676
    23412162.517724
    18336.294922
    0.000000
    0.000000
    12288
    22
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление