CELLID GET
来源:互联网 发布:社交网络电影下载 编辑:程序博客网 时间:2024/05/17 23:51
cellid免费招聘,贴心求职,尽在远大前程(人才网)#include "stdafx.h"#include "pdacellid.h"#include "ril.h"BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE;}PDACELLID_API long fnGetCell(LPTSTR outData){HANDLE hCom;char * xpos;char rsltstr[5];DWORD CellId;int bufpos;DCB dcb;COMMTIMEOUTS to;DWORD nWritten;DWORD event;DWORD nRead;char outbuf[20], buf[256]; BYTE comdevcmd[2]= {0x84, 0x00}; hCom= CreateFile(L"COM2:",GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0); if (hCom==NULL || hCom==INVALID_HANDLE_VALUE) { hCom= NULL; return -1; } if (!GetCommState(hCom, &dcb)) { return -2; } dcb.BaudRate= CBR_115200; dcb.ByteSize= 8; dcb.fParity= false; dcb.StopBits= ONESTOPBIT; if (!SetCommState(hCom, &dcb)) { return -3; } if (!EscapeCommFunction(hCom, SETDTR)) { return -4; } if (!GetCommTimeouts(hCom, &to)) { return -6; } to.ReadIntervalTimeout= 0; to.ReadTotalTimeoutConstant= 200; to.ReadTotalTimeoutMultiplier= 0; to.WriteTotalTimeoutConstant= 20000; to.WriteTotalTimeoutMultiplier= 0; if (!SetCommTimeouts(hCom, &to)) { return -7; } if (!SetCommMask(hCom, EV_RXCHAR)) { return -8; } if (!DeviceIoControl (hCom,0xAAAA5679L, comdevcmd, sizeof(comdevcmd),0,0,0,0)) { return -9; } bufpos = 0; strcpy(outbuf,"AT+creg=2/r"); if (!WriteFile(hCom, outbuf, 10, &nWritten, NULL)) { return -10; } if (nWritten != 10) { return -11; } if (!WaitCommEvent(hCom, &event, NULL)) { return -12; } while(1) { if (!ReadFile(hCom, buf+bufpos, 256 - bufpos, &nRead, NULL)) { return -13; } if (nRead == 0) break; bufpos += nRead; if (bufpos >= 256) break; } strcpy(outbuf,"AT+creg?/r"); if (!WriteFile(hCom, outbuf, 9, &nWritten, NULL)) { return -14; } if (nWritten != 9) { return -15; } if (!WaitCommEvent(hCom, &event, NULL)) { return -16; } while(1) { if (!ReadFile(hCom, buf+bufpos, 256 - bufpos, &nRead, NULL)) { return -17; } if (nRead == 0) break; bufpos += nRead; if (bufpos >= 256) break; } buf[bufpos] = 0; mbstowcs(outData,buf,bufpos+1); if ((xpos = strstr(buf,"CREG")) == NULL) { CellId = -19; } else { memcpy(rsltstr,xpos+18,4); rsltstr[4] = 0; if (sscanf(rsltstr,"%X",&CellId) != 1) { CellId = -20; } } if (hCom!=NULL) { CloseHandle(hCom); hCom= NULL; } return CellId;}///////////////////////////////////////////////////////////////////void CALLBACK NotifyCallback(DWORD dwCode, const void *lpData, DWORD cbData, DWORD dwParam){ switch (dwCode & RIL_NCLASS_ALL) { case RIL_NCLASS_MESSAGE: { switch (dwCode & 0xff) { case RIL_NOTIFY_MESSAGE: { RILMESSAGE *prmMsg = (RILMESSAGE *)lpData;// DisplayMessage(prm); switch(prmMsg->dwType) { case RIL_MSG_IN_DELIVER: { break; } default: break; } break; } case RIL_NOTIFY_STATUSMESSAGE: { RILMESSAGE *prm = (RILMESSAGE *)lpData; break; } } break; } }}void CALLBACK ResultCallback(DWORD dwCode, HRESULT hrCmdID, const void *lpData, DWORD cbData, DWORD dwParam){}PDACELLID_API long fnGetCell2(LPTSTR outData){HANDLE hCom;HRIL hRil;char * xpos;char rsltstr[5];DWORD CellId;DWORD erc, erc2;int bufpos;DCB dcb;COMMTIMEOUTS to;DWORD nWritten;DWORD nRead;char outbuf[20], buf[256]; // BYTE comdevcmd[2]= {0x84, 0x00}; DWORD dwNotificationClasses = 0xFF0000; DWORD g_dwParam = 0x55AA55AA; erc = RIL_Initialize(1, ResultCallback, NotifyCallback, dwNotificationClasses, g_dwParam, &hRil); if (erc != 0) return erc; erc = RIL_GetSerialPortHandle(hRil,&hCom); if (erc != 0) { erc2 = RIL_Deinitialize(hRil); return erc; } if (hCom==NULL || hCom==INVALID_HANDLE_VALUE) { hCom= NULL; erc = RIL_Deinitialize(hRil); return -1; } if (!GetCommState(hCom, &dcb)) { erc = RIL_Deinitialize(hRil); return -2; } dcb.BaudRate= CBR_115200; dcb.ByteSize= 8; dcb.fParity= false; dcb.StopBits= ONESTOPBIT; if (!SetCommState(hCom, &dcb)) { erc = RIL_Deinitialize(hRil); return -3; } if (!EscapeCommFunction(hCom, SETDTR)) { erc = RIL_Deinitialize(hRil); return -4; }// if (!EscapeCommFunction(hCom, SETRTS))// {// erc = RIL_Deinitialize(hRil);// return -5;// } if (!GetCommTimeouts(hCom, &to)) { erc = RIL_Deinitialize(hRil); return -6; } to.ReadIntervalTimeout= MAXDWORD; to.ReadTotalTimeoutConstant= 1000; to.ReadTotalTimeoutMultiplier= MAXDWORD; to.WriteTotalTimeoutConstant= 2000; to.WriteTotalTimeoutMultiplier= 0; if (!SetCommTimeouts(hCom, &to)) { erc = RIL_Deinitialize(hRil); return -7; } if (!SetCommMask(hCom, EV_RXCHAR+EV_ERR+EV_BREAK)) { erc = RIL_Deinitialize(hRil); return -8; } bufpos = 0; strcpy(outbuf,"AT+creg=2/r"); if (!WriteFile(hCom, outbuf, 10, &nWritten, NULL)) { erc = RIL_Deinitialize(hRil); return -10; } if (nWritten != 10) { erc = RIL_Deinitialize(hRil); return -11; } while(1) { if (!ReadFile(hCom, buf+bufpos, 256 - bufpos, &nRead, NULL)) { erc = RIL_Deinitialize(hRil); return -13; } if (nRead == 0) break; bufpos += nRead; if (bufpos >= 256) break; } if (bufpos == 0) { erc = RIL_Deinitialize(hRil); return -130; } strcpy(outbuf,"AT+creg?/r"); if (!WriteFile(hCom, outbuf, 9, &nWritten, NULL)) { erc = RIL_Deinitialize(hRil); return -14; } if (nWritten != 9) { erc = RIL_Deinitialize(hRil); return -15; } bufpos = 0; while(1) { if (!ReadFile(hCom, buf+bufpos, 256 - bufpos, &nRead, NULL)) { erc = RIL_Deinitialize(hRil); return -17; } if (nRead == 0) break; bufpos += nRead; if (bufpos >= 256) break; } if (bufpos == 0) { erc = RIL_Deinitialize(hRil); return -131; } buf[bufpos] = 0; mbstowcs(outData,buf,bufpos+1); if ((xpos = strstr(buf,"CREG")) == NULL) { CellId = -19; } else { memcpy(rsltstr,xpos+18,4); rsltstr[4] = 0; if (sscanf(rsltstr,"%X",&CellId) != 1) { CellId = -20; } } if (hCom!=NULL) { CloseHandle(hCom); hCom= NULL; } erc = RIL_Deinitialize(hRil); return CellId;}
- CELLID GET
- Get CellId and other Imformation from mobile phones via J2ME
- 获取cellID
- CellID 基站定位
- 解释PLMN,CELLID,LAC
- CELLID的定位技术
- Cellid LAC(获取)监听
- LAC+CELLID定位手机位置
- 利用GoogleMap 将CellID转为经纬度
- Location-Based Services Using CellID in Android
- IOS——获取CellID以及LAC
- 为什么我的CDMA手机获取不了CellID?
- 如何直接从手机内存中获取CellID?
- WM5.0下如何获取基站信息(LAC、Cellid)
- 用Python通过CellID从Google得到经纬度
- Windows Mobile如何获取基站信息(LAC,CellID)
- Android 获取CellId以及IMEI 获取基站id
- iPhone中取得LAC和cellid等信息
- RAID介绍及详解
- JMS简介
- .NET系统学习----Globalization & Resources
- TLV(tag length value)编码
- 艰难的blog之路
- CELLID GET
- Maven简介
- 十五项技巧IT管理者的
- C#版可调节的文字阴影特效
- Xenocode Postbuild 2007 build 6675 破解版
- [转载]使用 JSON 创建对象
- 与网友讨论 [1]几天狂想的成果:工作流的定义与模型
- IBM R6 新增硬盘
- SessionIE的补充说明