Jump to content

MikaelH

Members
  • Posts

    835
  • Joined

  • Last visited

  • Days Won

    49

Posts posted by MikaelH

  1. QUOTE(BrokenArrow @ Jan 21 2008, 12:42 PM)

    The way I've done this has been to write a date stamp to a binary file, which can be deeply embedded in other binary "junk" so that the file is quasi-encrypted. This file is the date of installation + n time. Then just have the program look at that file and compare it to the current date to see if the "trial" period (n time) has elapsed.

    Hi

    I solved it like this:

    1) I start by generating a Hardware specific key.

    -You can use the window GUI if you're running on a windows platform, this could be done via the registry VIs.

    -You can use the modify date of the LabVIEW.exe file, this will be the date you installed LabVIEW and 99.999% unique.

    2) I created a small perl web-page that is connected to a mysql database.

    And then to activate the trail period, my LV application queries the web-page like this: www.mysite.com/CheckTrail.pl?HwKey=A75BE32F90115

    The web page checks the database if this Hardware Key, already has activated it or not and return 0 or 1 that LabVIEW reads back.

    Cheers,

    Mikael

  2. Hi

    I have a scenario that I actually have to use this VI.

    It is three test cases that take on hour each to run.

    Every test case collects lot of measurement data first and just before they finish they calculate some results from the measurements.

    Since LabVIEW don’t know if this VI will be running again, it doesn’t free the allocated buffers for all my measurements.

    So when I get to the last test case I run out of memory.

    Cheers,

    Mikael

  3. Hi

    I've created a executable and it works fine.

    My application is using a lvlib-file with 2 classes, one public and one private. This library is located in the user.lib.

    When I create an executable I have to start with adding the library in the SourceFile-option as Always Include, otherwise it won't work.

    This step seams to be a bug, do YOU agree?

    After this the executable is created fine and works just great.

    If I count the Files under my EXE-file folder I get 15 files.

    Now it's time to do an installer, and that works without any problem.

    So I run the setup file, and assume all 15 files will be copied into the "Program Files\<App Folder>", but only 13 files are added.

    And of cause when I try to run the executable it starts to search for the missing files.

    The files missing (that wasn't copied) is named like this:

    1) Storage.lvlib:MySql.lvclass:StartTransaction.vi (This is the Private class)

    2) Storage.lvlib:Storage.lvclass:StartTransaction.vi (This is the Public class)

    Any Ideas why?

    Also the Project View to Destination View looks a bit strange.

    The files are NOT the same on the different sides :blink: .

    post-941-1196997078.png?width=400

    Cheers,

    Mikael

  4. QUOTE(hugh @ Nov 15 2007, 06:41 AM)

    I have software that I want to be selling to customers how easily can someone take an exe that is installed on their computer and reverse engineer it to see the algorithms in my code

    You can extract all VIs from the executable very easy, but of cause you access see the block diagram (since it's not included)

    But you can see the hierarchy of you VIs and if you haven't renamed the VIs name and modified the icons, you could get a quite good idea how the code is constructed.

    But to understand the algorithm you use, you have to look into the compiled code in every VI and understand it. And only NI has the capability to do that.

    So I would say your code it really safe.

    Cheers

    Mikael

  5. QUOTE(MRedRaider @ Oct 25 2007, 02:22 AM)

    IF .NET is not installed:

    I solve this by running a batch file after the installation.

    REM First check if version 2 of the DotNet framework is installeddir %windir%\Microsoft.NET\Framework\v* /B | find "v2.0"IF not errorlevel=1 GOTO DotNet2ExistsREM Version 2 was NOT installed so lets check i version 3 is installed thendir %windir%\Microsoft.NET\Framework\v* /B | find "v3.0"IF not errorlevel=1 GOTO DotNet2ExistsREM Not even version 3 was installed, then we need to install the version 2 anyway.
    Echo Installing .NET Framework 2.0
    c:
    cd %1
    dotnetfx.exe
    
    GOTO TheEnd
    
    :DotNet2Exists
    ECHO Dot Net version 2 or 3 exists allready
    
    :TheEnd
    

  6. QUOTE(robijn @ Oct 19 2007, 09:32 PM)

    Hey that's a nice idea ! Up to now we need to do this pooling and starting instances ourselves... It's like a for loop but executed in parallel !

    That "thing" inside the structure should it indicate the number of the current thread# ? The same as N in a for loop.

    Joris

    I thought more maybe more like an ThreadNo that goes from 0 to n-1, where n is the maximum number of tread you allow LabVIEW to start for the mulit tasking structure.

    //Micke

  7. Hi

    Most of my test and measurement application runs in sequence, so if I have X number of devices under tests (DUTs), I run the test on them in sequence.

    Like this:

    post-941-1192744265.png?width=400

    When I need to improve the speed I might split the DUTs into different for loops like this:

    post-941-1192744274.png?width=400

    But this is not scalable. So I would like to see a new structure in LabVIEW than handle multi-tasking. So my application always takes advantage of the number of core the CPU(s) has.

    It might look something like this:

    post-941-1192745083.png?width=400

    The new structure might need some inputs to decide maximum number of threads, and maybe if a dedicated CPU should be used (like the timed while loop).

    But the difficult part for NI would probably be a good way of debugging a structure like this, if you select "Step into Multi-tasking structure".

    Cheers,

    Mikael

  8. Hi Ad

    Sorry for not coming back to you until now.

    I tried to run the conversion application on your classes, but a GoopDebug class seams to be missing, and some other VIs.

    But I disconnected the GOOPDebug class reference from its typedef (this way I could run the application without errors), and could convert the 2 classes very easy.

    Download File:post-941-1192014888.zip

    I've attached the converted classes into a 8.5 project here.

    This conversion was made using GDS 2.0, which will be available for you all this or next week :-)

    BTW In the community edition of version 2, the EndevoGOOP3 classes will be available as well.

    Cheers,

    Mikael

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.