LabVIEW FPGA Idea Exchange

About LabVIEW FPGA Idea Exchange

Have a LabVIEW FPGA Idea?

  1. Does your idea apply to LabVIEW in general? Get the best feedback by posting it on the original LabVIEW Idea Exchange.
  2. Browse by label or search in the LabVIEW FPGA Idea Exchange to see if your idea has previously been submitted. If your idea exists be sure to vote for the idea by giving it kudos to indicate your approval!
  3. If your idea has not been submitted click New Idea to submit a product idea to the LabVIEW FPGA Idea Exchange. Be sure to submit a separate post for each idea.
  4. Watch as the community gives your idea kudos and adds their input.
  5. As NI R&D considers the idea, they will change the idea status.
  6. Give kudos to other ideas that you would like to see in a future version of LabVIEW FPGA!
Showing results for 
Search instead for 
Did you mean: 

Support Type Cast from Integer to Enum

Old Title: FPGA Case Structure Needs To Display Enum Values

 

In LabVIEW the case structure can show enum values, while the FPGA case only shows the numeric value. Would like to see the below example capable in FPGA.

Untitled.png

  • IP or Function Needs
8 Comments
Active Participant Dragis
Active Participant

You should be able to wire an enum directly to a case structure in FPGA. Are you getting an error if you use enums on FPGA?

Member jakidd
Member

Sorry, my wording was wrong. I would like to be able to Type Cast a numeric to a enum, thus the case structure has enum values for the selects.

Active Participant Dragis
Active Participant

That makes more sense. I have updated the title of the idea to reflect this. 

 

Also, there is a way to cast from an integer to an enum. It isn't pretty, and I won't accept it as a "fix" for this idea, but it is a workaround. You have to use clusters in such a way that forces LabVIEW to choose the enum type instead of widening to the integer type.

 

enum-cast.png

Member jakidd
Member

FPGA2.png

FPGA1.png

Member dwisti
Member

Why not use a simple subVI to coerce the data types?  The subVi input control is of the integer data type and is wired the output indicator which is the enum.  This should give you a coercion dot on the enum.

Member jakidd
Member

I just tried that, using a subVI to coerce, and that is a solution, thanks! I was unaware you could do that.

Member agileLynx
Member

This is thread is a couple years old, but google led me here, so I'll contribute. You can do the type cast directly on the block diagram without resorting to a subvi.  The trick is to cast from signed numeric to unsigned numeric to enum.

 

Depending on the enum datatype, it may be U8, U16, or U32.

 

To cast from a (nonnegative) integer to an enum with a U16 representation, first call "To Unsigned Word Integer", to cast to U16, and then call "Type Cast" to convert to your desired enum type.

 

Type Cast to Enum

Active Participant rpursley8
Active Participant

This example by agileLynx is not quite correct.  You much convert a number to an integer of the same bit size as your Enum representation (i.e. if the Enum is a U16, then the number must be cast to a U16 or I16 before passing through the Type Cast to Enum).