03-26-2022 12:17 AM - edited 03-26-2022 12:18 AM
Hola, necesito ayuda con un problema que tengo por favor.
Estoy haciendo un programa donde el usuario el usuario ingresa un mensaje (control string) en el panel frontal, una vez que se ingrese el mensaje para descomponerlo carácter por carácter uso el bloque string to byte array que da el numero ASCII de cada carácter del mensaje, después uso un índex array para obtener cada carácter en ASCII del arreglo y con un case estoy creando una base de datos con array constants con cuatro números para el abecedario, por ejemplo, para el espacio (carácter en ASCII) es 32 y en el case coloque 0 0 0 0, para la A es 255 9 255 0, para la B es 255 137 118 0, para la C es 255129 129 0 y así con diferentes números para cada letra.
Mi pregunta es ¿Cómo puedo concatenar los arreglos del case de acuerdo al mensaje que ingrese el usuario?, por ejemplo, si se coloca en el string control "AB C" el código ASCII daría [65 (por la A), 66 (por la B, 32 (por el espacio), 67 (por la C)], posteriormente el programa compararía cada elemento del arreglo con la base de datos y los convertiría a los cuatro números, sin embargo, no se como hacer que se vayan almacenando en cada comparación del case del index array con su base de datos para crear un arreglo de todos los números de los 4 caracteres en este caso que serian [255, 9, 255, 0, 255, 137 ,118, 0, 0, 0, 0, 0, 255, 129, 129, 0].
Adjunto imágenes del diagrama a bloques y del panel frontal, ahí se puede ver mejor en array output como se tienen a la salida del case los 4 números de la A ya que estaba en esa comparación del mensaje en ese momento, pero necesito un arreglo donde se guarden los 16 números de los 4 caracteres en este caso.
Espero puedan apoyarme, gracias.
Solved! Go to Solution.
03-26-2022 09:50 AM
Instead of explaining how you want to implement it, could you please explain your goal? there may be a lot simpler implementation than the one you've.
03-26-2022 12:09 PM
The code in your picture makes very little sense. Is there a toplevel loop? Why are there so many wire bends? Why is there any orange at all?
If each U8 input should translate to 4 bytes, all you need is a LUT to index into. The index would be the key and the output would be a U32 (to represent the four bytes (1D array, index=key) or a row with four U8 (2D array: row index= key).
Just autoindex of the U8 array obtained from "string to byte array" on a FOR loop, inside the loop place an index array where you index into the LUT using the U8 as index, and autoindex at the output array. Format as desired.
03-26-2022 01:30 PM
Claro, te explico lo que busco realizar.
Tengo que hacer que se despliegue (de derecha a izquierda) un mensaje introducido por el usuario en una matriz de led's. Te enseño mi panel frontal y mi diagrama de bloques completo.
La parte de los registros de corrimiento del ciclo while y la conversión de numérico a booleano ya me funciona correctamente, cada indicador Boolean array representa una columna, por eso hay 5 en total. Los cuatro números son los que necesito para formar un letra, por eso en la A es 255 lo que provoca que se ilumine toda una columna, el 9 se iluminarían dos led, el otro 255 es para finalizar con la letra A y el 0 es para el espacio entre letra y letra que quiero dejar. A continuación te dejo un ejemplo con un vector con constant array.
Lo que quiero hacer ahora, es que con el mensaje que introduzca el usuario generar un vector a a partir de la base de datos que estoy haciendo con la estructura case de todo el abecedario y que en ese vector se guarden todos los números de cada letra para que los convierta a booleano y mostrarlos en la matriz de leds.
03-26-2022 01:38 PM
Hola, te explico lo que busco realizar.
Tengo que hacer que se despliegue (de derecha a izquierda) un mensaje introducido por el usuario en una matriz de led's. Te enseño mi panel frontal y mi diagrama de bloques completo.
La parte de los registros de corrimiento del ciclo while y la conversión de numérico a booleano ya me funciona correctamente, cada indicador Boolean array representa una columna, por eso hay 5 en total. Los cuatro números son los que necesito para formar un letra, por eso en la A es 255 lo que provoca que se ilumine toda una columna, el 9 se iluminarían dos led, el otro 255 es para finalizar con la letra A y el 0 es para el espacio entre letra y letra que quiero dejar. A continuación te dejo un ejemplo con un vector con constant array.
Lo que quiero hacer ahora, es que con el mensaje que introduzca el usuario generar un vector a partir de la base de datos que estoy haciendo con la estructura case de todo el abecedario y que en ese vector se guarden todos los números de cada letra para que los convierta a booleano y mostrarlos en la matriz de leds.
03-26-2022 01:45 PM - edited 03-26-2022 01:46 PM
@Diberoma wrote:
Te enseño mi panel frontal y mi diagrama de bloques completo.
No, these are just pictures and useless for debugging. Please attach the actual VI.
You definitely don't need anything orange and you don't need a stacked shift register. Did you understand my suggestion?
03-26-2022 02:04 PM - edited 03-26-2022 02:05 PM
Ok @altenbanch, te adjunto el VI.
03-26-2022 02:42 PM
Can you save it in LabVIEW 2020?
03-26-2022 03:00 PM
Listo, lo salve en la V.20.👍
03-26-2022 03:53 PM
No, this is still in 2021. The down-converted version will be in a folder.