Jump to content

Jon Kokott

  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Jon Kokott

  1. This is specific to AEs: the "typical" usage of an action engine is to use it as a SINGLETON and that the AE itself IS the API used (have fun scoping that without another abstraction layer.) Using it as a CBR node call destroys any ease of maintainability associated with AEs (typdefing the connector pane, re assigning etc.) the only alternative at this point is to make the input/output a variant to get around the octopus connector that results, performing to/from variant. I think if you are good enough to do that, you might as well just step up to classes and type-protect your inputs/outpu
  2. its not that AEs are the only ones that suffer from god syndrome, its that they always end up that way. (its a global singleton for god's sake!)
  3. I'd prefer that functional globals (actually any USR) died a slow death. It is probably because I see people abuse them so easily (access scope, callers are more difficult to track than other by ref mechanisms.) As far as AEs, if I have to look at another octo-deca-pus I might just lose it.
  4. So the connection is actually being established now (it was using the incorrect hash), but I get an error code 62 on the first write to the connection...
  5. I'm assuming that this information is correct for chrome: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17#page-7 section 1.3 This says that the protocal uses a SHA-1 hash, whereas the example is using a MD5. I'll start with that is suppose.
  6. chorme "16.0.912.63 m" is immediately closing the connection, anyone got it to work?
  7. I've done it, it worked. I was using identical binaries on different machines, all of which ran lv2010 sp1. In the future I would probably try to load the class directly from one disc location for both instances using either the load class from path primitive or copying the actual file (probably in a packed library or .llb) and running it that way.
  8. My experience with network shared variables is that they are ridiculously slow. We've always used a tcp connection to share data instead, and found several orders of magnitude of performance achievable.
  9. multiple subpanels "off to the side" or hidden is a reasonable approach. The alternative is to dynamically launch new front panels (they wont be in the same window then) Which ever one you like the look/feel of can dictate what you do. ~Jon
  10. One more thing, moving of subpanels/customization is very difficult. you CAN do what you want to do, but it'll be a pretty massive effort. the best example of how to do this was done by jack Dunway during a coding challenge from a few years back. It was called the "Cogniscent UI" or something similar. It allows the run time user to re-size the subpanels and re-position them at runtime in a very elegant way. At any rate, you should check it out because it is just awesome labview.
  11. Take a look at the actor framework. It is very well suited to what you want to do, and is probably an ideal solution. ~Jon
  12. I'd love to dump 2010 upgrade to 2011, just gotta get the right people on board...
  13. I don't separate compiled code. Additionally I've forced recompile many, many times. That doesn't sound right...
  14. I have inline subvi calls inside a reentrant Dynamic dispatch. It worked for a while, then it started crashing labview. I believe this started happening when I modified the contents of the class being dispatched. Once I removed the re-entrancy it seems to be solved. Anyone encountered anything like this? ~Jon
  15. I've given up on trying to do this. It is an incredibly difficult task to manage mutation history alone and have things work. I've resolved to never support old objects (even though it sometimes works.) and always store as binary. If someone needs to edit the file I create an editor program which is released alongside the actual test software, and use windows to dispatch it on a special file extension. Probably not what you want to hear, but I've had waay too many headaches from people manipulating .ini, xml, or any other type of human readable file. ~Jon
  16. Because its terrible. Check to make sure you have the "unreleased" fix for endpoint, they may have allready pushed out an update since the version from a few weeks ago bled memory so badly (it was literally 10MB/min for me.) I think it straight up crashes around 250 MB of memory. Anyway, you'll have to talk to your IT department about your individual settings, but my advice is to disable the firewall on all the ports you are using on the test setups. It is TERRIBLE with UDP (as in it will kill your connections, make you timeout, and restart.) We couldn't do TFTP updates on any machine r
  17. Need type definitions for DWORD, LPTRSTR, LPCTSTR. your return type is definitely not double. but convention would say that your function prototype should look like: int32_t GetLongPathName(const char* lpszshortpath, const char* lpszlongpath, int32_t ccBuffer) Check this out: http://www.codeproject.com/Tips/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc I think that lpszshortpath is expecting a Unicode string, so you may have to convert the actual string you put in from ANSI to Unicode. ~Jon
  18. The idea is you don't do the same processing in each slave. In the navigation system you may have several unrelated processes that act on the same command "get directions home." One loop might search for the most direct route, another loop might try to find a route that results in the highest average speed. The results are then collected and based on the desired parameters (most direct route, least amount of time in car, avoiding hiways, etc it uses the correct route) Would the actual implementation actually use this kind of a transport layer? That I'm not so sure of. The actual implemen
  19. You can replicate notifier behavior using the dequeue/SEQ if you only need one "slave" loop. The difference is that that pattern doesn't scale to multiple "slave" loops, you are scaling it by creating multiple queue references, vrs with a notifier you only need one reference. There is one other subtle difference between notifiers and an SEQ implementation: With a notifier you can always retrieve the last notification using the "get notifier status." It will immediately return the last notification value. If you were using an SEQ you would have to store the last notification somewhere else
  20. Trap the error on a released notifier? I don't follow. What other error conditions would be presented from a notifier? Unless you are shifting the link to the outside world (i.e. notifier/queue) and somehow use another reference to get a new "com link" I'm not sure that would be practical. Since all of your objects are "byval" you couldn't even do this. I'm not following you on this. ~Jon
  21. Not really the modern NI template for M/S, but completely reasonable. I don't go back to LV5 so I'll presume that releasing the queue did not interrupt the dequeue/preview in those days with an error. I've done this, and I hate dislike it. It effectively takes an event based processing node and turns it into a polling mechanism. Why have two asynchronous operators in one loop? One of them is necessarily polled to keep the loop going (either by the master to notify "run" or timed out to indicate "don't stop.) This is debatable, but I've taken to releasing the queue to destroy loops. I fe
  22. I'm not sure an xnode will be suitable for a collection. You have to know everything about the type in the wire and you'll be stuck with the type after you create the collection. I think you can do what would be useful just using standard class programming, you'll just get a ton of coercion dots.
  23. I don't think there is a licence. You gotta know the tricks to hack them together. You can learn alot just in these forums.
  24. I'm justing trying to make a distinction between the NI template (which I've said before is terrible) and the code you are actually writing (which is actually a good example for people.) I don't wanna get hung up on the vocab, it is just irritating to me that there is this template out there in the wild called "master/slave" which noone uses and is continually talked about. At any rate, here is some xnode magic I've been working on. I have no idea when I'll finish it, but it is in working order as of today. It fits fairly well in with this discussion anyway. It needs to be optimized for r
  • Create New...

Important Information

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