Jump to content

nitulandia

Members
  • Posts

    45
  • Joined

  • Last visited

Posts posted by nitulandia

  1. Hello gurus,

    The following is part of a database read/write design aspect, and hope that you're able to help me find solutions :-)  I have a couple of my own, but would like to see what others may come up with.

     

    Details:

    I have been able to successfully use DB toolkit  vi's to read/write to an SQL database. Everything works as per the design -mostly- . The last piece I have yet to implement is the "retry-mechanism": what if during the WRITE action my database happens to be unavailable? do I save the data to a flat file and upon "reconneciton" I flush the records? this sounds quite simple, doesn't it?

     

    This is the piece I'm trying to figure out. If you've done something like this already, would you please share your approach?

     

    In advance, thank you.

     

  2. My first comment is, Oh my! there is so much to learn about Git! And by the way, the file is hosted in GitHub. I was able to download a file from GitHub using python. I did not get around to creating the LabVIEW wrapper for it just yet.

     

    LabVIEW gurus, the following is about to go off on a tangent (hold-on to your seats): If you are interested in the topic of "downloading files from an online repository" and have experience, desire, energy and vision send me a note. I'm thinking of a "why not?" type of scenario... I'd like to create a toolkit for this purpose but don't have the time to do it by myself, therefore, I'm willing to work with someone on this. Further, if there was a way to market such toolkit and get some royalties for it, why not?

     

    Warm regards,

    Cheers!

  3. Hello LV gurus,

     

    I'm getting ready to write a utility that will allow me to "download a file from Git" at run-time. Disclaimer: I have not used Git much.. anyhow, I'm hoping I can leverage from any work done on this front.

     

    By the way, when I say "I'll write a utility" I'm thinking of C# or Python as the programming languages I would use. If in C# I can easily output a DLL and such would have a LabVIEW wrapper. If in Python, I'll try to create an executable with parameters, then I'll put a LabVIEW wrapper around it. I have written several utilities this way, therefore, I am certain this approach will work.... Someone could ask though: "is your approach the right one"? let's just assume it is :-) but, I'm open to ideas if you feel like sharing.

     

    Details:

    My test program -written in LabVIEW- uses two types of configuration files (.ini, .csv). 

    The CSV files I use have a version hardcoded in it   e.g.   version, 14.9.29.01    (year.month.day.rev)

    Additionally, I have a table (SQL database) that keeps the "RELEASED file version-repository version relationship". E.g.   14.9.30.01, 123

    At run time, my LV program gets the local file version (LocalFileVer = 14.9.29.01) and also retrieves both, the file version, and the repository version    ReleasedFileVer=14.9.30.01, RepoVer=123 from the database.

    IF my "LocalFileVer"  DOES not match the "ReleasedFileVer" I would like to download file ver "123" from Git.

     

    Has anyone done something similar to what I have tried to describe here? if yes, would you mind sharing? I'm looking specifically to download files from Git though, and not other version control apps.

     

    By the way, I have been able to do what is described above for SVN. Unfortunately I don't have access to the source code... At the time I was doing contract work on a machine that was not "mine". Anyhow, at the time I used C# to write the utility. 

     

    I look forward to any comments.

    Cheers!

     

  4. Hello,

    In case you were following this one... here is an update:

    I have found a work around! But regardless, the "flickering" problem I'm seeing on my production machine MIGHT (not proven just yet) be related to HARDWARE!! yes, the video drivers on each of my machines is different!! My dev machine is a GATEWAY - and no, I'm not getting a commission for using the brand-name :-) where as my Production machine is an "ACER". One of my colleagues has an "ACER" as his dev machine, and the "flickering" problem is there as well!

    In any case, take a look at the workaround. First png on top is the original VI with the flickering problem, and the 2nd png on the bottom is the workaround

    post-14457-0-69661800-1354290313_thumb.p

    post-14457-0-41123700-1354290316_thumb.p

  5. Hello all,

    The version in use: LabVIEW 2011

    You'll need two machines to see the issue I'm about to present. One of them will obviously have the LV development suite installed on it, while the second one will only have the Run-Time Engine (RTE) installed.

    Step One:

    Open the attached project, run the VI, and you'll see that the "simple timer" works as expected (the display does not flicker)

    Step Two:

    Create an executable and copy it to the machine that has only the RTE installed. Run the executable and you'll see the issue then: the display flickers! I'm trying to figure out a way to stop that behavior.

    Would you please share your thoughts?

    In advance, thank you very much.

    edp

    TimerProject.zip

  6. Hello all,

    Disclosure: I have not played with TestStand in a long while...

    This is what I've done so far:

    1. Successfully have put together a simple test sequence comprised of 5 steps

    - Initialize Power Supply.vi

    - Initialize Instrument B.vi

    - Display Hello World.vi

    - Close Power Supply.vi

    - Close Instrument B.vi

    2. I'm able to successfully run this test sequence (BTW, I'm actually talking to real instruments)

    The issue I'm having is that once my test sequence has completed its execution, if I try to open either of the VIs from above it shows that "The SubVI is wating to Run"

    May I ask, why that is?

    In advance, thank you for the feedback.

    Cheers,

    edp

    post-14457-0-70535700-1345562640_thumb.p

  7. Hello,

    Hopefully one of you gurus out there can help out by pointing me in the right direction.

    Details: I'm trying to use google docs API to retrieve a document from a collection.

    What I have accomplished so far: I'm able to successfully retrieve the path to a file in the collection! The problem I'm running into is when I attempt to download the file to my local machine.

    I've been trying to use LabVIEW's datasocket for such task (attempting to download the file from the internet), however, have not been successful at it.

    During my manual tests (just using the datasocket vis) what I have noticed is that if I use the datasocket with any URL (as long as it is not "secure" -https- all works as expected. However, if I try to use the datasocket with a secured URL (https) then I get an 1181 error everytime.

    If datasocket is not the right approach for this, may I ask what would it be? are there any VIs out there that I could use to download my files? e.g GET_FILE_FROM_HTTPS or similar?

    I look forward to your suggestions.

    Cheers,

  8. Well, the openG VIs did not work for me... I had to write my own VI. I ended up using a DLL from Inner Media, Inc.

    Name Duzactx.dll

    Size (bytes) 262.144

    Version 5.00.01

    Company Inner Media, Inc.

    Description DynaZIP-32 UnZIP ActiveX Control

    Attached is a snapshot of the code.

    Note: When extracting all files the recursive flag must be set to TRUE, AND FileSpec must be set to *.*

    What about the OpenG VIs didn't work for you? I've used them a lot and never had any issues...

    Hi Crelf,

    Could you please post a snapshot of the series of VIs you've used?

    Attached you'll find what I was trying to use. The string constant at the bottom is the error message generated by the "Extract.vi" -I copy-n-pasted the error message manually-

    post-14457-127006362171_thumb.jpg

    post-14457-127006380743_thumb.jpg

  9. Damn right!

    Well, the openG VIs did not work for me... I had to write my own VI. I ended up using a DLL from Inner Media, Inc.

    Name Duzactx.dll

    Size (bytes) 262.144

    Version 5.00.01

    Company Inner Media, Inc.

    Description DynaZIP-32 UnZIP ActiveX Control

    Attached is a snapshot of the code.

    Note: When extracting all files the recursive flag must be set to TRUE, AND FileSpec must be set to *.*

  10. There is a Zip subpalette in the Files palette. If your LabVIEW is ancient, they may not be available. There is also an OpenG toolkit with more functionality.

    I'm using LV 8.2 and do see the following VIs under File I/O

    1. New Zip

    2. Add to Zip

    3. Close Zip

    I'm missing the "Extract" function though :-)

    I've looked in the OpenG toolkit http://wiki.openg.or...enG_Library_VIs but did not see anything.

    I think I should be able to write a function to extract files if I find a .zip activeX component.

    Thanks for the quick response! Any more feedback is greatly appreciated. If I do end up writing a function I'll provide it to the community.

    I'm using LV 8.2 and do see the following VIs under File I/O

    1. New Zip

    2. Add to Zip

    3. Close Zip

    I'm missing the "Extract" function though :-)

    I've looked in the OpenG toolkit http://wiki.openg.or...enG_Library_VIs but did not see anything.

    I think I should be able to write a function to extract files if I find a .zip activeX component.

    Thanks for the quick response! Any more feedback is greatly appreciated. If I do end up writing a function I'll provide it to the community.

    I've just found it http://wiki.openg.org/Category:Oglib_lvzip_VIs

    Thank you so much for the pointer! You've got to love LAVA

  11. You are right, but 1xxx errors are of the LabVIEW environment type errors (think VI Server, scripting etc.) so I really wonder how that could get into FTP VIs where simple File IO is handled. I haven't looked at the FTP Vis in ages as I use my own library but maybe they use VI Server for some reentrant calls or something in there???

    With FTP this could mean that the login was not successful.

    When I do this manually (you have to enter the user name, password, etc) all works.

    Using LabVIEW VI's I've been successful at login, change directories, etc, however, the "GET action" is the one generating the error.

    This is what I've posted at NI's forum: http://forums.ni.com/ni/board/message?board.id=170&thread.id=455231

  12. That's what I thought. So wouldn't that mean an IP address of "10.xx.xx.xx" that uses the real "x" strings" is actually invalid? The FTP VIs wouldn't be able to reslove the IP address that contains alpha characters.

    nitulandia writes:

    Note that in the attached .jpg I posted, the IP address is shown as 10.xx.xx.xx indeed, however, this is just an example as I did not want to publish the actual IP address of the server. "Localhost" is the IP address, or name of host (if defined in the host table) you're trying to connect to.

    The IP address input to the FTP Get File.vi needs to look like e.g. 192.168.1.5, 10.1.1.2, etc

    <br>I'd also be careful of calling them "known bugs" unless you know that they are, ummm, known bugs. Do you have a reference to where they're listed as known bugs?<br>

    I've came across some notes on NI's website. Let me see if I can put those links here (need to find them...)

    http://forums.ni.com/ni/board/message?board.id=170&message.id=429321

    This makes reference to the tcputil.llb, which is the same one used by the FTP Get File.vi

  13. Hello all,

    Dev platform: LV 8.2

    I'm new to NI's internet toolkit. I'm trying to learn how to use the HTTP libraries.

    All I'm trying to do is to download a file from a remote server, to my local machine (using HTTP, and not FTP).

    Could someone outline the VI's I would need to use to accomplish that?

    For example,

    1. Open HTTP session

    2. Specify Location of file

    3. Get File to local machine

    4. Close HTTP session

    I'm assuming is as simple as that, however, not sure. I'm just looking for example code. For some reason I don't see any examples under the "NI Example Finder/Toolkits and Modules".

    In advance, thank you.

    Cheers,

    edp

  14. Hello all,

    Dev platform: LV 8.2

    I'm looking for workarounds to known bugs in NI's Internet toolkit.

    Issue: When using "FTP Get File.vi" an error is returned (see attachment).

    And of course, when I try this MANUALLY from the same machine, all works.

    In advance, thank you for the support.

    Cheers,

    edp

    PD - I've posted this question to NI's forum as well, and so far I have not seen/received a response/solution to help me get past this.

    post-14457-125804189244_thumb.jpg

  15. As far as I know, the behavior that you're seeing is what defines a radio button.

    Hi.

    In the GUI I'm building I'd like to present the user with options they can select.

    Sounds like the radio button won't work.

    May be going with a checkbox is another option. Any pointers as to how to create a check box? I would think they could be found under the boolean section, but don't see them.

    Thanks for the quick reply.

    Eddie

  16. I'm building a GUI and want to use the radio buttons found under the booleans section in LabVIEW.

    The behavior I'm seeing at moments is that I will only be able to select one radio button at a time. I would like to have the ability to select multiple buttons if I need to.

    LV gurus, any pointers as to how to accomplish that?

    In advance, thank you.

    Cheers,

    edp

  17. Thank you for the suggestions; I've found a couple of ways that meet my needs:

    1. Wrote a CVI function (compiled it as .dll then imported it into LabVIEW). The function tries to rename the file. If the file is being used I get an error msg "access denied". I've pasted the function below, in case anyone is curious.

    2. If I use the VI "move file" while the transfer is in process, an error is generated by the VI.

    /****************************************************************************

    * CheckIfFileIsBeingUsed

    * Checks to see if a file is being accessed by another application

    *

    *****************************************************************************/

    int CheckIfFileIsBeingUsed (char FileName[], char TempFileName[], int *AccessDenied, char ErrMsg[])

    {

    int FileCode = 0;

    FileCode = RenameFile (FileName, TempFileName);

    switch (FileCode)

    {

    case 0: strcpy(ErrMsg, ""); RenameFile (TempFileName, FileName); //Success

    break;

    case -1: strcpy(ErrMsg, "File not found or directory in path not found");

    break;

    case -3: strcpy(ErrMsg, "General I/O error occurred");

    break;

    case -4: strcpy(ErrMsg, "Insufficient memory to complete the operation");

    break;

    case -5: strcpy(ErrMsg, "Invalid path, for either of the filenames");

    break;

    case -6: *AccessDenied = 1; strcpy(ErrMsg, "Access denied");

    break;

    case -7: strcpy(ErrMsg, "Specified existing path is a directory, not a file");

    break;

    case -8: strcpy(ErrMsg, "Disk is full");

    break;

    case -9: strcpy(ErrMsg, "New file already exists");

    break;

    default: strcpy(ErrMsg, "Error Undefined");

    }

    DeleteFile(TempFileName);

    return FileCode;

    }

×
×
  • Create New...

Important Information

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