Jump to content


Popular Content

Showing content with the highest reputation since 08/07/2020 in all areas

  1. 2 points
    That's a very common misconception. But it's actually not right. Service businesses definitely do not have 100% gross margin. "Cost of Sales" is a more accurate term than "Cost of Goods Sold" for a services business. But otherwise, it's the same calculation. Services businesses should be calculating gross margin by figuring out how much they pay an engineer directly for every hour that engineer bills. If you pay an engineer $50/hour, you'll need to bill him at $200/hour to get a 75% gross margin. And he's going to need to bill 40 hours every week. If he's not billing 40 hours every week, there won't be enough money to pay for sales, marketing, and G&A overhead. If you're a one-person company (i.e. a single person alliance member), you will need to be so damn good that you can support your own salary on 2 billable hours per day if you want to hit 75% gross margin. This is a great conversation. I hope we can have more business conversations like this on LAVA.
  2. 1 point
    This is basically this issue: https://bitbucket.org/drjdpowell/messenger-library/issues/32/clearer-way-to-pass-addresses-as-data-over Addresses are all based on communication methods, such as a Queue, that don't work across application boundaries. The TCP messengers get around this by replacing Reply addresses on messages with a special address that routes the reply back though the TCP connection. So all the local-only communication methods will work remotely, but only for addresses passed as Reply addresses. In your example, you are passing the address as data, not as the reply address. Rather than Query, use Send, with your Queue as Reply address. Use "read reply address" at the other end to get the address (actually now a "Route Back" address) and send your two messages to it.
  3. 1 point
    Note: I am considering uping Messenger Library's base LabVIEW version from 2013 to 2017. This is to allow use adding actor templates that use JSONtext to do configuration, and to add VIMs to the palettes. None of my clients use LabVIEW earlier than 2017. Let me know if you use Messenger Library with LabVIEW earlier than 2017sp1 (sp1 fixed VIM bugs).
  4. 1 point
    That's a standard technique I use all the time to prevent unwanted code coupling. In fact I almost always do it if I have reason to pass the address of an actor. I use either "Send" or "Actor" parent classes; there is no reason to use "Actor type 2". With the Send class (the grandparent of all address classes) one also has the option of passing a TCP Messenger, allowing you to run C or D on a different machine.
  5. 1 point
    Thanks Oliver for pointing out this problem. I actually don't myself use a single Connection in parallel (if in parallel, I use multiple Connections), but the library should support this. The problem comes not from the single Connection, but from the preprepared SQL Statements for attribute access. They are preprepared for speed, but this means one needs to serialise use of the Statement. I've been burned by Semaphores in the past and won't use them, but I'll use some other method. Issue: https://bitbucket.org/drjdpowell/sqlite-labview/issues/10/attribute-parallel-access-bug
  6. 1 point
    After living with this for 5 years, I have finally figured out the solution for the yellow plots. The root-cause of the yellow plots appears to be that the standard 256 color palette contained in a cluster coming out of an invoke node (FP.Get Image) become corrupted by the application builder on Mac OS X. The colors when running source code vs. when build into an application are very different. My workaround is to bundle the 256 colors directly in the source code. Of course, I am using 8-bit color. I would assume that if a higher bit-depth is needed, then a different set of reference colors would need to be bundled but I have not investigated that. I also suspect the yellow icons are similarly corrupted but I don't know how or if I could solve that. But at least now I can save my plots using LabVIEW 2020. I hope this helps someone else that has been frustrated with this. A screenshot of the work-around is below. I also have attached a screenshot showing the yellow icon.
  7. 1 point
    I've seen that with clients I have been working for on LabVIEW related projects. A new software development manager came in with a clear dislike for LabVIEW as it is only a play toy. The project was canceled and completely rebuild based on a "real" PLC instead of a NI realtime controller. The result was a system that had a lot less possibilities and a rather big delay in shipping the product. Obviously I didn't work on that "new" project and don't quite know if it was ever installed at the customer site. That said, we as company are reevaluating our use of LabVIEW currently. We have no plans to abandon it anytime soon, but other options are certainly not excluded from being used whenever it makes sense and there have been more and more cases that would have been solved in the past in LabVIEW without even thinking twice, but are currently seriously looked at to be done in other development platforms. And I know that this trend has been even stronger at many other companies in the last 5 years or so. My personal feeling is that the amount of questions in general has dropped. The decline is less visible on the NI fora, but all the other alternative fora including LAVA, have seen a rather steep decline in activity. Much of the activity on the NI fora tends to be pretty basic beginner problems or installation pericles and pretty little advanced topics. It could be because all the important questions for more advanced topics already have been tackled but more likely it is because the people who traditionally use LabVIEW for advanced usage are very busy in their work and the others are dabbling their feet in it, come with their beginner problems to the NI fora and then move on to something else rather than developing to the intermediate and advanced level of LabVIEW use. Also with exception of a few notable people, participation of NI employees in the fora seems nowadays almost non-existent and except the aforementioned notable exceptions, many times if an NI empoyee eventually reacts after a thread has stayed unanswered from other fora members for several days, doesn't go very much beyond the standard questions of "What LabVIEW version are you using? Have you made sure the power plug is attached?" and other such pretty unhelpful things. This is especially painful when the post in question clearly states a problem that is not specific to a certain version and pretty well known to anyone who would even bother to start up just about any LabVIEW version and try the thing mentioned! It sometimes makes me want to tell that blue eagle (äah is that a greenie now?) to just shut up.
  8. 1 point
    I have the same board. This is what I did. Download the RaspBerry Pi Imager v1.2 and used that to format a microSD card used for the Raspi. Select the first recommended OS: Raspbian Boot up the Pi with keyboard and mouse. Walk through the startup config (installing updates, etc) and wifi setup. When asked to enter a new password, ignore this and just click next. Reboot as suggested. Go to RaspBerry Pi configuration and on the Interfaces tab, enable SSH Open a command prompt on raspi and type: sudo raspi-config Select 7: Advanced Select A1: Expand file system. (this will expand the file system if it's not already expanded) Reboot In LabVIEW select from the Tools > MakerHub > LINX > LINX Target Configuration Click the connection button and it should connect. Hostname: raspberrypi, username: pi, password: raspberrypi. These are all the defaults. Click the Installation button. Click the Update button on the installation page. it should go through the process of doing the update. At some point the raspi will reboot. this is part of the process. When the raspi reboots, the LINX target configuration dialog will lose connection and give an error. This is normal. it will take a while to reconnect. Eventually, it should come back. If not then click the Connection button and try to connect. The Installation panel should now show the installed version: Click on Launch Example. In LabVIEW, right-click on the Raspberry Pi Target and select connect. This should should show the deployment progress dialog and after connection a small green indicator will appear in the target tree You should be able to execute (run) the VI now. Everything should be good to go now. Sometimes you will try to connect, in the project, and then you will get an error not connecting. If that happens, just wait and try again. I find that the connection is more reliable if you use the IP address of the raspi instead of the DNS name. To specify an IP address, right-click on the Raspberry Pi target and select Disconnect. Then right-click again and select properties. In General, enter the IP address of the raspi. Then click OK. To find the IP address of the raspi, type: hostname -I in a raspi command prompt. I think the reason why the log message states Raspberry Pi 2 B, is because the LINX toolkit is old and that message was probably not updated to handle all the new boards that have come out since release? Not sure. i'm getting the same message on my system even though the board is Pi3.
  9. 1 point

    Version 1.0.0


    This VI program implements the Discrete Fourier Transform (DFT) to draw any drawn shape outline with epicycles as demonstrated in this video. For more information on the mathematical principles, please watch this video by Mathologer. How to Use: 1.Unzip the attached zip file. 2.Open Main.vi file. 3.Run the VI. 4.Draw a shape. 4.Enjoy animation!
  10. 1 point
    Here are the VIs we use for Windows authentication and domain groups. Validate Username and Password.vi takes the username and password and returns a TRUE if it validates against the domain controller. User in Group.vi takes a username (or current user if left blank) and a Domain Group name and returns TRUE if the user is a member. User Groups.vi takes a username (or current user if left blank) and returns an array of Domain Groups to which the user belongs. We only use these on our internal network, so I can't guarantee they work in every situation. Still, they may give you a starting point if you need something similar. Pat P.S. LabVIEW 2010sp1 User Groups.vi User in Group.vi Validate Username and Password.vi
  11. 1 point
    You could also use graph cursors or annotations, and position them just under your bars. That would look decent enough if you set the Yscale min to -1 rather than zero, and then you could put the labels at Y = 0.5 or something. You'd fill the bars down to zero rather than down to -infinity. You would have a few compromises with the appearance, but the zooming &c.would all work. Bar Graph With X Labels.vi

  • Create New...

Important Information

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