Foros del Web » Programación para mayores de 30 ;) » .NET »

Mejorar este código en CSharp

Estas en el tema de Mejorar este código en CSharp en el foro de .NET en Foros del Web. Hola: Quiero mejorar el código si o si. En este caso el programa funciona de mil maravillas menos una cosa que no me gusta, a ...
  #1 (permalink)  
Antiguo 24/04/2016, 09:28
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 16 años, 10 meses
Puntos: 8
Mejorar este código en CSharp

Hola:



Quiero mejorar el código si o si. En este caso el programa funciona de mil maravillas menos una cosa que no me gusta, a veces la pantalla parpadea, debido bajo mi punto de vista que hace refrezco.

Quiero consejos de como hacer que se refrezca los datos y la bara amarilla. Hacer mejor código.

El código original es este.

Código C++:
Ver original
  1. using System;
  2. using System.IO.Ports; // No olvidar.
  3. using System.IO;
  4.  
  5. namespace Porcentaje_Barra_P_Serie_Consola_2_CS
  6. {
  7.     class Program
  8.     {
  9.         public static string Recibidos = "";
  10.         public static double Resultado_Porcentaje = 0;
  11.         public static double Resultado_Voltios = 0;
  12.         public static double Mitad_barra = 0;
  13.  
  14.  
  15.         static void Main(string[] args)
  16.         {
  17.             Console.WindowWidth = 55;
  18.             Console.WindowHeight = 15;
  19.             Console.Title = "Serial Port C#";
  20.  
  21.             SerialPort Puerto_serie;
  22.  
  23.             // Crear un nuevo objeto SerialPort con la configuración predeterminada.
  24.             Puerto_serie = new SerialPort();
  25.  
  26.             // Configuración.
  27.             Puerto_serie.PortName = "COM4"; // Número del puerto serie.
  28.             Puerto_serie.BaudRate = 115200; // Baudios.
  29.             Puerto_serie.Parity = Parity.None; // Paridad.
  30.             Puerto_serie.DataBits = 8; // Bits de datos.
  31.             Puerto_serie.StopBits = StopBits.Two; // Bits de parada.
  32.             Puerto_serie.Handshake = Handshake.None; // Control de flujo.
  33.  
  34.             // Establecer la lectura / escritura de los tiempos de espera.
  35.             Puerto_serie.ReadTimeout = 500;
  36.             Puerto_serie.WriteTimeout = 500;
  37.  
  38.             try
  39.             {
  40.                 Puerto_serie.Open(); // Abrir el puerto serie.
  41.             }
  42.  
  43.             catch (IOException)
  44.             {
  45.                 Console.ForegroundColor = ConsoleColor.Red;
  46.                 Console.CursorVisible = false;
  47.                 Console.SetCursorPosition(16, 6);
  48.                 Console.WriteLine(@"El puerto " + Puerto_serie.PortName + @" no existe
  49.                o no lo encuentra.");
  50.             }
  51.  
  52.             Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
  53.  
  54.             Console.Read();
  55.         }
  56.  
  57.         private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
  58.  
  59.         {
  60.  
  61.            
  62.             SerialPort sp = (SerialPort)sender;
  63.             Recibidos = sp.ReadLine();
  64.             Console.Clear();
  65.  
  66.             Recibidos = Recibidos.Replace("\n\r", "");
  67.             int Variar_este_valor = Convert.ToInt32(Recibidos);
  68.  
  69.  
  70.             Console.WriteLine();
  71.             Resultado_Porcentaje = Variar_este_valor * (100.00 / 1023.00);
  72.             Resultado_Voltios = Variar_este_valor * (5.00 / 1023.00);
  73.             //Console.Clear();
  74.             Console.WriteLine("Datos recibidos: {0}", Recibidos);
  75.             Console.CursorVisible = false;
  76.  
  77.             // Mostrar barra de porcentaje en pantalla.
  78.             Console.WriteLine();
  79.             Console.WriteLine("0 %                     50 %                   100 %");
  80.             Console.WriteLine("┌────────────────────────┬───────────────────────┐");
  81.             Console.ForegroundColor = ConsoleColor.Yellow;
  82.  
  83.             // Se dibide por dos la barra del porcentaje para que quepa decuadamente en la pantalla.
  84.             Mitad_barra = Resultado_Porcentaje / 2;
  85.  
  86.             if (Mitad_barra > 50)
  87.             {
  88.                 Mitad_barra = 50;
  89.             }
  90.  
  91.             for (int i = 1; i <= Mitad_barra; i++)
  92.             {
  93.                 Console.Write("█"); // Muestra ASCII 219 Dec y DB en Hex.
  94.             }
  95.  
  96.             // Si sobre pasa 100, muestra # al final de la barra del porcentaje de color rojo.
  97.             if (Resultado_Porcentaje > 100)
  98.             {
  99.                 Console.ForegroundColor = ConsoleColor.Red;
  100.                 Console.Write("#");
  101.             }
  102.  
  103.             Console.ForegroundColor = ConsoleColor.Gray; // Vuelve al color gris.
  104.             Console.WriteLine("\n");
  105.             Console.Write("Percentage: " + Resultado_Porcentaje.ToString("N2") + " %.");
  106.             Console.WriteLine();
  107.             Console.Write("Voltage:     " + Resultado_Voltios.ToString("N2") + " V.");
  108.             Console.WriteLine("\n");
  109.         }
  110.     }
  111. }


¿Algún consejo?

Saludos.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Etiquetas: csharp, mejorar, replace
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:30.