显示标签为“GSM”的博文。显示所有博文
显示标签为“GSM”的博文。显示所有博文

2008/08/08

miniGPS:利用gsm cell 定位

没有评论:

Psiloc miniGPS是一款网络定位工具,可以让你在GSM网络中确定你自己的位置!它的主要目标是根据你在网络中的不同位置执行设定的任务.它也可以显示你的手机所登录的网络单元的详细信息.你可以根据你已登录的单元和输入新的数据来创建自己的网络单元数据库.
  miniGPS 一个通过GSM移动电话网络定位的软件。通过mimiGPS你可以将自己所在的不同位置保存下来,比如公司,家中等,然后可以用mimiGPS进行监视,一进入或离开特定的范围就可以做出改变情景模式、发送短消息、响铃和关机等不同的操作。

首先是 cell ,我们知道,由于地球本身的原因,不管发射塔建的有多高,总有其无线电波覆盖不到的地方,为了让网络覆盖到服务区的每一块区域,只有每隔一段距离,就建一 个发射塔,也称之为基站。把每个基站都连接起来,就构成了一个巨大的网络。在海上,只能用卫星来覆盖了。一个城市,从规模的大小,可以有几十甚至几百个基 站,这款软件就是利用基站的位置来进行手机使用者的定位的。 Cell 的含义就是基站的意思,每一个基站都有一个 id ,也就是标示符,是唯一的。上面的 cell id 为 30211 。 Signal 是信号,其用数量的方法描述了信号的强弱, 100% 就是我们平时说的满格信号。 Area id 是区域标示符,也是唯一的, Area 与 cell 的关系是:一个 Area 可以有多个 cell ,就像一个鱼缸有多条鱼一样,一个 Area 需要不仅一个 cell 来覆盖。


Another interesting software:

TrackMe* GPS/CellID Tracking tool for Google Earth & Google Maps

http://luisespinosa.com/trackme_eng.html

http://forum.xda-developers.com/showthread.php?t=340667


gps and gsm locations from python s60

没有评论:
Goal: periodically obtain 1) BT GPS (i.e. $GPRMC and $GPGGA sentences) and 2) GSM cell id at the same time and save.

____________________________________

# Simple BT App
#$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598, ,*10

import socket,location,urllib

class BTReader:

def connect(self):
self.sock=socket.socket(socket.AF_BT,socket.SOCK_STREAM)
address,services=socket.bt_discover()
print "Discovered: %s, %s"%(address,services)
target=(address,services.values()[0])
print "Connecting to "+str(target)
self.sock.connect(target)

def readposition(self):
try:
buffer=""
ch = self.sock.recv(1)
while(ch !='\n'):
buffer+=ch
ch = self.sock.recv(1)
# print buffer

if (buffer[0:6]=="$GPRMC"):
(GPRMC,utc,status,lat,latns,lon,lonew,knots,course,date,xx1,xx2)=buffer.split(",")
return "GPS (%s,%s,%s,%s,%s)"%(utc,lat+latns,lon+lonew,knots,course)
except Error:
return "Error!\n"
return ""

def close(self):
self.sock.close()

class GSM_loc:

def upd(self):
self.loc = location.gsm_location()
return "GSM (MCC:%s MNC:%s LAC:%s CID=%s)"%(self.loc[0], self.loc[1], self.loc[2], self.loc[3])

gsm = GSM_loc()

bt=BTReader()
bt.connect()

i=0
while (i<15):
print gsm.upd()
print bt.readposition()
i+=1

bt.close()