Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Meta

#491
Hola:

Quiero leer un texto que puse como string desde la Class2 y no me sale.

Dejo el código.

Program.cs

Código (csharp) [Seleccionar]
using System;

namespace Textos_Clases_02
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Métodos y funciones C#";

            Console.WriteLine("Que muestre los textos desde la clase externa llamada Class1.cs");

            Class1 txt = new Class1();  // Crear un objeto.
            txt.MostrarTextoClass1();   // Mostrar textos de la Class1.

            Class2 txt2 = new Class2(); // Crear un objeto.
            Console.WriteLine(txt2.metodo()); // Mostrar textos de la Class2.

            Console.ReadKey(); // Pulsa cualquier tecla para salir.
        }
    }
}



Class1.cs

Código (csharp) [Seleccionar]
using System;

namespace Textos_Clases_02
{
    class Class1
    {
        public void MostrarTextoClass1()
        {
            Console.WriteLine("Hola desde Class1 con el método MostrarTextoClass1");
        }
    }
}


Class2.cs

Código (csharp) [Seleccionar]
namespace Textos_Clases_02
{
    class Class2
    {
        public string metodo(string variable)
        {
            variable = "Texto variable de la clase Class2 y método o función metodo.";
            return variable;
        }
    }
}


¿Cuál es la mejor forma de hacerlo?

En resumen: Quiero añadir textos en clases externas, así cualquier método lleno de textos no los tengo en el programa principal y me ahorro leer muchos códigos que se que funcionan.En el programa principal solo los llamo.

Saludos.
#492
Hola a todos y a todas:

No he puesto el código fuente porque está en constante proceso y estilo chapuza. No significa que no lo ponga cuando acabe. No se preocupen, lo pondé si o si el código fuente en el futuro. El que uso es en español y hay que indicarlo así:

Código (csharp) [Seleccionar]
using (
     SpeechRecognitionEngine recognizer =
       new SpeechRecognitionEngine(
         new System.Globalization.CultureInfo("es-ES")))
     {


https://msdn.microsoft.com/es-es/library/system.speech.recognition.speechrecognitionengine(v=vs.110).aspx

Les dejo el código fuente en modo consola C#. Puedes hacer prueba rápida.
Código (csharp) [Seleccionar]
using System;
using System.Speech.Recognition; // No olvidar. Micro.
using System.Speech.Synthesis; // No olvidar. Altavoz.

namespace Reconocimiento_voz_consola_04
{
   class Program
   {
       static void Main(string[] args)
       {
           Console.Title = "Reconocimiento voz 04"; // Título de la ventana.
           Console.WriteLine(" Empiece a dar la lengua.");

           // Cree un reconocedor de voz en proceso para la configuración regional en-US.
           using (SpeechRecognitionEngine micro = new SpeechRecognitionEngine(
               new System.Globalization.CultureInfo("es-ES")))
           {

               // Cree y cargue una gramática de dictado.
               micro.LoadGrammar(new DictationGrammar());

               // Agregue un controlador para el evento de reconocimiento de voz.
               micro.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);

               // Configure la entrada al reconocedor de voz.
               micro.SetInputToDefaultAudioDevice();

               // Inicie el reconocimiento de voz continuo asíncrono.
               micro.RecognizeAsync(RecognizeMode.Multiple);

               // Mantenga abierta la ventana de la consola.
               while (true)
               {
                   Console.ReadLine();
               }
           }
       }

       // Maneje el evento SpeechRecognized.
       static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
       {
           Console.WriteLine("Texto reconocido: " + e.Result.Text);

           string palabras = e.Result.Text;

           // Inicializar una nueva instancia de SpeechSynthesizer.
           using (SpeechSynthesizer altavoz = new SpeechSynthesizer())
           {
               // Configure la salida de audio.
               altavoz.SetOutputToDefaultAudioDevice();

               switch (palabras)
               {
                   case "enciende la luz uno":
                       Console.WriteLine("Luz 1 encendida.");
                       altavoz.Speak("Encendiendo luz 1.");
                       break;

                   case "apaga la luz uno":
                       Console.WriteLine("Luz 1 apagada.");
                       altavoz.Speak("Apagando luz 1.");
                       break;

                   case "enciende ventilador uno":
                       Console.WriteLine("Ventilador 1 encendido.");
                       altavoz.Speak("Encendiendo ventilador 1.");
                       break;

                   case "apaga ventilador uno":
                       Console.WriteLine("Ventilador 1 apagado.");
                       altavoz.Speak("Apagando ventilador 1.");
                       break;
               }
           }
       }
   }
}


Siguiendo avanzando.

Versión 0.02.
Mostrar nivel de audio en una barra de progreso.



Descargar

Pueden avisarme sus experiencias y primera impresión de si realmente el programa les funciona. No escucha perfecto.

Felices fiestas 2016.
#493
Hola todos y a todas:

Estoy en primera fase haciendo una interfaz con Visual C# (ya se hará lo mismo para Visual Basic .net) reconocimento por voz usando cascos con micro.

Este ejemplo que puedes descargar solo hace lo siguiente, decir palabras, como: Azul, izquierda, siete, salir, palabras de ese tipo que con el micro intenta reconocer una palabra.

Quiero que prueben este programa en fase alfa todavía, si les funcione me cuentan sus experiencias o primera impresión y si les interesa.



Mi idea principal es: Controlar Arduino con su LCD, si dices amarillo, el cuadro se pone en amarillo del programa y aparece esa palabra en el LCD de Arduino. Cada palabra que digas en el programa, lo refrejará Arduino con el LCD. A parte de esto, se ampliarán funciones como encender un LEd y apagarlo con la voz.

Es un proyecto tonto de experimentación y lo hago como curiosidad, usando el puerto serie del PC.

Descargar programa.

Felices fiestas 2016.
#494
Buenas.

Está hecho ya en Linux en C y en Windows en C#, puedo dar el código completo pero no lo haré y funciona.
Cada uno lo puede hacer como quiera, cada persona tiene su forma de pensar y hacer programas internamente diferente aunque en apariencia sean ideánticas, solo que cada uno usa optimizaciones o no.

Para que se hagan una idea. Aquí en este enlace dice:
CitarNative Sony Format
Internally, a PlayStation memory card has a single 1-megabit EEPROM chip. This chip can store a total of 128 kilobytes of data, divided into sixteen blocks. Each block, in turn, contains 64 frames, each of which is 128 bytes. While this arrangement may appear strange, it's primarily an optimisation measure, since the hardware reads and writes the card in one kilobit or 128 byte chunks.

The first thing most people say when they hear that a memory card has 16 blocks is generally "you mean FIFTEEN blocks". No, sixteen; the first block contains a directory of the other fifteen blocks. Each directory entry consumes one of the 64 frames in this block, and takes the following format.

   FRAME 0: Identification frame, used to determine whether the data is a valid PlayStation memory card.
   FRAMES 1 - 15: Directory frame, detailing the nature of the save data in the appropriate block.
   FRAMES 16 - 35: Reserved. Formatted as per normal directory frames, with the "reserved" block type and all implied data.
   FRAMES 36 - 62: Unused. All bytes in this region are set to 0xFF.
   FRAME 63: Write test. If it is desired to do a "test write" of data, this frame can be used without damaging the memory card.

The identification frame is constant, and always contains the following data. If the data differs from this, the card has not yet been formatted.

   The two characters "MC".
   125 NUL bytes (0x00).
   The XOR byte (0x0E).

The XOR byte needs a little clarification. This byte is calculated through an XOR of the preceding 127 bytes; one simply loops through from byte to byte as follows:


   char xor=0;
   for(int x=0;x<127;x++) xor^=frame
  • ;
       frame[127]=xor;

    Since any number XORed with itself is 0, you can verify this byte with the following code:


       char xor=0;
       for(int x=0;x<128;x++) xor^=frame
  • ;
       if(xor==0) return 1; // XOR code correct
       return 0; // XOR code incorrect

En español traducido por google.
https://translate.google.com/translate?hl=es&sl=en&tl=es&u=https%3A%2F%2Fweb.archive.org%2Fweb%2F20100123200342%2Fhttp%3A%2F%2Fwww.darklock.com%2Fthps%2Fdexdrive.html

Vamos por parte, el código lo hice en C# en modo consola.

using System;

namespace DexDrive_for_prueba
{
   class Program
   {
       static void Main(string[] args)
       {
           sbyte[] frame = new sbyte[128];
           frame[0] = (sbyte)'M';
           frame[1] = (sbyte)'C';
           for (int k = 2; k < frame.Length - 1; k++) frame[k] = 0;
           frame[127] = 0x0E;

           sbyte xor = 0;
           for (int x = 0; x < 128; x++) xor ^= frame[x];

           // Muestra 1.
           Console.WriteLine(xor == 0 ? "FRAME 0 formateado" : "XOR code incorrect");

           // Muestra 2.
           if (xor == 0)
           {
               Console.WriteLine("FRAME 0 formateado");
           }

           else
           {
               Console.WriteLine("XOR code incorrect");
           }

           Console.ReadKey();
       }
   }
}


Así se empieza poco a poco.


Saludos 2016.

PD: Pues si, como mejora se puede poner dibujos en los botones.
#495
Hola:

1) Tenemos el diseño hecho de una interfaz en C#.


2) Introducimos los datos configurados del puerto serie indicado abajo.


3) Con esta documentación, hacemos los pasos necesarios para hacer las funciones o métedos.

https://github.com/fbriere/linux-dexdrive/blob/master/protocol.txt
https://web.archive.org/web/20100123200342/http://www.darklock.com/thps/dexdrive.html

4) Cuando ya tengamos las funciones del protocolo hecho, nos metemos en hacer los botones.

Backup: Leer la Memory Card.
Restore: Guardar los datos de la Memory Card en el PC.
Format: Formatear la Memory Card.
Refresh: Refrescarlos datos de la Memory Card.
Duplicate: Duplicar la Memory Card, es decir, hacer una copia de la tarjeta completo y guardar los datos en el PC.

5) Emepzamos aprobar el botón Backup, que es leer la tarjeta o Memory Card.

6) Dejo el proyecto vacío para empezar desde cero. Solo tiene el diseño hecho. Así ahorras tiempo.

Descargar

7) Animarse a hacer esta interfaz.
#496
Hola:

Estoy intentado seguir este protocolo de comunicación indicado en esta Web.
https://web.archive.org/web/20100123200342/http://www.darklock.com/thps/dexdrive.html

Quiero hacer un programa en Visual C#. Solo lee datos del puerto serie y lo pasa en un archivo al PC. También pasarel archivo que está en el PCy lo pasa al puerto serie con el programa hecho en C#.

Lo veo muy complicado, tengo el DexDrive físico y con ayuda de ustedes puedo hacer pruebas.

¿Algún atrevido en la aventura con C#?

Saludos.
#497
Buenas:

Es un proyecto personal.
Lo del puerto serie no es problema para Windows bajo C#.

Tengo documentación hecha con Arduino sobre el peurto serie bajo C# y Arduino.
Tutorial 1 y tutorial 2.
En MSDN lo explica por todas partes.

Lo que hace el DexDrive es enviar comandos desde una interfaz Windows aunque sea modo consola y recibir respuestas. Precisamente lo que hace el de Linux pero lo veo más complicado de entender. La ventaja que explica su protocolo de comunicación en cada comando, también en este otro enlace.

En esta ocasión solo usaré Windows con C# y sin arduino pro medio, ya tengo el DexDrive físico que funciona directamente con el puerto serie.

Parece una taera complicada, muy complicada hasta para expertos. ;)

Para empezar se necesita inicializar el DexDrive, almenos encender un Led y ver la versión, en mi caso es la 1.12 que muestar el DexDrive si envias el comando indicado, luedo podrás leer o escribir datos en ella. La idea es poder extraer datos y guardaro en el PC.

Saludos.
#498
Buenas:

Al menos entender el protocolo de comunicación que indica aquí.

https://github.com/fbriere/linux-dexdrive/blob/master/protocol.txt

Parece ser que es suficiente para entender a programarlo a C#. Más que el driver, quiero su funcionamiento del programa.

Saludos.
#499
Hola:

Para los que entiendan bien el C++ bajoj Linux, quiero hacer esta aplicación en Windows bajo C#. Me parecemuy complicado y eso que he estado mirando archivo por archivos, no tengo conocimientos muy bien del C++ y pesco a lo lindo.

Al menos quiero saber que archivos hay que adaptarlo, haber si cojo el truco. Funciona en modo consola.
Hay partes del programa que si puedo,como los if else, switch y demás, lo sencillo, en cuanto a otros aspecto no lo veo en C# ni loco.

El programa que quiero traducir es este.

Ver enlace.

Un cordial saludos.
#500
Cita de: MinusFour en  3 Diciembre 2016, 17:12 PM
En cuanto a lo del COM, tal y como lo tienes en la primera imagen debería funcionar.

Aquí me detecta todos.


Aquí abajo parece ser que solo funciona el ttyS1.


Parece ser que no encuentra el dispositivo o la dirección. Hasta aquí he llegado.

¿Se me escapa algo?

Saludos.