To see if the TargetItem is an FPGA target, use the TypeString property of the TargetItem class. If the target is an FPGA target, then its TypeString value will be "FPGA Target":
To check the execution mode on the target (FPGA, Dev Computer, 3rd party, etc.), call this VI:
resource\RVI\emulation\niLvFpgaEmulationGet.vi
To get information about various items under the target (FIFOs, etc.) you'll need to use the Get All Descendents method to get references to those objects:
There are lots of different "Type" strings you can wire in...here are a few that I think might be helpful for your use case:
- Variable
- cRIO Chassis
- FPGA Target
- Elemental IO
- FPGA Base Clock
- FPGA Derived Clock
- RIO C Series Module
- FPGA FIFO
Once you have references to the items you want to learn about, you'll need to use the (undocumented) scripting APIs that ship with LabVIEW here:
vi.lib\rvi\ClientSDK\Core\Script
These APIs are not officially supported by National Instruments, but they are the only way (that I know of) to accomplish what you're looking for. As an example, let's say you want to get the data type of an FPGA FIFO. Here's the code you would run:
I hope this info gets you on the right track. Good luck!