Using 1 usb barcode scanner on 2 computers - arduino

I have been doing some research but I can't find a solution for my specific problem.
We have an ancient program at work that works as a stock manager.
Now I need to build extra features but I can't use the SQL database used by that system. (kafka was here)
So I started building a program that runs parallel to the existing system.
To reduce the extra input I want to use the same input devices.
These are mainly barcode scanners, which if I'm correct, are basically just keyboard emulators.
The question: Is there a way to use 1 Usb device on multiple computers?
I was thinking to hook the scanner to the computer where I can do the most and let this computer act as an emulator for the other computer?
But I think that's as realistic as an usb splitter.
On the other hand I was thinking of using a raspberry or arduino is "the middle man" between the scanner and 2 pc's which should give me more options.
Extra difficulties:
I can't install anything on the computers that run the ancient program.
I have little to no rights on other computers I can use (kafka, you again?)
I can only work with C#3.5 to avoid triggering the overly sensitive virus detection :)
I can't set up servers
I can only run stuff in windows
I can't run installers

Related

Questions regarding Cloudstack

Need help on 3 aspects of Cloudstack. It has become the major point of our decision to go ahead with the implementation
Serial port debugging:
We do lot of serial port kernel debugging in Windows and UNIX. There is no out of box support for it . We need to go to VMWARE level to enable it , and we want to shield users from this. Any suggestions on this front.
Memory Snapshoting
People here are used for VMWare memory snapshoting feature. Also the ease with which Workstation/vSphere manages the Snapshots. Is there any way we can use that in Cloudstack? Our implementation is on VMWare , so we already have things in place , so just want to know , how to get it integrated with Cloudstack.
VMWare Tools
Whenever we create an instance from ISO's , we see that Mouse do not work. It is really painful to install the VMWare tools and get the mouse working. Is there any solution for this problem.
Need immediate feedback on Apache CloudStack?
Send your question to the mailing list
Need specific features to be added?
Talk to support Vendor such as Citrix.
Serial port debugging: -- What Steps you follow in enabling it in vmware
Memory Snapshoting: -- Cloudstack provides the snapshot feature ,but after taking snapshot you can not create vm from that snapshot,first you will have to convert that snapshot in templates and then you can create vm
VMWare Tools -- You can use attach iso facility of cloudstack .Initially install operating system with tabs but after installation attach vmware-tools.iso to that vm from cloudstack and install it on browser itself.

Displaying different stuff to multiple Projectors.

I want to connect multiple projector to single laptop, I found about VGA Splitter (http://www.kvmswitchtech.com/vga-splitter-350mhz-8-port-p46359.htm) which can use to connect multiple projectors to single PC.
But I don’t want to display whole screen in both Projectors, in short Projectors should display different stuff at same time.
For Example:-
Projector 1 can Display Power point Presentation and Projector 2 can Display the running movie in player.
I got below set of Questions
Is there any Software available to perform this operation?
If I want to write my own application, Is Directshow (Provided by Microsoft ) is good one to start?
Is there any other VGA Programming language available?
Is there any Software available to perform this operation?
The primary question you are going to get here is how the projectors are connected to PC. The device might need specific integration and you're moving the item #2 below immediately. Otherwise it can be a sort of secondary monitor and you can extend your desktop over it, and then any full screen application running on the secondary monitor is going to be projected.
Perhaps, you will find more software choices going to SuperUser.
If I want to write my own application, Is Directshow (Provided by Microsoft ) is good one to start?
As mentioned above, the hardware might need you to use specific SDK from the vendor and this is your starting point. DirectShow is the API that covers multiple related tasks and might be of use here:
it is capable to built media pipelines terminating at DirectShow-compatible video output device (the projector might be not might be not capable/compatible)
it allows you to play media files into your application and otherwise control video/audio and integrate it into higher level software
DirectShow as API does not fully cover requested task, but it definitely relevant might be used in the in-house built Windows based app.
Is there any other VGA Programming language available?
The "language" is not actually language and it is how particular device is integrated with PC. This is typically covered by hardware vendors who provide the hardware with accompanying development kits and samples.

Qt Based TouchScreen GUI for ARM9

I want to work in HMI domain and have started learning it.
In first stage I want to develop Qt GUI based touchscreen application for ARM9 board. Can anyone please suggest how to go for it and any budget ARM9 Dev board with integrated touchscreen LCD for this purpose? I want to use opensource platform as much as possible.
I know I can do it with more ease on an ARM board which support some OS like (say) embedded linux or may be Rasberry Pi with java or Qt based GUI. But I do not want to use OS rather want to develop just a simple touch screen GUI application to (say) turn a LED on the ARM board (without running any OS).
My next step of learning will be using touch screen GUI, Rasberry Pi with raspbian, where I have already found numerous resources Online.
Thanks
It may be better to just get a low end tablet or why not even a phone, much cheaper than a dev board with additional touchscreen. Plus Android is open. It may be a good idea to get an Ubuntu touch compatible device. The Pi, while cheap, is also very underpowered. A cheap tablet or phone will be more applicable, especially since official Android support in Qt is looming on the horizon. So why spend more money on a lower spec'd device with very narrow application range? Not to mention the wide range of sensors you get with a market device - cameras, compass, gyroscope, GPS, accelerometer - those could come in handy in a HMI scenario. Last but not least, graphics drivers are usually better in production devices than prototype boards.

Interested in Device Programming. Where to Start

All
I've a Good Command over C++, But I've never done anything anything on device programming. I've some basic understanding on Digital Logic Design. But I am complete Noob in Electronics. Currently I am getting huge interest on microcontroller Programming.
Where To Start ?
I don't think one really needs to have huge amount of knowledge on electronics to run a program on a microcontroller.
I am using Linux. and I've downloaded Keil. never tried to run it through Wine. I've ran it in Windows. But how the code works is not completely clear to me. though I can understand Logic as its written in C. But Its still like a Fog to me.I Just need a Quick Kickstart.
SO is not the best site to ask this kind of question. There's really a large distinction between programming for a PC and programming for an embedded system, other SE sites specialize in physical computing. I got this email from Robert Cartaino on Tuesday:
...Barring any last-minute interest from
[chiphacker.com], we will be launching [electronics.stackexchange.com]
either tomorrow [Wednesday 9/22] or
Thursday.
So, go commit to electronics.stackexchange.com here, and browse chiphacker.com while you wait. Take a look at these questions on Chiphacker:
How to become an embedded software developer?
Steps to learning Arduino Programming
PIC Programming
What are the best beginner project[s] using an arduino
There are a few things you should consider when planning your entry path to embedded systems programming.
What do you want to do?
What do you know how to do?
How fast are you comfortable learning?
I've outlined a few options in the following paragraphs.
You tagged your question linux-device-driver, does this mean that you want to make a custom device to use in Linux? If you meant embedded-linux, then you're into a larger class of microcontrollers. I suggest that you look at the BeagleBoard, also look at this Chiphacker question for some other options. If you want to do embedded linux, and want to build your own board, you'll first need to build up some experience in simpler levels of embedded systems design.
You also tagged your question avr, which is a popular microcontroller class made by Atmel (check out the avrfreaks forum for more info). I started learning embedded systems on the ATmega324p; they really have great documentation, are easy to use, and there are more sites online for the avr than most any other processor.
If you want an easier learning curve, I suggest taking a look at the Arduino environment. It uses Wiring, which is very similar to C/C++, and the Arduino can be enhanced with 'shields', which are modules that can be plugged into the Arduino main board to add functionality. This is your Quick Kickstart.
A good learning path would be to get familiar with the Arduino, then build your own AVR board (possibly a Linux device, like a joystick), then work with an ARM-based development kit, and finally move on to to building your own embedded linux board. You can skip a few steps if you don't mind a steep learning curve, or stop at any point along the way if a given level's capabilities satisfy your needs. You don't necessarily need a "huge amount of knowledge on electronics to run a program on a microcontroller", it's true, but you should understand some basic things like voltage and current before you try to light an LED or connect two devices.
Finally, you said in your question that you've installed the Keil IDE. While this is a fine and rather popular IDE, I'd suggest that you learn using a gcc-based command line toolchain. There are a staggering number of ways in which things that can go wrong when working with embedded systems, and an IDE adds a layer of magic on top of everything that happens. While this can be nice, I'm a strong advocate of minimizing the magic when trying to learn the system. You need to understand the low-level stuff when things don't work automagically. This advice doesn't apply when using the Arduino, which is designed to (and does) make all of the automagical stuff work well.
sparkfun.com has a lot of boards, arduino family and other. I recommend the armmite pro, the lillypad instead of the arduino pro because there is no soldering involved, for either you will need/want the correct usb to serial/power. The mbed2 costs a little more, the blue leds are brutal on the eyes, but easy to use. For none of the above are you required to play in their sandbox, you can use the canned environment, etc but not required.
if it is linux development you are after I recommend the hawkboard.org over the beagleboard.org, to make the beagleboard useable costs about twice as much as the board itself, the hawkboard is usable by only buying something to power it. But you can just learn linux drivers on your desktop/laptop and dont need to mess with embedded necessarily.
Emulators are a good start. Qemu is good stuff, emulates a number of processors, great for emulating virtual linux systems, learning linux driver development, etc. But getting visibility into what the (virtual/emulated) processor is doing is not the goal. I find it useful to have visibility. gdb includes a few emulators as well. mame is loaded with them, but like qemu designed for fast emulation and not for education. visual boy advance is good. Emulation is never perfect, so eventually you want to run on hardware, but emulators and compiler tools are free and you can learn quite a bit before you have to buy hardware. There is a considerable amount you cannot learn from an emulator though, loading your programs into flash/ram, debugging using jtag or other interfaces. i2c, spi, etc.

How can I make a GUI test focus on and the same time continue working with my PC?

I understand that Two users cannot work on the same machine at the same time, and Test Compleate interacts with GUI in the way a user would do.But probably there is some way to solve this problem?
I don't know Test Complete so I can't say anything about workarounds specific to this product (that may well exist!), but one option is always to set up Virtual Machines and run the tests in there. Some of the most popular virtual machines (they all have free editions) are Virtualbox, VMWare and Microsoft Virtual PC.
try UI Automation (MS UIAutomation library or UiAutomation PowerShell module, for example), it frequently pulls the AUT to the foreground. Moreover, it has the abiblity to set the focus (AutomationElement.SetFocus(), Set-UIAFocus).

Resources