Droplet External Device Support – USB (Part 2)
Previously, I explained our support for external devices in the shape of COM/Serial/LPT devices – which is a built-in component of our technology. This time I want to focus on our support for USB devices. Our USB support comes in a special USB edition and is secure so only the administrator can connect and configure USB devices to the Droplet Container. The configuration is “persistent” in the sense that once configured the USB device will always connect so long as it is plugged in and powered on.
Once the container is unlocked, our UI displays a USB icon together with an interface to select connected devices like so:
You'll notice in this screengrab I've not selected my USB to Serial dongle. There's no need to because of our built-in COM/Serial/LPT redirection. What is select is HP Color LaserJet Printer – again if I just needed the print functionality it would be easier/simpler to just use our built-in printer redirection feature or indeed use the IP printing functionality of the printer to print across the network such as IP-based printing supports scanning as well.
Scanning is possibly is the most common use case for USB support in things like healthcare – where often expensive medical scanners still operate, but the software stack around them is so dated it’s based on a Windows XP or Windows 7 model.
Another use case we have seen is in engineer environments (aviation, process management, automotive) where USB devices control expensive pieces of hardware that need servicing, maintenance, and support – often to meet industry standards and auditing requirements.
Once the device is enabled, it becomes a permanent part of the configuration until its removed, and the configuration is stored in the settings.json file.
Once we start-up the container – we are in the hands of Windows "Plug and Pray" – in other words, will the Windows binaries inside the container have a driver for the connected software? The older the software, and the more likely you will need to install a driver.
Once the container has started and is unlocked the administrator can investigate either Device Manager or in this case "Device and Printers". In this case, the printer was detected by the container, but only partially so. There appears to be an issue with the scanner component:
This meant hunting the drivers down for this device (which I already had for this printer) – this is a 200MB+ bundle that downloads into the container and runs the autorun.exe. This installer requires the USB device to be unplugged and re-plugged during the install which our USB stack handles with aplomb. During the installer, the setup program asked me to reconnect the device and the installation comes through.
At the end of the installation, we can see the yellow exclamation marks indicating there was a problem have gone… whoop!
Although there are many ways within the Windows UI to initiate a scan – I wanted to find a more direct method so it could be "published" as a shortcut to the user's desktop as a Droplet shortcut. I found the main scanning application resided in "C:\Program Files\HP\HP Color LaserJet Pro MFP M177\bin\hpscan.exe" so I made an Application Tile to that: