ASP.NET - Control puerto serie modo servicio

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 4 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Control puerto serie modo servicio

Publicado por Meta (4 intervenciones) el 08/04/2021 12:59:43
Tengo un SAI o UPS, en el cual tiene un puerto serie y otro USB. Estoy usando el puerto serie porque me dieron el fabricante un documento en PDF sobre los comandos y respuestas del SAI. Se puede controlar.

Pruebo los comandos del en el Hyper Terminal de Windows o otro similar y me funciona. He hecho un poco mi propio programa en Windows Form y controlado el puerto serie en el cual puedo con botones apagar y encender el zumbador o pitido del SAI o UPS.

El programa que incluye es por Web local. La ruta para acceder es con un archivo que se llama agent.cmd y en su interior tiene este código.

start http://localhost:3052/local/

PNhLu

Lo curioso que la forma de controlar el puerto serie el programa oficial, es con un programa modo servicio, que lo puedo detener o arrancar como dice abajo.

NdE8h

La pregunta del millón.

¿Cómo hacer un programa sencillo Web y Servicio que controle el puerto serie? Me basta con tener dos botones en la Web para enviar comandos, el puerto serie enví y reciba conmandos.

Parece una tarea complicada a pesar de intentar hacer algo supuestamente básico.

El ejemplo que tengo hecho aquí con Windows Form, programa de escritorio es este. introducir la descripción de la imagen aquí.
hNmMf

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports; // No olvidar y añadir en referencia.
 
namespace Puerto_serie_con_Net_50
{
    public partial class Form1 : Form
    {
        SerialPort serialPort1 = new SerialPort();
 
        public Form1()
        {
            InitializeComponent();
            Configuracion();
        }
 
        void Configuracion()
        {
            // Configuramos el puerto serie.
            serialPort1.BaudRate = 9600;            // Baudios. 115200
            serialPort1.PortName = "COM2";          // Nombre del puerto serie.
            serialPort1.Parity = Parity.None;       // Sin paridad.
            serialPort1.DataBits = 8;               // 8 Bits.
            serialPort1.StopBits = StopBits.Two;    // Bits de parada.
            serialPort1.ReadBufferSize = 4096;      // Tamaño del Búffer de lectura en Bytes.
            serialPort1.WriteBufferSize = 2048;     // Tamaño del Búffer de escritura en Bytes.
            serialPort1.ReadTimeout = 500;
            serialPort1.WriteTimeout = 500;
            serialPort1.DtrEnable = false;
            serialPort1.RtsEnable = false;
 
            // Abrir puerto mientras se ejecuta la palicación.
            if (!serialPort1.IsOpen)
            {
                try
                {
                    serialPort1.Open(); // Abrir puerto.
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }
 
 
        private void button_ON_Click(object sender, EventArgs e)
        {
            byte[] mBuffer = Encoding.ASCII.GetBytes("Led_ON");
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }
 
        private void button_OFF_Click(object sender, EventArgs e)
        {
            // Variable tipo arreglo codificado en ASCII.
            byte[] mBuffer = Encoding.ASCII.GetBytes("Led_OFF");
 
            // Envía en la variable mBuffer "Led_OFF" al puerto serie.
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }
 
        // Al cerrar la ventana o el formulario
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                serialPort1.Close(); // Cerrar puerto.
            }
 
            catch (Exception error)
            {
                MessageBox.Show(error.Message, "Aviso:",
                MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
    }
}

En modo servico para controlar perto serie no tengo idea, ni en páginas Web.

¿Hay alguien que sepa hacer algo así?
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 Leonardo Daniel A.
Val: 185
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Control puerto serie modo servicio

Publicado por Leonardo Daniel A. (84 intervenciones) el 11/04/2021 07:21:57
Un sistema Web no puede tener acceso a hardware local
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
sin imagen de perfil
Val: 5
Ha aumentado su posición en 4 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Control puerto serie modo servicio

Publicado por Meta (4 intervenciones) el 13/04/2021 01:15:46
Hola:

¿Por qué en esta ocasión si lo tiene este SAI y de forma homolaga?

Su programa oficial.

El SAI que compré.

El sistema Web directamente no. El sistema Servicios bajo Web parece ser que si.

Que me lo expliquen.

Saludos.
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