Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Команды для определения видимых сот
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
kan35
Подскажите, какие команды использовать для определения необходимой информации для использования в серсисах типа яндекс локатор. Попробовал примеры от яндекса - понравилось как работает. Лучше конечно команды в рамках соответствующего стандарта.
модемы которые используем: quectel, wismo
megajohn
Цитата(kan35 @ Jul 30 2012, 09:16) *
модемы которые используем: quectel, wismo


Wismo: AT+CCED
Simcom: AT+CENG
Telit: AT#MONI, AT#RFSTS

как в quectel хрен знает, ни модель не сказана ни на ДШ нет ссылки. Ищите в доке команду которая выдает об neighbour, это и есть то что нужно.
CADiLO
У SIMCOM еще - AT+CNETSCAN и AT*CELLLOCK

QUECTEL - AT+QENG и AT+QLOCKF
kan35
Спасибо!
kan35
Цитата(CADiLO @ Jul 30 2012, 17:29) *
У SIMCOM еще - AT+CNETSCAN и AT*CELLLOCK

QUECTEL - AT+QENG и AT+QLOCKF

Дошли руки до quectel m72
Данные о сотах собираю командой AT+QENG - с этим проблем нет.
На сервер отправляю такой запрос:
Код
xml=<ya_lbs_request>
<common>
  <version>1.0</version>
  <api_key>ABZs_k8BAAAAwuKiIgMDFIOBkHmKur7FLvxs-j3k9gp1r7UAAAAAAAAAAADUbWq0RMczbcY3Qye-ItK7Im5r9A==</api_key>
</common>
<gsm_cells>
  <cell>
   <countrycode>250</countrycode>
   <operatorid>99</operatorid>
   <cellid>8d63</cellid>
   <lac>6d32</lac>
   <signal_strength>-106</signal_strength>
   <age>1000</age>
  </cell>
  <cell>
   <countrycode>250</countrycode>
   <operatorid>99</operatorid>
   <cellid>399b</cellid>
   <lac>6d32</lac>
   <signal_strength>-97</signal_strength>
   <age>1000</age>
  </cell>
  <cell>
   <countrycode>250</countrycode>
   <operatorid>99</operatorid>
   <cellid>3997</cellid>
   <lac>6d32</lac>
   <signal_strength>-107</signal_strength>
   <age>1000</age>
  </cell>
</gsm_cells>
</ya_lbs_request>

В ответ получаю
Код
<?xml version="1.0" encoding="UTF-8"?>
<ya_lbs_response>
  <position>
    <latitude>55.7487144</latitude>
    <longitude>37.5881462</longitude>
    <altitude>0.0</altitude>
    <precision>100000</precision>
    <altitude_precision>30.0</altitude_precision>
    <type>ip</type>
  </position>
</ya_lbs_response>

Оказывает точность 100000 и забрасывает на 30км от моего реального положения.
Как видно из ответа сервера параметр precision 100000, на что яндекс в инструкции говорит следующее:
Цитата
В некоторых случаях Яндекс.Локатор сообщает о точности 100000 метров, которая означает, что до-
стоверно определить местоположение не удалось. Это происходит, если местоположение определяется
не по IP-адресу мобильного устройства, а по IP-адресу какого-либо публичного сервера или прокси-
сервера.

Но я ему даю нормальные координаты вышек. В чем может быть дело, что не так?

Похоже, что он по IP адресу с которого я к нему подсоединился определил, но почему?..
Telit
Цитата(megajohn @ Jul 30 2012, 16:41) *
Telit: AT#MONI, AT#RFSTS


У телита есть еще сервис который базируется на собственной базе вышек и собственном сервере.

Также у телита есть еще группа скрытых команд которая позволяет обмануть сеть и рассчитать все TA от всех видимых в данный момент BS.
Этот метод дает наивысшую точность при условии если у вас есть точные координаты станций.
kan35
Разобрался, cellid и lac можем выдает в формате hex (хотя нигде нет конкретизации dec это hex или просто символы), в свою очередь Яндекс принимает даные в формате dec.
Telit, я так понимаю этот протокол не может быть использован на других модемах, если все таки можно, то говорите как.
И расшифруйте, что значит обмануть сеть? и что такое TA?
ArtemKAD
Цитата
и что такое TA?

По сути - задержка распространения сигнала от терминала до БС. Обычно имеется только до одной и то в момент активной связи. Позволяет оценить дальность с полукилометровой точностью. Актуально для определения координат неподвижного объекта...
Aner
QUOTE (ArtemKAD @ Mar 3 2013, 15:30) *
По сути - задержка распространения сигнала от терминала до БС. Обычно имеется только до одной и то в момент активной связи. Позволяет оценить дальность с полукилометровой точностью. Актуально для определения координат неподвижного объекта...

И чё, какая разница между подвижным и неподвижным объектом в GSM? До Доплера еще ой как далеко. Или у вас спутники со скоростью 20Км/сек? Уж давно есть программы определяющие до 10 метров по A-GSM. У некоторых провайдеров есть платные сервисы, дающие такие данные.
Telit
Цитата(Aner @ Mar 3 2013, 18:50) *
И чё, какая разница между подвижным и неподвижным объектом в GSM? До Доплера еще ой как далеко. Или у вас спутники со скоростью 20Км/сек? Уж давно есть программы определяющие до 10 метров по A-GSM. У некоторых провайдеров есть платные сервисы, дающие такие данные.

когда тачка угнана и стоит в металлическом отстойнике, спутники не помогут.
A-GSM такая же туфта которая тупо смотрит CellID, LAC и RX level. потом http запрос на свой сервер и т.д.
просто база своя и много псевдонаучных терминов вроде grid-based algorithm uses Gaussian distributions to model signal intensity variations within each grid cell....
вообщем типа как и у всех и почти не поможет в случае неподвижного объекта или в случае высотной городской застройки.


kan35,
мы тут уже сто раз терли эту тему с позиционированием в сетях GSM (в том числе через реальный перерасчет TA) в другой большой ветке. Не поленитесь почитать!
molecul
Цитата(kan35 @ Mar 3 2013, 14:18) *
Разобрался, cellid и lac можем выдает в формате hex (хотя нигде нет конкретизации dec это hex или просто символы), в свою очередь Яндекс принимает даные в формате dec.
Telit, я так понимаю этот протокол не может быть использован на других модемах, если все таки можно, то говорите как.

Почитайте здесь.
Цитата(kan35 @ Mar 3 2013, 14:18) *
И расшифруйте, что значит обмануть сеть? и что такое TA?

Имеется в виду недокументированная команда, позволяющая принудительно изменить обслуживающую БС на другую, и соответственно получить TA от нее.
kan35
C точки зрения физики было бы интересно понять как TA рассчитывается, неужели по скорости света как то измеряют? :-)
Яндекс почему то не спешить использовать этот параметр в своих расчетах.
Кстати, Яндекс вот сам рассчитывает координату, а как я понимаю у Google нет такого сервиса, можно только узнать по запросу координату видимой станции, а потом самому рассчитать координату, правильно я понимаю?
ArtemKAD
Цитата
C точки зрения физики было бы интересно понять как TA рассчитывается, неужели по скорости света как то измеряют?

Физически - по реальной задержке которая зависит от скорости света.
mantech
Цитата(Telit @ Mar 3 2013, 20:12) *
когда тачка угнана и стоит в металлическом отстойнике, спутники не помогут.


А разве трекер не может передавать предидущие координаты, если замер идет раз в сек. перед потерей спутника, координаты сильно не изменятся ведь..
ArtemKAD
Цитата
И чё, какая разница между подвижным и неподвижным объектом в GSM?

Уже обсуждали - поищите.
А если кратко - ТА в некий момент времени только одна(знаем расстояние с 0,5км точностью до одной БС), а пока сеть будет переключать на другую БС(для определения расстояния до нее), подвижный объект может далеко уехать и его предыдущее ТА может уже стать не актуальной. Поэтому триангуляция по ТА в сети GSM для подвижного объекта работает плохо.

Цитата
А разве трекер не может передавать предидущие координаты, если замер идет раз в сек.

Передать может. Если только отстойник это не кузов фуры...
Telit
Цитата(ArtemKAD @ Mar 4 2013, 00:11) *
Передать может. Если только отстойник это не кузов фуры...

или глушилка в помощь как вариант. GPS убрать это вообще проще простого. да и GSM не проблема
mempfis_
Цитата
У телита есть еще сервис который базируется на собственной базе вышек и собственном сервере.

Подскажите где можно узнать подробней про Ваш сервис?

Цитата
Также у телита есть еще группа скрытых команд которая позволяет обмануть сеть и рассчитать все TA от всех видимых в данный момент BS.

AT#MONI понятно.
А что за команда AT#RFSTS? В списке ат-команд её нет. Что она делает?
Что Вы имеете ввиду под фразой - "которая позволяет обмануть сеть и рассчитать все TA от всех видимых в данный момент BS"?
Это одна команда, которую подаёш а в ответ получает список базовых станций и ТА для них?
Или имеется ввиду EQCELL ?
Telit
Цитата(mempfis_ @ Mar 5 2013, 22:47) *
Подскажите где можно узнать подробней про Ваш сервис?


AT#MONI понятно.
А что за команда AT#RFSTS? В списке ат-команд её нет. Что она делает?
Что Вы имеете ввиду под фразой - "которая позволяет обмануть сеть и рассчитать все TA от всех видимых в данный момент BS"?
Это одна команда, которую подаёш а в ответ получает список базовых станций и ТА для них?
Или имеется ввиду EQCELL ?

да. EQCELL. потом MONI. потом звонок или смс, и по кругу
molecul
Цитата(mempfis_ @ Mar 5 2013, 22:47) *
А что за команда AT#RFSTS? В списке ат-команд её нет. Что она делает?

Это команда HE910, описание здесь. В HE910 пока нет #CSURV, к сожалению.
Telit_Sprt
Добрый день,
команда AT#RFSTS которая выдает информацию о текущей сети и базовой станции(одной).Эта команда доступна и для остальных модемов. Она описана в последние версии AT команд - Telit_AT_Commands_Reference_Guide_r16, скачать ее можно с официального сайта Телит, например вот здесь - GL685 V3, так с других страниц по продуктам компании.

Если вы хотите получить информацию о нескольких базовых станциях то можно воспользоваться командой AT#CSURV или еще лучше командой AT#CSURVB=(N) где N это количество ближайших базовых станций, информацию о которых вы хотите получить. Эта команда также описана в официальном документе описанном выше.

Так же скоро, будет доступна, уже реализованная функция получения координат модема по базовым станциям. Т.е при введении этой команды, модем сам про сканирует сеть, определит близлежащие базовые станции, далее отправит информацию на сервер Телит, где уже поведется расчет местоположения и информация отправиться обратно на модем. В результате в ответ на ввод этой команды пользователю будут выданы координаты примерного положения модема.

Aleksandr_q
Все это давно реализовано Quectel в М12. Доументы GSM module lock frequency и GSM location.
mempfis_
Цитата(Telit_Sprt @ Mar 7 2013, 15:13) *
Так же скоро, будет доступна, уже реализованная функция получения координат модема по базовым станциям. Т.е при введении этой команды, модем сам про сканирует сеть, определит близлежащие базовые станции, далее отправит информацию на сервер Телит, где уже поведется расчет местоположения и информация отправиться обратно на модем. В результате в ответ на ввод этой команды пользователю будут выданы координаты примерного положения модема.


Параметр ТА будет приниматься в расчёт в этой команде? Когда будет возможность ознакомится с ней. Возможна ли отправка на ваш сервер своих запросов и будет ли доступен протокол обмена с сервером? Вопрос к чему - если в текущий момент нет покрытия GPRS - то выполнение команды будет невозможно. Логично будет сохранить всю информацию о базовых станциях и выполнить запрос позже когда модем войдёт в зону покрытия GPRS.
Сейчас занимаюсь реализацией проекта определения местоположения по сотам на модеме GL865/868. Планируются ли для этих модемов обновлённая прошивка с такой командой? Спасибо.
kan35
Возвращаясь к Quectel M72
замечено такое поведение:
1. Что когда я создаю 2 виртуальных компорта и на одном вешаю GPRS, а на другой запускаю AT+QENG=2,1 (непрерывную выдачу информации), то все хорошо до первого разрыва сессии, так как как только 1 виртуальный порт переходит в АТ режим, то в него начинают сыпать QENG сообщения так же как и во 2й, то биш синхронно.
2. Еще что мне не понравилось, что не ловятся вышки оператора кроме родного, а это существенно снижает точность, особенно за городом. Может можно как то ему сказать чтобы все видимые определял?

Ну и количество баз - максимум 6 - мало как то.
Telit
Цитата(mempfis_ @ Mar 7 2013, 18:32) *
Параметр ТА будет приниматься в расчёт в этой команде?

нет конечно. для TA нужно делать синхронизацию с каждой БС, т.е. физически делать звонок или слать смс находясь на привязанной текущей БС. + надо знать очень точные координаты станций, которые есть у операторов... так вот они и работают... ну вы поняли biggrin.gif

а для остальных смертных все попроще - через LAC, RX и публичные базы данных. +-километр.
это абсолютно все модули и мобильники сегодня умеют делать.

Цитата(kan35 @ Mar 7 2013, 19:30) *
Возвращаясь к Quectel M72
замечено такое поведение:
1. Что когда я создаю 2 виртуальных компорта и на одном вешаю GPRS, а на другой запускаю AT+QENG=2,1 (непрерывную выдачу информации), то все хорошо до первого разрыва сессии, так как как только 1 виртуальный порт переходит в АТ режим, то в него начинают сыпать QENG сообщения так же как и во 2й, то биш синхронно.
2. Еще что мне не понравилось, что не ловятся вышки оператора кроме родного, а это существенно снижает точность, особенно за городом. Может можно как то ему сказать чтобы все видимые определял?

Ну и количество баз - максимум 6 - мало как то.

"заканчивая с Quectel M72" biggrin.gif

1. CMUX это вечный головняк китайцев если мы о нем. Лучше возьмите модуль с двумя полноценными физическими портами, вроде GL868 из бюджетных.

2. Вышка для мобильника или модуля назначается сетью! а не модулем.
И чтобы сеть перекинула мобильник или модуль на другую вышку нужен некий обман сети. Телит умеет. И еще один европеец sm.gif
Aner
Телит умеет ... некий обман сети ...
Забавно пишет этот чел.
CADiLO
Ну почему же только Телит и "некий европеец"?

Симком умеет как сканировать сеть так и становиться принудительно на нужную соту. Это кроме CENG

>>>И чтобы сеть перекинула мобильник или модуль на другую вышку нужен некий обман сети

Достаточно просто принудительно стать на соту AT*CELLLOCK - Set the List of ARFCN Which Needs to Be Locked

Соту получаем из AT+CNETSCAN - Performing A Net Survey to Show All the Cells Information

А в расширеной прошивке работает AT+CIPGSMLOC=<type>,<cid>

If <type>=1:
+CIPGSMLOC:<locationcode>,<longitude>,<latitude>,<date>,<time>
OK

If <type>=2:
+CIPGSMLOC:<locationcode>,<date>,<time>
OK

Данные о текущей базовой станции (LAC и CellID) модуль SIM900 передает как входной параметр в сервис Google по протоколу HTTP, а в ответ получает координаты базовой станции.
В комбинации с предыдущими командами получаем группу значений для вычисления координат самого модуля.

Ну или можно заглянуть в прошивку и там еще есть недокументированые технологические команды для работы с сетью. Кому интересно было - уже пользуются sm.gif
Telit
Цитата(CADiLO @ Mar 8 2013, 15:12) *
Ну почему же только Телит и "некий европеец"?

Симком умеет как сканировать сеть так и становиться принудительно на нужную соту. Это кроме CENG

>>>И чтобы сеть перекинула мобильник или модуль на другую вышку нужен некий обман сети

Достаточно просто принудительно стать на соту AT*CELLLOCK - Set the List of ARFCN Which Needs to Be Locked

Соту получаем из AT+CNETSCAN - Performing A Net Survey to Show All the Cells Information

А в расширеной прошивке работает AT+CIPGSMLOC=<type>,<cid>

If <type>=1:
+CIPGSMLOC:<locationcode>,<longitude>,<latitude>,<date>,<time>
OK

If <type>=2:
+CIPGSMLOC:<locationcode>,<date>,<time>
OK

Данные о текущей базовой станции (LAC и CellID) модуль SIM900 передает как входной параметр в сервис Google по протоколу HTTP, а в ответ получает координаты базовой станции.
В комбинации с предыдущими командами получаем группу значений для вычисления координат самого модуля.

Ну или можно заглянуть в прошивку и там еще есть недокументированые технологические команды для работы с сетью. Кому интересно было - уже пользуются sm.gif

расстрою! это не команда встать на соту. и объяснять подробности не буду, чтобы форы не давать sm.gif
а последующие команды для скрытой работы с гуглем это вообще смех. у всех есть. к тому же еще и трафик нагенерят.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.