No encuentro este error
Publicado por Meta (136 intervenciones) el 20/04/2021 18:29:07
Hola:
Al ejecutar el programa me sale este error.
System.OverflowException: 'Valor demasiado grande o demasiado pequeño para Int32.'
Con cretamente aquí.
Código del programa.
Al ejecutar el programa me sale este error.
System.OverflowException: 'Valor demasiado grande o demasiado pequeño para Int32.'
Con cretamente aquí.
1
int Variar_este_valor = Convert.ToInt32(Recibidos);
Código del programa.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
using System;
using System.IO.Ports; // No olvidar.
using System.IO;
namespace Porcentaje_Barra_Puerto_Serie_Consola_03
{
class Program
{
public static string recibidos = "";
public static double Resultado_Porcentaje = 0;
public static double Resultado_Voltios = 0;
public static double Mitad_barra = 0;
public static int Contador = 1;
static void Main(string[] args)
{
#region Configuración ventana.
// Título de la ventana.
Console.Title = "Puerto serie C# - 2019";
// Tamaño de la ventana, x, y.
Console.SetWindowSize(100, 35);
// Color de fondo.
Console.BackgroundColor = ConsoleColor.DarkBlue;
// Color de las letras.
Console.ForegroundColor = ConsoleColor.Yellow;
// Limpiar pantalla y dejarlo todo en color de fondo.
Console.Clear();
// Visible el cursor.
Console.CursorVisible = true;
#endregion
string COM = "";
// Crear un nuevo objeto SerialPort con la configuración predeterminada.
SerialPort serialPort1 = new SerialPort();
// Configuración.
Console.Write(@"
Introduzca un número para seleccionar puerto COM.
Por ejemplo el 4, sería COM4.
Puerto: ");
COM = Console.ReadLine(); // Escribir el número del puerto.
Console.Clear();
serialPort1.PortName = "COM" + COM; // Número del puerto serie.
// Crear un nuevo objeto SerialPort con la configuración predeterminada.
// Configuración del puerto serie.
serialPort1.BaudRate = 9600; // Baudios o velocidad. 115200
serialPort1.Parity = Parity.None; // Sin paridad.
serialPort1.DataBits = 8; // 8 Bits de datos.
serialPort1.StopBits = StopBits.Two; // Bits de parada.
serialPort1.Handshake = Handshake.None; // Control de flujo.
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; // Establecer lectura de espera.
serialPort1.WriteTimeout = 500; // Establecer escritura de espera.
serialPort1.DtrEnable = false;
serialPort1.RtsEnable = false;
try
{
serialPort1.Open(); // Abrir el puerto serie.
}
catch (IOException)
{
Console.ForegroundColor = ConsoleColor.Red; // Texto en rojo.
Console.CursorVisible = false;
Console.SetCursorPosition(16, 6);
Console.WriteLine(@"El puerto " + serialPort1.PortName + @" no existe
o no lo encuentra.");
}
serialPort1.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
Console.Read();
serialPort1.Close(); // Cerrar puerto.
}
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
try
{
SerialPort sp = (SerialPort)sender;
recibidos = sp.ReadExisting();
//Console.Clear();
recibidos = recibidos.Replace("\n\r", "");
int Variar_este_valor = Convert.ToInt32(recibidos);
Resultado_Porcentaje = Variar_este_valor * (100.00 / 1023.00);
Resultado_Voltios = Variar_este_valor * (5.00 / 1023.00);
Console.SetCursorPosition(0, 1);
Console.Write("Datos recibidos: ");
Console.SetCursorPosition(17, 1);
Console.Write(" ");
Console.SetCursorPosition(17, 1);
Console.Write(recibidos);
// Dibujamos la barra del portentaje.
Console.SetCursorPosition(0, 3);
Console.Write("0 % 50 % 100 %");
Console.SetCursorPosition(0, 4);
Console.Write("┌────────────────────────┬───────────────────────┐");
Console.Write(" ");
Console.ForegroundColor = ConsoleColor.Yellow;
// Se dibide por dos la barra del porcentaje para que quepa decuadamente en la pantalla.
Mitad_barra = Resultado_Porcentaje / 2;
if (Mitad_barra > 50)
{
Mitad_barra = 50;
}
// Console.SetCursorPosition(0, 5);
ClearCurrentConsoleLine();
// Barra de progreso.
for (int i = 1; i <= Mitad_barra; i++)
{
Console.Write("█"); // Muestra ASCII 219 Dec y DB en Hex.
// Console.Write((char)219);
// Console.Write(Encoding.ASCII.GetBytes((char)219));
}
// Si sobre pasa 100, muestra # al final de la barra del porcentaje de color rojo.
if (Resultado_Porcentaje >= 100)
{
Console.SetCursorPosition(50, 5);
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("#");
}
Console.ForegroundColor = ConsoleColor.Gray; // Vuelve al color gris.
// Línea 7.
Console.SetCursorPosition(0, 7);
Console.Write("Porcentaje: ");
Console.SetCursorPosition(12, 7);
Console.Write(" ");
Console.SetCursorPosition(12, 7);
Console.Write(Resultado_Porcentaje.ToString("N0") + " %.");
// Línea 8.
Console.SetCursorPosition(0, 8);
Console.Write("Voltios: ");
Console.SetCursorPosition(12, 8);
Console.Write(" ");
Console.SetCursorPosition(12, 8);
Console.Write(Resultado_Voltios.ToString("N2") + " V.");
}
catch (FormatException)
{
// Console.WriteLine("La cadena de entrada no tiene el formato correcto.");
Console.SetCursorPosition(0, 10);
Console.Write(" ");
Console.SetCursorPosition(0, 10);
Console.Write("Contador: " + Contador++);
// return;
}
}
public static void ClearCurrentConsoleLine()
{
int currentLineCursor = Console.CursorTop;
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(new string(' ', Console.WindowWidth));
Console.SetCursorPosition(0, currentLineCursor);
}
}
}
Valora esta pregunta


0