rowanbradley
Technical User
I have to write an embedded application running on a single board computer (no disk - flash memory only) to control a machine. I want to use Microsoft technology to do this, and think CE 6.0 is the most appropriate platform. I would prefer to write the app in C#. Unfortunately I'm a beginner in both CE and C# and I need to access some tutorials and some sample applications illustrating how to use CE for this sort of task. My application needs to:
- track the progress of the machine by monitoring pulses on some digital input pins. These pulses come from various sensors, microswitches etc. It will be necessary to debounce these, and to design the system so we never miss pulses because the system is busy doing something else. It's not a very fast machine - I guess we need to respond to input pulses within say 10ms. I envisage a separate thread or process for each independent part of the machine, which updates the current state of the machine every time a pulse is detected in a property which other threads/processes can read.
- expose one or more web services by which the machine is controlled from elsewhere on the network
- serve some secure web pages by which the machine is configured, administered and remotely serviced
- display nice looking screens on an LCD display which will include good quality large text, graphics, animations and possibly short movie clips. I'm not talking about anything leading edge here - there's no 3-D or games-style graphics. Can WPF and/or Silverlight be used for this in CE?
- possibly accept user input via a touch screen
- store data in some form of non-volatile storage. It may be worth putting a database in, but if the overhead is too great some other form of persistent storage may be better. There will be a few tables with maybe a few thousand records - it's not a lot of data.
- store logs etc. for trouble shooting and fault diagnosis
I'd welcome any advice on designing this, especially if there is some code which already does something similar to anything I've described above, which I can either use for ideas, or if close enough to what I'm trying to do, incorporate into my design. The more I can get from pre-written components, the better. That will speed up my learning curve!
Many thanks - Rowan
- track the progress of the machine by monitoring pulses on some digital input pins. These pulses come from various sensors, microswitches etc. It will be necessary to debounce these, and to design the system so we never miss pulses because the system is busy doing something else. It's not a very fast machine - I guess we need to respond to input pulses within say 10ms. I envisage a separate thread or process for each independent part of the machine, which updates the current state of the machine every time a pulse is detected in a property which other threads/processes can read.
- expose one or more web services by which the machine is controlled from elsewhere on the network
- serve some secure web pages by which the machine is configured, administered and remotely serviced
- display nice looking screens on an LCD display which will include good quality large text, graphics, animations and possibly short movie clips. I'm not talking about anything leading edge here - there's no 3-D or games-style graphics. Can WPF and/or Silverlight be used for this in CE?
- possibly accept user input via a touch screen
- store data in some form of non-volatile storage. It may be worth putting a database in, but if the overhead is too great some other form of persistent storage may be better. There will be a few tables with maybe a few thousand records - it's not a lot of data.
- store logs etc. for trouble shooting and fault diagnosis
I'd welcome any advice on designing this, especially if there is some code which already does something similar to anything I've described above, which I can either use for ideas, or if close enough to what I'm trying to do, incorporate into my design. The more I can get from pre-written components, the better. That will speed up my learning curve!
Many thanks - Rowan