We are starting a total new Branch at our firm. I am usually developing database interfaces or internal server/client applications/tools for our company, but I never had to do something with hardware.
Szenario
My Boss want to sell a device, which has a touch-screen to set up the many, many features. However, the configuration of the device can be very time consuming. He wants to give a software free for a good customer and for a litte charge to "small" customers. The customer should only be able to use the software, if he registers at our system, so that he can't copy the software without a notice by us.
Requirements
The device has a build in USB cable. If you plug it in your computer it opens a new COM serial port. The software has the following requirements:
- Configurating different presents for the device
- Reading and writing the presets to the device
- Software will refuse to start, if the user has no registration at our server
- The user can store his presets at our server and share it with other customers
- One preset, copied over and over to multiple devices
My boss has seen similar system (he said something about logitech harmony remote controls) and it is now on me, to create the architecture.
Server Side: The server is not that kind of problem. We have enough different machines to suite any kind of favour (IIS, LAMPP, Apache/Tomcat etc.) I could take MSSQL or MySQL DBase to store the data, thats not the problem.
Client Side: This is the tricky part for me. I never did something with hardware. My boss suggested I should use Silverlight. I claimed that I want to do it with a native application. But what is the best combination?
- Total Client-Side (C++, C# or Java are the languages I could write)
- Mixed Structure #1 Silverlight + Native "Driver" Application
- Mixed Structure #2 Java-Applet + Native "Driver" Application
- Browser Only - Silverlight or Java-Applet?
- Any other suggest
The device is for a special customer group who's getting personal trained with any purchase so security risks like unsafe code or dangerous browser plugins are no negative selling argument.
I did some research about COM Serial Port connection with Silverlight and P/Invoke but I don't want to start without a discussion what would be the best way.