转的,不知道LZ是否看过

利用COM口来获取CELLID,并不保证所有的设备都支持。

测试平台:

VS2005 + WM 6.0

开发语言:

C++

typedef

struct

{

char CountryCode[12];

char AreaCode[4];

char NetworkCode[4];

char CellID[4];

} TCREG_DATA;

获取基站信息:

复制到剪贴板  C/C++代码

void Get_Cellid(void)

{

char m_sTemp[12] = {0};

strcat(m_sTemp,"COM");

for(int i = 9; i > 0; -- i)

{

char ch1;

_itoa(i,&ch1,10);

strcat(m_sTemp,&ch1);

strcat(m_sTemp,":");

TCREG_DATA* pData = (TCREG_DATA*)GetCREG(m_sTemp);

if(!pData)

continue;

char szNum1[8] = {0};

char szNum2[8] = {0};

strcpy(szNum1,pData->AreaCode);

strcpy(szNum2,pData->CellID);

int iLac = (int)strtol(szNum1,NULL,16);

int iId  = (int)strtol(szNum2,NULL,16);

if (iLac && iId)

{

sprintf(m_sCell.LAC,"%06d", iLac );

sprintf(m_sCell.ID,"%06d", iId  );

break;

}

}

}

获取串口:

复制到剪贴板  C/C++代码

char* GetCREG( char * comPort )

{

HANDLE hCom;

int bufpos;

DCB dcb;

COMMTIMEOUTS to;

DWORD nWritten;

DWORD event;

DWORD nRead;

static

char outbuf[20], buf[256];

BYTE comdevcmd[2]= {0x84, 0x00};

WCHAR m_sCom[12] = {0};

mbstowcs(m_sCom,comPort,strlen(comPort));

hCom= CreateFile( m_sCom ,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);

if (hCom==NULL || hCom==INVALID_HANDLE_VALUE)

{

hCom= NULL;

return NULL;

}

if (!GetCommState(hCom, &dcb))

{

return

"ERROR:GetCommState Failed";

}

dcb.BaudRate= CBR_115200;

dcb.ByteSize= 8;

dcb.fParity= false;

dcb.StopBits= ONESTOPBIT;

if (!SetCommState(hCom, &dcb))

{

return

"ERROR:SetCommState Failed";

}

EscapeCommFunction(hCom, SETDTR);

EscapeCommFunction(hCom, SETRTS);

GetCommTimeouts(hCom, &to);

to.ReadIntervalTimeout= 0;

to.ReadTotalTimeoutConstant= 200;

to.ReadTotalTimeoutMultiplier= 0;

to.WriteTotalTimeoutConstant= 20000;

to.WriteTotalTimeoutMultiplier= 0;

SetCommTimeouts(hCom, &to);

if (!SetCommMask(hCom, EV_RXCHAR))

{

return

"-8";

}

DWORD rildevresult=0,nReturned=0;

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;

}

puts(buf);

rildevresult = 0;

if (!EscapeCommFunction(hCom, CLRDTR))

{

return

"-4";

}

if (hCom!=NULL)

{

CloseHandle(hCom);

hCom= NULL;

}

char* cregResponse = strpbrk( buf, "CREG\0" );

return cregResponse;

}

android 基站id获取,C++ 获取CELL-ID(基站编号)相关推荐

  1. eCGI是PLMN+ECI ,ECI (28 Bits) = eNB ID(20 Bits) + Cell ID(8 Bits)(逻辑小区id,范围0~255)

    https://www.cnblogs.com/sddai/p/6244538.html LTE中的各种ID含义 原文链接:http://www.hropt.com/ask/?q-7128.html ...

  2. android 获取应用的资源id和uri

    2019独角兽企业重金招聘Python工程师标准>>> 在某些应用中,为了实现应用apk资源放入重复利用,或者使用反射得到本应用的资源,需要使用反射反射方式获得,但Resources ...

  3. Android NFC读MifareClassic卡获取卡片ID 类型 扇区 存储空间

    1.首先要在AndroidManifest.xml中声明如下配置信息: 为了能够使用Android手机的NFC功能,需要在Manifest文件中添加相应的权限: 详细配置请参考-->Androi ...

  4. android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解

    android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解 一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的 ...

  5. Android - 获取移动端设备ID标识,分情况

    目前需求:未登录的用户(游客)需要与客服实时通讯,要怎么区分用户消息? 思路:获取游客的设备ID,以此为标识传给服务器来查询/发送信息,一设备为一用户. 那设备ID是什么?怎么获取呢? 设备ID,就是 ...

  6. android获取控件的id(标识符)-根据控件id获取对应的值或控件名字-动态获取R.string的值

    更多其他页面-自定义View-实用功能合集:点击查看 项目中需要动态获取资源R.string的值,记录一下解决方案. demo链接: link. 直接先上个示例,下面再有详细解说: @Override ...

  7. Android有文件读写权限,无法读写文件 open failed: EACCES (Permission denied) 获取设备唯一不变id 所有文件读写权限按钮无法打开

    最近有个需求,要获取设备唯一id,Android一直没有什么完善的方案获取设备唯一不变的id,我就结合了几种方案组成了一下: 1. 首先获取IMEI; IMEI获取失败后 2. 获取SN序列号,序列号 ...

  8. 如何获取应用宝APP ID

    二百二维码支持绑定应用宝ID后,android 扫码下载后,微信直接下载APP,不打开应用宝页面,非常方便APP进行推广 那如何获取应用宝APP ID呢, 请参考下面的教程    一, 打开http: ...

  9. RK3288获取摄像头的Sensor ID【原创】

    平台信息: 内核:linux3.0.68  系统:android/android6.0 平台:RK3288 作者:庄泽彬(欢迎转载,请注明作者) 邮箱:2760715357@qq.com 说明:通过I ...

  10. 【淘宝商品】获取淘宝商品ID、获取淘宝商品详情

    心态快爆炸,获取商品ID已经困扰好几天了,网上搜寻的办法也总是达不到想要的效果,要么没有权限,要么获取不到Location.. 附上研究结果工具包(俺就喜欢各种工具包,简单快捷,有其他见解的同志欢迎骚 ...

最新文章

  1. GPT3后可考虑的方向-知识推理与决策任务及多模态的信息处理
  2. bzoj 2730: [HNOI2012]矿场搭建——tarjan求点双
  3. 基于视觉的在线地图:一种Transformer网络方法
  4. Linux系统文件和目录管理
  5. 数据结构之查找二叉树
  6. C++ Primer 5th笔记(chap 15 OOP)继承的构造函数容器
  7. mysql有那么多存储引擎_MySQL的多存储引擎架构
  8. 【机器学习】线性回归之Normal Equation(矩阵求导与线性代数视角)
  9. 五分钟了解数据库事务隔离
  10. WildFly 8.0.0.Alpha1的发布和一些历史
  11. o_rdonly_O_RDWR, O_CREAT等open函数标志位在哪里定义? | 学步园
  12. JSF 源代码赏析之Lifecycle
  13. Android中GsonFormat的安装及使用
  14. 对比会声会影与剪映哪个制作转场效果更专业
  15. web 前端(轮番插件)
  16. sql server cross/outer apply 用法
  17. 微信小程序发送验证码短信SDK及文档
  18. 【模糊神经网络】基于simulink的模糊神经网络控制器设计
  19. 英语情景对话计算机专业,工作有关情景对话英语
  20. 服务器 无线键鼠,几台电脑一套键鼠 不光省钱还方便

热门文章

  1. CWnd SetCapture ReleaseCapture GetCapture
  2. java 如何调用 wsdl_java 调用wsdl的方式
  3. java WebService接口调用WSDL详细解析
  4. 测试真相 | 软件测试真的只是“点,点,点......”吗?
  5. java float的精度_java中的float和double的精度问题
  6. protocol buffer 使用之 .proto 定义规则
  7. 关于找不到指定的模块,异常来自HRESULT:0x8007007E的解决方法
  8. 【你还在烦恼你的实验报告吗?】C语言结课实验——学生成绩管理系统
  9. mysql详细安装步骤图解
  10. 用Java语言生成数学图形