我正在尝试用 python 和 linux 制作一个自动应答和呼叫机,但到目前为止我只能拨打一个号码。
当谈到发送声音或录制声音时,我没有成功。
过去一周我一直在努力解决这个问题,到目前为止还找不到解决的方法。
我使用的调制解调器是 Conexant Systems (Rockwell)
这是我正在使用的代码:
import serial
import wave
import time
def initializePhone():
phone = serial.Serial('/dev/ttyACM0', 112500, timeout=5)
phone.write('AT'.encode())
phone.write('AT+FCLASS=8')
phone.write('AT+VSM=0,8000')
return phone
def call(number):
command = 'ATDT'+str(number)
phone.write(command.encode())
def sendMusic(phone, music):
cont = True
while cont:
frame = music.readframes(1024)
if frame == '':
cont = False
ser.write(b"".join(frame))
def main():
phone = initializePhone()
music = wave.open('wood.wav','r')
call('555555')
time.sleep(10)
sendMusic(phone, music)
if __name__=='__main__':
main()
任何帮助将不胜感激。
找到我的脚本中缺少的命令。这是修复后的新版本。
在发送音频数据之前我错过了“AT+VTX”命令。
import serial
import wave
import time
def initializePhone():
phone = serial.Serial('/dev/ttyACM0', 112500, timeout=5)
phone.write('AT\r\n'.encode())
phone.write('AT+FCLASS=8\r\n'.encode())
phone.write('AT+VSM=0,8000\r\n'.encode())
return phone
def call(number):
command = 'ATDT'+str(number)+'\r\n'
phone.write(command.encode())
def sendMusic(phone, music):
phone.write('AT+VTX\r\n'.encode())
cont = True
while cont:
frame = music.readframes(1024)
if frame == '':
cont = False
ser.write(b"".join(frame))
def main():
phone = initializePhone()
music = wave.open('wood.wav','r')
call('555555')
time.sleep(10)
sendMusic(phone, music)
if __name__=='__main__':
main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)