![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Detectar tramas de bytes
Hola:
Teniendo esta entrada de bytes por el puerto serie: #I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„À O otra trama de byte diferente como este: #2000,1400,230,45.0,55.0,8.6 Si se fijan, cada trama de bytes empieza por #. Haciendo pruebas dando las gracias a los compañeros de este foro, quiero saber si a la entrada de datos es capaz de detectar cada trama de byte recibida se muestre correctamente en sus label como indica abajo. ![]() Ver zoom. Su código es este: Código:
using System;
using System.Windows.Forms;
namespace Termite_SAI_03
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button_Ver_datos_Click(object sender, EventArgs e)
{
string entrada = "#I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„À";
char[] separadores = { '#', 'I', 'O', 'L', 'B', 'V', 'F', 'H', 'R', 'S' };
string[] salida = entrada.Split(separadores, StringSplitOptions.RemoveEmptyEntries);
label_I.Text = salida[0] + " V";
label_O.Text = salida[1] + " V";
label_L.Text = salida[2].TrimStart('0') + " %"; // Quita los ceros de la izquierda.
label_B.Text = salida[3] + " %";
label_V.Text = salida[4] + " V";
label_F.Text = salida[5] + " Hz";
label_H.Text = salida[6] + " Hz";
// Convertir variable tipo string a tipo int, es decir, la variable tipo string "salida[7]"
// se convierte en tipo int "resultadoSalida7".
int resultadoSalida7 = Int32.Parse(salida[7]);
// ¿Es igual a 1 minuto?
if ((resultadoSalida7 % 60) == 1)
{
label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minuto.";
}
// ¿Es mayor a 60 segundos o 1 minuto?
if ((resultadoSalida7 % 60) > 1)
{
label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minutos.";
}
// ¿Es igual a 60 segundos o 1 minuto?
if ((resultadoSalida7 % 60) == 0)
{
label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minutos.";
}
}
private void button_Ver_Tabla_Click(object sender, EventArgs e)
{
string entrada2 = "#2000,1400,230,45.0,55.0,8.6";
char[] separadores2 = { '#', ',' };
string[] salida2 = entrada2.Split(separadores2, StringSplitOptions.RemoveEmptyEntries);
label_Resultado_valores_nonimales_de_alimentacion.Text = salida2[0] + " VA / " + salida2[1] + " W";
label_Resultado_voltaje_nominal.Text = salida2[2] + " V";
label_Resultado_corriente_nominal.Text = salida2[5] + " A";
label_Resultado_valores_nominales_de_frecuencia.Text = salida2[3] + " ~ " + salida2[4] + " Hz";
}
}
}
Saludos.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| XHTML, Java enviar tramas de bytes | REHome | JAVA | 0 | 09-07-2016 13:24:02 |
| Lectura de tramas en puerto serie | vejerf | OOP | 1 | 04-02-2010 20:07:11 |
| array de bytes con ICS | 3NK1 | Internet | 1 | 15-04-2009 02:20:44 |
| Lectura de tramas: <SYN><DLE><STX> ... <DLE><ETX> | vejerf | Varios | 17 | 30-06-2008 15:20:26 |
| Documentacion para Generar Tramas TCP | bastardo10 | Varios | 0 | 07-06-2007 17:31:38 |
|