No me llegan mensaje
Publicado por Meta (9 intervenciones) el 28/03/2021 14:26:38
Hola:
De alguna manera quiero enviar mensje por el puerto serie con PowerShell, que se muestre en pantalla cada mensaje enviado y que se pueda leer cada mensaje recibido.
No me funciona.
¿Qué hago mal?
Dejo el código aquí.
Saludos.
De alguna manera quiero enviar mensje por el puerto serie con PowerShell, que se muestre en pantalla cada mensaje enviado y que se pueda leer cada mensaje recibido.
No me funciona.
¿Qué hago mal?
Dejo el código aquí.
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
29
30
31
# 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 = 2000 # Establece un timeout de lectura de 500 mseg
$puerto.WriteTimeout = 2000 # Establece un timeout de escritura de 250 mseg
# Abre el puerto
$puerto.Open()
# Lectura del puerto
$mensaje=$puerto.ReadLine()
# Escritura del puerto
$mensaje="Mensaje a enviar."
$puerto.WriteLine($mensaje)
# Cierra el puerto
$puerto.Close()
Saludos.
Valora esta pregunta
0