Click here to Skip to main content
14,836,169 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hello, good morning.
I am trying to make an application that uses a USB port for serial data resection (ascii) and can write to text in any note, as would a Terminal, keyboard or scanner.
The question is does anyone have an idea where to start?

What I have tried:

using System;
using System.IO.Ports;
using System.Text;

namespace Consola_cs
{
    class Program
    {
        static void Main(string[] args)
        {

            // Tamaño ventana consola.
            Console.WindowWidth = 55; // X. Ancho.
            Console.WindowHeight = 18; // Y. Alto.

            // Cree un nuevo objeto SerialPort con la configuración predeterminada.
            SerialPort Puerto_serie = new SerialPort("COM4");

            Puerto_serie.BaudRate = 9600;
            Puerto_serie.Parity = Parity.None;
            Puerto_serie.StopBits = StopBits.One;
            Puerto_serie.DataBits = 8;
            Puerto_serie.Handshake = Handshake.None;
            Puerto_serie.RtsEnable = true;

            // Establecer los tiempos de espera de lectura / escritura.
            Puerto_serie.ReadTimeout = 500; // Milisegundos.
            Puerto_serie.WriteTimeout = 500;

            // Detecta cualquier dato recibido.
            Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

            Puerto_serie.Open(); // Abrir puerto.

            ConsoleKey tecla;
            Console.WriteLine("Pulse tecla Escape para apagar:");

            do
            {
                tecla = Console.ReadKey(true).Key; // Espera pulsación de teclas.
            }
            while (tecla != ConsoleKey.Escape); // Pulsa Escape para salir del menú.

            Console.WriteLine("Presione cualquier tecla para terminar...");
            Console.WriteLine();
            Console.ReadKey(); // Espera pulsar una tecla cualquiera.
            Puerto_serie.Close(); // Cierra el puerto serie.
        }

        // Detecta cualquier dato entrante.
        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        { 
            SerialPort sp = (SerialPort)sender;
        string entradaDatos = sp.ReadExisting(); // Almacena los datos recibidos en la variable tipo string.
        Console.WriteLine("Dato recibido:" + entradaDatos); // Muestra en pantalla los datos recibidos.
        }
    }
}
Posted
Updated 5-Dec-20 3:48am
Comments
Gerry Schmitz 4-Dec-20 15:22pm
   
"Write to text in any note". What does that mean? Notepad? One Note? Something else?
Member 13937256 5-Dec-20 9:49am
   
si, gracias
Member 13937256 5-Dec-20 9:48am
   
This is the solution

1 solution

using System;
using System.IO.Ports;
using System.Text;
using System.Collections.Generic;
using System.Drawing;
using System.Windows;
using System.Runtime.InteropServices;
using System.Threading;
using WindowsInput.Native;
using WindowsInput;
namespace Consola_cs
{
    class Program
       
    {
        static void Main(string[] args)
        {
            

        // Tamaño ventana consola.
        Console.WindowWidth = 55; // X. Ancho.
            Console.WindowHeight = 18; // Y. Alto.

            // Cree un nuevo objeto SerialPort con la configuración predeterminada.
            SerialPort Puerto_serie = new SerialPort("COM4");

            Puerto_serie.BaudRate = 9600;
            Puerto_serie.Parity = Parity.None;
            Puerto_serie.StopBits = StopBits.One;
            Puerto_serie.DataBits = 8;
            Puerto_serie.Handshake = Handshake.None;
            Puerto_serie.RtsEnable = true;

            // Establecer los tiempos de espera de lectura / escritura.
            Puerto_serie.ReadTimeout = 500; // Milisegundos.
            Puerto_serie.WriteTimeout = 500;

            // Detecta cualquier dato recibido.
            Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

            Puerto_serie.Open(); // Abrir puerto.

            ConsoleKey tecla;
            Console.WriteLine("Pulse tecla Escape para apagar:");

            do
            {
                tecla = Console.ReadKey(true).Key; // Espera pulsación de teclas.
            }
            while (tecla != ConsoleKey.Escape); // Pulsa Escape para salir del menú.

            Console.WriteLine("Presione cualquier tecla para terminar...");
            Console.WriteLine();
            Console.ReadKey(); // Espera pulsar una tecla cualquiera.
            Puerto_serie.Close(); // Cierra el puerto serie.
        }
        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string entradaDatos = sp.ReadExisting(); // Almacena los datos recibidos en la variable tipo string.
            Console.WriteLine("Dato recibido:" + entradaDatos); // Muestra en pantalla los datos recibidos.
            InputSimulator Simulator = new InputSimulator(); // Utiliza la libreria using WindowsInput.
            Simulator.Keyboard.TextEntry(entradaDatos); //Muestra el text donde se encunetra el cursor los datos recibidos.
        }
       
    }
}
   

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900