Jump to content

_Mike_

Members
  • Content Count

    27
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by _Mike_

  1. Hello, 

    I have recently hit a peculiar issue when I was deploying a source distribution (SD) on a PXI Target running PharLap. The source of SD contained vis from NI's httpClient library,  so the SD itself contained (among many others) two files Get Lib.vi and GET.vi in one folder. 
    Upon attempt to upload the SD to target via FTP, I have seen no errors no warnings, but trying to dynamically launch a file from SD that used httpClient resulted in thread stack overflow.  

    By close inspection I have found out that I miss GET.vi file on the target. Moreover I was unable to upload this file by FTP.

    Then I run code from snippet on the target can see Error 10 (duplicate path) appearing each time I want to create a file which name part matches "part before a spacebar" of existing file.

    This  "feature" prevents me from using httpclient library on RT target, that I am heavily dependent upon.

    Is there a way to overcome this problem ?

     

    fileError.png

  2. Hi all!

    Does anyone know how one can programmatically add a given chassis to a target and fill it with a set of C-modules and FIFOs?

    I attempt to programmatically create a bitfile for a target when I know the set of modules I want to install in e-rio based remote I/O system. I do have standardized vis for interfacing each module (via FIFOs).

  3. I have worked extensively with LabVIEW and MQTT.  Indeed LabVIEW does not have any really good libratry for that. I have worked a bit with @cowen71 to put together some good functionality.  We wanted to make it more "reusable" and release it to broader public, but when it reached the amount of features that served our private purposes - the momentum stopped. 

    Here is a library https://github.com/mradziwo/mqtt-LabVIEW/ which is not perfect as I say, but allows for asynchronous calls to MQTT, and some event-based callbacks. 

    If you would be willing to join the team to bring it to "publication" state, we would be more than happy to collaborate on that. 

     

  4. Is there a possibility in your library to get a sub element as json formatted string. I mean to get from json string:

    {
    "field1": 1,
    "field2": {
        "item1":"ss",
        "item2":"dd"}
    }

    the item field2, and expect it will return a string containing:

    {
        "item1":"ss",
        "item2":"dd"
    }

     

     

  5. So apparently IMAQdx is pretty rigid when it comes to registering new events. I have failed to find any documentation on this topic but I have learned that PlugAndPlay events work only on FireWire cameras. 

    Nevertheless I have managed to get event-like behavior from Genie Nano camera by setting up the camera to issue the events I was interested in - even though LabVIEW cannot handle them. However, Nano Genie does provide GenICam Attributes for timestamp of last triggered event; it allowed me to register for "Attribte updated" event on those attribute and by such trick - receive asynchronous updates from the camera.

  6. Hello all!

    I have a problem with registering to GigEVision events with LabVIEW & NI-IMAQdx

    I work with Teledyne Dalsa Genie Nano G3-GC10-C1280IF camera with GigEVision interface.

    It's documentation describes several events I can enable at the camera that will be "... sent on control channel when ..." particular situation occurs at the camera - e.g. @exposure end.

    However, when I wire session wire to Register Events node, I still have options only for "Attribute Updated", "Frame done" and "Plug and Play". 

    I would like to ask you for help in finding how does GigEVision events can be read/discovered/registered to through NI-IMAQdx.

     

     

     

    Capture.JPG

    Capture.JPG

  7. Thank you a lot!

    I will experiment a bit with that but I guess the way to elliminate the possibility of raecondition would be to place an assertion on exposure time in between setting exposure time and triggering a software trigger. I imagine such assertion in two forms:

    • asynchronous - using "AttributeUpdated" event (then I need to use it preferrably in all places I change any attributes - to ensure that event I get confirms the change i invoked)
    • synchronous - polling IMAQdx for values of subject attributes in wait for update to happen.
  8. Thank you smithd!

    I use continuous mode solely due to the fact, that setting up camera otherwise takes relatively long time (100ms+) so it would be a hassle for me to trigger it correctly. I have not came accross software trigger in LV before - apparently it is not pronounced strongly enough :)

    I will dive into the topic and come back if some things will remain unclear. 

  9. That indeed sounds interesting!

     I am using Basler ace and Deledyne/Dalsa Genie cameras. I could find some information on "software acquisition trigger" for Basler - i need more insight into teledyne/Dalsa hardware.

    How does soft triggering look like (i mean 'softare triggering") from LabVIEW/IMAQdx perspective? I have seen neither any examples nor  palette vis to support such functionality - could you write me a bit more or direct me to appropriate materials?

     

  10. Hello!

    I am running a system with GigE camera with NI framegrabber  in continuous acquisition mode - in which I change some attributes every now and then.

    So far I have been using following scheme to assert I am getting correct image after attribute change:

    • change attribute
    • read "Last buffer number" property -> n
    • run IMAQdx get image.vi set to "buffer' and parameter n+2 (+2 being due to the fact that i assumed attribute change arrives to camere during running exposure that will be unaffected by attribute change - hence i needed to discard "next" buffer)

    Unfortunately I still every now and then acquired image that obviously was aquired with previous attributes (e.g. I've dramatically increased.decreased exposure rate, while acquired image was very similar to previously acquired one). Guessing that it may have something to do with buffers I have increased "magic number" from +2 to +3. It indeed helped, but after longer usage I have discovered, that it only reduced the frequency of the error.

    Hence I needed to design more "bulletproof" solution that will satisfy my timing requirements (stoping and starting acquisition is out of question as it takes more than 100ms what is unacceptable for me)

    I would like to:

    • change attribute
    • acquire information from camera that will allow me to fetch image acquired with changed attribute

    For such purpose I have discovered IMAQdx events - especially "Attribute updated" and "frameDone". Unfortunately, I could not find any detailed documentation about those functions. Therefore I would like to ask you for help to determine when 'Attribute updated" is triggered. Is it when:

    • driver receives the command and pushes it to camera? (pretty useless for me as I cannot relate it to any particular exposure)
    • camera confirms getting it (then assuming it arrives during an ongoing exposure, I'll discard "next' image and expect second next to be correct
    • camera confirms applying it (then I assume that next image should be obtained with correct settings)
    • camera confirms it managed to acquire a frame with new parameter (pretty unlikely scenario - but the i'd expect correct image to reside in "last" buffer)

    Could you help me determine which case is true? Also should I be concerned about the fact that there may be a frame "in transition" between camera and IMAQdx driver which will desynchronize my efforts here?

     

  11. That sounds like a perfect task for visualization tool like e.g. grafana: https://grafana.com/

    Though if you insist on using LV for that, I'd recommend you to import all different data using "Read Delimited Spreadsheet VI" http://zone.ni.com/reference/en-XX/help/371361P-01/glang/read_delimited_spreadsheet/.

    Then you should merge the data together into one-format array.

    Having all the information in one array will allow you to perform whole variety of analysis.

     

    • Like 1
×
×
  • Create New...

Important Information

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