Jump to content

Tim_S

Members
  • Posts

    873
  • Joined

  • Last visited

  • Days Won

    17

Posts posted by Tim_S

  1. I believe you want to wire the Get:Boolean to the output of the Get:from JSON rather than the Get:sub-Item with the way you have the name array wired.

    The error is correct in that there is no Boolean in the JSON from the Get:sub-Item. A Boolean value in the JSON would be something like:

    "MaximizeOnStart": false

    I expect a value of [0] indicates a NULL rather than a logical 0.

  2. 16 minutes ago, hooovahh said:

    And if you are trying to hide your program in the system tray I highly recommend this set of code posted on LAVA a while ago.  It is the most feature complete, and well done API I've found

    I believe the Averna Notifyicon in the LabVIEW Tools Netowrk is based on that and seems a bit cleaner to me.

    1 minute ago, smithd said:

    I believe you also have to disable allow users to minimize window.

    My top level VI does not maximize, so I can't speak to that at the moment. I have subVIs that provide user interface which can maximize with no issues.

  3. On 6/24/2017 at 11:31 AM, pawhan11 said:

    Might be off topic question, but do You also translate all errors and logs when localisation is required? If Yes how do You do it?

    I have an error log file that keeps track of what errors have occurred and a set of multi-language files that are used for localization. The application that displays the errors uses the information in both for display.

  4. We supplied final test stations to a customer for their production line. The data from our stations gets buffered and sent up to the customer's database system in the sky every five minutes.The stands became quite old (about 10 years) when IT of many companies decided Windows XP would no longer be permitted on the network at all. IT picks a weekend to stop allowing any XP machine from accessing the network, implements the change some o-dark-thirty late one Saturday night and goes home knowing their network is more secure. Come Monday morning, production comes to a stop as final pack-out can't ship product because no record of pass or fail is in the database. IT strolled in three hours after production started and immediately blamed the test stand supplier. This did not fare well for IT after our serviceman opened up the log file and pointed to the exact time when we were no longer able to access the network.

    Many years ago we shipped some systems (Windows 2000 based) to a customer with antivirus on them set to update regularly and all that. We installed, checked that the updates happened and went on our merry way. Some months later we get called in to service the machines which started slowing down and behaving erratic. Our investigation determined that IT hadn't locked down any of the network so the test stand operators were surfing porn sites while running the machines. One test stand was so infested with viruses that the antivirus program was just shriveled up in the corner whimpering "help me!" (that one was a wipe and reload as we couldn't even reinstall the antivirus to repair the system). This wound up being a rather expensive paid service call in terms of our bill and lost production.

  5. Our IT blocks access sites where can download shareware and freeware. It seems this includes sites that have commercial free-use icons (have not gotten a story as to why but I expect it has to do with how McAfee categorizes websites) thus I either spend time developing my own icons (which don't look as good) or purchasing a package of icons... or I would but those packages tend to be on the same websites. So when I want professional looking icons, I have to go home to search for what I need and then get purchasing involved.

  6. Should be using SVN, but corporate IT broke the network in some obscure way so the only way can use SVN is on the server and not the development PCs. Used Hg for a bit on my development PC but had to stop as the standard laptop has a tiny SSD on it. :frusty:  My final solution has been to not make mistakes which has the new challenge of staying humble while being perfect. ;)

  7. My answer is, "it depends". I work primarily with production in the automotive industry; with my customers a CLD has no meaning when we try and get new work so there is little to no value there. If I was looking for a new job then a CLD would be something significant particularly if I can attach a significant number of years to it. If I worked for a company that primarily sold software, then (at minimum) a CLD would be critical.

    • Like 1
  8. There are various customized controls in VIPM and in the Downloads section here. JKI had a presentation on creating modern interfaces on their website.

    We have interfaces all around us, so every computer program, kiosk, ATM, car dash, smart phone, etc., is a potential example of a good (or really bad) interface.

  9. It doesn't rotate, but does slide of the Y across the X starting with the last point of the Y and the first point of the X, and ending.with the first point of the Y and last point of the X (Wikipedia has a good gif of this).

    It is possible convolution works well with sinusoidals and not this data set. I was only getting 35 points in the waveforms when I specified a dt (0.001 I think), so I wonder if the sample size isn't large enough.

  10. Your snippet is getting identified as LabVIEW 2016, so it's not loading into 2015 for me.

    Looking at the X data sets, I expect the dt are different, which would mess up the convolution (though possibly not so much).

    The Xcor Peak should be from... uhm... the length of the convolution is the sum of the length of the input functions, so I believe that "0" is actually the sample the length of the Y data set.

    It's been a few uhm... lets say years... since had to work with convolution. Talking it out a little, convolution takes the one waveform and slides it across the other... The first point of the output is the sum of the product of 1 point of overlap of the waveforms (the last point of one waveform and the first point of the other waveform) then the second point is two points (last two of one waveform and first two of the other) and so on. My thinking was at the point where the two overlap you should get the sum of each point squared which should produce a peak value like in the animated image of the two squares example. I just tried this with a sine and cosine centered around zero and got about what I would expect (peaks near +/- 0.25 from center for a 1 Hz, 1 second signals) but got something very different when I put in an offset (1 for each).

     

  11. 32 minutes ago, infinitenothing said:

    My problem is that correlation takes in two arrays where I have 4: X orig, Y orig, X shifted, Y shifted. I can't figure out how to get 4 into 2.

    Wouldn't you really want the convolution of the two XY signals? Getting the 4 into 2 would be a matter of converting the XY pairs to a waveform (untested VI attached).

    Convert XY to waveform.vi

    • Like 1
  12. 9 hours ago, parsec said:

    I haven't had much success with any of these approaches.  I have made a project encapsulating all of the relevant VIs and targets to make it more clear what I am trying to do.

    I don't have 2016 installed so, unfortunately, I am unable to open the code. I'm trying to understand this as I am using network streams in 1:1 and 1:N. Is the attached what you're trying to do (LV 2015)?

     

    NetworkStream.zip

  13. That's a huge question.

    The camera has to be able to resolve what you're looking which is a matter of what feature you are looking for, camera pixel size, lens selection, distance from the target and size of the target region. All of that is math, so it's not too bad to calculate.

    Then there is lighting, which usually requires some level of voodoo in looking at target surface condition, ambient lighting and object in the area to determining position, light shape, light size, light color, camera filters.. Your best bet is to pick a supplier that will loan you various lighting arrangements and just try them out.

    Even with getting everything working, there are things that can happen to mess up the system like the glare from the mirror on a passing forklift or the light coming from a bay door 30m away on a sunny day at noon.

  14. If you look at the explanation of the error code:

    Quote

     

    Attempted to read samples that are no longer available. The requested sample was previously available, but has since been overwritten.

    Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem.

     

    You are trying to read one sample at a time when they are coming in at 1000 samples/sec. The buffer fills up and overflows. Try reading in 100 or more samples at a shot or slow your sampling rate to 10 samples/sec.

  15. Why are you looking to merge data? What is the intention? (I'm thinking something like configuration?)

    Ignoring the merge data requirement for the moment... Not sure why you have a parent, child and grandchild. Looking at this, I see a parent and three child objects with the methods:

    1. Initialize: Passes in the communication user event sets up anything needed in the specific child
    2. Start: Accepts a subpanel reference, inserts the ModifyUI.vi and starts the ModifyUI.vi running
    3. Stop: Stops the ModifyUI.vi
    4. Cleanup: Any tasks needed to clean up the specific child

     

  16. There is a whole host of tools in the Strings pallet. There is scan string for tolkens, match pattern, conversion primitives... I could take a bunch of stabs at how to parse it out, but without any information as to how much of what is being sent and the format of the message it would be guesswork. That being said, it does appear the start of text (ASCII hex 2) and end of text (ASCII hex 3) is being used to delimit information, so scanning for tolkens is probably a start point.

    • Like 1
  17. KepserverEX resides on a PC. KepserverEX provides communication to a device (we've used it for PLCs) and presents an OPC server which people have pointed out can be talked to through datasocket (examples ship with LabVIEW). You buy the driver or suite that goes with the device you want to talk to. Some years ago you could download the suite from the website for a trial (30 days); I would expect that has not changed.

×
×
  • Create New...

Important Information

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