842 Boggs Avenue
Fremont, CA 94539
510-770-1417
510-657-5055 (fax)
155 'B' Avenue, Suite 200
Lake Oswego, OR 97034
503-675-6464
503-675-7554 (fax)
A standard asynchronous serial port connects your system's microcontroller to the SLCD controller. Simple ASCII commands are used to draw images, text, controls, and other interface elements, on the screen. The controls report back over the serial line when they are activated or changed. Images are stored on the SLCD controller in flash memory.

All microcontrollers, and even some DSP, have a serial port. In an upgrade situation, if no free port is available, the SLCD's second serial port can be used in "pass-thru" mode to connect to the replaced device. Serial transmit and receive are easily interrupt- driven, and the received control packets are small, to minimize processor overhead.
This simple control panel (see image at right) sets the state of three relays and shows the status of three signals. It is implemented by the following code.
Get the Software Reference Manual from the Download Center. It contains a complete description of the "bdc" and "xi" commands used in this example.
// this code assumes bitmaps 1 and 2 are the buttons
// and 3 and 4 are the indicators
//
// main code loop or process calls drawScreen() to show the screen and
// updateScreen() to update it.
//
// define button #1 at x=20, y=20, type 2 (on/off), text for both
// undepressed and depressed states are the same, use bitmaps 1 and 2
// for the button images
void drawScreen(void){
printf("bdc 1 20 20 2 "RELAY 1" "RELAY 1" 1 2/r");
// create Relay 2 button at x=20, y=95
printf("bdc 2 20 95 2 "RELAY 2" "RELAY 2" 1 2/r");
// create Relay 3 button at x=20, y=170
printf("bdc 3 20 170 2 "RELAY 3" "RELAY 3" 1 2/r");
}
void drawIndicator(int num, int state) {
if( 1 == num ){
if(state == 0) printf("xi 3 130 20/r"); // draw bitmap #3 at(130,20)
else printf("xi 4 130 20/r"); // draw bitmap #4 at(130,20)
if( 2 == num ){
if(state == 0) printf("xi 3 130 95/r");
else printf("xi 4 130 95/r");
}
if( 3 == num ){
if(state == 0) printf("xi 3 130 170/r");
else printf("xi 4 130 170/r");
}
}
void updateScreen(void) {
char inBuf[10];
unsigned int button;
enum {up, down} state;
// check for incoming control string in the form 's'<button> if( EOF != gets(inBuf) ) { // split control string to button and state button = inBuf[1]-'0'; state = inBuf[2]-'0'; // handle the button pressed or released if( button == 1 ) relay1Handler(state); if( button == 2 ) relay2Handler(state); if( button == 3 ) relay3Handler(state); } // update the display if( relay1Sense() ){ drawIndicator(1, 1); else drawIndicator(1, 0); if( relay2Sense() ){ drawIndicator(2, 1); else drawIndicator(2, 0); if( relay3Sense() ){ drawIndicator(3, 1); else drawIndicator(3, 0); } </button>
No particular operating system required
Reach products work with any operating system, with or without a host OS. From full-blown, embedded systems running Windows, Linux, or QNX, to small RTOS, or a "bare metal" code, the interface is the same.
The library is built into Reach products. Your embedded system does not require additional memory overhead for library code, and has more resources to perform its main tasks of controlling your product.
Reach products come in these configurations:
Ready to go for applications requiring a NEMA 4 class case, or for any application where a completely enclosed unit is desirable... More
Completely assembled graphic-display units help you rapidly integrate an intelligent display system into your product... More
Our low-cost, low-risk development kits contain everything you need to get a color touch interface up and running in a matter of days... More
You can do any, or all, of these:
Get more information about how Reach products work with your product. Call our research and development office at 503-675-6464 or email a Reach engineer.
The answer is yes if your host microcontroller or microprocessor has an Asynchronous Serial port or a USB host port and you don't need to display video or movie clips.... More
Order a development kit which contains everything you need to get a touch interface up and running in a matter of days...More
Reach Technology gives embedded engineers adding a color touch control surface to the product a jump start. They see lower development costs, reduced risk and decreased time-to-market... More
Sign up for the LCD Controller newsletter and get the "Color Touch Control Surface Handbook" sent to you.
Download the Software Reference Manual from the Download Center. The manual contains a complete description of the "bdc" and "xi" commands used in this example.
Call sales and customer service
at 510-770-1417 or email us.
Call technical support at 503-675-6464 or email a Reach engineer.