Jump to content

Sergey Kolbunov

Members
  • Posts

    46
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Sergey Kolbunov

  1. QUOTE (Yair @ Dec 2 2008, 12:49 PM)

    I didn't look at the code, but it was mentioned in the thread that the client assumes that the server VI is in memory, so you might have to make sure it's in the build and that it's set to run, as I've said before. It really depends on how the code is used.

    Alternatively, it's possible that you have a problem with the VI server ports. If your EXE has the same VI server port as LabVIEW, it will open a connection to itself. You should specify different ports for the EXE and the dev environment. This is explained in more details in the thread which was mentioned at the beginning of this thread.

    Thank you Yair, I had wrong VI server settings for the project (port and machine access list).

    May I ask one more question? Is it a way to change VI server port dynamically at runtime when I start an executable? Say, if I need to start several instances of server with one exe.

  2. Yair, Rolf,

    my point is that the above Network Queue VI Server example works fine out of Labview project but doesn't work in a project or as built application. I'm trying to figure out what's wrong can be with the project. Does somebody try to use the attached Network Queue VI Server code in a project? This code is useless for me if I can not include it in built application. :(

  3. I'm playing with the Network Queue VI Server example. So far a Server Example.vi is ran by itself in development environment everithing works fine, Client Example.vi may run by itself, in the project or built executable. As soon as I build executable for the Server or even run it in their project, I get error 1004 "The VI is not in memory." I tried both at local host or different machines. Appropriate IPs are defined in Tools>Options>VI Server:Machine Access.

    What I'm missing?

  4. I'm trying to figure out would VISA asynchronous mode benefits for my application.

    I'm sending a large amount of data via VISA Parallel, TCP/IP or USB and these data generate responses (significantly less amount of data). So receiving depends of transmitting the way that without transmit we have nothing to receive. The device under test generates response as it gets enough data for that. I send data in chunks (1000-20000 bytes) while the total amount may be very large (20 Mb and more). Transmit/Receive timeout is set to big enough value because a device under test can be slow in receiving/processing data.

    What I expected is that in asynchronous mode my transmit and receive processes would be independent, i.e. do not block each other.

    What I see in fact both in synchronous and asynchronous modes that a receive process may wait for response and block a transmit process from sending the data what will produce that response :) Looks like Transmit and Receive still work via one door even in asynchronous mode.

    As I understand from this article http://digital.ni.com/public.nsf/allkb/ECC...6256F0B005EEEF7 locking take place in asynchronous mode anyway and just suppose to take less time, but in my case when I have no actual data to receive the asynchronous receive mode ends up with receive timeout the same way as synchronous mode.

    So, do I need to synchronize transmit and receive processes anyway (do not run them in parallel carelessly)?

  5. Hi,

    BTW I don't think to many people can read your boolean control label even not because it is in Russian but because they don't have the russian system fonts installed. I can not read ever, that is what I see "Óáèòü ëàáâüþ". But let me guess "Убить лабвью" (Kill labview)?

  6. QUOTE(crelf @ Aug 9 2007, 10:04 AM)

    I'd disagree with that one - I think what you've described isn't a major defect - you're use of the word "undesirable" means IMHO that it's not quite what we wanted, but it'll do. To me, the word "defect" isn't the one we should be concentrating one - it should be "requirement non-compliance". A defect is completely subjective, whereas a requirement compliance is traceable.

    Heh, I agree that everithing should start from requrements and a requirement compliance is traceble while defect is subjective. You are right, "requirement non-compliance" metric should only be used for the defect density calculations. Then a "Major Defects" term in karthik post is not accurate and should be replaced by "Defects" aka "requirement non-compliances".

    But I told about a measure of "majority" of a defect. Saying "undesirable to a customer" I assume that requirements were developed by the customer specifications. How can you measure "majority" of "requirement non-compliance"? It can comply or not comply. In other word, what defect is critical and must be fixed immediately and what one is not critical and can be postponed or deffered? In my experience I don't remember any complex project where ALL found defects have been fixed in the next build. ;)

  7. QUOTE(Gary Rubin @ Aug 9 2007, 09:14 AM)

    Maybe this a reflection of my ignorance of Software Engineering principles, but isn't that more a function of the programmer than the programming environment?

    Edit: Nevermind - misconstrued the original post; he's not asking what the Defect Density is in Labview code, but how to measure it.

    Sure, this is a function of the development and testing teams to define what are Major Defects. Programming environment can just give you a "number of nodes" value to calculate Defect Density.

  8. QUOTE(Louis Manfredi @ Aug 9 2007, 08:52 AM)

    But in that case, what is a minor defect?

    Best Regards, Louis

    Minor defect is a kind of defect that customer can live with. Another name for minor defect is enhancement. Again, I'm talking only about an interface and functionality visible by the customer, not about a coding style or architecture. Problems in these areas are Internal Defects and Enhancements with their own criteria of "majority".

  9. QUOTE(silmaril @ Aug 8 2007, 09:24 AM)

    I think for all those "measurements", lines of source code can easily be replace by number of nodes in LabVIEW.

    Just open this dialog: Tools >> Profile >> VI metrics

    and see if that helps you further.

    The more interesting question is: How do you define a "Major Defect"? ;)

    Oh, this is a philosophic question. ;)

    I suppose that "Major Defect" is a defect what affects an application functionality or interface the way it is undesirable to a customer. :rolleyes:

  10. QUOTE(yen @ Jun 17 2007, 03:19 PM)

    Yes, the point of the bottom one was just to show a simpler way of finding the changed element.

    I don't know which would take less CPU work (I'm guessing the top one as well, but it is possible that the overhead involved with handling dynamically registered events would flip that around), but when you're talking about something like this, performance is practically a non-issue.

    I understand that performance is not an issue here, this is a theoretical question. Anyway, dynamical events look more elegant. Thanks. :yes:

  11. QUOTE(yen @ Jun 16 2007, 02:37 PM)

    yen, my variant is nothing else than a sort of your bottom event structure. But your variant with dynamic events is really awesome :thumbup:

    By the way, which of these alternatives take more processor time etc? The one with dynamic events has less code repeated with each event for sure.

  12. QUOTE(dsaunders @ Jun 13 2007, 10:24 PM)

    David, thank you for the idea. In my application I need to be able to use different preset keybords and get a boolean text of the pressed button. Array of clusters doesn't work for me because my keyboards are not "array" kind so I use a cluster of booleans. My goal was to handle all key presses in one event. Ok, it can be done if I assign each individual key's value changes to one event but this solution does not look elegant, I would like to to use <cluster><all elements><value change> event. After a slight modification I got this:

    http://forums.lavag.org/index.php?act=attach&type=post&id=6105 http://forums.lavag.org/index.php?act=attach&type=post&id=6106

    All keys have "switch until released" mechanical action to transmit "key down" when a button pressed and "key up" when it is released.

    http://forums.lavag.org/index.php?act=attach&type=post&id=6107

  13. QUOTE(orko @ May 15 2007, 11:40 AM)

    I found that there were a number of questions on the CLAD that required you to really *read* the text/block diagram (more than once!) to not get tricked into the wrong answer. Be very careful when presented with a question that seems "way too easy". Also be aware that there may be questions that are very similar to the CLAD prep exam, but not necessarily exactly the same...

    I also found that the hour that they gave me was plenty of time (I finished up with 20 minutes to spare) so make sure (if you are taking the computer based exam) that you mark any questions that you aren't 100% sure of as "review" with that little checkbox. That way you can carefully go over them at the end and catch all of those "tricky" questions.

    Good luck!

    Joe

    I've passed the CLAD test! Many of questions were ...er unexpected. Like you never think about some staff when you have LabView at hand.

    Thank you Joe for your piece of advice regarding the questions "review", that helped me a lot. :worship: I've changed many of my not 100% sure answers and looks like I've done that correct way! ;)

  14. To don't create a new topic... I'm going to take my CLAD test next Wednesday. What is your experience with CLAD (if you still remember that :) )? I've passed NI LabView Fundamentals online exam, does it about the same as CLAD test or CLAD is more difficult?

  15. I've wrote a program for Light Controller testing using Producer/Consumer with events design pattern.

    It monitors the controller digital outputs, I use change detection technique for this.

    That I don’t like: If DAQmx Read.vi doesn’t detect change it runs forever if timeout is -1 or exit with error if timeout is positive. For my device under test changes happen not too often, so most of time of execution it is waiting for change. I’m using events mostly to stop the upper loop and to handle errors coming from the bottom loop. DAQmx Read.vi sits in a Timeout event and exits every second just to handle other events if changes were not detected.

    Everything works fine this way, but this solution doesn’t look nice for me.

    Any thoughts on what else can be used here? Main vi is Light Box.vi

  16. Hi, I'm new member of this forum. I'm software test engineer mostly involved in embedded applications testing and I'm looking forward to implement automated testing for my company products. I've been using LabView for about a year. So far I've done with several control testing tools using LabView 8.20 and PXI with AO, DIO and Switch boards. I don't have to much time for this right now because I'm 100% busy with test docs update :wacko: and my automation activity is always treated as "minor, in your spare time" :headbang: I'm the only enthusiast of LabView in my company. What else, I've passed LabView Intermediate courses and prepare myself for CLAD exam.

×
×
  • Create New...

Important Information

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