Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meta en 26 Marzo 2021, 22:21 pm



Título: No me deja enviar mensaje
Publicado por: Meta en 26 Marzo 2021, 22:21 pm
Hola:

Este Script se trata de que quiero enviar por ejemplo la letra B, o esto otro como X72. Si envío un comando o mensaje llamado B. Me tiene que llegar una respuesta. No hace nada.

Los datos son enviados al puerto serie.

Este es el código.
Código:
# Para comprobar los puertos series disponibles en el sistema:
[System.IO.Ports.SerialPort]::getportnames()
 
# O bien de una manera más exhaustiva:
Get-WMIObject Win32_SerialPort
 
# Establecer los parámetros básicos de conexión. Una tipica conexión 9600 bps, 8N1 sin control de flujo sería la siguiente:
$puertoCOM = "COM1"  # El puerto serie que se quiere emplear
$bps = 2400 # La tasa de baudios por segundo del puerto. Típicos valores entre 1200 (o incluso menos) y 115200 (o incluso más)
$paridad = [System.IO.Ports.Parity]::None # Paridad de datos. Puede ser Even (par), Odd (impar) o None (sin paridad) 
$dataBits = 8 # Bits de datos. Puede ser 7 u 8
$stopBits = [System.IO.Ports.StopBits]::one # Bits de parada. Puede ser one (1), onepointfive (1.5) o two (dos)
$puerto = New-Object System.IO.Ports.SerialPort $puertoCOM,$bps,$paridad,$dataBits,$stopBits   # Crea la nueva instancia
 
# Se pueden establecer otros parámetros, como la activación del control del flujo por RTS/CTS , DTR/DSR, Handshake, fijar el tamaño de los buffers de lectura y escritura o establecer los timeouts de lectura. Todos estos parámetros, así como el estado general del resto, se pueden consultar llamando al objeto:
$puerto
$puerto.ReadTimeout = 500   # Establece un timeout de lectura de 500 mseg
$puerto.WriteTimeout = 500 # Establece un timeout de escritura de 250 mseg
 
# Abre el puerto
$puerto.Open()
 
# Lectura del puerto
$mensaje=$puerto.ReadLine()
 
# Escritura del puerto
$mensaje="B"
$puerto.WriteLine($mensaje)
 
# Cierra el puerto
$puerto.Close()

Quiero saber que es lo que ocurre.

Gracias.