Jump to content

Yair

Members
  • Posts

    2,870
  • Joined

  • Last visited

  • Days Won

    44

Everything posted by Yair

  1. QUOTE (tcplomp @ Jun 30 2008, 07:13 AM) Which is why I said QUOTE enable debugging on the VI or make it non-reentrant
  2. QUOTE (GraemeJ @ Jun 29 2008, 06:57 AM) Try looking at the property nodes in the main VI and understanding what they do. Removing them also might help in understanding this. You can also try placing probes on the wires or running in highlight execution to understand why this works. Once you understand that, you might be able to change the code to do what you want, including adding the calculations. If the calculations rely on some or all of the previous data, you can hold it in a shift register, or just add it as more plots in the main VI, simply by using Build Array. QUOTE Because I am new to LV I do not have an intuitive idea of the memory allocation due to increasing array size. Could you comment further? LabVIEW takes care automatically of memory management. That's truly one of its greatest features, but it also means you have less control and in certain cases need to be aware of what's going on. For every piece of data LabVIEW holds in memory, it will need to ask the computer for enough memory to hold it in. When you keep making the array larger inside the loop (by using Build Array) LabVIEW has to repeatedly ask the computer for more and more memory to hold the array in. This has two basic implications on performance. First, allocating memory takes time, CPU cycles, etc and means that memory will not be available for something else if it is needed. Second, LabVIEW holds flat data (like this array) in consecutive memory locations. If it needs to make more room for the array and it can't find it, it will have to find a new place where it will fit and move it there. If it can't find such a place, it will have to ask the computer to make the room. If it still can't find it, you'll get an out of memory error (although those are relatively rare). The bottom line of all this is that's it is not advisable to repeatedly resize arrays in a loop. I'm not saying it will crash the computer or hurt performance, just that's it's problematic. Instead, it's better to set the size of the array once and then replace. If you do need to resize, it's usually better to resize in chunks and then do the replacing. You can find some LabVIEW tutorials http://wiki.lavag.org/LabVIEW_tutorial#External_Links' rel='nofollow' target="_blank">here. QUOTE A problem I have had with your vi [using LV 8.5] is that it will only run once and has to be closed and restarted for the next run. That's because it was a quickly written example and it simply has a bug. I'll leave it to you to debug this, but I'll hint by pointing at the bottom shift register. If that doesn't help, you can enable debugging on the VI or make it non-reentrant and then use probes to understand what's going on.
  3. I don't think there's any way of interacting with that dialog, as it's part of the IDE and not written in G. You might be able to access its data through some OS API calls, but that's just a guess. What's the use case for something like this? If you want to document where a VI is called, the hierarchy window or a screenshot with the Callers menu item open might be better for you. If you're searching for something other than a VI (e.g. an unbundled cluster element), I'm not sure there's anything you can do, but you might wish to refactor the code to use any form of OOP. That should change those points to be in a single VI, but is a lot of work. If you want to be able to modify the code and see what the differences are, source code control (e.g. Subversion, which is free) would be better, but you could also just copy the hierarchy to another place on your hard drive.
  4. QUOTE (Aristos Queue @ Jun 27 2008, 02:18 PM) Well, I still don't really understand - shouldn't the total length, including padding (step b), be 20? Or did you mean total length including the length bytes? What's the actual use case for having two length bytes? If you have just one length pad, you should easily be able to calculate the needed padding, shouldn't you? QUOTE \t is the tab character, which I thought was character 11, but I checked my ascii table. Turns out it is 9. I corrected my original post. I also added the hex view for clarity. \b is not hex 11 as you thought. It's the slashcode for character 8. I actually had a double mix-up here. I didn't check either and thought tab was ASCII 8 and backspace is ASCII 9 (when it's the other way around). That would explain why I thought that \b is ASCII 11. I also fixed the wiki article.
  5. LEGOs have INSTRUCTIONS??? I was also one of those who had a big box (or few) just full of stuff to create stuff from, but we also had stuff from a few sets, which was useful. Incidentally, after the NXT came out, I got one for a couple of days. I took one of the cars I built, jury rigged the NXT on it so that it could both drive and steer it, built a small VI to run it and had a working robot in a couple of hours of work.
  6. Great info. QUOTE (Aristos Queue @ Jun 25 2008, 04:36 AM) Which of the two bytes is the PStr length, 0x12 or 0x10? Bacteria.lvclass is 16 (0x10) characters . If 0x12 is the length and 0x10 is the beginning of the string, then the string is 0x11 bytes long and needs three null characters for padding, not two. If 0x10 is the length, there shouldn't be need for padding. Or am I missing something? QUOTE Next is the first version number: 5.6.7.8. That's the version number for Bacteria.lvclass. Next is the second version number: 1.0.0.11. Are you sure you didn't switch the 8 and 11 here? In the code, \b comes in the first part and \t comes in the second.
  7. So basically, the boolean is set to F in either case. That's a classic Goldberg. P.S. Stephen, if you see this, please thank the kind soul at NI who decided that placing points on wire junctions was a good idea. It would really have made reading this piece of code easier.
  8. You do realize that the 60 seconds are simply determined by the constant, right? All you need to do is change the value on that wire to another number. Incidentally, you should watch your memory allocation. You're repeatedly increasing the size of the array, which might hurt performance considerably over time. Essentially, it seems that what you're looking for is an XY chart (something where you only add the new values and it remembers the old ones). There is actually a shipping example of this, but it's not very nice, so I created a quick one myself once and you can find it here. Just for the fun of it, here's another version of it which creates a vertical chart.
  9. This might be useful for us. Send me a PM.
  10. Yair

    PDA connect to PLC

    I believe the port on the PDA is a standard serial port, which you can address from your LabVIEW program. Usually, only 2 or 3 of the pins in a serial connector are used and the documentation for the PLC should reveal which ones (I believe it's 2,3 and 5 in your case, but you should make sure). I'm not sure, but you might not be able to find the same documentation for the PDA connector, since they're probably proprietary. That said, you can try searching or finding it out yourself by hooking it to a PC and checking one pin at a time. Once you have that, I believe that making a direct connection should simple. Personally, I usually prefer using a TCP to serial converter and then connecting through a Wi-Fi access point. Costs more, but saves you the trouble of having to set up cables. Incidentally, how are you planning on talking to the PLC? I tried talking to a Moeller PLC a few months back and it took me a long time before I found partial documentation. I wouldn't mind more information if you happen to have it.
  11. QUOTE (Justin Goeres @ Jun 24 2008, 05:25 PM) I want a 16 bit alpha channel on VI icons, just for the hell of it. If I can see 16M colors, I can also see 65K shades of transparency . QUOTE (Justin Goeres @ Jun 23 2008, 11:24 PM) I still haven't upgraded my Windows LabVIEW to 8.5.1; I assume that's the difference between the Getting Started windows. The difference is caused by the OS. If memory serves, Mac and Linux have the same GSW and there's another one for RT.
  12. A few minutes of searching might do you good if you know what you're searching for. Incidentally, a simple search would also reveal several LabVIEW implementations of Keybd_Event, which would also save you some time. Like this, for example.
  13. Windows doesn't have pipes like Linux, but if you search rolfk's posts, you should find a link to an OpenG pipe library for Windows.
  14. QUOTE (crelf @ Jun 19 2008, 10:08 PM) Or that they're voting maybe, or that they didn't notice it. I'd give it a couple of days more before deciding either way.
  15. It looks like only 12 people cared enough about this to vote. Does anyone else want to?
  16. I'm not sure how the RT memory manager works when allocating strings, but I would suggest having a constant size for all strings and then replacing inside the string. You can do this by initializing the string to N null chars and then using replace substring. If you want to save time on writing a circular buffer, you can use this one.
  17. Yair

    Hello!

    QUOTE (Justin Goeres @ Jun 18 2008, 12:21 AM) This is particularly amusing if you happen to have a low ceiling fan over you when you do this .
  18. QUOTE (Darren @ Jun 17 2008, 10:27 PM) And if someone was free from worrying about long release cycles and didn't care about polishing it, he could have been using such a feature http://forums.lavag.org/A-LabVIEW-tool-suggestion-t8976.html' target="_blank">for months . I wouldn't say I don't remember what the palettes look like, but it has been very useful.
  19. QUOTE (PaulG. @ Jun 16 2008, 04:26 PM) Yes, but there are advantages to having something like this structured and in a single place. Who knows, maybe you'll even want to participate to. Maybe Will Riker's version of "Night Bird" is something that changed your life and you want to share it with others .
  20. Well, I'll have to admit you caught me off guard. I posted it because I liked it, but I wasn't planning on having to explain it. As the title says, I was just wondering what people who couldn't even understand the lyrics thought of it. I'll try to cover everything brought up in the thread, but I won't necessarily go into details. I found this like everything else on the net - through a link. In this case, it was probably through one of the music review sites I occasionally check out. The band (which I knew before) is called "Bein HaShmashot" (literally "at dusk", but it has too much context to be easily translatable) and the song is called "Badmama" (in the silence). In general, I don't think that the interpetations brought up in this thread are invalid. Once something was created, it can have different meanings to different people and that's legitimate. Some of the points mentioned here are exactly the same as what the author had in mind while others are far from it. After the questions here, I had to do some research to understand the meaning of this. Personally, I usually don't much care about the meanings of lyrics and videos - I'm in it mostly for the music and I often know lyrics by heart without thinking at all about what they actually mean. In this case, as Gabi pointed out, the lyrics are very much not self explanatory. After some research, I eventually emailed the guy who created the video and asked him about it. He was happy to hear about this and gave a short answer, which I'll paraphrase here, along with some of the stuff I knew previously and stuff I found in my research. The lyrics I won't attempt to translate the lyrics (unless people really want me to), but here's a primer: The lyrics are based on another poem (which I didn't know). That poem talks about how the poet goes to the desert every century and buries thousands of organs (limbs, eyes, mouths) he grew over the years and comes out with the standard number of each. At this point, he looks strange to others and so to himself and he starts growing them again and the cycle goes on. The basic point in the original song is that you become false over time. You lie to people, treat different people differently, etc. The guy who wrote the poem really does go to the desert to meditate and "clean up". This song is based on that poem. For example, a rough translation of the chorus is: "In the silence, among the thousands of things which didn't seek out their identity. There we will return to our image". The video The video is actually an edited version of a video the animator (a guy named Yoni Salmon, who I don't know personally) created as his graduation project from the design school he went to. The original video has a different sequence and has some first person narration explaining it better. The video is based on the following text from Leviticus (16:9): QUOTE Essentially, you have two goats, one which is sacrificed and the other which is sent to the desert to atone for the sins of the people. As a side point, the actual word used is "Azazel" which some people consider to be a demon and others consider to be a cliff the goat is thrown off, so score -1 for Ben regarding the goat not falling off the cliff . As another side point, the word "Azazel" is used in Hebrew to this very day as "hell". As a third side point, you now know the source of the term "scapegoat". The video deals with choice and responsibility. After the suited goat picks the bad lot, he decides to accept his fate and go to the desert. In the original video, he only gets to the desert at the end, after the other stuff happens to him, and it looks like all of the other stuff is supposed to make it harder for him. The whale represents the forces of chaos and destruction in the process. One example I can think of is the story of Jonah, who was swallowed by a whale after choosing not to do what he was ordered to do (although the original text actually only says "large fish"). Apparently, the female donkey (like Balaam's ######) represents femininity and animism - it can talk but chooses not to, as opposed to the goat, which is "human". In the end, the goat decides to face his fate and is reborn, in line with what is said in the original poem. Like I said, the edited video which appears with the song doesn't reflect all that too well. I hope the explanation is satisfactory. As mentioned, I wasn't planning on having to explain it.
  21. QUOTE (crelf @ Jun 15 2008, 08:52 PM) Quite possibly, but that's what I remembered it to be associated with. If I should ever get to Detroit (is there any reason to? I got the impression it's mostly a desolate industrial city) I'll be sure to follow up on that invitation.
  22. QUOTE (crelf @ Jun 15 2008, 09:03 PM) Yes. While LAVA is LabVIEW oriented, it is also a community, and part of the point here is to strengthen the community feel. The other part is filtering - the web is full of knowledge and information and filtering it is the difficult part. Having a group of intelligent people create that filter should make it interesting and managable. I'm sure this is not a unique idea and the lounge does partly fulfill it. I just think it has more value than the generic nature of the lounge and could be applied nicely here without creating too much noise.
  23. Actually, Model T Fords were initially sold in a number of colors, and I think none of them were black. Edit: Woohoo, Wikipedia supports this. I MUST be right!
  24. I'll give people time until tomorrow if they want to add their thoughts. Then I'll provide the details. In the meantime, I created this thread to see if other people might also wish to post content like this. QUOTE (neB @ Jun 15 2008, 04:50 PM) You can hear that? If so, you've got a much better ear than I do (and I do play a bit).
×
×
  • Create New...

Important Information

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