LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Concatenar arreglos con un structure case

Solved!
Go to solution

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.

DIAGRAMA DE BLOQUES.png

PANEL FRONTAL.png

Espero puedan apoyarme, gracias.

0 Kudos
Message 1 of 13
(1,469 Views)

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.

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 2 of 13
(1,439 Views)

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.

0 Kudos
Message 3 of 13
(1,428 Views)

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.

DIAGRAMA DE BLOQUES.png

PANEL FRONTAL.png

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.

DBEJEMPLO.png

PFEJEMPLO.png

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.

0 Kudos
Message 4 of 13
(1,420 Views)

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.

Diberoma_0-1648319774254.png

 

Diberoma_1-1648319774277.png

 

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.

Diberoma_2-1648319774171.png

 

Diberoma_3-1648319774327.png

 

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.

0 Kudos
Message 5 of 13
(1,414 Views)
@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?

 

0 Kudos
Message 6 of 13
(1,410 Views)

Ok @altenbanch, te adjunto el VI.

 

0 Kudos
Message 7 of 13
(1,403 Views)

Can you save it in LabVIEW 2020?

0 Kudos
Message 8 of 13
(1,394 Views)

Listo, lo salve en la V.20.👍

0 Kudos
Message 9 of 13
(1,390 Views)

No, this is still in 2021. The down-converted version will be in a folder.

0 Kudos
Message 10 of 13
(1,380 Views)