реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> определение местоположения по сотам, можно ли узнать координаты по сотам
Rst7
сообщение Oct 3 2008, 05:43
Сообщение #16


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
телефон для каждой вышки отслеживает расстояние до нее


Не для каждой, а только для текущей, и только при разговоре (точнее, в состоянии обмена данными с BS).


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
ovik89
сообщение Oct 3 2008, 06:01
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 2-10-08
Пользователь №: 40 659



На яндекс карты поддерживается для мобильников точьность не измерял но районы соответствуют
Go to the top of the page
 
+Quote Post
Baser
сообщение Oct 3 2008, 12:44
Сообщение #18


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Alechek @ Oct 3 2008, 08:33) *
телефон для каждой вышки отслеживает расстояние до нее, кратное 512 метрам. Это ему необходимо для вычисления задержки сигнала для подавления эха в акустическом тракте.

Модет быть все как раз наоборот? smile.gif

По измеренной задержке сигнала от БС, телефон определяет параметры для работы эхоподавителя.
А возможность вычисления расстояния это уже вторично.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 3 2008, 12:58
Сообщение #19


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Окститесь, какое эхоподавление??? Ему надо знать задержку, чтобы с упреждением включить передатчик, чтобы пакет влетел в приемник BS точно в нужном тайм-слоте.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Baser
сообщение Oct 3 2008, 14:29
Сообщение #20


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Rst7 @ Oct 3 2008, 15:58) *
Окститесь, какое эхоподавление??? Ему надо знать задержку, чтобы с упреждением включить передатчик, чтобы пакет влетел в приемник BS точно в нужном тайм-слоте.

Наверное, вы правы. Я на глубину не нырял smile.gif
Мне просто показалась забавной фраза Alechek, хотя может быть он имел в виду другое...
Go to the top of the page
 
+Quote Post
Йокамон
сообщение Oct 3 2008, 19:38
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-12-05
Пользователь №: 12 391



по поводу "кручения антен" - когда в город Х. приезжала типа коммисия из стольного города К. начиналось кручение(типа, на скока я понимаю диагармы направленности не те иль покрытие не так), как только уезжали - местные возвращали взад... правда было это с годик тому.. что сичас - не знаю - не интересно.
Go to the top of the page
 
+Quote Post
antisingle
сообщение Apr 30 2009, 08:46
Сообщение #22





Группа: Участник
Сообщений: 12
Регистрация: 15-01-09
Пользователь №: 43 428



Цитата(Rst7 @ Oct 1 2008, 15:46) *
Не очень точные координаты и не для всех операторов и не для всех мест можно получить следующим образом:

1. Необходимо узнать LAI/LAC/CID текущей рабочей вышки (тут все зависит от модуля, можно ли от него эту информацию получить).
2. Затем, пользуясь сервисом гугли получить координаты этой вышки.

Но это будет координата вышки, а не модуля, как понимаете. Если сможете достать из модуля все вышки, которые он видит (обычно, около 6) и уровни сигналов, то можно оценить координаты самого модуля. Заметьте, оценить, а не измерить wink.gif


А можно немного поподробнее о том, как можно это сделать?

Мой модуль выплевывает следующие данные:
<nbcells>: number of base stations available. The first base station is the serving cell (0 ≤ i ≤ 7)
<ARFCN>: Absolute Radio Frequency Channel Number
<BSIC>: Base Station Identify Code
<PLMN>: PLMN identifiers (3 bytes), made of MCC (Mobile Country Code), and MNC (Mobile Network Code).
<LAC>: Location Area
<CI>: Cell ID, 4 hexadecimal digits, e.g. ABCD.
<RSSI>: Received signal level of the BCCH carrier, decimal value from 0 to 63.
<TA>: Timing advance. Available only during a communication (equals to 0xff=255 at any other time).

В данном случае, CID=>CI, LAC=>LAC, а что такое LAI - не совсем понимаю...
Вот в этом документе нашел информацию, что LAI - это совокупность MNC, MCC, LAC и CID (то есть всего вышеперечисленного).

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

Подскажите, пожалуйста, как можно переколбасить эти данные в координаты.

ЗЫ О каком, кстати, сервисе Гугла речь идет? Вроде информации по вышкам там взяться неоткуда...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 30 2009, 09:37
Сообщение #23


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А можно немного поподробнее о том, как можно это сделать?


Ну, все данные Вы получаете, судя по тексту ниже.

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


TA - это и есть задержка. В у.е. Актуальна только при наличии соединения.

Цитата
Подскажите, пожалуйста, как можно переколбасить эти данные в координаты.
ЗЫ О каком, кстати, сервисе Гугла речь идет? Вроде информации по вышкам там взяться неоткуда...


Google Maps для мобильных устройств ходит на свой серверок, который по CID/LAC возвращает широту/долготу. Яндекс тоже имеет такой сервис. Недолгое гугление привело к коду

Код
function GetCoordFromGoogle(CountryCode, NetworkCode, LAC, CellID: Integer): string;
var
  strA, strB, strC, strAll: string;
  sResult: string;
  ms: TMemoryStream;
  dLat, dLon: Double;
  iLat, iLon: Integer;
  i: Integer;
  b: byte;
  sTmp, sTmp2: string;
  iCntr: Integer;
  HTTP: TIdHTTP;
begin
  Result := '';
  strA := '000E00000000000000000000000000001B0000000000000000000000030000';
  strB := '0000' + IntToHex(CellID, 2) + '0000' + IntToHex(LAC, 2);
  strC := '000000' + IntToHex(NetworkCode, 2) + '000000' + IntToHex(CountryCode, 2);
  strAll := strA + strB + strC + 'FFFFFFFF00000000';
  HTTP := TIdHTTP.Create(nil);
  HTTP.Request.ContentType := 'application/x-www-form-urlencoded';
  HTTP.Request.ContentLength := Length(strAll) div 2;
  ms := TMemoryStream.Create;
  try
    iCntr := 1;
    for i := 1 to (Length(strAll) div 2) do begin
      b := StrToInt('0x' + Copy(strAll, iCntr, 2));
      iCntr := iCntr + 2;
      ms.Write(b, 1);
    end;
    ms.Seek(0, soFromBeginning);
    try
      sResult := HTTP.Post('http://www.google.com/glm/mmap', ms);
      if Length(sResult) > 14 then begin
        sTmp := '0x';
        for i := 1 to 5 do begin
          sTmp2 := Copy(sResult, i + 6, 1);
          sTmp := sTmp + IntToHex(Ord(sTmp2[1]), 2);
        end;
        iLat := StrToInt(sTmp);
        sTmp := '0x';
        for i := 1 to 4 do begin
          sTmp2 := Copy(sResult, i + 11, 1);
          sTmp := sTmp + IntToHex(Ord(sTmp2[1]), 2);
        end;
        iLon := StrToInt(sTmp);
        dLat := iLat/1000000;
        dLon := iLon/1000000;
        Result := Format('%12.7f%s%12.7f', [dLat, #13#10, dLon]);
      end;
    except
      // stub
    end;
  finally
    HTTP.Free;
    ms.Free;
  end;
end;

function GetCoordFromYandex(CountryCode, NetworkCode, LAC, CellID: Integer): string;
const
cc_URL = 'http://mobile.maps.yandex.net/cellid_location/?&cellid=%d&operatorid=%d&countrycode=%d&lac=%d';
var
  sURL: string;
  rs: TStream;
  node: IXMLNode;
  HTTP: TIdHTTP;
  XML: TXMLDocument;
begin
  Result := '';
  sURL := Format(cc_URL, [CellID, NetworkCode, CountryCode, LAC]);
  rs := TMemoryStream.Create;
  HTTP := TIdHTTP.Create(nil);
  XML := TXMLDocument.Create(HTTP); // если указать nil то будет ошибка :-D
  try
    HTTP.Request.Accept := 'text/plain';
    HTTP.Request.AcceptEncoding := 'windows-1251';
    try
      HTTP.Get(sURL, rs);
      if rs.Size > 0 then begin
        rs.Seek(0, soFromBeginning);
        XML.LoadFromStream(rs);
        XML.NSPrefixBase := 'location';
        node := XML.Node.ChildNodes.FindNode('location');
        if (node <> nil) then begin
          node := node.ChildNodes.FindNode('coordinates');
          if (node <> nil) then begin
            Result :=
              StringReplace(node.Attributes['latitude'], '.', ',', []) + #13#10 +
              StringReplace(node.Attributes['longitude'], '.', ',' ,[]);
          end;
        end;
      end;
    except
      // stub
    end;
  finally
    XML.Free;
    HTTP.Free;
    rs.Free;
  end;
end;


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
antisingle
сообщение Apr 30 2009, 10:49
Сообщение #24





Группа: Участник
Сообщений: 12
Регистрация: 15-01-09
Пользователь №: 43 428



Rst7, спасибо!

Круто, я б не догадался, что у Гугла с Яндексом есть такой замечательный сервис smile.gif

Сейчас вижу вокруг себя 7 станций, то есть, если померить задержку до каждой - то можно получить довольно неплохую погрешность!

Осталось найти способ, как можно измерить задержку для требуемой станции, потому как я пока не вижу, как для связи можно использовать какую-то определенную БС. Для этого есть какие-то определенные АТ-команды?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 30 2009, 10:58
Сообщение #25


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Осталось найти способ, как можно измерить задержку для требуемой станции


Без ковыряний внутри софта модуля - никак, т.к. можно измерить задержку до текущей БС только в режиме разговора.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
etoja
сообщение Apr 30 2009, 12:07
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Цитата(Йокамон @ Oct 3 2008, 23:38) *
по поводу "кручения антен" - когда в город Х. приезжала типа коммисия из стольного города К. начиналось кручение(типа, на скока я понимаю диагармы направленности не те иль покрытие не так), как только уезжали - местные возвращали взад... правда было это с годик тому.. что сичас - не знаю - не интересно.


В сетях GSM используется вертикальная поляризация и ваше "кручение антен" - глупость.
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Apr 30 2009, 19:24
Сообщение #27


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Почему? Крутить можно в горизонтальной плоскости, ещё как помогает.
Хотя вживую процесса кручения никогда не видел, это надо куда-то на периферию выезжать в преддверии визита каких-то высокопоставленных wink.gif


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
antisingle
сообщение May 6 2009, 06:55
Сообщение #28





Группа: Участник
Сообщений: 12
Регистрация: 15-01-09
Пользователь №: 43 428



Цитата(Rst7 @ Apr 30 2009, 14:58) *
Без ковыряний внутри софта модуля - никак, т.к. можно измерить задержку до текущей БС только в режиме разговора.


Итак, как найти задержку разобрался. Убедился, что расстояние (благо, формулу знаю) можно измерить
1.только до текущей станции
2.только в режиме разговора
smile.gif

Погрешность - около полукилометра

Сменить станцию посредством АТ-команд не предоставляется возможным - насколько я понимаю, то базовая станция выбирается не модулем, а сетью. То есть найти свои координаты по ТА не представляется возможным - можно только найти расстояние до текущей станции.

Из остальных данные здесь может помочь, видимо, только уровень сигнала - он хоть как-то коррелирует с расстоянием, однако, как количественно связать эту цифру с расстоянием, я не знаю.
Go to the top of the page
 
+Quote Post
alx125
сообщение May 18 2009, 02:19
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 18-05-09
Из: Novosibirsk
Пользователь №: 49 204



Цитата(antisingle @ Apr 30 2009, 12:46) *
А можно немного поподробнее о том, как можно это сделать?

Мой модуль выплевывает следующие данные:
<nbcells>: number of base stations available. The first base station is the serving cell (0 ≤ i ≤ 7)
<ARFCN>: Absolute Radio Frequency Channel Number
<BSIC>: Base Station Identify Code
<PLMN>: PLMN identifiers (3 bytes), made of MCC (Mobile Country Code), and MNC (Mobile Network Code).
<LAC>: Location Area
<CI>: Cell ID, 4 hexadecimal digits, e.g. ABCD.
<RSSI>: Received signal level of the BCCH carrier, decimal value from 0 to 63.
<TA>: Timing advance. Available only during a communication (equals to 0xff=255 at any other time).

...



Подскажите пожалуйста, как GSM-модуль Вы используете? Помоему SIM300 не выдает параметр <TA>.
Go to the top of the page
 
+Quote Post
av-master
сообщение May 18 2009, 07:33
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 857
Регистрация: 14-05-05
Из: Украина
Пользователь №: 4 998



А где вообще найти спецификацию GSM-a, Например свой модуль.... сделать ))) ? Насколько я понимаю нет в Интернетах ничего секретного )))
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01486 секунд с 7
ELECTRONIX ©2004-2016