Application Note AN_307 FT800 Restaurant Application

Application Note
AN_307
FT800 Restaurant Application
Version 1.0
Issue Date: 2014-03-19
This document is to introduce the setup of a Restaurant Application running on MSVC. The
objective of the Restaurant Application is to enable users to become familiar with the usage of the
FT800, the design flow, and display list used to design the desired user interface or visual effect.
Use of FTDI devices in life support and/or safety applications is entirely at the user’s risk, and the
user agrees to defend, indemnify and hold FTDI harmless from any and all damages, claims, suits
or expense resulting from such use.
Future Technology Devices International Limited (FTDI)
Unit 1, 2 Seaward Place, Glasgow G41 1HH, United Kingdom
Tel.: +44 (0) 141 429 2777 Fax: + 44 (0) 141 429 2758
Web Site: http://ftdichip.com
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
Table of Contents
1
2
Introduction ................................................................................................................ 3
1.1
Overview .............................................................................................................. 3
1.2
Scope .................................................................................................................. 3
Application Flow ........................................................................................................... 4
2.1
3
Description .................................................................................................................. 5
3.1
Intialization .......................................................................................................... 5
3.1.1
Download the Bitmaps .................................................................................... 5
3.1.2
Set the tracker properties to Bitmaps using CMD_TRACK ..................................... 5
3.2
4
Restaurant Demo Flowchart .................................................................................... 4
Functionality ......................................................................................................... 5
3.2.1
Main Menu ..................................................................................................... 5
3.2.2
Sub Menu ...................................................................................................... 7
3.2.3
Order List ...................................................................................................... 9
Contact Information ................................................................................................... 10
Appendix A– References .................................................................................................... 11
Document References .................................................................................................... 11
Acronyms and Abbreviations ........................................................................................... 11
Appendix B – List of Tables & Figures .................................................................................. 12
Appendix C– Revision History ............................................................................................. 13
2
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
1 Introduction
This application demonstrates an interactive Restaurant Demo using menu, track and rotation
functions based on the FT800 platform.
The Restaurant demo user interactive function involves the menu items rotating one after another
in a circular path. Items can be selected and viewed in the order list.
1.1 Overview
The document will give the basic understanding about the FT800 CPU features Track, Points and
Bitmaps commands.
Arduino code of the application requires a SD card to read and load the bitmaps. The bitmaps have
to be copied from the Test folder to the SD card.
1.2 Scope
This document will be used by software programmers to develop GUI applications by using FT800
with any MCU via SPI.
3
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
2
Application Flow
2.1 Restaurant Demo Flowchart
Start
Place the menu items
with different tag and
track
NO
Is touch
detected?
Rotation Counts > 100
NO
YES
YES
Are the Menu
items in rotation?
Start the rotation
Increment the
rotation count by
one
YES
Clear the rotation
Counts and stop
rotation
NO
Valid tag?
YES
Place the SubMenu
items with different
tag and track
Is touch
detected?
NO
Rotation Counts > 100
NO
YES
YES
Are the SubMenu
items in rotation?
Start the rotation
Increment the
rotation count by
one
YES
Clear the rotation
Counts and stop
rotation
Valid tag?
YES
Enlarge the bitmap of
the item selected and
display its decription.
YES
Back button
clicked?
Home button
clicked?
YES
Order Button
clicked?
Order List
Window
YES
Back button
clicked?
YES
Home button
clicked?
YES
Figure 2-1 Restaurant App FlowChart
4
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
3 Description
Parameters needed to be initialized are described below for constructing the display list.
3.1 Intialization
3.1.1 Download the Bitmaps
The bitmaps are downloaded into the desired locations. The bitmap handles are also assigned
here. The menus items are combined into one single image and assigned one track value. They are
then called according to their cell numbers.
Note: After these configurations are set, swap the display list and flush into the J1 Memory.
3.1.2 Set the tracker properties to Bitmaps using CMD_TRACK
/* In the Function*/
Ft_Gpu_CoCmd_Track(phost,240, 136, 1, 1, tagval);
where ‘tagval’– Tag value of the bitmaps.
A w and h of (1,1) means that the tracker is rotary, and reports an angle value in REG_TRACKER.
(Refer to the FT800 Programming Guide).
3.2 Functionality
The Restaurant Demo is a user interactive demo where the user can select and view items that are
available.
3.2.1 Main Menu
The Main Menu has a gradient as the background. Then two points are drawn with an X vertex
equal to the Mid value of the screen width and a Y vertex of -150.
The first point is black in colour with reduced alpha value of 50 and point size of 250.The second
point is red in colour with default alpha value and a point size of 135.
The Main Menu has options like Beverages, Pastries and Frappe. The user can touch the screen at
any point if they want to stop the rotation. The preferred option can then be selected by clicking
on it.
The Main menu bitmaps are all combined together into a single file. These are accessed using their
cell numbers. They are of RGB565 format.
5
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
Figure 3-1 Menu Items
The bitmaps of the menu items are placed in an elliptical path around the points. Each of the items
has its individual track to monitor its movement. They are reduced or increased in size based on
their current positions using BITMAP_TRANSFORM as shown in the code below.
xoff = 200+(ft_int16_t)(190*cos(theta*0.0174));
yoff = -20+(ft_int16_t)(150*sin(theta*0.0174));
zinout = 310 - yoff;
Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_A(zinout)); /* bitmap size adjustment */
Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_E(zinout)); /* bitmap size adjustment */
Ft_App_WrCoCmd_Buffer(phost, VERTEX2F(xoff*16,yoff*16));
Ft_App_WrCoCmd_Buffer(phost,BITMAP_SIZE(BILINEAR, BORDER, BORDER, 256*80/zinout, 256*53/zinout ));
6
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
Figure 3-2 Main Menu Screen
3.2.2 Sub Menu
The Main Menu option selection opens up the respective Sub Menu. The Sub Menu items also
rotate in the same fashion.
The Sub Menu also has a gradient background. The two points are drawn with a X vertex equal to
the Mid value of the screen width and a Y vertex of -150.
The first point is black in colour with a reduced alpha value of 50 and a point size of 250.The
second point is red in colour with default alpha value of 255 and point size of 135.
There is a shopping cart bitmap which at the beginning moves from the right to the centre of the
screen by varying the X co-ordinates of the Cart bitmap.
The touch of an item in the submenu opens up the description window.
The Sub menu bitmaps are all combined together into a single file (as seen in Figure 3-1).
NOTE: Combining individual bitmaps into one file requires an external tool such as GIMP and is
outwith the scope of this app note. Note also that to ensure correct stride/height calculations, the
bitmaps should be arranged vertivcally.
These bitmaps are accessed using their cell numbers. They are of RGB565 format. The bitmaps are
reduced or increased in size based on their current positions using BITMAP_TRANSFORM.
Items can be dragged and placed on the shopping cart. This is done by using points and tracing
the path using the Touch screen register values as shown below.
Ft_App_WrCoCmd_Buffer(phost,BEGIN(FTPOINTS));
Ft_App_WrCoCmd_Buffer(phost,POINT_SIZE(5*16));
sx = Ft_Gpu_Hal_Rd16(phost,REG_TOUCH_SCREEN_XY+2);
sy = Ft_Gpu_Hal_Rd16(phost,REG_TOUCH_SCREEN_XY);
if(sx != -32768)
Ft_App_WrCoCmd_Buffer(phost,VERTEX2F(sx*16,sy*16));
The addition of an item in the shopping cart can be seen by the presence of the points in the cart.
The points in the shopping cart are pre calculated in an array and they are used as shown below
based on the number of items selected.
7
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(0,255,0));
Ft_App_WrCoCmd_Buffer(phost,BEGIN(FTPOINTS));
Ft_App_WrCoCmd_Buffer(phost,POINT_SIZE(3*16));
Ft_App_WrCoCmd_Buffer(phost,VERTEX2F(points_cdsX[k]*16,points_cdsY[k]*16) );
The price and description of the items can be seen by clicking on the image which opens the
description window as shown below.
Figure 3-3 Description Window
The order list at the bottom of the screen is of ARGB4 format, and has the list of items that are
selected.
The back and home buttons at the bottom left of the screen are of ARGB4 format. These buttons
disappear after a pre-defined time out. They can be enabled again by clicking on the bottom area
of the screen.
Figure 3-4 Sub Menu Window
8
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
3.2.3 Order List
The Order list also has the same background as the other two windows.
The Order List has the list of the items that has been added to the shopping cart. Items can be
increased or decreased in quantity by clicking the respective buttons.
The plus and minus button are characters that are placed using VERTEX2II command. These are
then assigned tags.
The total price of the order is also shown.
The back and home buttons are placed at the bottom left of the screen. These buttons disappear
after a pre-defined time out. They can be enabled again by clicking on the bottom area of the
screen.
This window can also be scrolled. The scrolling is achieved by reading the REG_TOUCH_SCREEN_XY
Registers and by calculating its velocity as shown below.
signed short sy = Ft_Gpu_Hal_Rd16(phost,REG_TOUCH_SCREEN_XY);
if ((sy != -32768) & (scroller.dragprev != -32768)) {
scroller.vel = (scroller.dragprev - sy) << 4;
} else {
int change = max(1, abs(scroller.vel) >> 5);
if (scroller.vel < 0)
scroller.vel += change;
if (scroller.vel > 0)
scroller.vel -= change;
}
scroller.dragprev = sy;
/* previous touch */
scroller.base += scroller.vel;
scroller.base = max(0, min(scroller.base, scroller.limit));
Figure 3-5 Order List Screen
9
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
4 Contact Information
Head Office – Glasgow, UK
Branch Office – Tigard, Oregon, USA
Future Technology Devices International Limited
Unit 1, 2 Seaward Place, Centurion Business Park
Glasgow G41 1HH
United Kingdom
Tel: +44 (0) 141 429 2777
Fax: +44 (0) 141 429 2758
Future Technology Devices International Limited
(USA)
7130 SW Fir Loop
Tigard, OR 97223-8160
USA
Tel: +1 (503) 547 0988
Fax: +1 (503) 547 0987
E-mail (Sales)
E-mail (Support)
E-mail (General Enquiries)
sales1@ftdichip.com
support1@ftdichip.com
admin1@ftdichip.com
E-Mail (Sales)
E-Mail (Support)
E-Mail (General Enquiries)
us.sales@ftdichip.com
us.support@ftdichip.com
us.admin@ftdichip.com
Branch Office – Taipei, Taiwan
Branch Office – Shanghai, China
Future Technology Devices International Limited
(Taiwan)
2F, No. 516, Sec. 1, NeiHu Road
Taipei 114
Taiwan , R.O.C.
Tel: +886 (0) 2 8791 3570
Fax: +886 (0) 2 8791 3576
Future Technology Devices International Limited
(China)
Room 1103, No. 666 West Huaihai Road,
Shanghai, 200052
China
Tel: +86 21 62351596
Fax: +86 21 62351595
E-mail (Sales)
E-mail (Support)
E-mail (General Enquiries)
E-mail (Sales)
E-mail (Support)
E-mail (General Enquiries)
tw.sales1@ftdichip.com
tw.support1@ftdichip.com
tw.admin1@ftdichip.com
cn.sales@ftdichip.com
cn.support@ftdichip.com
cn.admin@ftdichip.com
Web Site
http://ftdichip.com
Distributor and Sales Representatives
Please visit the Sales Network page of the FTDI Web site for the contact details of our distributor(s) and sales
representative(s) in your country.
System and equipment manufacturers and designers are responsible to ensure that their systems, and any Future Technology
Devices International Ltd (FTDI) devices incorporated in their systems, meet all applicable safety, regulatory and system-level
performance requirements. All application-related information in this document (including application descriptions, suggested
FTDI devices and other materials) is provided for reference only. While FTDI has taken care to assure it is accurate, this
information is subject to customer confirmation, and FTDI disclaims all liability for system designs and for any applications
assistance provided by FTDI. Use of FTDI devices in life support and/or safety applications is entirely at the user’s risk, and the
user agrees to defend, indemnify and hold harmless FTDI from any and all damages, claims, suits or expense resulting from
such use. This document is subject to change without notice. No freedom to use patents or other intellectual property rights is
implied by the publication of this document. Neither the whole nor any part of the information contained in, or the product
described in this document, may be adapted or reproduced in any material or electronic form without the prior written consent
of the copyright holder. Future Technology Devices International Ltd, Unit 1, 2 Seaward Place, Centurion Business Park,
Glasgow G41 1HH, United Kingdom. Scotland Registered Company Number: SC136640
10
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
Appendix A– References
Document References
1. Datasheet for VM800C
http://www.ftdichip.com/Support/Documents/DataSheets/Modules/DS_VM800C.pdf
2. Datasheet for VM800B
http://www.ftdichip.com/Support/Documents/DataSheets/Modules/DS_VM800B.pdf
3. FT800 programmer guide.
http://www.ftdichip.com/Support/Documents/ProgramGuides/FT800%20Programmers%20Gui
de.pdf
4. FT800 Embedded Video Engine Datasheet
5. http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT800.pdf
Acronyms and Abbreviations
Terms
Description
SPI
Serial Peripheral Interface
GUI
Graphical User Interface
11
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
Appendix B – List of Tables & Figures
Figure 2-1 Restaurant App FlowChart ........................................................................ 4
Figure 3-1 Menu Items ............................................................................................... 6
Figure 3-2 Main Menu Screen ..................................................................................... 7
Figure 3-3 Description Window .................................................................................. 8
Figure 3-4 Sub Menu Window ..................................................................................... 8
Figure 3-5 Order List Screen ...................................................................................... 9
12
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited
Application Note
AN_307 FT800 Restaurant Application
Version 1.0
Document Reference No.: FT_001009 Clearance No.: FTDI#381
Appendix C– Revision History
Document Title:
AN_307 FT800 Restaurant Application
Document Reference No.:
FT_001009
Clearance No.:
FTDI# 381
Product Page:
http://www.ftdichip.com/FTProducts.htm
Document Feedback:
Send Feedback
Revision
1.0
Changes
Initial release
Date
2014-03-25
13
Product Page
Document Feedback
Copyright © 2014 Future Technology Devices International Limited