我正在运行AT命令AT + KCELL以获取小区信息,并返回PLMN(公共陆地和移动网络) - 文档中的描述如下:
PLMN标识符(3个字节),由MCC(移动国家代码)和MNC(移动网络代码)组成.
好吧,这与维基百科所说的相符 - 有MCC和MNC.现在我不明白的是如何提取上述MCC和MNC值?
这是一个例子.我回来了:
32f210
Run Code Online (Sandbox Code Playgroud)
我被告知(虽然我持怀疑态度),这应该导致:
MNC: 1
MCC: 232
Run Code Online (Sandbox Code Playgroud)
但我不能为我的生活弄清楚如何从PLMN获得结果,那我该如何解析呢?
kmp*_*kmp 12
好吧,我已经发现了这一点,并认为我会在这里添加一个答案,以防有一些其他不幸的灵魂必须这样做 - PDF称为GSM技术规范(第10.2.4节)包含答案,相关的位是:
PLMN内容:移动国家代码(MCC),后跟移动网络代码(MNC).编码:根据TS GSM 04.08 [14].
- 如果需要存储少于最大可能数n的存储,则多余字节应设置为"FF".例如,对于MCC使用246,对于MNC使用81,如果这是第一个也是唯一的PLMN,则内容如下:字节1-3:'42''F6''18'字节4-6:'FF ''FF''FF'等
所以我持怀疑态度是错误的!
我需要从左边读取数字周围的数字,所以前两个字节将是MCC,这样就可以了232f,01然后MNC将丢弃f,我有232和1!很高兴一个人排序.
例如,在c#中你可以这样做:
string plmn = "whatever the plmn is";
string mcc = new string(plmn.Substring(0, 2).Reverse().ToArray())
+ new string(plmn.Substring(2, 2).Reverse().ToArray())
.Replace('f', ' ')
.Trim();
string mnc = new string(plmn.Substring(4, 2).Reverse().ToArray())
.Replace('f', ' ')
.Trim();
Run Code Online (Sandbox Code Playgroud)