How Does it Work?

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. 
Your microcontroller connects via serial commands to the Reach module

Simple to integrate

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.Sample Buttons

Simple-to-program graphical user interface

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.

Want more detail?

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.

No graphics library required

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 product configurations

Reach products come in these configurations:

Enclosed Units

Enclosed Units

Ready to go for applications requiring a NEMA 4 class case, or for any application where a completely enclosed unit is desirable... More

Display Modules

Display Modules

Completely assembled graphic-display units help you rapidly integrate an intelligent display system into your product... More

Controller Boards

Controller Boards

Board-only products for full design flexibility... More

Development Kits

Low Cost Development Kits

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

How to learn more

You can do any, or all, of these:


Have more technical questions?

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.

 
 

Will it Work with my Product?

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

Try Before You Buy

Order a development kit which contains everything you need to get a touch interface up and running in a matter of days...More

Why Reach?

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

Free Download

Sign up for the LCD Controller newsletter and get the "Color Touch Control Surface Handbook" sent to you.


Want more detail?

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.

Have Questions?

Call sales and customer service
at 510-770-1417 or email us.
Call technical support at 503-675-6464 or email a Reach engineer.

© 2010 Reach Technology Inc. All right reserved.