elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 ... 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 ... 255
591  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 16 Marzo 2017, 23:16 pm
Hola:

Muchas gracias. Si te digo la verdad, no entiendo ni papa. Jajaajjajajaja. Soy de C# y este C de Win32 o en WinAPI.

Lo que tiene que hacer el programa es enviar este comando que lo hace bien.
Código
  1. cout << "Enviando: " << L_ON << endl;
  2. Puerto -> WriteData(L_ON, sizeof(L_ON) - 1);

Arduino lo detecta.

Luego recibir este comando que no se si lo hace bien. Cuando Arduino le envía mensajes a C++ del PC.
Código
  1. Puerto -> ReadData(lectura, 50);
  2. cout << "Recibido: " << lectura << endl;

Para los que me respondieron en privado lo pongo en público.
Citar
Si hay que usar el Dev C++.


Pues a suarlo.
https://sourceforge.net/projects/orwelldevcpp/

Otros con el Code Blocks, que no se ponen de acuerdo. Para mi solo son IDE y me quedo con Visual studio 2017 que me gusta más. ;)

¿Alguna ayuda?

Saludos.
592  Programación / Programación C/C++ / Puerto serie C++. Mejorar el programa. en: 16 Marzo 2017, 22:21 pm
Buenas:

Tengo un programa aquí que no está bien hecho del todo.

Envía datos al puerto seria, concretamente llega a Arduino. Los datos llegan bien, al recibir, ya no tanto.

Si pulsas la tecla, por ejemplo 5, primero se ve reflejado y luego tengo que pulsar Enter. Lo que quiero lograr es que si pulse el número 5, automáticamente ejecuta la instruacción del case 5 del Switch.

Otra cosa, es que no me llegan los datos desde Arduino cuando le pulso un botón. C++ tiene que ser capaz, desde que le llegue algún dato, reflejarlo en pantalla.

La librería a usar es esta.

https://github.com/Gmatarrubia/LibreriasTutoriales

El código de C++ es:
Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <Windows.h>
  4. #include "SerialClass.h"
  5. using namespace std;
  6.  
  7. void main()
  8. {
  9. SetConsoleTitle("Control Led 13 de Arduino UNO y saludos.");
  10.  
  11. Serial* Puerto = new Serial("COM4");
  12.  
  13. while (Puerto -> IsConnected())
  14. {
  15.  
  16. // Comandos para Arduino.
  17. char L_ON[] = "Led13_ON";
  18. char L_OFF[] = "Led13_OFF";
  19. char Saludar[] = "Hola Arduino. Saludos desde el PC con C++ bajo  Win32.";
  20. char Luz_ON[] = "Luz_ON";
  21. char Luz_OFF[] = "Luz_OFF";
  22. char lectura[50];
  23.  
  24. int opc;
  25.  
  26. cout << "Introduzca la opcion deseada: ";
  27.  
  28. cin >> opc;
  29.  
  30. switch (opc)
  31. {
  32. case 1:
  33. cout << "caso 1\n";
  34. // Enviar encender Led.
  35. cout << "Enviando: " << L_ON << endl;
  36. Puerto -> WriteData(L_ON, sizeof(L_ON) - 1);
  37. break;
  38.  
  39. case 2:
  40. cout << "caso 2\n";
  41. // Enviar apagar Led.
  42. cout << "Enviando: " << L_OFF << endl;
  43. Puerto -> WriteData(L_OFF, sizeof(L_OFF) - 1);
  44. break;
  45.  
  46. case 3:
  47. cout << "caso 3\n";
  48. // Mensaje saludar.
  49. cout << "Enviando: " << Saludar << endl;
  50. Puerto -> WriteData(Saludar, sizeof(Saludar) - 1);
  51. break;
  52.  
  53. case 4:
  54. cout << "caso 4\n";
  55. // Mensaje saludar.
  56. cout << "Enviando: " << Luz_ON << endl;
  57. Puerto->WriteData(Luz_ON, sizeof(Luz_ON) - 1);
  58. break;
  59.  
  60. case 5:
  61. cout << "caso 5\n";
  62. // Mensaje saludar.
  63. cout << "Enviando: " << Luz_OFF << endl;
  64. Puerto->WriteData(Luz_OFF, sizeof(Luz_OFF) - 1);
  65. break;
  66.  
  67. default:
  68. cout << "Puse del 1 al 5.";
  69. }
  70.  
  71. Puerto -> ReadData(lectura, 50);
  72. cout << "Recibido: " << lectura << endl;
  73.  
  74. cout << "-------------------" << endl;
  75.  
  76. // system("PAUSE");
  77. }
  78. }

¿Alguna ayuda?

Un cordial saludo.

PD: Uso Visual Studio Community 2017, lenguaje C++ bajo Win32.
593  Programación / Programación C/C++ / Re: Instalar esta librería en C++ en: 16 Marzo 2017, 11:52 am
Resuelto:

El primer problema, las librerías SerialClass.ccp y SerialClass.h, mejor ponerlas directamente en las capeta del proyecto. Borras las demás que te crea solo el compilador.

A parte de esto da otros errores.

Gravedad    Código    Descripción    Proyecto    Archivo    Línea    Estado suprimido
Error (activo)    E0167    un argumento de tipo "char *" no es compatible con un parámetro de tipo "LPCWSTR"    Cpp_Win32_Consola_Arduino    c:\Users\Usuario\Documents\Visual Studio 2017\Projects\Cpp_Win32_Consola_Arduino\Cpp_Win32_Consola_Arduino\SerialClass.cpp    9   

Se soluciona aquí.

Hay que ir arriba en la barra. Proyecto --> Propiedades. Se abre una ventana que dice: "Páginas de propiedades". En la pestaña General --> Juego de caracteres --> """"Utilizar juego de caracteres multibyte"""".

Los dejo aquí por si lo necesitan. ;)
594  Programación / Programación C/C++ / Instalar esta librería en C++ en: 16 Marzo 2017, 06:23 am
Hola:

Quiero usar e instalar esta librería para Visual C++, concretamente Visual Studio Community 2017.
https://github.com/Gmatarrubia/LibreriasTutoriales

Su código es este:
Código
  1. #include
  2. #include
  3. #include "SerialClass.h"
  4. using namespace std;
  5.  
  6. void main () {
  7.    Serial* Arduino = new Serial("COM7");
  8.  
  9.  
  10.    while( Arduino->IsConnected() ){
  11.        char palabra[] = "PalabraDelMundo";
  12.  
  13.        cout<<"Arduino conectado"<<endl;
  14.  
  15.        cout<<"Enviando :"<<palabra<<endl;
  16.        Arduino->WriteData(palabra,sizeof(palabra)-1);
  17.  
  18.        Sleep(500);
  19.  
  20.        Arduino->ReadData(palabra,sizeof(palabra)-1);
  21.        cout<<"Recibido: "<<palabra<<endl;
  22.  
  23.        cout<<"-------------------"<<endl;
  24.        Sleep(1000);
  25.    }

Creo un proyecto nuevo.




Me crea este código.


Añado las librerías com indica abajo.


Lo mismo para la hora y lo refleja, tanto en cpp como en h indicado abajo.


Como que no detecta la librería.


¿En que fallo?

Un cordial saludo.
595  Programación / Java / Re: Pasar de C# a Java. Código en modo consola en: 16 Marzo 2017, 04:56 am
Hola:

No sabía ni me imaginaba un convertidos de C# a Java. He intslado ya las librerías del puerto RxTx, espero que lo haya hecho bien y funcione.

Cada vez que hago un ejemplo en Java, me aparece en NetBeans, esperaba ver un hola mundo como si fuera un CMD de Windows, es decir, la consola negra.

Hay que activarlo en Administrador, Java, en esta opción, activar consola.


Lo que tengo que descubrir.

Voy haber si hay otro convertidos y sino, paso a paso como se traduce. ;)

Saludos.
596  Programación / Java / Pasar de C# a Java. Código en modo consola en: 16 Marzo 2017, 03:13 am
Hola:

Quiero pasar este código de C# a Java con NetBeans.



Instalar Java actualizado:
https://www.java.com/es/download/

Compilador NetBeans (En español), Java SE:
https://netbeans.org/downloads/index.html

Tutorial sobre instalación del NetBeans y las librerías RxTx para controlar el puerto serie de Arduino:
https://es.slideshare.net/Metaconta2/interfaz-java-y-arduino

Librería oficial RxTx solo para 32 bits:
http://rxtx.qbang.org/wiki/index.php/Download

Librería alternativa RxTx de 32 y de 64 bits. Usaremos 64 bits. (Recomendado):
http://jlog.org/rxtx-win.html

El código de C# es este aquí abajo.
Código
  1. using System;
  2. using System.Text;
  3. using System.IO.Ports;
  4. using System.IO;
  5. using System.Diagnostics;
  6. using System.Threading;
  7.  
  8. namespace Recibir_archivo_desde_Arduino_consola_06
  9. {
  10.    class Program
  11.    {
  12.        static int cantidadBytes;
  13.        static StringBuilder sb = new StringBuilder();
  14.  
  15.        static void Main(string[] args)
  16.        {
  17.            string COM = "";
  18.            // Título de la ventana.
  19.            Console.Title = "Recoger foto desde Arduino y crearlo en el disco duro";
  20.  
  21.            // Tamaño ventana consola.
  22.            Console.WindowWidth = 55; // X. Ancho.
  23.            Console.WindowHeight = 18; // Y. Alto.
  24.  
  25.  
  26.            // Crear un nuevo objeto SerialPort con la configuración predeterminada.
  27.            SerialPort Puerto_serie = new SerialPort();
  28.  
  29.            // Configuración.
  30.            Console.Write(@"
  31. Introduzca un número para seleccionar puerto COM.
  32. Por ejemplo el 4, sería COM4.
  33.  
  34. Puerto: ");
  35.            COM = Console.ReadLine(); // Escribir el número del puerto.
  36.            Console.Clear();
  37.  
  38.            Puerto_serie.PortName = "COM" + COM; // Número del puerto serie.
  39.  
  40.  
  41.            Puerto_serie.BaudRate = 115200; // Baudios. 115200.
  42.            Puerto_serie.Parity = Parity.None; // Paridad.
  43.            Puerto_serie.DataBits = 8; // Bits de datos.
  44.            Puerto_serie.StopBits = StopBits.One; // Bits de parada.
  45.            Puerto_serie.Handshake = Handshake.None; // Control de flujo.
  46.  
  47.            // Establecer la lectura / escritura de los tiempos de espera.
  48.            Puerto_serie.ReadTimeout = -1; // 500.
  49.            Puerto_serie.WriteTimeout = -1; // 500.
  50.  
  51.            try
  52.            {
  53.                Puerto_serie.Open(); // Abrir el puerto serie.
  54.            }
  55.  
  56.            catch (IOException)
  57.            {
  58.                Console.ForegroundColor = ConsoleColor.Red; // Texto en rojo.
  59.                Console.CursorVisible = false;
  60.                Console.SetCursorPosition(16, 6);
  61.                Console.WriteLine(@"El puerto " + Puerto_serie.PortName + @" no existe
  62.                o no lo encuentra.");
  63.                Console.ReadKey(); // Pulse cualquier tecla para salir.
  64.            }
  65.  
  66.            catch (UnauthorizedAccessException e)
  67.            {
  68.                Console.WriteLine(e);
  69.            }
  70.            Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
  71.  
  72.            Console.WriteLine("Esperando datos desde Arduino... \n");
  73.            Console.ReadKey();
  74.            Puerto_serie.Close(); // Cerrar puerto.
  75.        }
  76.  
  77.        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
  78.        {
  79.            try
  80.            {
  81.                SerialPort sp = (SerialPort)sender;
  82.                string indata = sp.ReadExisting();
  83.                string[] data = indata.Split('A');
  84.                cantidadBytes = int.Parse(data[0]);
  85.  
  86.  
  87.                switch (data[1].ToString())
  88.                {
  89.                    case "1":
  90.                        Console.WriteLine("Tamaño: " + cantidadBytes + " Bytes.");
  91.                        Console.WriteLine("Foto: " + data[1] + ". Tipo de archivo: JPG");
  92.                        break;
  93.  
  94.                    case "2":
  95.                        Console.WriteLine("Tamaño: " + cantidadBytes + " Bytes.");
  96.                        Console.WriteLine("Foto: " + data[1] + ". Tipo de archivo: PNG.");
  97.                        break;
  98.  
  99.                    default:
  100.                        Console.WriteLine("Cosas raras en 'data': " + data.ToString()); // Por si hal algún error.
  101.                        break;
  102.                }
  103.  
  104.                int contador = 0;
  105.                byte[] datosArray = new byte[cantidadBytes];
  106.  
  107.                switch (indata)
  108.                {
  109.                    case "17729A1":
  110.                        Thread.Sleep(100); // Retardo.
  111.                        byte[] miBuffer = Encoding.ASCII.GetBytes("OK1"); // Codificación ASCII.
  112.                        sp.Write(miBuffer, 0, miBuffer.Length); // Envía OK1 al puerto serie.
  113.                        break;
  114.  
  115.                    case "2065A2":
  116.                        Thread.Sleep(100); // Retardo.
  117.                        byte[] miBuffer2 = Encoding.ASCII.GetBytes("OK2"); // Codificación ASCII.
  118.                        sp.Write(miBuffer2, 0, miBuffer2.Length); // Envía OK2 al puerto serie.
  119.                        break;
  120.  
  121.                    default:
  122.                        Console.WriteLine("Cosas raras en 'indata': " + indata.ToString()); // Por si hal algún error.
  123.                        break;
  124.                }
  125.  
  126.                while (true)
  127.                {
  128.  
  129.                    contador += sp.Read(datosArray, contador, datosArray.Length - contador);
  130.  
  131.                    Console.SetCursorPosition(10, 6);
  132.                    Console.Write("Datos recibidos:  {0}", contador + " Bytes.");
  133.                    Console.WriteLine("                   ");
  134.  
  135.                    if ((contador == cantidadBytes) && (contador == 17729))
  136.                    {
  137.                        Mensaje1();
  138.                        File.WriteAllBytes("fotón.jpg", datosArray); // Crear archivo en el disco duro.
  139.                        Mensaje2();
  140.                        Process.Start("fotón.jpg"); // Ejecutar visualizador de imágenes.
  141.                        Mensaje3();
  142.                        break; // Garantiza que el ciclo termine.
  143.                    }
  144.  
  145.                    if ((contador == cantidadBytes) && (contador == 2065))
  146.                    {
  147.                        Mensaje1();
  148.                        File.WriteAllBytes("fotón.png", datosArray); // Crear archivo en el disco duro.
  149.                        Mensaje2();
  150.                        Process.Start("fotón.png"); // Ejecutar visualizador de imágenes.
  151.                        Mensaje3();
  152.                        break; // Garantiza que el ciclo termine.
  153.                    }
  154.                }
  155.  
  156.                void Mensaje1()
  157.                {
  158.                    Console.WriteLine();
  159.                    Console.WriteLine("Creando archivo al disco duro...");
  160.                }
  161.  
  162.                void Mensaje2()
  163.                {
  164.                    Console.WriteLine();
  165.                    Console.WriteLine("Archivo creado. Ejecutando imagen.");
  166.                }
  167.  
  168.                void Mensaje3()
  169.                {
  170.                    Console.WriteLine();
  171.                    Console.WriteLine("Imagen ejecutada.");
  172.                    Console.WriteLine();
  173.                    Console.WriteLine("Cabecera recibida: " + indata + "\n");
  174.                    Console.ForegroundColor = ConsoleColor.Yellow; // Letras amarillas.
  175.                    Console.WriteLine("FIN DE PROGRAMA.");
  176.                    Console.ForegroundColor = ConsoleColor.Gray; // Letras grises otra vez.
  177.                }
  178.            }
  179.  
  180.            catch (FormatException)
  181.            {
  182.                // System.FormatException: 'La cadena de entrada no tiene el formato correcto.'
  183.            }
  184.        }
  185.    }
  186. }
  187.  

En estos momentos estoy instalando la librería RxTx de 64 bits para Windwos 10 de 64 bits que es el que uso actualmente. El código de C# arriba fucniona de maravilla.

Esto de Java para adaptarme tardaré una eternidad, al menos se que el Hola mundo es Console.WriteLine("Hola mundo"); de C# es el equivalente a System.out.println("Hola mundo"); de Java.

Cualquier ayuda es bienvenida.
597  Programación / .NET (C#, VB.NET, ASP) / Cerrar y abrir la bandeja del lector con el botón manualmente, y que lo sepa C# en: 15 Marzo 2017, 11:11 am
Hola:

Quiero cerrar y abrir la bandeja del lector de DVD con el botón manualmente, y que lo sepa C#. Estoy usando Visual Studio Community 2017.

En otro momento hicimos desde C#, controlar la bandeja abrirla y cerrarla pulsando los botones como indica en la interfaz de abajo.



Código fuente sencillo de C#:
Código
  1. using System;
  2. using System.Runtime.InteropServices; // No olvidar.
  3. using System.Text;
  4. using System.Windows.Forms;
  5.  
  6. namespace Lector_discos_cs
  7. {
  8.    public partial class Form1 : Form
  9.    {
  10.        public Form1()
  11.        {
  12.            InitializeComponent();
  13.        }
  14.  
  15.        [DllImport("winmm.dll")]
  16.        public static extern Int32 mciSendString(string lpstrCommand, StringBuilder lpstrReturnString,
  17.            int uReturnLength, IntPtr hwndCallback);
  18.  
  19.        StringBuilder rt = new StringBuilder(127);
  20.  
  21.        private void button_Abrir_Click(object sender, EventArgs e)
  22.        {
  23.            label_Mensaje.Text = "Abriendo...";
  24.            Application.DoEvents();
  25.            mciSendString("set CDAudio door open", rt, 127, IntPtr.Zero);
  26.            label_Mensaje.Text = "Abierto";
  27.        }
  28.  
  29.        private void button_Cerrar_Click(object sender, EventArgs e)
  30.        {
  31.            label_Mensaje.Text = "Cerrando...";
  32.            Application.DoEvents();
  33.            mciSendString("set CDAudio door closed", rt, 127, IntPtr.Zero);
  34.            label_Mensaje.Text = "Cerrado";
  35.        }
  36.    }
  37. }

Hasta aquí todo bien.

Ahora quiero hacer, saber antes que nada, si es posible que al meter la bandeja con la mano o pulsar el botón físicamente del lector, C# puede saber su estado, cunado está abierto y cuando está cerrado.

En este caso, no hay botones para Windows Form de C#, solo un label que indica el estado "ABIERTO" y "CERRADO".

¿Es posible hacerlo?

Si es así. ¿Cómo se hace?

Lo único que pensé que este enlace valdría la pena o te daba información, pero es otra cosa.

Que tengan buena semana. ;)
598  Programación / .NET (C#, VB.NET, ASP) / Re: Modificar el array de byte[] en: 15 Marzo 2017, 10:40 am
Hola de nuevo:

He hecho este programa. Arduino ulsa un botón y este programa de C# lo descodifica como dijeron arriba. Como puedes ver, el archivo viene desde Arduino por el puerto serie/USB.

¿Existe la manera de usar la descodificación de la foto?

C#:
Código
  1. using System;
  2. using System.Text;
  3. using System.IO.Ports;
  4. using System.IO;
  5. using System.Diagnostics;
  6. using System.Threading;
  7.  
  8. namespace Recibir_archivo_desde_Arduino_consola_06
  9. {
  10.    class Program
  11.    {
  12.        static int cantidadBytes;
  13.        static StringBuilder sb = new StringBuilder();
  14.  
  15.        static void Main(string[] args)
  16.        {
  17.            string COM = "";
  18.  
  19.            // Tamaño ventana consola.
  20.            Console.WindowWidth = 55; // X. Ancho.
  21.            Console.WindowHeight = 18; // Y. Alto.
  22.            Console.Title = "Recoger foto desde Arduino y crearlo en el disco duro"; // Título de la ventana.
  23.  
  24.            // Crear un nuevo objeto SerialPort con la configuración predeterminada.
  25.            SerialPort Puerto_serie = new SerialPort();
  26.  
  27.            // Configuración.
  28.            Console.Write(@"
  29. Introduzca un número para seleccionar puerto COM.
  30. Por ejemplo el 4, sería COM4.
  31.  
  32. Puerto: ");
  33.            COM = Console.ReadLine(); // Escribir el número del puerto.
  34.            Console.Clear();
  35.  
  36.            Puerto_serie.PortName = "COM" + COM; // Número del puerto serie.
  37.  
  38.  
  39.            Puerto_serie.BaudRate = 115200; // Baudios. 115200.
  40.            Puerto_serie.Parity = Parity.None; // Paridad.
  41.            Puerto_serie.DataBits = 8; // Bits de datos.
  42.            Puerto_serie.StopBits = StopBits.One; // Bits de parada.
  43.            Puerto_serie.Handshake = Handshake.None; // Control de flujo.
  44.  
  45.            // Establecer la lectura / escritura de los tiempos de espera.
  46.            Puerto_serie.ReadTimeout = -1; // 500.
  47.            Puerto_serie.WriteTimeout = -1; // 500.
  48.  
  49.            try
  50.            {
  51.                Puerto_serie.Open(); // Abrir el puerto serie.
  52.            }
  53.  
  54.            catch (IOException)
  55.            {
  56.                Console.ForegroundColor = ConsoleColor.Red; // Texto en rojo.
  57.                Console.CursorVisible = false;
  58.                Console.SetCursorPosition(16, 6);
  59.                Console.WriteLine(@"El puerto " + Puerto_serie.PortName + @" no existe
  60.                o no lo encuentra.");
  61.                Console.ReadKey(); // Pulse cualquier tecla para salir.
  62.            }
  63.  
  64.            catch (UnauthorizedAccessException e)
  65.            {
  66.                Console.WriteLine(e);
  67.            }
  68.            Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
  69.  
  70.            Console.WriteLine("Esperando datos desde Arduino... \n");
  71.            Console.ReadKey();
  72.            Puerto_serie.Close(); // Cerrar puerto.
  73.        }
  74.  
  75.        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
  76.        {
  77.            try
  78.            {
  79.                SerialPort sp = (SerialPort)sender;
  80.                string indata = sp.ReadExisting();
  81.                string[] data = indata.Split('A');
  82.                cantidadBytes = int.Parse(data[0]);
  83.  
  84.  
  85.                switch (data[1].ToString())
  86.                {
  87.                    case "1":
  88.                        Console.WriteLine("Tamaño: " + cantidadBytes + " Bytes.");
  89.                        Console.WriteLine("Foto: " + data[1] + ". Tipo de archivo: JPG");
  90.                        break;
  91.  
  92.                    case "2":
  93.                        Console.WriteLine("Tamaño: " + cantidadBytes + " Bytes.");
  94.                        Console.WriteLine("Foto: " + data[1] + ". Tipo de archivo: PNG.");
  95.                        break;
  96.  
  97.                    default:
  98.                        Console.WriteLine("Cosas raras en 'data': " + data.ToString()); // Por si hal algún error.
  99.                        break;
  100.                }
  101.  
  102.                int contador = 0;
  103.                byte[] datosArray = new byte[cantidadBytes];
  104.  
  105.                //byte[] miBuffer = Encoding.ASCII.GetBytes("OK1");
  106.                //sp.Write(miBuffer, 0, miBuffer.Length); // Envía OK1 a Arduino.
  107.  
  108.                switch (indata)
  109.                {
  110.                    case "17729A1":
  111.                        Thread.Sleep(100); // Retardo.
  112.                        byte[] miBuffer = Encoding.ASCII.GetBytes("OK1"); // Codificación ASCII.
  113.                        sp.Write(miBuffer, 0, miBuffer.Length); // Envía OK1 al puerto serie.
  114.                        break;
  115.  
  116.                    case "2065A2":
  117.                        Thread.Sleep(100); // Retardo.
  118.                        byte[] miBuffer2 = Encoding.ASCII.GetBytes("OK2"); // Codificación ASCII.
  119.                        sp.Write(miBuffer2, 0, miBuffer2.Length); // Envía OK2 al puerto serie.
  120.                        break;
  121.  
  122.                    default:
  123.                        Console.WriteLine("Cosas raras en 'indata': " + indata.ToString()); // Por si hal algún error.
  124.                        break;
  125.                }
  126.  
  127.                while (true)
  128.                {
  129.  
  130.                    contador += sp.Read(datosArray, contador, datosArray.Length - contador);
  131.  
  132.                    Console.SetCursorPosition(10, 6);
  133.                    Console.Write("Datos recibidos:  {0}", contador + " Bytes.");
  134.                    Console.WriteLine("                   ");
  135.  
  136.                    if ((contador == cantidadBytes) && (contador == 17729))
  137.                    {
  138.                        Mensaje1();
  139.                        File.WriteAllBytes("fotón.jpg", datosArray); // Crear archivo en el disco duro.
  140.                        Mensaje2();
  141.                        Process.Start("fotón.jpg"); // Ejecutar visualizador de imágenes.
  142.                        Mensaje3();
  143.                        break; // Garantiza que el ciclo termine.
  144.                    }
  145.  
  146.                    if ((contador == cantidadBytes) && (contador == 2065))
  147.                    {
  148.                        Mensaje1();
  149.                        File.WriteAllBytes("fotón.png", datosArray); // Crear archivo en el disco duro.
  150.                        Mensaje2();
  151.                        Process.Start("fotón.png"); // Ejecutar visualizador de imágenes.
  152.                        Mensaje3();
  153.                        break; // Garantiza que el ciclo termine.
  154.                    }
  155.                }
  156.  
  157.                void Mensaje1()
  158.                {
  159.                    Console.WriteLine();
  160.                    Console.WriteLine("Creando archivo al disco duro...");
  161.                }
  162.  
  163.                void Mensaje2()
  164.                {
  165.                    Console.WriteLine();
  166.                    Console.WriteLine("Archivo creado. Ejecutando imagen.");
  167.                }
  168.  
  169.                void Mensaje3()
  170.                {
  171.                    Console.WriteLine();
  172.                    Console.WriteLine("Imagen ejecutada.");
  173.                    Console.WriteLine();
  174.                    Console.WriteLine("Cabecera recibida: " + indata + "\n");
  175.                    Console.ForegroundColor = ConsoleColor.Yellow; // Letras amarillas.
  176.                    Console.WriteLine("FIN DE PROGRAMA.");
  177.                    Console.ForegroundColor = ConsoleColor.Gray; // Letras grises otra vez.
  178.                }
  179.            }
  180.  
  181.            catch (FormatException)
  182.            {
  183.                // System.FormatException: 'La cadena de entrada no tiene el formato correcto.'
  184.            }
  185.        }
  186.    }
  187. }
  188.  

Saludos.
599  Programación / Programación C/C++ / [Tutorial] Formulario Windows VC++ 2017 para iniciados en: 13 Marzo 2017, 23:05 pm


Tutorial para iniciados de modo introducción de los tres métodos para crear un formulario. Ya puedes configurar en algunas tecnologías el primer formulario con cualquiera de ellso eligiendeo CLR, MFC o Win32 en C++ con Visual Studio Community 2017.

Ver tutorial.

Un cordial saludos.

PD: También tutorial la versión Visual studio Community 2015.
600  Programación / Programación C/C++ / Re: No encuentra la laibrería estandar en Visual C++ en: 13 Marzo 2017, 14:11 pm
Hola:

Cierto, menudo despiesta.

Versión 2017.
https://es.slideshare.net/Metaconta2/formulario-windows-con-visual-c-2017


Gracias por la ayuda mi muy distinguido amigo.
Páginas: 1 ... 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 ... 255
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines