LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Reverse engineer to vi from Cpp code

Solved!
Go to solution

I have inherited a project using the 6133 DAQ board. The previous developer is long gone without leaving any information. All I have is C++ code. I believe LabVIEW was probably used to auto generate some code I've found, with file names such as tScarabInput.cpp tScarabInput.ipp, and tSSeries.cpp. I have not found any vi files. Is there a means to reverse engineer the c++ code to "recover" a vi? There is a massive array initialized for the InputScarab firmware image and another for FPGA_6123_6133.

0 Kudos
Message 1 of 14
(3,540 Views)

I'm thinking that's rather like reverse-engineering a cake into its ingredients.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
Message 2 of 14
(3,510 Views)

AFAIK, LabVIEW will only produce C(++) code when using the LabVIEW Embedded (Microprocessor SDK) toolkit. With normal development LabVIEW will never procure C++ code (not even internally, not even temporarily).

 

How sure are you this code was produced by LabVIEW? It seems a stretch to me.

 

Measurement Studio or CVI seem more likely to me, but I don't know much about it. If you post one\all of those files, we might get a clue...

0 Kudos
Message 3 of 14
(3,494 Views)

wiebe@CARYA wrote:

Measurement Studio or CVI seem more likely to me, but I don't know much about it.


CVI is only ANSI C, so it only using *.c and *.h files for the code.  Measurement Studio is the likely tool.

 

Now back to the original question...With cpp files, some people can write an equivalent program in LabVIEW.  But I do not know of any tool that will do this automatically.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 4 of 14
(3,478 Views)

crossrulz wrote:

Now back to the original question...


Well, in the original question, OP seems to thing LV created the C++ code:

 

>I believe LabVIEW was probably used to auto generate some code I've found...

 

So in this case my remark seems 100% on topic to me. It's just that this assumption is probably wrong.

0 Kudos
Message 5 of 14
(3,474 Views)

After the replies I'm definitely not sure it was produced by LabVIEW. It's only that it's a N.I. product and LabVIEW seemed like the obvious choice. I will post a file shortly.

I forgot to say that the target operating system is QNX and was last built in 2008.

0 Kudos
Message 6 of 14
(3,432 Views)

Here is one of the supposed auto generated files.

0 Kudos
Message 7 of 14
(3,428 Views)

You might consider posting this in a new thread: "What NI product produced these c++ files". However, I'm pretty sure it wasn't LabVIEW. I'd put my money on Measurement Studio.

0 Kudos
Message 8 of 14
(3,409 Views)
Solution
Accepted by topic author Sorterralee

There might have been some LabVIEW magic involved in this, but I don't think this was generated from LabVIEW VIs. AFAIK Scarab was/is the name of one of the ASICs NI used on their ISA and early PCI boards to do DMA and other hardware related stuff and which gave them a huge advantage over the competition as they had a relatively cheap integrated bus controller for their boards with this, while the competition still was trying to get ISA boards working that were incorporating many discrete TTL logic chips. Besides it was a lot harder to reverse engineer ASICs and sell cheap copy cats of the hardware and point the users to download the software drivers from the original manufacturer, which was what killed the Keithley plugin cards more or less.

Most likely this is code derived from a DDK for the NI DAQ boards that you could purchase under special NDA agreements for targeting non-NI supported operating systems like QNX. NI supposedly gave you a framework which was pre-generated with some internal tools that you could then adapt to the specifics of your target system, if you felt the need to get something working for another OS than the NI supported Windows system. Most of this code is likely totally unnecessary if you target a Windows system, as it is all contained in the DAQmx API that covers a much more broad application range than these DDK kits ever could have done.

 

Rolf Kalbermatter
My Blog
Message 9 of 14
(3,396 Views)

Good idea wiebe@CARYA. I have a new post for that request.

0 Kudos
Message 10 of 14
(3,346 Views)