Jump to content

John Lokanis

Members
  • Posts

    798
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by John Lokanis

  1. Ok, so this is a strange application, but I need to build a little exe that can be called from any scripting language (in this case Python) and can accept command line arguments and write its output to StdOut. So far, I have accomplished all this using the standard LV properties for getting the command line args and using some kernel32.dll calls to write to the StdOut of the cmd.exe console window. Where this breaks down is when calling a LabVIEW exe from the console, the console thread is not blocked while the exe runs. So, the result is the console returns back the command prompt and then a little while later my exe sends the data to the console and it just appears where ever the cursor is currently at. So, I need to figure out a way for my exe to steal the thread of the console and block it until it is done writting its output. Any gurus out there have a idea even where to start figuring this one out? It has me baffled. BTW: if you also have a .NET solution for writing to the stdout instead of the old school kernel32.dll solution, I would love to see it. thanks for the help and/or sympathy. -John PS. If you are wondering why the *$@#$! anyone would want to do this, basically it comes down to the need for some non-LabVIEW DEVs to control some cFP hardware over Ethernet and the only way I know how to do this is using LOGOS via DataSockets and that only works in LabVIEW!
  2. Thanks for the DLL idea. That might work if I can find docs on the DLL interface. The Modbus idea is also good but would not work in my situation due to the need to communicate with the cFP hardware over Ethernet.
  3. I use an Ethernet attached cFP system to control some power relays in my test system. I read and write the bits on a DO card using datasocket and the LOGOS protocol. Another engineer wants to reuse our hardware setup but instead control the cFP hardware from another non-NI language (in this case, Python). Does anyone know if this is possible? If so, is there some info on the web explaining how to make this work. My google searches keep coming up with links to the Monty Python Logo. Funny, but not very helpful… -John
  4. I want to use system exec.vi to run some scripts from the command line. If the script I run crashes and locks up the cmd.exe interface, how can I kill it and get control back to the calling LabVIEW thread? I will be using 'wait until completion' so I can get back the results from my command, so my thread will be stuck until the call returns. thanks for any ideas. -John
  5. Yes, I agree with this. Now ask yourself, why is this the case? Is it really due to 'safety' issues where we have to pay the cost of all the regulation that the FDA does to keep us safe? Or is it protectionism for medical supply companies to keep a captive market where they can charge high costs for their products? Obviously we have to balance this. We don't want antifreeze in our couch syrup, but we don't want to pay $100/day for the latest and greatest cholesterol medicine either. You can also make the argument that in order to foster innovation in medicine, there needs to be a financial incentive for companies to invest in research. If the rest of the world is not going to pay for that, the US is stuck footing the bill. The medical industry pays lobbyists a lot of money to make sure congress keeps these 'safty' protections in place. This is similar to the outsourcing problem. If Chinese companies had to treat their workers the same way we to (human rights, OSHA, benefits, etc) then their costs would be much higher. So, to stop outsourcing we need to insist they raise their standards. Or, we could lower ours. How do you think that would go over? 8 year olds working in sweat shops in Iowa? So, if we want the rest of the world to compete with us on a level playing field, we need to insist they follow the same standards we do. Unfortunately, they don't want to. So, we continue down the path we are on, deferring all the costs to future generations until the day the bill comes due, hoping it does not happen in our lifetimes... And none ever will because there will never be a free and open market. If it were to exist, it would simply appear to us as anarchy. The existence of society itself is simply a series of constraints placed on human behavior to allow us to live in a community. As long as we continue to choose to have society, we will never have truly open markets. I am more interested in dealing with the reality of what we can do with our current system of governance to improve the situation. That is why I find those studies interesting and helpful in understanding the problem and where we might be able to fix or at least improve it. Now back to work...
  6. I'm not ignoring your point. I am stating a fact that the supply/demand curve does not work in all 'markets'. Especially ones were there is imperfect information provided to the participants. Healthcare is one of these. For example, as a patient with medical insurance, you do not know what a given procedure costs. Your doctor most likely does not know what the procedure costs. So, assuming the two of you together are going to figure of the correct solution to the cost/benefit equation that yields accurate supply/demand behavior is just wishful thinking.
  7. Actually, real reform will never happen UNLESS the government stops being bought and paid for by the health care industry (or the financial industry or the military industrial complex) and actually serves the people they were supposedly elected by. The 'market' will never reform health care (or global warming or anything else for that matter) because there isn't any profit in it. If you don't understand that, try studying the 'tragedy of the commons' problem in economics. Humans are just not wired to solve problems like this by individual actors pursuing their own best interests. The only way to solve this is by having an external authority impose a solution. To simplify this, think of what happens if you leave your dog and your cat alone for a week. If you set out enough food and water for the week, the dog will eat it all in one day and then starve the rest of the week. The cat will eat just what it needs and survive just fine. Humans are not cats. And since there is no way congress will ever vote to eliminate the hand that feeds them (lobbyists), we will not solve this or any other problem without a gun held to our head. And by that time it will be too late. That is not pessimism, just realism...
  8. Be careful where you take this argument. There have been several studies (listen to this: http://www.thisamericanlife.org/Radio_Episode.aspx?sched=1320 or read this: http://www.npr.org/templates/story/story.php?storyId=113571111 and this: http://patriciashannon.blogspot.com/2009/10/telltale-wombs-of-lewiston-maine.html) that have shown increasing the number of doctors does not increase the level of care or access to care, but just the cost of care. The reason is, if you put too many doctors into one population area, the doctors will lower their thresholds on what procedures they will do in order to keep busy. You see, the rate of medical needs in a fixed population is constant. But a doctor need to pay their staff, their rent, their student loans, etc... So, if they don't have enough to bill for, they will (whether they are aware or not) start ordering tests or doing procedures for people that might not really need them. There are some European countries (Germany, I think, does this) that licence doctors to practice in certain areas in order to avoid over supply of medical services. Also, another study by Johns Hopkins university (http://www.marketwatch.com/story/us-health-costs-highest-malpractice-no-factor-study) found that one of the primary drivers of high medical costs was the income level doctors required in the US. Medical malpractice insurance/claims only accounted for 0.5% of the rise in costs. They also stated that while doctors in the US routinely make ~$200k, they could not find a doctor in other countries who make over $100k (USD). The underlying reason for this was the high cost of eduction and the huge loans that someone graduating with a medical degree in the US is saddled with. This can often exceed the cost of a mortgage on a nice home. In the European countries they studied, higher education was free. So, one way to bring down the cost medical care in the US would be to fund education for people wanting to pursue a medical degree while also controlling the number of medical licences to practice in a given geographical area based on population. Also, changing from a fee for service to a salary based reimbursement system for doctors would remove the financial incentive to over prescribe treatments. Doctors might end up less wealthy and the golf industry might suffer, but the rest of us would likely have better and more affordable health care. Unfortunately, the current bills in congress do not address any of this. Why? Because there is no profit in it for anyone (especially the lobbyists)
  9. That is exactly how I do it. I am able to read 100's of channels of data over TCP using 100's of VIs spawned from a reentrant VI that uses this process. It is basically a producer consumer architecture where the producer reads the TCP stream and queues up data while the consumer processes this data and decides when to quit.
  10. This is not directly a LabVIEW question, but since the files I am dealing with are VIs and since the reason I do it this way is because of how LabVIEW works, I figured this is a fair question for LAVA. I just upgraded from P4Win to P4V and I can’t seem to figure out how to perform a large submit operation. For example: If I have 100 files checked out, but I have only changed 17 of them, I need to know which ones those are so I can submit the changes. In P4Win, I could setup a submit that would only select the 17 files out of the 100 in the checklist that were different from the depot. I could also have it re-checkout the files after submitting and leave the other unchanged files alone. I could also choose to submit a subset of the 17 changes files if I wanted to have different comments attached to different groups of files. In P4V I cannot find a way to have it show me which files have been changed. It select every file that is checked out when I choose to submit. It can be set to not submit unchanged files and to re-checkout after submit, but I still need to know what the changed files are before submitting so I can enter the appropriate comments. I don't to want to revert the unchanged files. Due to how LabVIEW seems to like to recompile VIs at will, I tend to keep everything checked out all the time so I don't have to keep checking things out continuously as I make edits. Any ideas or help would be greatly appreciated. -John
  11. Ok, that should get me past this issue. Thanks! But I still wold like to know what this setting is for and why I need to set it.
  12. Does anyone know what the Source Control Project field in the SCC configuration dialog is for? I am using the Perforce SCM provider. I have read the help, goggled the internets and called NI support but know one seems to know. When I setup SCC, I have to choose something for this field. The dialog that appears has a disabled OK button until I choose a sub folder of my Perforce Depot. If I select a folder, I get error -2915. If instead I continue to expand the tree until I see a file and then select that, it is happy. I just wish I understood what was going on here. Thanks for any help! -John (using LabVIEW 8.6.1 and the latest version of Perforce P4V on Windows XP)
  13. I think they really need to rewrite the code that supports this control. It seems to have a lot of memory issues.
  14. I have been trying to figure out a problem with the tree control that I just don't understand. For some reason, if I want to change the background color of a cell in the tree control, the amount of time this takes varies significantly based on what row I am changing. For an extreme example, I created a tree with 10,000 rows. I then timed how long it took to change the background color of the cell in row 0 and row 9999. The different was ~218x slower to set the color of row 9999. Turning defer updates off had no effect on the speed Using the row index instead of the tag name to set the active row had no effect on the speed In another experiment, I tried changing each row's background color. As the row number increased, the execution speed of the code slowed down. I then tried it in reverse, setting row 9999 first and then decrementing the row index through 0. This time the code got faster as it approached 0. This really seems strange to me. I can't imagine why it would take over 200ms to set something simple like a color property. See the attached VI for an example of this behavior.set tree cell color speed.vi Anyone have any ideas on how to speed this up? -John
  15. https://www2.recruitingcenter.net/Clients/f5/PublicJobs/intl/controller.cfm?jbaction=JobProfile&job_id=11939 Test Engineer, Manufacturing (Zhuhai) Job Type: Full-Time Location: Zhuhai, China Position Summary The Mfg Test Engineer is responsible for sustaining support of F5 manufacturing test systems which include ICT, board functional, Environmental Stress Screening (ESS), and system level functional test. This support includes maintenance, training, and development of all production test systems and processes. This position is meant to be the front line support of issues that occur during daily production. Responsibilities Support production board and system test activities by providing troubleshooting and debug training as needed to the local CM personnel. Communicate daily status of production situation to the main office Technical Operations team. Maintain/Implement changes to test processes to our contract manufacturer. Through continuous data analysis, provide on-going improvement for existing test systems reducing test time, improving test accuracy, and eliminating all false failures. Knowledge, Skills & Abilities Expert knowledge of Design for Test and Design for Manufacturing implementation and execution. Must have experience with functional and system test methodologies. The candidate should hold the ability to read, analyze, and interpret internal specification documents to develop a comprehensive test plan for NPI. Ability to write technical reports for both internal and external customers. Candidate needs to have the desire and ability to take ownership and responsibility with little direction. A working knowledge of Unix/Linux and MS Windows systems. A good knowledge of Ethernet applications/protocols such as TCP/IP, web and internet applications. Ability to use appropriate diagnostic equipment to troubleshoot board and system failures to the component level. A thorough knowledge of test theory and application. Ability to investigate a provide root cause / corrective action. Expert knowledge in National Instruments LabVIEW is a big plus. Experience with Agile (or equivalent PLM system) a plus. Work closely with manufacturing and design engineering groups to resolve manufacturing issues and provide closed loop feedback. Good verbal and written communication skills using Microsoft Office tools. The candidate should be familiar with basic reliability concepts and be skilled in using analytical tools to provide various metrics to predict trends and provide feedback to our CM to improve quality and production capacity. The candidate should be familiar with test techniques and methods for a variety of computer and networking hardware types. Having previous experience in working with a Contract Manufacturer is a big plus. Must be an excellent communicator in both verbal and written, English and Chinese. Excellent organization skills. Proven ability to multi-task. Must demonstrate the ability to take the initiative and be highly motivated. Must be able to work in a rapidly changing work environment. Qualifications BSEE degree or equivalent with a test engineering background in PCBA functional and system test. The candidate shall hold 10+ years industry experience with familiarity of high tech manufacturing relating to both board functional and system level testing. Physical Demands and Work Environment Must be a team player with a hands-on attitude. Duties require the ability to utilize a computer keyboard, communicate over the telephone, and read printed material in both English and Chinese. Duties require the ability to travel via automobile and/or airplane, and may require being on call periodically and working outside normal working hours (evenings and weekends) Domestic and international travel may be required on a periodic basis. F5 Networks, Inc. is an equal opportunity employer and strongly supports diversity in the workplace.
  16. I recently discovered a bug in the .NET 2.0 framework that bit my database code in LabVIEW hard. Apparently, if you send a string to the sql.net APIs that is a certain length then you will get this bogus error. http://support.microsoft.com/kb/971990 My workaround is to capture this error where I call the .NET API and then pad the sql string with an extra space and try the command again. Still, kinda sad they would miss something as basic as memory block allocation in a core library. Hope this helps someone save some time... -John
  17. Here is another good discussion of that article: http://blog.objectmentor.com/articles/2009/09/24/the-duct-tape-programmer My favorite comment about Joel was: "never take software advice from a bug tracking system salesman".
  18. I used to respect Joel, but if there was a way to comment on that article, I would simply tell him: 'you are an idiot'. The line that really got me was: "If there’s no unit test the customer isn’t going to complain about that.”". Sure, that is what Microsoft has been thinking and doing all along. The world is their beta (and often alpha) tester! Who cares if it is good, as long as it ships. Well, I have spend MANY hours of mine and my employer's time dealing with the bugs that these 'duct tape' programmers leave in the code because they are too lazy or stupid to come up with a decent set of requirements, design and test plan and then take the time to actually implement it! Wiz-bang features for the sake of elegance may be a waste of time, but careful planning, execution and testing of ANY code is CRITICAL. I don't care if it is going in a 747, a desktop OS or an mp3 player. Just because it ships doesn't mean it is good. /rant -John
  19. Look for all ideas by 'jlokanis'. I have posted several. I liked your .NET idea! Kudos!
  20. Cool. How did you do that? I like it but would suggest you have the pallets 'snap' to a grid of some sort so we don't have to nudge then around. Or, let us lay them out and then choose a menu item to 'snap and align' them. Where can I get a job playing around with LabVIEW GUI stuff all day and still get paid?
  21. Closing the parent node invalidates all the children nodes. But, it should error, not crash.
  22. I have not been impressed with the quality of Dell laptop components. I would look at the Thinkpad or better yet, get a MacBook Pro and use bootcamp.
  23. Thanks for the detailed reply! Sorry for not responding sooner but I was on vacation. The DLL in question will be performing some math on DBL arrays of data. It will not be a 'LabVIEW only' DLL. I think there is enough info here to answer all my questions. Still surprised I could not find this info on NI.com somewhere... thanks again, -John
×
×
  • Create New...

Important Information

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