Jump to content

jacobson

NI
  • Posts

    161
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by jacobson

  1. I noticed all of the repos have their own ToDo.txt. Many are empty but for those that are not, you might want to create an issue for each item.

    I don't know if you can create a wiki for an organization but I would also want to be able to find information on how to contribute and some specifics like what LabVIEW version is being used for development, expectations on testing, and build/release process.

  2. I see two general classes of errors. The underlying communication is just TCP/VISA primitives so, in many cases, the API will just throw standard connection errors (error 56). For specific Modbus protocol error codes (ILLEGAL DATA VALUE) should also be thrown as errors and look to have the value -389110 - ErrorCode.

    Now what exactly you do with those errors is up to you.

  3. 6 hours ago, styrum said:

    I think it is important what exactly we call "OO code". If objects are not simply "dead" combinations of data and methods, but rather have their own "life"/"process", exchange messages with the user, "environment", and other objects the way actors do, react to events, I am all for such "OO code".

    I would say here you are just describing what an Actor does and nothing specific to OOP. An Actor can be an object but doesn't have to be from my experience. I personally think that this use of inheritance can be the most difficult to actually understand/maintain as well. If you've ever used an NI's Actor Framework where the inheritance reaches depths of 5+, trying to understand what the Actor does can be quite difficult (though someone might claim this is because they violated SRP).

    Perhaps I'm missing some historical context though and should read some older papers.

    • Like 1
  4. The red dot just indicates that LabVIEW will be coercing the data for you so whether there is a loss of information depends on what the data is being coerced from and to. For instance, if a U8 is being coerced into a U16 there isn't any loss of data but if we instead coerce the U16 into a U8 we are losing the top 8 bits of data (depending on what we know about this data this may or may not be an issue for us). FXP conversion will likely lose information because LabVIEW tries to preserver the value rather than keeping the bit value and changing the interpretation of those bits.

    If you attach the project you are working out of we should be able help explain what would happen for your particular case. 

  5. What c-series module are you using? In the project, if you right-click the module under the FPGA target, some have the option to change their I/O between calibrated and raw. In this case raw would probably be much easier to work with.

  6. On 5/20/2019 at 12:13 PM, MarkCG said:

    A LabVIEW programmable PLC for $99 + $59 per I/O module? This shouldn't be an April fool's joke 

    Screwdrivers are $29.99 though, that's how they get you.

    • Like 1
    • Haha 1
  7. 3 hours ago, flarn2006 said:

    I never thought to add a license to it; as you probably guessed it's not really something that readily crosses my mind. 😛 I don't really care what you do with it; I guess I'll put it under the MIT license or something in the next revision.

    This may be a misunderstanding from my end but I thought if you did not include any license then your code defaults to "not really open source". I'm not a lawyer but choosealicense.com/no-permission/ is where I was reading that and I have used the site before to get the TL;DR for licensing.

  8. 1 hour ago, John Lokanis said:

    2. How should we license code?  I heard some discussion about the various type of licenses.  I am not interested in retaining any rights to code I share and do not want to put any burdens on those who want to use and learn from any code I share.  What licence is accepted in the open source community that supports this kind of sharing?

    You might want to give https://tldrlegal.com/ a look although as I am also not a lawyer I can't really verify the correctness of any information they give. I would start by looking at the most popular but the ones I hear about most are BSD, MIT, and Apache. The NI DCAF tools are all under Apache 2 which lets users do basically anything they want to do with the code but doesn't hold you liable (again, not a lawyer).

    1 hour ago, John Lokanis said:

    3. Once we post, how do we make our code discoverable?  Do we need to post links all over the place or is there a better way?  Here is one attempt at making that better you should check out if you have not already: 

    I don't know of a good way myself. GPM (https://gpackage.io/) looks promising but of these things very much rely on a network effect. GPM also looks much more focused on project libraries and not editor enhancements such as quick drop and right-click plugins or even templates like TLB' or DQMH. Because there isn't really an easily searchable centralized repository of LabVIEW code that I know of, I think you have to be a good self promoter if you want people to use any LabVIEW software. I think Fabiola (DQMH), Q (QControls), and Derek (Solution Explorer, GPM, MGI Stuff) all promote their stuff well if you want to see what they are doing (I think it's a mix of quality products, quality documentation, and continued promotion of the product)

    Also make sure to check out the Distributed Control and Automation Framework (DCAF) when you are starting your next embedded control application.;)

    • Like 1
  9. 24 minutes ago, hooovahh said:

    I mean part of the point of uncertified code is it is semi-unfinished, or an alpha state, so spending the time to setup a palette and build a package could be someone not done until it becomes certified.

    If it's something meant to go in the Tools menu, a QD shortcut, or right-click menu then you might want to make a package. Other than that I would agree that the menus and packaging of an API would be the last thing I would do.

  10. What exactly would be put in this repo? Would the LAVA CR essentially become this repo? Also, would there be any gatekeeping process?

    I mostly want to understand what the quality of code I could expect from the repo would be. If anyone could submit anything they wanted I would probably not ever take a look.

  11. I couldn't find a method for "Convert Instance VI to Standard VI" as you can from the right-click menu but it looks like if you get the VI reference from the subVI you get a reference to the instance VI so you could potentially just copy the block diagram and put it into new VI (reconnecting the terminals might take some work).

    I'm not sure what the best way would be to figure out whether the subVI is a VIM. If you grab the subVI reference and try to pull the VI Path you just get <not a path> and the VI name returns some crazy UID.

    • Like 1
  12. As I posted on the ni.com forums but it would be great if people made sure to notify the NI security team first. If they aren't going to fix the issue or are completely unresponsive go nuts but I would at least want to give companies the opportunity to do something first.

    http://www.ni.com/support/security/

    I sent security@ni.com an email at 4:45 and got a response at 4:46 (not an auto-reply) so, if nothing else, it's clear that they want to hear about these things.

    • Like 2
  13. If you get a reference to the specific ProjectItem in the project, there is a private method in the ProjectItem class which allows you to select/highlight items in the private tree. It works for the simple case I tried.

    Send me a message if you can't find the method.

×
×
  • Create New...

Important Information

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