[color=blue][size=4]三代机通讯模块定位原理[/size][/color]
利用小区号和基站号可以做简单的GSM定位。
下面给出一个取得小区号和基站号的方法。 首先依然是打开AT指令端口。 HANDLE hCOM9 = CreateFile (LCOM9:,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if( hCO...
利用小区号和基站号可以做简单的GSM定位,下面给出一个取得小区号和基站号的方法。
首先依然是打开AT指令端口。
HANDLE hCOM9 = CreateFile ( L"COM9:" , GENERIC_READ|GENERIC_WRITE , FILE_SHARE_READ|FILE_SHARE_WRITE , NULL , OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , NULL ); if ( hCOM9 == INVALID_HANDLE_VALUE ) MzMessageBoxEx( NULL , L"Error opening COM9" , NULL );
要取得小区号和基站号,需要首先让手机输出这两个号码,方法是利用设置命令 "AT+CREG=2"。然后再发送AT+CREG?查询即可取得基站号和ID号。
DWORD dwBytes; char p = 0x0D ; //cr char q = 0x0A ; //lf WriteFile( hCOM9 , “AT+ CREG = 2 ;+CREG?” , 9 , &dwBytes , NULL ); WriteFile( hCOM9 , &p , 1 , &dwBytes , NULL ); WriteFile( hCOM9 , &q , 1 , &dwBytes , NULL );
返回值应该是这样的:
AT+ CREG = 2 ;+CREG? < cr > < lf > +CREG: 2,n,"ABCD","ABCD" < cr > < lf > OK < cr > < lf >
其中第一个“ABCD”是小区号(LAC),第二个“ABCD”是基站号(CI)。
至于运营商,可以用AT+COPS?获取。返回值应该类似这样:
AT+COPS? < cr > < lf > +COPS: 0,0,"China Mobile" < cr > < lf > OK < cr > < lf >
这样,就可以利用取得的基站号和ID号做基站定位了。
用单片机模拟通讯模块运行环境,就可以破解三代机地理位置限制!
[color=orangered][size=6]个人见解!不要拍砖![/size][/color][font=黑体][/font]