Jump to content

asbo

Moderators
  • Posts

    1,256
  • Joined

  • Last visited

  • Days Won

    29

Posts posted by asbo

  1. Have a look at the Programming > Graphics & Sound > Picture Functions palette. The [Get Image Subset] VI sort of does the opposite of what you want, but you can look at the block diagram to see what it's doing, and see how you can perform your own manipulations on image data.

    The Vision module also has a lot of image manipulation capabilities, but is not included with the base LabVIEW install or license.

  2. One side effect is I see flickering of the images when resizing slowly. I added a defer front panel at one point but that didn't seem to fix it.

    This doesn't work because LabVIEW doesn't control the rendering anymore, it's moved into dotNET's domain.

    I feel your pain. I am no GIMP or photoshop wiz either, which makes certain things quite difficult. I am running into this more lately, where customers say "I want it to look like .NET does" but they want to use LabVIEW for the sake of quick development. I understand the NI "branding" that comes with a LabVIEW-looking UI, but I think it is important for NI to make some headway on this front to allow us more modern UIs. To be sure, the silver controls were a step in the right direction (though I still find them to take up way too much space). But, when I drop a .NET control and see the ridiculous amount of functionality available, I realize LabVIEW definitely is still lacking.

    In terms of aesthetics, the system controls get you 90% of the way there. WRT functionality adjustments, I think LV will always be lacking because it's such a low value-add.

  3. I don't think VIPM plays any role in selecting the correct reuse for a solution. The ability to do that comes down to familiarity with the tools in your reuse library, and more importantly, have it all installed/available so that tools like Quick Drop can point you in the right direction when you're fishing for nodes.

  4. I'm not sure that would work - it looks like it's cPCI. Do they have a PXIe version?

    Oops, good catch - I overlooked the express part. I don't see a PXIe version, but I've been successful in the past getting custom hardware quotes from Pickering. However, it doesn't look like Pickering does *any* PXIe equipment, so you'll probably have to check out some other vendors. You may end up having to fork over some cash for NRE.

  5. Yes, you would have to synchronize your LV2 with your FP control/indicator. Likely the biggest slowdown you're facing is that operating on controls/indicators can only work in the UI thread, while most code can work (often in parallel) in various other threads.

    I vaguely recall someone posting about doing something like that before; at least related to not wrapping. An XControl would provide the encapsulation you need, I think, but XControls are not necessarily for the faint of heart.

    Are the value non-sequential AND non-contiguous, or just non-sequential? If it's the former, play with values in the unassigned spaces between values and see how it handles coercion.

    neil does beg a good question, however - seems like an awful lot to dig through for a user. Maybe it could be broken down into three or four separate rings and selected in stages (e.g., the Add A Vehicle pane on advanceautoparts.com)

  6. If you're on a 64-bit machine, the 32-bit RTEs will show up under HKLM\SOFTWARE\Wow6432Node\National Instruments\LabVIEW Run-Time\. If you're not on a 64-bit machine, there will be no HKLM\SOFTWARE\Wow6432Node.

    This checks out my machine:

    post-13461-0-36691400-1352931659.png

    post-13461-0-30011200-1352931666_thumb.p

    post-13461-0-23104100-1352931671.png

    I would have no qualms about querying the registry, though I might go as far as testing the validity of the Path value.

    • Like 2
  7. Why not make the substitute receiver send a message on the same queue the sender uses and let the substitution command be handled in sequence by the current receiver, which guarantees that you don't have to add extra logic to check if the current receiver is "busy." This assumes each command is atomic - that is, the sender doesn't say "DoAcquisition" and then poll "DataReady?" or "GetData."

  8. If I understand your idea correctly, I'm not sure if this would solve the problem of knowing when a particular file is finished without holding all the segments in memory. Currently, each segment is sent back to the main VI with the file path that the segment should be stored to. This way, if a segment belonging to a different file comes in, then a new file is created based on the path name provided.

    Whether or not you store to disk is irrelevant as to whether you can track if a file is done. The Download File VI can still maintain a list of all the segments it expects and all the segments which have reported done. The Download File VI doesn't need to hang on to any of the actual data (let the segment downloaders write the file themselves, if you like). When the segment reports done, remove that segment from the working list of remaining segments.

    • Like 1
  9. if you want to do it easily in LabVIEW get the RGT, if not do the ActiveX work. You'll be better off in the long run with the RGT since everyone has a need to export to Excel and you'll just wind up recreating the toolkit.

    I've only ever used the RGT for outputting Excel-format files. It has the capability to read as well?

  10. I think the question is more about moving the additional non-waveform elements of a cluster type into the attributes of a waveform type.

    Personally, I'm going to guess that the overhead of type conversation/flatting into the attribute tree will actually slow down your code and probably consume a bit more memory. Not mention the ergonomics point you already touched on.

    If you know your waveforms get passed around a lot, it might be a good idea to look at DVRs so you can ensure copies are only made when absolutely necessary. After that, focus on anywhere you extract data from the waveforms and make sure you're touching as little as necessary for whatever operation is being done.

    • Like 2
  11. FWIW, I just fixed all my sound problems (both input and output) by upgrading from LV2011 to LV2012. lvsound2.dll seems to be the same for both (exact same # of bytes, anyway), so it seems to be something in LV2011 that just doesn't play well with sound.

    Do you, by chance, add or remove devices during your application's lifetime? I had a big problem with that on a tester which paired and unpaired BT audio devices. I can't remember if we ever tested it on LV2012.

  12. asbo: This is another scenario I don't understand :) If the typedef reference is manual, then it will break when the typedef type changes. If it is disconnected, then it seems more useful for backwards compatibility. Were you perhaps thinking of disconnected instead of manually-updated?

    You are absolutely right, I'm thinking of disconnected typedefs. Please leave me to my madness.

×
×
  • Create New...

Important Information

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