首先,我试图在c#(.net 4)中做所有这些灾难,所以如果你拿出一些代码来帮助我,那将是值得赞赏的,但实际上任何事情都会有所帮助.
我有一种情况,我有一个设备只能获得GSM Cell信息(顺便通过AT+KCELL命令)所以我有一组关于蜂窝塔的值(每个都有LAC,MCC,MNC,Cell ID,信号强度和第一个时间预先).因此,我认为,我处在一个能够提出某种经度和纬度坐标的好地方(尽管不准确,但是,好吧).这是我寻求帮助的地方,因为现在我的小脑子很困惑......
我可以看到提供单元代码解析的各种服务(Google,Open Cell ID等),他们将LAC,MCC等作为参数并返回一个坐标.因此,我认为他们返回的将是我传入的特定塔的坐标.所以在我的情况下,我可以发送我拥有的所有LAC等,并获得经度和纬度的集合.很棒,但这不是我的设备所在.现在我觉得我需要做一些三角测量,而这正是我缺乏知识伤害了我的地方.
那么到目前为止我是对的吗?假设我是,我该怎么做这个计算(有什么东西可以告诉我如何处理所有这些数字,或者更好的是,一些开源库我可以参考并提供所有这些东西以获得明智的东西) ?
我假设我需要使用定时提前计算出距离手机信号塔一些近似距离(可能以某种方式使用信号强度),但我该怎么做?正如你所知道的那样 - 我在这里超出了我的深度!
例如,我可以从前面提到的AT命令中找到这个:
5,74,33,32f210,157e,8101,50,0,79,3,32f210,157e,80f7,37,64,5,32f210,157e,810b,37,55,32,32f210,157e,9d3,27,41,33,32f210,157e,edf8,15
Run Code Online (Sandbox Code Playgroud)
打破它并解析它我会得到(我希望我解析正确 - 当然我的解析例程中有一个错误,但它看起来很合理):
Number of cells: 5
Run Code Online (Sandbox Code Playgroud)
细胞1
LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33025
Signal: 80
ARFCN: 74
BSIC: 33
Timing advance: 0
Longitude: 14.2565389
Latitude: 48.2248439
Run Code Online (Sandbox Code Playgroud)
细胞2
LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33015
Signal: 55
ARFCN: 79
BSIC: 3
Longitude: 14.2637736
Latitude: 48.2331576
Run Code Online (Sandbox Code Playgroud)
细胞3
LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33035
Signal: 55
ARFCN: …Run Code Online (Sandbox Code Playgroud) 我想将AT命令发送到Android手机.
我知道SDK不支持这个.
但有两种解决方案:
更改内核代码并发布新的Android(看起来真是太难了!)
LoopBack on USB.(我认为蓝牙是一样的)
关于第二种解决方案,当您使用USB电缆将手机连接到PC时,您将GSM在设备管理器上看到一个调制解调器,可帮助您将AT命令发送到GSM调制解调器.
如果我们找到一个循环回移动电话的解决方案,我们可以将AT命令发送到GSM调制解调器.
问题是:如何循环回来,内核上的tty文件对我们有什么帮助?
我正在使用SIM900 GSM模块连接到我的AVR微控制器.我用FT232测试它以查看传输数据.First Micro发送AT它会响应OK
AT OK
AT+CMGF=1 OK
AT+CMGS="+9893XXXXXX" returns ERROR and doesn't show ">"
Run Code Online (Sandbox Code Playgroud)
谁能告诉我该怎么办?
我想用我的GSM调制解调器拨打电话.所以我写了下面的程序:
import time
import serial
recipient = "+98xxxxxxxxxx"
phone = serial.Serial("COM10", 115200, timeout=5)
try:
time.sleep(0.5)
phone.write(b'ATZ\r')
time.sleep(1)
phone.write(b'ATD"'+recipient.encode() +b'"\r')
while(1):
print(phone.readline())
time.sleep(0.5)
finally:
phone.close()
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我收到了这个输出:
>>> ================================ RESTART ================================
>>>
b'ATZ\r\r\n'
b'OK\r\n'
b'ATDxxxxxxxxxx\r\r\n'
b'NO CARRIER\r\n'
Run Code Online (Sandbox Code Playgroud)
这个"NO CARRIER"错误意味着什么?
请注意,我可以成功发送短信.
这是我用来发送短信的程序:
import time
import serial
recipient = "+98xxxxxxxxxx"
message = "Test"
phone = serial.Serial("COM10", 115200, timeout=5)
try:
time.sleep(0.5)
phone.write(b'ATZ\r')
time.sleep(0.5)
phone.write(b'AT+CMGF=1\r')
time.sleep(0.5)
phone.write(b'AT+CMGS="' + recipient.encode() + b'"\r')
time.sleep(0.5)
phone.write(message.encode() + b"\r")
time.sleep(0.5)
phone.write(bytes([26]))
time.sleep(0.5)
finally:
phone.close()
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的Android手机用作免提工具包(如汽车用),以便连接到另一部手机(任何手机)并执行一些免提功能,如(接听来电,拒绝等等)可以使用AT命令完成免提配置文件.为此,我正在使用着名的蓝牙聊天应用程序,并为了与任何设备建立连接而进行反射:
方法m = device.getClass().getMethod("createRfcommSocket",new Class [] {int.class}); tmp =(BluetoothSocket)m.invoke(device,1);
但是,为了实现免提功能并理解我发送的AT命令,连接的手机需要通过使用UUID的免提配置文件:"0000111f-0000-1000-8000-00805F9B34FB"
因此,有没有办法实现与免提配置文件的连接?
谢谢!
我正在使用minicom(Linux的串口软件)与我的GSM调制解调器进行交互,实际上现在我正在尝试使用AT-Command的移动提供商服务之一.
在这里我说,我想看看我的平衡:
AT+CUSD=1,*555*87*1234#
OK
+CUSD: 1,"this service will deduct you 5cent from your balance, to continue please enter 1",15
Run Code Online (Sandbox Code Playgroud)
所以,在这里我发送了"1",但没有发生任何事情,会议结束.
AT+CUSD=1,1
OK
Run Code Online (Sandbox Code Playgroud)
什么都没发生,但会议结束了.
使用普通电话,输入1后,我将获得当前余额.
请帮我.
我只想在1小时后回复我的字符串.我看到命令,但它可以在特定时间运行脚本(HH:MM).echo无论什么时候,我希望我的命令在1小时后运行.
我有一项任务正在研究是否可以通过ADB shell将AT命令发送到Android设备.到目前为止,我已经尝试回显AT命令,但它将它们作为普通字符串传递.任何帮助请任何人.
我需要使用命令在互联网上连接usb 3g加密狗.
我的apn提供者是:
APN = tim.br
Username = tim
Password = tim
Run Code Online (Sandbox Code Playgroud)
如何仅使用命令连接?这是可能的?
谢谢.
我编写了下面的Python程序来与我的D-Link DWM-156 GSM调制解调器进行通信.该程序等待来电,当收到RING警报时,它接受该呼叫.
幸运的是它工作正常;)
该程序:
import time
import serial
phone = serial.Serial("COM10", 115200, timeout=5)
try:
time.sleep(1)
while(1):
x = phone.readline()
print(x)
if (x == b'RING\r\n'):
phone.write(b'ATA\r')
time.sleep(0.5)
finally:
phone.close()
Run Code Online (Sandbox Code Playgroud)
运行期间的输出:
>>> ================================ RESTART ================================
>>>
b''
b''
b''
b'\r\n'
b'RING\r\n' #Here, my friend (named "Jimmy",for example), called me.
b'OK\r\n'
b''
b''
b''
b''
b''
Run Code Online (Sandbox Code Playgroud)
如上所示,在接到来电后,GSM调制解调器立即接受它,从那一点到最后,我们有一个有效的呼叫.
我的问题:
1-在此活动呼叫期间是否可以发送/接收某些数据(例如SMS)?或者至少可以在这个有效通话期间在这个频道的另一侧(即吉米手机的扬声器)发出噪音吗?(我不想发出可识别的声音,噪音就足够了.虽然有一种发送可识别语音的方法确实更好.)
2-为什么此程序检测到来电,但未检测到来电短信?往下看.当Jimmy向我的GSM调制解调器发送3条短信时,你可以看到我程序的输出(并且他在我的手机上收到了所有这些的"已发送"通知).
>>> ================================ RESTART ================================
>>>
b''
b''
b''
b''
b''
b''
b''
Run Code Online (Sandbox Code Playgroud)
如上所述,我没有收到任何信息 …
at-command ×10
gsm ×4
android ×3
python ×2
python-3.x ×2
adb ×1
apn ×1
avr ×1
bluetooth ×1
cmd ×1
command ×1
geolocation ×1
linux ×1
modem ×1
pyserial ×1
serial-port ×1
sms ×1
unix ×1
ussd ×1