Jump to content

ShaunR

Members
  • Posts

    4,530
  • Joined

  • Days Won

    252

Posts posted by ShaunR

  1. 12 minutes ago, martin_g said:

    I'm aiming to split of one of those smaller projects into NXG.

    :o

    You know NXG has been discontinued, right?

    13 minutes ago, martin_g said:

    I don't think LV is well suited for is building composite images (sorry that wasn't clear in my first post) - they want to import several images, then crop, resize and reposition them.  

    Then Bitman is what you want. The native LabVIEW image tools can be very cumbersome but Vugies toolkit allows layering, advanced processing and filtering (if you want to try it)

     

    17 minutes ago, martin_g said:

    I do actually have a prototype that uses Edge within the WebBrowser now - so maybe it's time to revisit that.

    Then you are almost there by the sounds of it. As I have said in many other threads, I have dispensed with LabVIEW UI's completely in favour of HTML/Javascript. I use a proper  web browser (not the LabVIEW UI or embedded browser widget) and use LabVIEW  as a back-end linked with websockets.

  2. Oooh. Is that NXG?

    I don't think there is a lot off-the-shelf. You can interface to GIMP via TCP or ImageMagick as command line but that's probably just as much hassle as writing a simple one of your own and probably too restrictive except for the standard things of cropping and resizing for on-the-fly. It looks like you use ROI's so maybe the NI Vision toolkit would be the best option (if it works with NXG)

    By the looks of it, you don't really have that much functionality to implement. I, personally, would bite the bullet and implement it either as LabVIEW code (probably using Vision Toolkit or Bitman) or as HTML/Javascript (there are quite a few Canvas drawing API's and toolkits). For .NET there is also a few examples for simple editors and drawing on Winforms. You could call the same functions from LabVIEW nodes to draw on an image control in the FP .NET container.

    All of that is not what you really want to hear though.

    If you listed the requirements for your image editor, you may get really lucky and someone might write one just for giggles. But it's unlikely to be in .NET unless they are really a glutton for punishment as few of us use it.

  3. 1 hour ago, Rolf Kalbermatter said:

    It's probably my limited command of the English language, but for me this sounds about as intelligible as a dissertation about the n-th dimensional entanglement of virtual particles between different universes.

    You know as well as I do that marketing speak isn't supposed to be intelligible. :P It's purpose is to say absolutely nothing in a veneer of condescension.

  4. 15 hours ago, X___ said:

    "She led one of the most successful rebrands in the test and measurement market." That, I am not quite sure what it refers to.

    I think this reveals the answer...

    Quote

    empowering engineers and enterprises around the globe through the significant differentiation of NI’s tailored, software-connected approach.

    NI were concentrating on their systems' solutions like Systemlink,  NI System Configuration and that other obese LabVIEW thing I never used.

     

     

  5. On 7/27/2022 at 10:54 PM, Buddy Curtis said:

    The specific behavior is that sometimes the VI wouldn't update but then when I started to debug the RT system like loaded the FGV and watching it, it started working.

    That is a typical symptom of a race condition.

    I would suggest taking a look at "LabVIEW <version>\examples\lvoop\SingletonPattern". It is much simpler and easier to understand than GOOP examples which have a lot of infrastructure included.

  6. 1 hour ago, Neil Pate said:

    I think a more apt comparison is to compare an AE to say some kind of Actor (or parallel process etc)

    I disagree.

    A FGV is a number of methods around some sort of global variable. An AE is usually (but not exclusively) an extension of that around some sort of global resource which may or may not be a global variable.

    A LVPOOP class is a number methods around a local variable (the class cluster).

    Therefore I think the question in this context is "how do I make a class with a number of methods around a global variable/resource"? (A.K.A Singleton Pattern)

  7. 12 hours ago, infinitenothing said:

    Localhost is a little faster: 3.4gbps

    That's not good at all. With some fiddling you might get 4-5Gb/s but that's what you expect from a low-end laptop. Are you sure it's Gb/s and not GB/s? You are hoping for at least 20Gb/s+.

    On 7/14/2022 at 8:34 PM, infinitenothing said:

    I bet jumbo frames would help.

     

     

  8. 1 hour ago, infinitenothing said:

    I submitted my code. I don't think I had any greedy loops. I wonder if there's a greedy section of TCP Read though.

    Running both client and server on localhost, the CPU usage is about 30% across all cores with one of the cores maxing at about 70%. I would suggest you try the same and see if you still get 100%. Doing this will isolate the network layers from the software. I suspect you will find that your 2GB limit is also present on localhost.

  9. 1 minute ago, Rolf Kalbermatter said:

    I would think a link to the original projects website that has the downloads available could also suffice. Of course that leaves you in a bit of a bind if the original developer site goes down or is otherwise made unavailable.

    Quote

    Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.

    I'll let you fight your argument in court. Until then, I'll just offer anyone who wants the code a zip file of my build.

  10. 21 minutes ago, Rolf Kalbermatter said:

    If you make any change to the LGPL portion, you are obligated to distribute that change to any user of your software who asks for it.

    You are also required to supply the source and compile environments of the vanilla LGPL code even when just dynamic linking and that can be quite big in size. While one may argue it's merely a maintenance overhead, never-the-less, it is an overhead keeping track of (and version control of) other peoples source AND the specific compilation environment one used.

  11. 20 minutes ago, Heiso said:

    Is there a particular permissive license that gives you all heartburn that might preclude you from using it in your own code?

    Any strong copy left licence.

    20 minutes ago, Heiso said:

    and unless I suddenly become incredibly famous I highly doubt anyone's going to use my likeness to market anything

    It's not so much about that. For most open source licences it is primarily about someone taking your software, claiming it as their own, then sticking a new licence on it. You can get into a situation where someone that copies it, claims they wrote it and then comes after you for copyright infringement when you wrote the stuff. I had something like this on the NI forum where someone removed all the copyrights and proffered the toolkit as theirs. NI wouldn't remove it until I pointed out that it violated the licence which stated that all copyright had to remain intact and showed them the original toolkit (which had the licence text).

    Secondary to that, it enables good faith actors to know exactly how to distribute the software and comply with your wishes.

    • Like 2
  12. 48 minutes ago, Heiso said:

    It feels like a hollow victory though

    Not at all. With zero debug information you identified 2 problems when most people couldn't have found the first. When it all goes to hell again, you can smile and say "come back and moan when you resolve that spurious system you refused to do anything about - and bring biscuits":D

  13. 2 hours ago, Zyga said:

    So this approach might be extended not only to visibility but also other properties.

    Yes. The naming is the important part so you can even use it on menus by using appropriate tags to remove or disable items.

  14. Oh. IC. You said UAC and "elevation" I assumed it was Windows.

    I don't use terms like "Super User". They are things like Manager, Operator, Technician etc which makes more sense in a production environment.

    At the core, I use a database. Sometimes users are linked to the logon credentials of Windows so they log in and out of windows to get certain access rights. Control/indicator labels have a group in the name (e.g. label_1_TECHNICIAN, Label_2_MANAGER) and are hidden/shown on change events or when loaded. However. Controls/Indicators that are not dependent on login credentials (the default-usually OPERATOR) don't have a suffix (e.g. Label_3) meaning you only have to define the exceptions, rather than everything. It's the same for dynamically loaded modules (e.g. different configuration sub-panels loaded for different access rights). The VI has the group in the name (e.g. Config_TECHNICIAN).

    As you can imagine. I use captions for presentation, not labels.

  15. 1 hour ago, Rolf Kalbermatter said:

    You can directly replace the u32 constant in there with a single precision float constant and forget about the Typecast altogether.

    A bugger to debug though ;)

    32 minutes ago, Rolf Kalbermatter said:

    Only in GCC (or Unix) a long is defined to be a 64-bit integer.

    And Mac with the Intel compiler, I believe.

  16. The checker is telling you that the functions listed (which you haven't shown) are not available on the platform.

    You have to resolve the bad imports (compile the DLL with equivalents or stubs) which is unlikely if you have used an automated process or wizard to create it instead of creating it yourself. If you cannot resolve the "bad imports" then you can't use the DLL on those platforms.

    • Like 1
  17. 11 hours ago, alvise said:

    I completely removed it and observed the memory usage, nothing changed.memory usage continued to increase.

    But not by the same amount.

    That is indicative of multiple memory leaks. You must use the Diagram Disable structure to disable parts of the code until there is no memory leak and re-enable a couple of functions at a time to see when a leak returns. Then you can try and figure out why it is leaking. Until you know where it's occurring you are just flailing wildly and we can't really help you.

×
×
  • Create New...

Important Information

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