"Desktop software engineers never have to write code for line drawing or even for a button, so why should embedded engineers?"
This is very familiar in VB and most desktop programming languages where a control like a Button is an object and has, for example, a Caption property and a Click event to which you can attach a method. It acts as a black-box, as you the programmer do not have to worry how the button responds to the click input or how it looks – that has been sorted out for you.
At Haidar Technology, we believe that embedded engineers should have the same capability that desktop developers have when it comes to Graphical User Interface (GUI). Our solution is a combination of Serial Enabled Graphic Engine (SEGE) and a true WYS|WYG drag-and-drop Visual GUI builder "LCDMaster" that allows the embedded engineer to design the GUI by dragging the objects onto a simulated screen and then altering their properties. When the designer is happy with the layout, the tool will automatically generate code (Hex file) for the target hardware.
If the layout or some bitmaps need to be redesigned just disconnects the target hardware from the controlling processor (host) and moves it to a serial port of a PC. Program the new code and you have the new user interface in place! Pure visual changes do not require modifications to the host controller code!
Since "SEGE" interacts with the host controller through a serial protocol, integration with a specific processor or platform, RTOS, or compiler is not required. Also, the requirements for the host controller (memory and speed) are significantly less!
Products:
5.7" QVGA(320X24) Color LCD Panels
- TFT display from Optrex or Hantronix
- LED or CCFL backlight
- Available with or without touch screen
- Powered by our SEG-CQ57 controller board
SEG-CQ57-xxx Reference Manual
SEGE Software Reference Manual
Ordering information:
| Product # | LCD | Backlight | Touch screen |
| SEG-CQ57-LOT | Optrex | LED | Yes |
| SEG-CQ57-LHT | Hantronix | LED | Yes |
| SEG-CQ57-CHT | Hantronix | CCFL | Yes |

Step1: Design your GUI screens visually using our Visual GUI Builder "LCDMaster", compile and then program the panel.
Step2: Your microcontroller (host) send high level commands to control, update and response to the user interface.
Your Controller (Host):
Any microcontroller (8-bit, 16-bit or 32-bit) with UART will do the job! The requirements (memory, speed ..) for the host controller are minimum as all the GUI tasks are handled by the SEG-Cx controller.
LCDMaster Software:
LCDMaster is a true WYS|WYG visual GUI builder for color displays. It allows you to design the GUI application visually from your PC screen using simple Drag-and-Drop tools with absolutely no coding for the GUI design!
It also have many powerful utilities which allows you to edit bitmaps, convert system fonts, user interface and real time objects simulation and a lot more.
Objects:
The predefined object set which includes Screen, Bargraph, Button, Textbox, Picturebox, Numberbox, Image, Slider, Needle and Shape are the GUI building blocks. Similar to OOP, each object has properties, methods and events. Each object has also a touch zone which can enabled or disabled at design time. When the user touch one of those zones, touch event will be generated to notify the host controller and to execute user defined macro without the host supervision.

Serial Commands:
Your host controller only need to use 33 simple object serial commands to interact with the objects and response to the user interface.
|
Command Name |
Code |
Valid For |
Command Method |
|
Screen_Load |
100 |
Screen |
Load a screen(ID) |
|
Screen_Show |
102 |
Screen |
Display a the loaded screen |
|
Screen_GetUiMsg |
103 |
Screen |
Get the user interface message |
|
Screen_Redarw |
106 |
Screen |
Redraw the active screen |
|
Screen_GetActive |
107 |
Screen |
Get active screen ID |
|
Object_GetProperty |
104 |
All |
Get object property |
|
Object_SetProperty |
105 |
All |
Set object property |
|
Object_Redraw |
108 |
All |
Redraw an object |
|
TextBox_HighLight |
110 |
TextBox |
Highlight a textbox |
|
TextBox_UnHighLight |
111 |
TextBox |
UnHighlight a textbox |
|
TextBox_Invert |
112 |
TextBox |
Invert a textbox |
|
TextBox_Clear |
113 |
TextBox |
Clear a textbox |
|
TextBox_Number |
114 |
TextBox |
Display a number on a textbox |
|
PictureBox_LoadBGBitmap |
117 |
PictureBox |
Load a background bitmap |
|
PictureBox_RemoveBGBitmap |
118 |
PictureBox |
Remove the background bitmap |
|
PictureBox_Bitmap |
119 |
PictureBox |
Display a bitmap from flash |
|
PictureBox_DynBitmap |
120 |
PictureBox |
Display a bitmap from serial port |
|
PictureBox_Line |
121 |
PictureBox |
Draw a line |
|
PictureBox_Rectangle |
122 |
PictureBox |
Draw a rectangle |
|
PictureBox_Circle |
124 |
PictureBox |
Draw a circle |
|
PictureBox_CopyArea |
125 |
PictureBox |
Copy an area |
|
PictureBox_PasteArea |
126 |
PictureBox |
Paste a copied area |
|
PictureBox_Clear |
127 |
PictureBox |
Clear a picture box |
|
PictureBox_Print |
128 |
PictureBox |
Print text |
|
PictureBox_SetPixel |
129 |
PictureBox |
Set a pixel |
|
PictureBox_GetPixel |
130 |
PictureBox |
Get a pixel |
|
Animation_Play |
131 |
Image |
Play animation |
|
Animation_Stop |
132 |
Image |
Stop animation |
|
Animation_Refresh |
133 |
Image |
Refresh animation |
|
Chart_Point |
134 |
Chart |
Add a new point |
|
Chart_Clear |
135 |
Chart |
Clear a chart |
|
Chart_Array |
136 |
Chart |
Add an array of points |
|
Chart_VerticalLine |
137 |
Chart |
Draw a constant vertical line |
|
Chart_HorizontalLine |
138 |
Chart |
Draw a constant horizontal line |