Mensajes recientes

#71
Hardware / Re: Monitor para no dañar la v...
Último mensaje por OssoH - 30 Diciembre 2021, 08:50 AM
Muchas gracias!!!
#72
.NET (C#, VB.NET, ASP) / Al recibir datos, se me comen ...
Último mensaje por Meta - 30 Diciembre 2021, 06:11 AM
Buenas:

Al recibir datos por puerto serie, muchas veces se me come las palabras.

¿Hay alguna forma que no fallen las entradas de mensajes por puerto serie?

Dejo el código fuente aquí.

Código (csharp) [Seleccionar]
using System;
using System.IO.Ports;
using System.Text;
using System.Threading;
using System.Windows.Forms;

namespace Velocímetro_Arduino_Puerto_serie_01
{
    public partial class Form1 : Form
    {
        // Utilizaremos un string como buffer de recepción.
        string recibidos;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Añado los puertos disponible en el PC con SerialPort.GetPortNames() al comboBox_Puerto.
            try
            {
                comboBox_Puerto.DataSource = SerialPort.GetPortNames();
            }

            catch
            {
                MessageBox.Show("No encuentra ningún puerto físico ni virtual.", "Aviso:",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            // // Añade puertos disponibles físicos  y virtuales.
            serialPort1.PortName = comboBox_Puerto.Text.ToString();
        }

        #region Funciones.

        void UsbConectado()
        {
            byte[] miBuffer = Encoding.ASCII.GetBytes("USB_CONECTADO");
            serialPort1.Write(miBuffer, 0, miBuffer.Length);
        }

        void UsbDesconectado()
        {
            byte[] miBuffer = Encoding.ASCII.GetBytes("USB_DESCONECTADO");
            serialPort1.Write(miBuffer, 0, miBuffer.Length);
        }

        // Detecta USB o puerto serie virtual cuando lo conecta y desconecta del cable.
        protected override void WndProc(ref Message USB)
        {
            if (USB.Msg == 0x219)
            {
                comboBox_Puerto.DataSource = SerialPort.GetPortNames();
            }

            // Detecta si hay cambios en el usb y si los hay los refleja.
            base.WndProc(ref USB);
        }

        // Procesar los datos recibidos en el buffer y extraer las tramas completas.
        void Actualizar(object sender, EventArgs e)
        {
            // Asignar el valor de la trama al label_Recibir_Km.
            label_Recibir_Km.Text = recibidos;

            switch (recibidos)
            {
                case "OK":
                    byte[] miBuffer = Encoding.ASCII.GetBytes("Conectado.      ");
                    serialPort1.Write(miBuffer, 0, miBuffer.Length);
                    label_Recibir_Km.Text = "Arduino conectado.";
                    break;
                default:
                    break;
            }

            // Limpiar.
            recibidos = "";
        }
        #endregion

        #region Botones.
        private void button_Conectar_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort1.PortName = comboBox_Puerto.Text.ToString(); // Puerto seleccionado previamente.
                serialPort1.Open(); // Abrir puerto.
                UsbConectado();
                comboBox_Puerto.Enabled = false;
                comboBox_Baudios.Enabled = false;
                button_Conectar.Enabled = false;
                button_Desconectar.Enabled = true;
                button_Enviar.Enabled = true;
            }

            catch
            {
                MessageBox.Show("El puerto no existe.", "Aviso:",
                MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void button_Desconectar_Click(object sender, EventArgs e)
        {
            UsbDesconectado();
            serialPort1.Close(); // Cerrar puerto.
            comboBox_Puerto.Enabled = true;
            comboBox_Baudios.Enabled = true;
            button_Conectar.Enabled = true;
            button_Desconectar.Enabled = false;
            button_Enviar.Enabled = false;
        }

        private void button_Enviar_Click(object sender, EventArgs e)
        {
            byte[] miBuffer = Encoding.ASCII.GetBytes("KM" + textBox_Km.Text);
            serialPort1.Write(miBuffer, 0, miBuffer.Length);
        }
        #endregion

        // Al cerrar el formulario, cierra el puerto si está abierto.
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                // Al cerrar este programa, indica a Arduino cerrado.
                // Arduino sigue con su rutina al detectar CERRADO.
                byte[] miBuffer = Encoding.ASCII.GetBytes("C#_CERRADO");
                serialPort1.Write(miBuffer, 0, miBuffer.Length);

                // Cerrar puerto.
                serialPort1.Close();
            }

            catch (Exception error)
            {
                MessageBox.Show(error.Message, "Aviso:",
                MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            // Acumula los caracteres recibidos a nuestro "buffer" string.
            recibidos += serialPort1.ReadExisting();

            // Invocar o llamar al proceso de tramas.
            Invoke(new EventHandler(Actualizar));
        }
    }
}
#73
Desarrollo Web / [Pregunta]: Formulario login s...
Último mensaje por Leguim - 30 Diciembre 2021, 04:32 AM
tengo dos inputs, email y contraseña... el punto es que apenas carga la página ya me deja estos inputs con datos y no quiero permitir eso.. hay algo como autocomplete="off"? pero para estos casos donde ya al cargar tiene los datos escritos ...
#74
Ejercicios / Re: Ejercicios Recursivos en J...
Último mensaje por jaker250per - 30 Diciembre 2021, 03:22 AM
int invertir (int n)
    {
if (n < 10)         //caso base
     return n;
else
     return (n % 10) + invertir (n / 10) * 10;
    }

if(numero<10){
   return numero;
  }else{
   int contador = 0;
   int aux = numero;
   while(aux/10!=0){
    contador++;
    aux = aux/10;
   }
   return (int)(Math.pow(10, contador))*(numero%10) + this.invertirNumero(numero/10);
  }
}
#75
Ejercicios / Re: Ejercicios Recursivos en J...
Último mensaje por jaker250per - 30 Diciembre 2021, 03:20 AM
#76
Dudas Generales / Compras experiencias reales
Último mensaje por Jeanmv - 30 Diciembre 2021, 03:08 AM
Buenas, el tema va de la deep web, alguien ha comprado algo con bitcoins por ejemplo gift cards, y son reales o todas son estafas?

Veo entré comillas '' muchos chollos, pero tiene todo pinta de ser estafas...

No sé si alguno pillo algo y si les llego... (no hablo de cosas chungas, solo lo que veo en los.links de comercio de la hidden wiki)

Incluso no se si es de fiar la hidden wiki que en algun link te pone not scam o asi...
#77
Hardware / Re: Conectar pantalla movil a ...
Último mensaje por Machacador - 30 Diciembre 2021, 02:33 AM
Cita de: EdePC en 30 Diciembre 2021, 00:47 AM
Los programas más conocidos para usar el móvil como cámara/micrófono en el PC son Iriun Cam, IV Cam y DroidCam, lo ideal es empezar por el primero haber si hay buen rendimiento, sino pasar al segundo, he visto que algunas veces uno es más compatible de otro dependiendo del hardware/software del móvil.

Para usar el móvil como pantalla extra en el PC está el SpaceDesk. En sí aplicaciones hay para hacer casi de todo, la cosa es conocerlas XD

Iriun Cam: https://iriun.com/
IV Cam: https://www.e2esoft.com/ivcam/
El DroidCam ni lo pongo porque gratuito prácticamente no sirve XD
SpaceDesk: https://www.spacedesk.net/

Fantabuloso... el amigo EdePC debe ser primo hermano de Data, el androide de Star Trek, porque sabe de todo...

Aqui un video de como funciona el SpaceDesk...


Aquí las instrucciones como para bebé: https://www.dokwiki.ibik.ru/es/v2/core/article/spacedesk

NOTA: No se usará cable alguno sino que ambos dispositivos, Servidor y Cliente, deben estar conectados a la misma red WiFi...  se pueden usar varios dispositivos "Cliente", hasta 12.

Saludos.

:rolleyes: :o :rolleyes:
#78
GNU/Linux / Re: como cambio la resolucion ...
Último mensaje por .xAk. - 30 Diciembre 2021, 01:19 AM
Eso son las X es el GDM --> configuración (o ese me parece a mi, puede ser LXDM, xdm, kdm)

puede haber una app gráfica para configurarlo gdmconfig o puede que se pueda configurar desde el panel de control dependiendo de la distribución, también hay un script en python que facilita la configuración: GDM2 Configuration Tool

yo lo veo bien. ¿qué no funciona cómo quieres? ¿la imagen de fondo?

Saludos
#79
Redes / Re: Router Tplink todo en chin...
Último mensaje por Danielㅤ - 30 Diciembre 2021, 01:05 AM
Cita de: .xAk. en 30 Diciembre 2021, 00:57 AM
¿no es admin la contraseña y el pass?

https://www.tp-link.com/es/support/download/tl-wr840n

Hola, si posiblemente pero con letras chinas.


Saludos
#80
Redes / Re: Router Tplink todo en chin...
Último mensaje por .xAk. - 30 Diciembre 2021, 00:57 AM
¿no es admin la contraseña y el pass?

https://www.tp-link.com/es/support/download/tl-wr840n