Python - Problema para discar numero telefonico variable usando modem conmutado en python 3.7.3

 
Vista:

Problema para discar numero telefonico variable usando modem conmutado en python 3.7.3

Publicado por Roy (1 intervención) el 15/07/2019 22:59:27
Hola a todos, hace unas semanas que estoy tratando de hacer funcionar un script en python 3.7.3 que me permita hacer llamadas telefónicas usando un modem conmutado a través del puerto serie. He logrado comunicar con el modem y enviarles comandos AT e incluso he podido hacer llamadas pero a un numero fijo, no variable. En este caso cuando intento concatenar el comando AT correspondiente para discar con una variable (numero a discar) me da un error, al parecer no puedo concatenar una cadena con un int, sin embargo he tratado de convertir todo a una cadena o a byte pero no me funciona.
Alguna sugerencia???
A continuación les dejo mi código, espero que puedan ayudarme y de antemano muchas gracias.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import serial
import time
 
port = "COM7"
baud = 115200
y=0
 
 
ser = serial.Serial(port, baud, timeout=5)# abre el puerto serie
if ser.isOpen():
        print(ser.name + ' esta abierto ')
def marcar(a):
        time.sleep(1)
        ser.write(b'ATH1\r\n')
        ser.write(b'ATDT'+x)
        print("Llamando al:",x)
 
 
x = int(input("Ingrese el numero a discar, por favor: "))
while y!=2:
        if y==1:
 
                ser.write(b'ATH0\r\n')
                marcar(x)
 
        y = int(input("Ingresa una opcion, por favor: "))
ser.close()
exit()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema para discar numero telefonico variable usando modem conmutado en python 3.7.3

Publicado por joel (901 intervenciones) el 16/07/2019 08:50:53
No se exactamente donde tienes el error, pero interpreto que lo tienes en esta linea:
1
ser.write(b'ATDT'+x)

Puedes hacer dos cosas... no convertir el numero a entero al solicitarlo, o pasarlo a string así:
1
ser.write('ATDT{}'.format(x))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema para discar numero telefonico variable usando modem conmutado en python 3.7.3

Publicado por Ronald Galeano (5 intervenciones) el 04/02/2021 00:01:30
estas usando la variable x en vez de la variable a en tu codigo, supongo que al corregir tu funcion marcar lo solucionas

1
2
3
4
5
def marcar(a):
        time.sleep(1)
        ser.write(b'ATH1\r\n')
        ser.write(b'ATDT'+a)
        print("Llamando al:",a)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar