Quick Drop Enthusiasts

cancel
Showing results for 
Search instead for 
Did you mean: 

Using alphanumeric keys directly

Like probably everybody else in this forum, I've enjoyed QD for years now and do actively promote its usage to my students. Since I'm probably also overusing general shortcuts like ALT-TAB or CTRL-TAB recently I tend to develop pain in my left hand and wondered how to navigate around this. Somewhat to my dismay I realize, that pressing alphanumeric keys as they are merely results in the default windows bell ring and since I don't have a cat that takes naps on my keyboard I'd love to see those keys come to utility.

Is there any technical limitation, that would keep me from accessing LV ops like Create > Indicator in a robust way by directly assigning that operation to the 'i' key through a third-party tool (on windows)?

Thanks y'all

Markus

0 Kudos
Message 1 of 25
(11,613 Views)

I didn't fully understand your post but I too know the cramping of many quick drop calls.  I've since wrote some VIs to cleanup code with scripting so less presses are needed.

If you are looking to augment LabVIEW you can do it, but it can be a bit of a pain.  Basically you can write a LabVIEW built EXE, that will open VI server calls to application instances of running development environments.  Then call VI server calls to the running development environment.  But now that I think about it, scripting is not included in the runtime engine, so this would need to be a VI that is constantly running.  That might make some things easier.  So this VI would need to be ran on startup, and it would monitor key presses.  At some point it feels like re-creating the work already done in quick drop but there is some functions that QD doesn't offer.

I've also thought about things like align objects.  Like right now if I want to align left I select my items, then click the menu to align left.  Or quick drop, CTRL+A then L.  But it would be nice to have a CTRL+Left Arrow perform this action.

EDIT:  Oh and this might be a good idea to back, where we can define shortcuts to run something in the tools menu.

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Allow-Keyboard-Shortcuts-for-User-Items-in-Tools-Menu/...

0 Kudos
Message 2 of 25
(7,139 Views)

Try looking into LabVIEW Speak. This allows you to run plugins by speaking. Even if you don't like that, in theory you could take the code and modify it to monitor key presses. The main problem is that I don't think there's any way you can tell when keys are pressed when a regular LV window has focus and nothing else is happening.

Another alternative is to get a dedicated keyboard for that. To get the key presses you would need to either connect it to another device (a computer or an Arduino or something like that) and send the data using something like TCP or you will need to install the keyboard as a raw USB device and read the data from it using VISA. Having not done this, I can't give any further details.

You could also try looking into other input methods like the Leap or a Kinect camera, but I'm guessing it would be too much work to create a wide enough vocabulary of terms.


___________________
Try to take over the world!
0 Kudos
Message 3 of 25
(7,139 Views)

tst wrote:

The main problem is that I don't think there's any way you can tell when keys are pressed when a regular LV window has focus and nothing else is happening.

So I thought I could get around this by using dynamic events.  Have an event structure with the VI Activation event which happens when a VI is activated, then register for the Key Down event on that VI.  Problem is this only works for VIs that are running.  In theory you could use the Window Message Queue, where you could register for windows events on key press, for the activated window.  But honestly polling the keyboard with the Input Device Control palette is super easy and probably good enough but will use more resources polling.

tst wrote:

Another alternative is to get a dedicated keyboard for that. To get the key presses you would need to either connect it to another device (a computer or an Arduino or something like that) and send the data using something like TCP or you will need to install the keyboard as a raw USB device and read the data from it using VISA.

I hate that I like this idea.  I could make a command console that sits on my desk, or activated by pressing a foot petal which essentially does the scripting work for me.  The Teensy (which is Arduino compatible and as low as $12) has a micro USB and can appear as a HID in Windows.

0 Kudos
Message 4 of 25
(7,139 Views)

If as tst mentioned an external keyboard is an option I have used X-Key devices in the past for production lines and gaming.  

These devices allow you to configure each x-key individually.

When setting up a x-key the device records keyboard presses and saves the sequence. 

It will then play sequence back when the designated x-key is pressed. 

you would only need to program in the QD commands into each key for a one press solution. 

http://xkeys.com/xkeys/xk60.php 

Mark

0 Kudos
Message 5 of 25
(7,139 Views)

Brian Hoover wrote:


But honestly polling the keyboard with the Input Device Control palette is super easy and probably good enough but will use more resources polling.

Like I said, the issue is with detecting that this is only happening in "null mode" (a term I just made up to indicate that the user is not entering text, the VI is not running, etc.).

And having an HID device is a problem, because then it just acts the same as a regular keyboard (unless you can somehow get it to output other keycodes. The Win32 API function for the keyboard state returns 256 values, but I'm pretty sure it also has a list of allowed values). That why I suggested a raw USB read or an alternative protocol.

I have no experience with Mark's suggestion, so I can't comment. Presumably, you can set it load QD and then execute a command. You could probably do the same with something like AutoHotKey, but I expect you would still need some kind of combo to activate the macros.


___________________
Try to take over the world!
0 Kudos
Message 6 of 25
(7,139 Views)

tst wrote:

I have no experience with Mark's suggestion, so I can't comment. Presumably, you can set it load QD and then execute a command. You could probably do the same with something like AutoHotKey, but I expect you would still need some kind of combo to activate the macros.

Marks hardware does look cool, and they have a cheaper version that gives 20 keys for about $100.  And they make a couple foot pedal options.  But I realized I have all these function keys doing nothing for me.  I could map them into a macro that opens quick drop, and presses the commands I want.  One issue I see is quickdrop might be too slow and miss commands.  I've seen this with human speed for typing on first start.

0 Kudos
Message 7 of 25
(7,139 Views)

Here is another option that I am using ALL THE TIME!

It is called the ErgoDox it is a 100% fully programmable split keyboard.

The original developers site here: http://ergodox.org

There is good info there but the forums links (from his home page) has the best info.

The latest mass buy (with updates) was done on Massdrop: www.massdrop.com/buy/infinity-ergodox (click the x and you can see the post without signing up)

This version will have even more options/features then the original (read through the discussion tab on Massdrop to learn more)

Early this year, I ordered the individual components and made my own ErgoDox (left hand only) based on the original. I ordered another (both sides this time) with Massdrop. I am planning on making a second Left hand so I have one in my bag, one at home and the new one from Massdrop at the office as my only keyboard.

I have not experimented very much with the "macros" but there is a ton of possibility and at least 2 forums worth of people using this keyboard to help figure it out. I do know that you can get it to output a series of "key press" keycodes to the computer with a single command (can be a single keypress, a combo, or a rolling combo)

I have mine setup so that I don't have to move my left had from the "home" position. I have a "shift" key that mirrors the right side of a regular keyboard to my left hand so I don't have to take my right hand off the mouse. 

Programming the keyboard itslef is a little cumbersome (especially if LV is your main love), but once that is done it is a huge time save and much more comfortable for long LV programming sessions.

I will put this caution out there... the world of custom/mechanical keyboards is addictive!!! So many options!

0 Kudos
Message 8 of 25
(7,139 Views)

At the moment, I am using Logitech G13 keypad (http://gaming.logitech.com/en-us/product/g13-advanced-gameboard). It has 25 fully programmable keys. You can easily assign whole QD shortcut like, CRTL+SPACE, wait 50ms, CTRL+SHIF+W. Originally designed for gamers, is quite comfortable too.

Message 9 of 25
(7,139 Views)

I have a Logitech G13 as well. It works good and with no soldering required and a clean interface to program it is a very good option. For me I wanted a "single-handed" keyboard so the ErgoDox was the ticket for me.

Message 10 of 25
(7,139 Views)