Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by todd

  1. Probes and "Get LV Class Path.vi" have useful information about whether you're down-casting properly:
  2. The period snuck in: https://decibel.ni.com/content/docs/DOC-15560
  3. You folks with your luxurious "written requirements" and "specifications"! All my reqs and specs are transmitted verbally and telepathically. Not a complaint - it's fun when the customer says, "Wow! I didn't think that could be done!"
  4. Lapdog doesn't force you to really learn LVOOP.
  5. http://lavag.org/topic/15609-lapdogmessaging-updated-to-version-21/page__hl__lapdog__fromsearch__1
  6. Sorry, change the constant outside the sequence to True, then swap the cases for the sysexec.vi. Running that shows me the VI in the project (since I have a project open). The snippet you posted sent key downs, but not key ups. Casting one of your clusters to a U8 array shows a different number of Bytes than the method in the zip file. You may need to adjust the representations, or pack the Bytes as in the zip file helpers.
  7. I don't have 2012 on this box. However, I think sending an array of pInputs is too big. Try sending one keyup/down and one wVk at a time. I found the guts of this dll call somewhere on the NI forums. user32dll.zip Edit: Oh, I sped through and missed your array indexing. Perhaps try the U8 data format in the zip file.
  8. I have a MiniView GCS1804 KVMP (kvm and peripheral). It has a serial terminal, but I haven't tried to use that part.
  9. Running that VI natively, here, it shows 0x18 - but it also performs the action (This VI in Project). I mentioned DirectX as the way that "Acquire Input Data.vi" probably works within the guest OS as a way for LV to see those inputs. The event structure probably ties in deeper than that. I imagine Parallels injects keys using a driver that is installed in the guest - or somehow uses "SendInput". Either way, it's a very tricky thing to manage. KeyOn and KeyOff need to be sent in such a way to avoid repeating keys, neglecting to send KeyOff can leave stuck keys, etc, etc. One of the Parallels threads mentions trying: Virtual Machine -> Configure -> Options -> Advanced -> Optimize modifier keys for games. Oh, I have an old Parallels license around somewhere at home - maybe I can play with it tonight.
  10. Short answer: I don't know. That VI calls a LV function called getKeyboardState, which may be an abstraction of Microsoft's DirectInput API. If so, it returns a list of keys that are pressed. But that may be separate from the "Modifier Keys" bitfield in a keyboard report. Just poking in the dark, here, and drawing a target that someone who knows better will hopefully shoot down
  11. Perhaps Parallels isn't sending all of the HID Keyboard information to the guest OS. One way to see may be to use System.Runtime.InteropServices.Marshal.ReadInt32(). I don't know it well enough to post code, though.
  12. Motors manipulate devices. Instrumentation measures the devices. Different types of device data collection and different types of motor movements have different timespans and different requirements for synchronization. Currently, I use a left-to-right flow along with notifiers to synchronize things. I've been trying to figure out how to have the devices' drivers and the motors' drivers message each other. Is that vague enough?
  13. todd


    Plus, it's a By-Val copy of an object with the ability to change its methods.
  14. Are the results in each method repeatable?
  15. Ha! I'm not sure if my contribution is just imaginary, or full-on negative.
  16. Arg - I knew that applied to targets, but I didn't know it worked with projects.
  17. But 0 is still empty. You'll have to skip zero and start counting at one. (Add an Increment after the iteration terminal in the For Loop).
  18. I used a separate loop to query "Bytes at Port" then read that many Bytes and put them one by one on a queue. (Termination character did not apply to that binary, streamed protocol.) With the Windows com port at 921600, groups of between 500 Bytes and 4k Bytes are available as close together as 300ms. With a VCP DLL at 921600, groups of between 100 Bytes and 3k Bytes are available as close together as 5ms. So my guess is that the latency settings in the VCP allow for a "long" timeout (255ms before returning: "you expected n Bytes, but they did not all arrive"), and a short timeout of 2ms - which works well for the way I was using it (always reading available Bytes).
  19. I forgot another point: I've used Windows-native com ports at 921600bps (with a full pipe). VISA r/w did not slow me down. FTDI running at multiple Mbps slowed me down until the latency was adjusted.
  20. Oops, forgot the picture. This is for a virtual com port, though. It's in the settings because of that particular VCP's DLL. Dinking was definitely the idea.
  21. If there a "latency" setting somewhere - either in a PN on that VISA reference, or in Device Manager - whose value can be decreased?
  22. Have you seen Reactable? http://www.reactable.com/products/ (youtube links in there) They have hardware and software versions, though both rely on a screen. If only each Sense and Action Cubelet could be turned into a Min, Max, Blocker, Passive or Inverse Cubelet when touched with a "Be This Instead" Cubelet. Or touch an Inverse to the business side of a Sense or Action to change it's behavior.
  23. Ignore error 1144. Then if the VI is already open, it will still run. While running, right click inside the subpanel to see "Open Block Diagram". Wait, that's in the subpanel help, right?
  • Create New...

Important Information

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