找回密码
 注册
搜索
查看: 3688|回复: 22

MTK如何编程取得小区cell_id编号?

[复制链接]
发表于 2008-1-25 17:34:09 | 显示全部楼层 |阅读模式
请教大家,如何在mtk平台上通过编程取得cell_id小区编号和LAC值??

[em13][em13]
 楼主| 发表于 2008-1-29 11:58:28 | 显示全部楼层
看MTK手机在工程模式下可以取到这些值,不知道是否提供了接口函数能够获取??
那位同学给说说。 [em13][em13]
点评回复

使用道具 举报

发表于 2008-1-30 10:14:34 | 显示全部楼层
一个Sasken的结构里面可以直接得到
点评回复

使用道具 举报

 楼主| 发表于 2008-1-31 18:30:13 | 显示全部楼层
hi, lander, 我没有找到你说的Sasken结构,能给具体说说吗?

谢谢。[em14][em14]
点评回复

使用道具 举报

发表于 2008-2-2 10:30:54 | 显示全部楼层
layer4_context.h

typedef struct
{
   l4c_context_struct         *l4c_ptr;


} layer4_context_struct;
extern layer4_context_struct *layer4_ptr_g;        //MTK layer4 context structure, we can get LAC & CellID from it

据说有些平台不一定行,good luck
点评回复

使用道具 举报

 楼主| 发表于 2008-2-2 14:52:16 | 显示全部楼层
谢谢lander,再请教一下,为什么我通过这个结构获取的值和功能模式下显示的值不同呢?

我通过layer4_ptr_g->l4c_ptr->hz_ptr->current_cell_id得到的cell_id值为15.
   通过layer4_ptr_g->l4c_ptr->hz_ptr->current_lac获取的lac为18 15.

而在工程模式下显示的值cell_id: 25240
                                 lac: 17 119
[em13][em13]
点评回复

使用道具 举报

发表于 2008-2-2 23:00:52 | 显示全部楼层
可以仿照工程模式的代码。如果只要获得当前服务小区的话,不用mtk改库。
点评回复

使用道具 举报

发表于 2008-2-3 10:59:19 | 显示全部楼层
你的指针或者buf有问题,假如上海的话,LAC应该为6开头的四位数:比如LAC=0x187D= 6269

例: LAC=0x187D= 6269  数据库中该地域码对应:
    460;00;6269;12338;11;上海 浦东 牡丹路399弄


附件是一个PC版的在数据库中搜索LAC对应地方的包,包含:
Readme.txt (细节说明)
Cells.dat (80K的明文的数据库文件,格式如上例,网上有公开数据,添加方便)
CellPhoneLocation.exe   (可执行文件)

在手机上若放数据库到TFlash卡上,搜索40K的数据大概5秒。



一、LAC篇
  LAC实际上是区位码,相当于手机号码的前七位,提供了省-市-县的信息。是全国唯一的基站属地识别码。
移动的LAC最初为十进制4位码,现在大多采用十进制5位码。至今北京、上海、天津、广州主要采用4位码,其他省市主要采用5位码(但还有个把4位码)。
  下列为部分省、直辖市的LAC划分(以下均为移动数据):
5位
河南  14081-14803
江苏  20497-20990,21787-21857
安徽  21761-22000
山东  21249-21489,24965-25425
浙江  22222-22597
福建  22800-22990
湖北  28928-29153
湖南  29464-29601
江西  30990-31104
四川  33024-33261
贵州  34050-34176
云南  34593-35067
4位(首位)
上海  6
北京  4
  各个省又可以划分到地区,如浙江省部分地区:
宁波  22222,336-351,435,465-479,592-594,597(前几位相同)
杭州  22288-303、324,449-451,453,456-458,460-463,545-555
湖州  22310、312
嘉兴  22320-321、324、327
台州  22371-372,375,379,383,499,507,510
温州  22384-386,390-391,393-397,399,480-482,484,486,489-491,493,516-520
    也有极个别交叉的,但可以区分开。地区下面还可以分县级,大城市也可以分区域。这是营运商有计划分配LAC码的结果。
利用LAC,很容易确定你所在的省市地区和县。一般来说这种定位意义不大。唯一的好处是数据量很少,因此可以实时显示在营运商显示区,
不需作任何操作;在火车上或长途汽车上确定到什么地界了,茫茫旅途离目的地还有多远。
点评回复

使用道具 举报

发表于 2008-2-3 11:03:59 | 显示全部楼层
【文件名】:0823@52RD_CellPhoneLocation20071120(5).rar
【格 式】:rar
【大 小】:139K
【简 介】:PC版的在数据库中搜索LAC对应地方
【目 录】:
Readme.txt (细节说明)
Cells.dat (80K的明文的数据库文件,格式如上例,网上有公开数据,添加方便)
CellPhoneLocation.exe   (可执行文件)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
点评回复

使用道具 举报

发表于 2008-2-3 11:15:39 | 显示全部楼层
一大应用(来自MOTO智能机):
根据小区号,自动更改家里和办公室的手机情景模式主题等设定;

其它应用:
必须到过某些特定点(得到该地LAC或Cellid号)
组织类似寻宝比赛...
真人位置报告


======================
所有手机有本事操作AT命令的话也可以直接得到:

实例:
at+creg=2
OK
at+creg?
+CREG: 2, 1, "187D", "A561"

===================
注1: 数据库格式:
        国家代码MCC; 网络代码MNC; LAC地区码; 小区基站ID; 组别; 地址描述
        中国MCC为460; MNC网络代码: 移动为00/联通GSM为01/ 联通CDMA为03
       
注2: 数据库:
        来自MOTO Linux智能手机之应用软件(Efem手机定位)
        (文本文件Cells.dat,记事本可编辑)
       
        网上数据库: http://www.kgg.cn/        下载移动数据 下载联通数据

   
460;00;29537;56401;6;湖南 望城 附三医院D
460;00;29537;56403;6;湖南 望城 附三医院D
460;00;29537;56551;6;湖南 望城 万利大厦D
460;00;29537;56552;6;湖南 望城 万利大厦D
460;00;29537;56553;6;湖南 望城 万利大厦D
460;00;29537;56592;6;湖南 望城 望岳村D2区
460;00;29537;56593;6;湖南 望城 望岳村D2区
460;00;29537;56633;6;湖南 望城 岳麓山D
460;00;29537;56634;6;湖南 望城 岳麓山D
460;00;29537;56721;6;湖南 望城 二坊娱乐城
460;00;29537;56722;6;湖南 望城 二坊娱乐城
460;00;29537;56723;6;湖南 望城 二坊娱乐城
460;00;29537;56724;6;湖南 望城 二坊娱乐城
460;00;29537;56781;6;湖南 望城 望月湖医院D
460;00;29537;56782;6;湖南 望城 望月湖医院D
460;00;29537;56783;6;湖南 望城 望月湖医院D
460;00;29537;56871;6;湖南 望城 工大研究楼D
460;00;29537;56873;6;湖南 望城 工大研究楼D
460;00;29537;58121;6;湖南 望城 天马山2D
460;00;29537;58122;6;湖南 望城 天马山2D
点评回复

使用道具 举报

 楼主| 发表于 2008-2-3 11:53:51 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>zhgzhgzhg</I>在2008-2-2 23:00:52的发言:</B>
可以仿照工程模式的代码。如果只要获得当前服务小区的话,不用mtk改库。</DIV>
<P>
可能我的SDK代码不是很全,只在EngineerModeTracer.c里找到一些功能模式下打印输出的代码片段,输出的是一个这个c文件中一个static结构的值。</P>
<P>static mmi_rr_em_lai_info_t mmi_rr_em_lai_info;</P>
<P>但是没有找到如何设置这个值的。</P>
点评回复

使用道具 举报

 楼主| 发表于 2008-2-3 12:05:38 | 显示全部楼层
非常感谢lander,学到了很多知识。

可能我的SDK不全,导致直接取layer4_ptr_g->l4c_ptr->hz_ptr值有问题。
我看见结构中这个field原本是被一个宏定义控制编译的。
typedef struct
{
    。。。
#ifdef __HOMEZONE_SUPPORT__   
   l4c_hz_context_struct *hz_ptr;                                                                                         
#endif
。。。
}l4c_context_struct;

我原来的环境是没有定义__HOMEZONE_SUPPORT__的,我是自己把这个宏定义加入到mak中重新编译的。
不知道是不是提供过来的SDK本身就不支持获取HOMEZONE,所以这个宏默认就没开。

这个全局结构在小区切换的时候会自动更新值吗??
点评回复

使用道具 举报

发表于 2008-2-4 10:20:08 | 显示全部楼层
fei de
点评回复

使用道具 举报

发表于 2008-2-4 10:49:27 | 显示全部楼层
工程命令里显示的不一定是当前小区,有可能是邻小区的cell_id,函数里读出来的应该是当前小区
点评回复

使用道具 举报

 楼主| 发表于 2008-2-4 16:49:12 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>lander</I>在2008-2-4 10:20:08的发言:</B>
fei de</DIV>


[em13][em13][em13]
点评回复

使用道具 举报

发表于 2008-2-5 10:08:02 | 显示全部楼层

非要说英语才懂? Yea
点评回复

使用道具 举报

发表于 2008-2-14 13:42:23 | 显示全部楼层
呵呵,lander可能是湖南人,“fei de”的意思是“会的”,哈哈。。。。[em08][em08][em08]
点评回复

使用道具 举报

发表于 2008-2-20 09:12:46 | 显示全部楼层
学习了,长知识了
点评回复

使用道具 举报

 楼主| 发表于 2008-2-20 22:58:39 | 显示全部楼层
<P>打算直接用AT指令了。
不过没有搞定如何使用串口,大家能帮忙看下吗?</P>
<P><a href="http://www.52rd.com/bbs/Detail_RD.BBS_115373_67_1_1.html" target="_blank" >http://www.52rd.com/bbs/Detail_RD.BBS_115373_67_1_1.html</A>

[em10][em10]</P>
点评回复

使用道具 举报

发表于 2008-4-7 00:33:16 | 显示全部楼层
我用的是mtk6225平台,current_cell_id取出来一直都是8058。
和GanQuan一样,我也遇到下面问题
我看见结构中这个field原本是被一个宏定义控制编译的。
typedef struct
{
    。。。
#ifdef __HOMEZONE_SUPPORT__   
   l4c_hz_context_struct *hz_ptr;            
#endif
。。。
}l4c_context_struct;

我原来的环境是没有定义__HOMEZONE_SUPPORT__的,我是自己把这个宏定义加入到mak中重新编译的。
不知道是不是提供过来的SDK本身就不支持获取HOMEZONE,所以这个宏默认就没开。请教,谢谢
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-6 13:15 , Processed in 0.065797 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表