-
Posts
429 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Mark Yedinak
-
diffrent of "property->Value" and "Local Variable"
Mark Yedinak replied to MViControl's topic in LabVIEW General
The ignore errors inside only pertains to errors generated inside the property node, not the error passed in. I wish it did allow you to ignore input errors. this would be handy when using the error cluster to force data flow. -
You forgot to add short. Add ten years to your description and you could have been describing me, including the short part. At one time the running joke at my company was that you had to be short to be a test engineer. I was the tallest one at a whopping 5' 6".
-
Naming Conventions and Project Organization
Mark Yedinak replied to Daryl's topic in Application Design & Architecture
Yes, that is a tough situation that you are in. As others have said try to get some training for everyone centered around software engineering techniques. Another thing you can do is try to persuade by example. Start implementing changes on the code that you work on. Chances are good that your code will start to improve, have less bugs, be more stable and get completed faster. As others start to see the benefits of doing things differently they may start to adopt the things you are doing. Unfortunately this can be a very slow process but over time it generally works. You do need to present your managers with solid information as to why changes need to be made. -
Naming Conventions and Project Organization
Mark Yedinak replied to Daryl's topic in Application Design & Architecture
I think it is important for a single project to keep things consist. So if you have multiple developers on a single project everyone should agree how things are done on that project. If everyone is working individually then there isn't an issue if everyone has their own style but it can be problematic if there are multiple styles on a single project. -
Naming Conventions and Project Organization
Mark Yedinak replied to Daryl's topic in Application Design & Architecture
While I applaud your desire to see things standardized I don't think you will ever be able to accomplish this. Each project is unique and the project itself may very likely impose a naming convention on it. There never will be a "one size fits all" solution for something like a naming convention. -
LabVOOP Design Patterns, v1.0
Mark Yedinak replied to Aristos Queue's topic in Object-Oriented Programming
I completely understand why you would insist on using data flow. It is an extremely powerful programming paradigm. However, there needs to be a good way for parallel tasks to access a shared resource. This seems to be very difficult to do using native LVOOP. I admit I haven't played too much with DVR yet but I can think of many examples of the need to access a single entity or instance of an object in parallel tasks. For instance, an applications log file. In a traditional producer/consumer architecture you would have one loop with an event structure handling the UI events and another loop containing a state machine for the consumer. Let's say I want to allow the user to enter a message into the log while the application is running. It would be nice for both loops to have access to the single log object to allow this. However if I branch the wires I can't do this. Yes both loops would be able to actually write something to the log but what if I change some attributes on the log object. Using strict data flow I have two instances of the log object (where the wire gets branched) and an action such as enabling or disabling the logging of events will only work for one instance, not the entire log itself. I see this as a perfect use of OOP programming but something that LabVIEW's data flow paradigm restricts. An object should not be viewed the same as a wire in my opinion. If I instantiate a chair I don't want two chairs a little later simply because I branched the wire. My object design expects this to be the same chair, not a clone. -
I haven't tried this specifically but I suspect that if you make your subVIs re-entrant it would work.
-
VISA Driver Wizard
Mark Yedinak replied to lecroy's topic in Application Builder, Installers and code distribution
Simply add the inf file to your project and in the build installer drag the file to its desired location. Generally you will want this in Windows inf directory. -
The llb that is attached does support the XMODEM send. You should be able to use those VI's to transfer your files. You may have to modify the send VI's to support the XMODEM-1K transfer if you are going to use it. The CRC VI's will work fine for calculating your CRC's. However you will need to read your file and send it is chunks according to the XMODEM protocol. You can find more information about it here and here.
-
You can check out the code here. I have also attached some code to calculate the XMODEM CRCs as well as the normal CRC-16.I have also attached the XMODEM-VISA.llb that I used. I am pretty sure this is the same llb referred to in the link I posted but if I recall I added the support for 1K transfers. Calculate CRC-16 (File input).vi Calculate CRC-16.vi Calculate XMODEM CRC-16 (Buffer input).vi Calculate XMODEM CRC-16 (File input).vi Get CRC-16 Table.vi Calculate CRC-16 (Buffer input).vi Xmodem VISA.llb
-
Time management is a must when you are taking the test. The four hours they give you fly by. When you take the exam you have to make sure you are always making some progress otherwise you will probably run out of time. Take a few minutes in the beginning to form your strategy and basic design of the application and then start coding. You will not have time to do things over during the exam. Good luck.
-
Thanks. I will take a look at it. It gets hard to keep track of all the posts and what has and hasn't been posted.
-
I also like the look of that. Does anyone have a basic example of DVR LVOOP object?
-
Overall it looks pretty good. As Eric mentioned you definitely want to add more documentation. I would also look pay attention to the alignment of your controls and indicators on your front panels. Also some of the controls and indicators on your subVI were not completely visible on the front panel. You should avoid using the "Use default value if unwired" on the terminals of structures. Avoid wires that flow backwards. I am not sure if NI cares or not but I noticed when I opened a few of the block diagrams for some of your subVIs the code was not center or fully visible. I had to scroll the block diagram. I would avoid doing this too. Good luck with your exam.
-
I would venture to guess that he feels that the cost of a license should be more affordable for the one man shops or part time (on the side) consultants. I would love to have my own personal license for LabVIEW but I know that I can't afford or justify the cost. I am employed full-time and am not really doing any side work so I would have a hard time justifying the cost of my own personal license. With that said I can understand NI's licensing fees and structure.
-
The DHCP/BOOTP server on the network is a Windows 2003 server. It doesn't provide easy access to its address lease tables. I can't rely on DNS since the server can't update DNS tables when BOOTP is used. Our printer's (actually the print server's) default setting is to come up and attempt to obtain its address using any one of the following methods: DHCP, BOOTP, RARP (yes, ancient and obsolete technology), or a method we call GLEANING (which is effectively the ping method you suggested below). It will generally get the BOOTP address first, hence the probelm with the DNS lookup. As you noted, the multiple subnets is an issue with this approach. BTW, our printers already support a specific discovery message on a UDP port. Again, the multiple subnet problem is an issue. In addition, I would have to worry about address contention using this approach. I doubt I can reserve the number of addresses needed to support this on the subnet. This is one of the most active subnets on the test network. I have been searching for such a protocol. I haven't found it yet. It would be nice if it worked though.
-
I test the network functionality of the embedded firmware for the various bar code and labeling printers my company makes. As for asking the admin for an IP address I am the admin and I manage a test network with 25 VLANs, multiple switches, multiple wireless access points and every possible WiFi security. When testing network securities every security is assigned to its own VLAN (subnet) and when testing securities you are not guaranteed the same address each time you test a given printer. We have too many devices to statically assign all the addresses. In addition, the major problem that we have is that individual printers can run different types of firmware. When a printer is switched from one type of firmware (generally a different printer control language) to another its network settings are defaulted and which can mean it switches in normal network security to the default of no security resulting in a new IP address. I am trying to write an utility that would scrub the network for these printers that changed and reconfigure them to their properly assigned network security. These printers are part of a lab that runs long term network stability tests. Manually reconfiguring every printer is very time consuming and a pain in the butt. Since I am the admin I am actually looking at the possibility of querying the network switches for this information. I was hoping to avoid this if possible. However that is the path that I am currently investigating. Side note: The printers do support a broadcast query to identify themselves on the network however there are issues with having this work reliably across subnets, at least when doing the query as a broadcast. Broadcast UDP traffic is not routed across subnets.
-
THis only works if the PC has communicated with the device. In the situation I am working the devices will not only be changing their IP addresses but also changing subnets as well. The local ARP tables will not work since the IP address is required to build the ARP table. The ARP protocol is used to obtain the MAC address when you have the IP Address or the device. Unfortunately it is not designed to work the other way. Besides, there is no way in LabVIEW to force an ARP packet to be sent and receive the reply.
-
This question is not LabVIEW specific but does anyone know a way to get a devices IP address using only its MAC address? I can't using DNS since some of the printers will obtain their addresses via BOOTP which will not update the name server. The only certain piece of information that I have is the devices' MAC addresses.
-
Congrats Ben. How do you find the time to contribute so much to both forums?
-
I haven't seen that movie in ages. I still vividly remember the ending though.
-
Let's see, I have tried all of the following and am always open to trying new things too: beef, pork, chicken, turkey, veal, (the normal stuff), venison (deer), elk, moose, buffalo, squirrel, wild boar, rattle snake, alligator, frog, dog, duck, pheasant, Cornish hen and crickets. There may be a few others that I have forgotten. Then of course there is a whole host of seafood as well. Sounds like my kind of place. If its meat I will generally give it a try. The alligator that I had in Florida was delicious. I need to find some place in Chicago that has it. There is a place in the burbs that usually has a wide offering of game meats but the place is really expensive so I haven't given it a try yet.
-
Actually is was pretty tasty. I would have no problem eating it again. Besides, in Korea the dogs they eat are farm raised much like our cattle, pigs or chickens. I too have eaten a wide variety of animals.