Jump to content

LogMAN

Members
  • Posts

    656
  • Joined

  • Last visited

  • Days Won

    70

Posts posted by LogMAN

  1. 1 hour ago, drjdpowell said:

    I'm completely stuck at not knowing what a "Link" is, and how I can get the JSONtext.gcomp to not be a Link.  As a "link", namespaces don't seem to work (I can create a namespace, but not add anything to it) and I suspect this is because a "link" is some kind of leser membership in my project.  Maybe.  Who knows.  I cannot find anything in the NXG help on what a "Link" is, or how to open up the JSONtext.gcomp as not a link.  

    I don't know if there is any documentation for this, but a link points to a resource external to your project. You can create your own links by adding files that are not located in your project folder.

    It looks like your component is located on a shared network location?
    Maybe the conversion tool uses UNC paths and the project expects mapped paths?

    Maybe you can re-add those files to get it to work.

  2. 12 hours ago, Bryan said:

    I don't know if this explains what I'm trying to say better:

    
    ASCII:  � 0  3  0  2  1  8  0  0  9  B
    HEX:   7F 30 33 30 32 31 38 30 30 39 42
    
    OR
    
    ASCII:  � 0  3  0  2  1  8  0  0  ›
    HEX:   7F 30 33 30 32 31 38 30 30 9B

     

    11 hours ago, rharmon@sandia.gov said:

    No response from either...

    There might be a typo in @Bryan's example. The first byte should be 7E instead of 7F (based on the previous data).

    Still, this is guesswork at best and not much better than brute forcing every possible combination. You have proven that your code works, so this is a good time to talk with the supplier.
    Maybe they can provide you an example or verify that the data you are sending is correct.

  3. 39 minutes ago, Wouter said:

    Second question, (cross post from https://forums.ni.com/t5/LabVIEW/LabVIEW-NXG-Polymorphic-amp-Malleable-VI-s/m-p/4047507#M1160978

    How can I create a polymorphic or malleable .giv in LabVIEW NXG? In NXG they are called "overloads"

    The only information I can find is: https://forums.ni.com/t5/NI-Blog/Designing-LabVIEW-NXG-Configurable-Functions/ba-p/3855200?profile.l...

    But it does not tell or share how to do this in LabVIEW NXG? Where can I find this information? Or am I just missing something?

    In the article it says: "The ability to create modes and overloads isn’t publicly available in the newest version of LabVIEW NXG; however, we’re looking to extend these features to our user base soon."

    • Like 1
  4. 10 hours ago, Neil Pate said:

    As I said, if I do release it I really don't mind what others do to it.

    • Are you okay with people using your work and selling it as their own, perhaps making a lot of money with it?
    • Do you want to be attributed for your work, if someone uses it in their project (or sell it as their own)?
    • Are you okay with other people using your name to sell your work as their own?

    In my opinion BSD 3-Clause is a good choice if you want to be attributed without any liability or warranty. Look at SQLite Library and JSONtext for reference (they use BSD 2-Clause). Note that BSD 3-Clause is the same as BSD 2-Clause, but "with a 3rd clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent."

    Unlicense puts your work into public domain, so there is no copyright holder. You also don't reserve any rights to your own work (anyone can do whatever with it).

    MIT is in some ways similar to BSD but without the need for attribution. It is a pretty popular choice though.

    DBAD and WTFPL need to be placed in every source file, because they apply to single files only. They also don't really address the issue. If an author didn't want anyone to sell their work as their own, they probably shouldn't place it under public domain in the first place. I'm always surprised by people who make their work open source or public domain and then complain if other people use it. What did they expect?

  5. 2 hours ago, Neil Pate said:

    I never intended for the application to be open sourced, so none of the VIs have license notices or anything like that.

    There is an option to mass-edit VI documentations in VIPM, although it's probably not the right tool. Maybe you can hack a solution. I don't recall if there is a function for this in the OpenG libraries, but they all have license notices and I would be surprised if they were edited by hand.

    2 hours ago, Neil Pate said:

    I have very little experience with choosing open source licenses. Essentially I don't really care what anyone else does with my stuff as long as I cannot be sued if something goes wrong and maybe if they make some money off it they buy me a beer some day

    There is a tool for that (of course): https://choosealicense.com/

    2 hours ago, Neil Pate said:

    I have been developing my framework for quite a long time, and as my personal style is to only comment stuff that is not obvious to infer from the code new users will probably find the documentation quite lacking. I do not have the time or energy to actually support this thing very much (I have a four year old and a six year old...). So it would be a gift to the community but not something I could regularly help others with, and I am not sure if this will end up making me look like a terrible person.

    If you don't want to accept contributions or issues for your repository, make it an archived (read-only) repository or put a notice in your readme file (anyone is free to fork and change it anyway). There is a blog post on how to do it on GitHub: https://github.blog/2017-11-08-archiving-repositories/

    2 hours ago, Neil Pate said:

    Does anyone think this is something of value?

    Vision is not my area of interest, so I wouldn't use it as a product, but I like to browse projects to learn about problem solving strategies and perhaps find a few nuggets. Don't worry about style or documentation, especially if it's a gift. I'm sure there are a few people on LAVA that are more than happy to get something new to fiddle with 🙂

  6. Very strange. Ping looks fine. TTL=128 also indicates that the machines are on the same network, so packages should send fine. Are you able to copy large files between the systems with reasonable speed?

    Also, you can use Wireshark to monitor traffic between your machines. That way you can check if a package gets lost, resend or blocked by other data.

    In the past I had trouble with cheap NICs that weren't able to keep up with many small packages because of checksum offloading. This was particularly problematic on Windows 7 and seems to be fixed on Windows 10. You can try disabling it in your NIC settings. Note that there are multiple offload options.

    image.png.7d89ad6f2d862d1dfed26c0b41cc197d.png

  7. 11 hours ago, Neil Pate said:

    In other words, in this picture in order to get the resize drag handle to appear I have to move my mouse over the control, then out a little bit into the middle of space with no visual indication how far out to move it until the horizontal bar appears and then find the tiny dot in the middle and then drag that. 🤮

    It works slightly better if you select the control first (the dots stay visible). Still, poor design choice. They actually don't work well on different zoom levels.

    Edit: How do you attach videos but not display them into a post (does it automatically for me)? This thing is freaking huge...

  8. Here are some of mine.

    • SystemDesigner - Although it is essentially MAX and only works with NI hardware, I like the fact that it provides an overview of the hardware, access to various documents (pinout, specs) and the ability to create and test measurement tasks from within LabVIEW. Not to mention the auto-generated code when placing tasks into VIs.
    • Captured Data - Finally I can easily capture, export and import data without having to write custom code. Capture data once and use it often. This is very useful for testing code in development and prevents misuse of "Make Current Values Default", which tends to bloat VIs. It is also possible to just drop data into any compatible control (i.e. graph) without any manual labor.
    • Build Queue - It is somewhat broken, but I like the fact that it can build packages in parallel. There is great potential for much faster builds when compared to CG, especially for large an complex projects.
    • Learning - I like the way NXG guides users through learning projects (of which there are quite a few). Highlighting elements in the UI is very helpful for self-paced learning.
    • Online Help - Not specifically a feature of NXG, but I like the way the new manual is structured. The context help could use some improvement though.
    • Controls and indicators - I like the design of NXG controls and indicators. They look much better than modern controls in CG, especially when used in combination with a Windows 10 theme. That said, I hope they add support for system controls soon.
    • Automatic File Organization - This is probably number one or two of features in NXG I really like. Moving files inside a project now automatically moves files on disk. No more housekeeping. Still, I miss virtual folders a lot.
    • Like 1
  9. If memory serves right, this is because LabVIEW does not take Windows themes into account. Essentially, the window drawn by LabVIEW gets surrounded by a border that is provided by Windows. You should see different results if you change your theme to one that has smaller or no borders.

    Also, Window Bounds does not include the window border. It is implicitly mentioned in the context help: "The four elements in the cluster are the top, left, bottom, and right values of the front panel window, which includes the interior region, scroll bars, title bar, menu bar, and toolbar."

    Your best bet is to use Window Bounds and subtract the border size manually. Unfortunately, it will break again if the user changes themes.

     

  10. I'm putting this out here in case anyone missed it. NI has made all of their online training courses available for free to the global engineering community. The period was just extended to at least May 31, 2020 (previously April 30, 2020). Those who are new to LabVIEW and want to start with LabVIEW Community Edition should take a look at Getting Started with LabVIEW Community Edition.

    For further reading, check out NI’s Response to the Evolving COVID-19 Situation.

    • Thanks 1
  11. 1 hour ago, Aristos Queue said:

    I would differentiate the icons in the project tree, which NXG chooses not to do.

    That is even better, haven't thought about it. Is there any chance of this changing?
    It would also be really great to have an idea exchange for NXG to discuss things like this. I want to support the effort, but sending out one-way tickets is very frustrating :frusty:

    1 hour ago, Aristos Queue said:

    Take a look at LV 2020*... interfaces and classes use the same file extension, and it is way better for refactoring hierarchies. BUT we use distinct icons in the project tree and various other places. You can read the details of this decision in the document I published yesterday about interfaces. I even go into detail about where we deliberately do NOT differentiate for end users.

    Thanks for reminding me, this is something I'm very excited for (and almost forgot about 😅)!
    You are right, those icons make it super easy to distinguish. Kudos for spending time on this :star:

  12. 20 minutes ago, Neil Pate said:

    I never intended for this post to descend into a rant session, I am just disappointed that after so much investment by NI this is the product that has been laid on the table. There was no need to revisit change every single decision in current gen, most of the paradigms worked really well.

    (Un)fortunately only someone who actually worked with CG is able to tell the difference, which makes NXG easier to sell to new customers than existing ones. Just a few clicks and you get your shiny graphs, overviews or packages. @Aristos Queue mentioned before, that NI lost business opportunities because of the old fashioned UI of CG.

    16 hours ago, Aristos Queue said:

    Without going into anything NI confidential, yes, NI has lost significant sales opportunities because the old fashioned UI of LabVIEW 20xx does not appeal to the next generation of engineers and scientists. Redesigning the UI from the ground up was the primary mission of NXG -- incremental adjustments were considered and rejected early on. NXG's design is very much driven by data from sources such as user testing, customer feedback, and sales numbers. Any issues NXG has had getting off the ground with customers are less from going in the wrong direction and more from having so many parts that have to move in the same direction for it to work. As more parts have come into alignment, the user base is starting to pick up.

    I'm pretty sure we are not the target audience of NXG at this point. Maybe in the future. Until then we can still spend our money on CG. Really, there is no incentive for NI to listen to our complains right now and I don't expect them to. Nevertheless, I'll keep an eye on NXG and on how it evolves in the future. Until then we can share our experience and ideas here and prevent each other from regretting horrible decisions 😉

  13. 7 hours ago, Aristos Queue said:

    I'm not sure where you get that. The execution engine is the same engine that LabVIEW 20xx uses. Classes and typedefs are the same things that they've always been.

    Yes, the execution system hasn't changed but the appearance did, at least from a users perspective. LabVIEW CG has a clear distinction between the two, which doesn't exist in NXG. Classes and typedefs are both represented by the same kind of object (G Type). Although their abilities and representation is different, they are represented as the same kind of thing. If you take a control in LabVIEW CG and turn it into a class, you choose "Convert Contents of Control into class" and it becomes an entirely new type. In NXG, however, you can simply add class functionality. Now, unless a typedef is a class in secret, there is no way to simply add class functionality without converting it into a class first.

    image.png.f0dde12b9a2f9581a15fe09993d288a9.png

    Maybe I'm reading too much into it, but this is how it appears to me.

    8 hours ago, Aristos Queue said:

    Yes, both .ctl and .lvclass use the same .gtype file extension. That makes refactoring G code to change between the two a lot simpler. But what the files represent? That hasn't changed. There are still 25 fundamental LabVIEW types, of which LabVIEW class is one (NXG doesn't have sets or maps yet, which bring the total to 27), and a typedef can host any of them (except void).

    Yes, the amount of types and what they represent didn't change and I understand the technical reasons for how they are implemented, but why use the same file extension? I work with engineers who don't know the difference between a class and a struct (and they don't care).
    What I'm afraid will happen is this:

    image.png.5aed73ad94c76396c27dbdd0217cada7.png

    Here is the same thing in CG

    image.png.2eb919010e95cb02df8f4e6b1becee10.png

    For all I care, the file contents of a typedef can be equivalent to a class. I don't even mind if a typedef was a class in secret, as long as they are easily distinguishable by the end user (i.e. me). That is currently not the case.

    8 hours ago, Aristos Queue said:

    The limitation of gtypes being inside classes is one I've complained about personally... it is entirely a limitation of the UI, not the underlying nature of the entities involved.

    That is good news. Maybe it was addressed in 5.0, can't wait to try it out. Need to wait for the VM to finish though.

×
×
  • Create New...

Important Information

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