Final Report - Senior Design
Transcription
Final Report - Senior Design
Restaurant Automation Final Report Project Code May07-14 March 30, 2007 Client Senior Design Faculty Advisor Dr. Manimaran Govindarasu Technical Advisor Dr. Randall L. Geiger Team Members Chris Ford Sean McVeigh Obioma Ohia Nichole Taylor Anthony VanSant DISCLAIMER: This document was developed as a part of the requirements of an electrical and computer engineering course at Iowa State University, Ames, Iowa. This document does not constitute a professional engineering design or a professional land surveying document. Although the information is intended to be accurate, the associated students, faculty, and Iowa State University make no claims, promises, or guarantees about the accuracy, completeness, quality, or adequacy of the information. The user of this document shall ensure that any such use does not violate any laws with regard to professional licensing and certification requirements. This use includes any work resulting from this student-prepared document that is required to be under the responsible charge of a licensed engineer or surveyor. This document is copyrighted by the students who produced this document and the associated faculty advisors. No part may be reproduced without the written permission of the senior design course coordinator. TABLE OF CONTENTS Section Description Page 1 Executive Summary ........................................................................................... 1-1 2 Project Statement............................................................................................... 2-1 2.1 Project Purpose .............................................................................................. 2-1 2.2 Operating Environment.................................................................................. 2-1 2.3 Intended Use and Users.................................................................................. 2-1 2.4 Assumptions and Limitations......................................................................... 2-2 2.4.1 Assumptions .......................................................................................... 2-2 2.4.2 Limitations............................................................................................. 2-2 2.5 Expected Project Product and Other Deliverables......................................... 2-2 3 Approach and Results ........................................................................................ 3-1 3.1 End-Product Functional Requirements .......................................................... 3-1 3.2 Handheld Approach and Results.................................................................... 3-2 3.2.1 Resultant Design Constraints ................................................................ 3-2 3.2.2 Approaches Considered and One Used ................................................. 3-3 3.2.2.1 Platform .................................................................................... 3-3 3.2.2.2 Programming Language ........................................................... 3-4 3.2.2.3 Wireless Communications........................................................ 3-5 3.2.3 Detailed Design (hardware)................................................................... 3-5 3.2.3.1 ICOP Technology eBox-II........................................................ 3-5 3.2.3.2 Credit Card Reader ................................................................... 3-7 3.2.3.3 USB Wireless Network Card.................................................... 3-8 3.2.3.4 Bluetooth Converter ................................................................. 3-8 3.2.3.5 Printer ....................................................................................... 3-9 3.2.4 Detailed Design (software).................................................................... 3-9 3.2.4.1 Inputs ........................................................................................ 3-9 3.2.4.2 User Interfaces.......................................................................... 3-9 3.2.4.3 Modules .................................................................................. 3-10 3.2.4.3.1 Update/Startup function ............................................ 3-10 3.2.4.3.2 Sorting function......................................................... 3-10 3.2.4.3.3 Create an order function ............................................ 3-10 3.2.4.3.4 Edit order module...................................................... 3-11 3.2.4.3.5 Payment module ........................................................ 3-11 3.2.4.3.6 Item selection function .............................................. 3-17 3.2.4.4 Communications..................................................................... 3-17 3.2.4.4.1 Socket programming ................................................. 3-17 3.2.4.4.2 Communication between handheld and central computer ................................................................................... 3-18 3.2.5 Implementation Process Description................................................... 3-18 3.2.6 End Product Testing ............................................................................ 3-19 3.3 Kitchen Display Approach and Results ....................................................... 3-19 i TABLE OF CONTENTS (Con’t) Section Description Page 3.3.1 Resultant Design Constraints .............................................................. 3-19 3.3.2 Approaches Considered and One Used ............................................... 3-19 3.3.2.1 Programming Language ......................................................... 3-20 3.3.2.2 Wireless Communications...................................................... 3-20 3.3.3 Detailed Design (hardware)................................................................. 3-21 3.3.3.1 Dell GX270............................................................................. 3-21 3.3.4 Detailed Design (software).................................................................. 3-22 3.3.4.1 Inputs ...................................................................................... 3-22 3.3.4.1.1 User Input.................................................................. 3-22 3.3.4.1.2 Input via Wireless Communication........................... 3-22 3.3.4.2 User Interfaces........................................................................ 3-23 3.3.4.2.1 Application Flow....................................................... 3-23 3.3.5 Implementation Process Description................................................... 3-24 3.3.6 End Product Testing ............................................................................ 3-25 3.4 Central Computer Approach and Results..................................................... 3-25 3.4.1 Resultant Design Constraints .............................................................. 3-25 3.4.2 Approaches Considered and One Used ............................................... 3-26 3.4.2.1 Programming Language ......................................................... 3-26 3.4.2.2 Wireless Communications...................................................... 3-26 3.4.3 Detailed Design (hardware)................................................................. 3-27 3.4.3.1 Dell GX270............................................................................. 3-27 3.4.3.2 Linksys BEFW11S4 Wireless-B Router ................................ 3-28 3.4.4 Detailed Design (software).................................................................. 3-29 3.4.4.1 Inputs ...................................................................................... 3-29 3.4.4.1.1 User Input.................................................................. 3-29 3.4.4.1.2 Input via Wireless Communication........................... 3-29 3.4.4.2 System Communication.......................................................... 3-29 3.4.4.3 User Interfaces........................................................................ 3-30 3.4.4.4 Application Flow .................................................................... 3-31 3.4.4.4.1 Central Computer Server........................................... 3-31 3.4.4.4.2 Manager Software ..................................................... 3-33 3.4.5 Implementation Process Description................................................... 3-34 3.4.6 End Product Testing Description ........................................................ 3-34 3.5 Project End Results ...................................................................................... 3-35 4 Actual and Estimated Resources and Schedules.............................................. 4-1 4.1 Actual and Estimated Resource Requirements .............................................. 4-1 4.1.1 Actual Resource Requirements ............................................................. 4-1 4.1.2 Estimated Resource Requirements........................................................ 4-3 4.2 Actual and Estimated Schedule Requirements .............................................. 4-7 5 Project Evaluation .............................................................................................. 5-1 ii TABLE OF CONTENTS (Con’t) Section Description Page 6 Commercialization ............................................................................................. 6-1 7 Recommendations for Additional Work.......................................................... 7-1 8 Lessons Learned ................................................................................................. 8-1 9 Risk and Risk Management .............................................................................. 9-1 10 Project Team Information ............................................................................... 10-1 11 Summary............................................................................................................ 11-1 12 References.......................................................................................................... 12-1 LIST OF FIGURES ................................................................................................ iv LIST OF TABLES ................................................................................................... v ACRONYMS AND ABBREVIATIONS ............................................................... vi iii TABLE OF CONTENTS (Con’t) LIST OF FIGURES Figure Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 Figure 9 Figure 10 Figure 11 Figure 12 Figure 13 Figure 14 Figure 15 Figure 16 Figure 17 Figure 18 Figure 19 Figure 20 Figure 21 Figure 22 Figure 23 Figure 24 Figure 25 Figure 26 Figure 27 Figure 28 Figure 29 Figure 30 Description Page Project’s product components ............................................................................. 2-3 ICOP Technology eBox-II .................................................................................. 3-6 Magtek Mini USB credit card reader .................................................................. 3-7 U.S. Robotics Wireless MAXg USB Adapter..................................................... 3-8 Ambicom Wireless Bluetooth Printer Kit ........................................................... 3-9 GUI for the handheld device ............................................................................. 3-10 Example of order arrays .................................................................................... 3-11 Hierarchal view of the payment module ........................................................... 3-12 Payment main menu .......................................................................................... 3-12 Cash submenu.................................................................................................... 3-13 Check submenu ................................................................................................. 3-14 Credit submenu ................................................................................................. 3-15 Debit submenu .................................................................................................. 3-16 Tip submenu...................................................................................................... 3-16 Socket diagram .................................................................................................. 3-18 Server and client communication ...................................................................... 3-22 Working prototype design of kitchen display GUI ........................................... 3-23 Application flow of kitchen display .................................................................. 3-24 Linksys BEFW11S4 broadband router ............................................................. 3-29 This GUI will allow a manager to create/edit menus........................................ 3-30 This GUI controls the server ............................................................................. 3-31 Flow diagram of how an incoming packet of data is handled........................... 3-32 Part of how the classes interact with each other in the central computer server software ............................................................................................................. 3-32 The rest of how the classes interact with each other in the central computer server software ............................................................................................................. 3-33 Actual Project Schedule ...................................................................................... 4-8 Revised Estimated Project Schedule ................................................................... 4-9 Original Estimated Project Schedule................................................................. 4-10 Actual Deliverables Schedule ........................................................................... 4-11 Revised Deliverables Schedule ......................................................................... 4-12 Original Deliverables Schedule......................................................................... 4-13 iv TABLE OF CONTENTS (Con’t) LIST OF TABLES Tables Table 1 Table 2 Table 3 Table 4 Table 5 Table 6 Table 7 Table 8 Table 9 Description Page Actual Personnel Manhour Effort Requirements for Each.................................. 4-1 Actual Required Resources.................................................................................. 4-2 Actual Estimated Project Costs............................................................................ 4-3 Revised Estimated Personnel Manhour Effort Requirements for Each............... 4-3 Original Estimated Personnel Manhour Effort Requirements for Each .............. 4-4 Revised Required Resources ............................................................................... 4-5 Original Required Resources ............................................................................... 4-5 Revised Estimated Project Costs ......................................................................... 4-6 Original Estimated Project Costs......................................................................... 4-7 v ACRONYMS AND ABBREVIATIONS WHOS Wireless Handheld Ordering System HDK hardware development kit LCD liquid crystal display GUI graphical user interface PCMCIA Personal Computer Memory Card International Association VPN Virtual Private Network MSDN Microsoft Developer Network vi 1 Executive Summary In many restaurants when a server takes an order from the customer they must write the order down and then enter it into a computer at one central location. The order is then printed out in the kitchen. When it is time to pay the server the server must go back to the central location and print out a copy of the customer’s bill. If the customer wants to pay with a credit card the server then has to take the customer’s credit card back to the computer at the central location to scan it in and then print the receipt. The current system wastes a lot of time because the server keeps going to and from the customer and the computer at the central location. It also wastes paper since the order must be written down, printed out in the kitchen, and finally a paper receipt must be given to the customer. The purpose of this Project is to develop a handheld device that can be used take an order while the server is standing at the table and send the order directly to a screen in the kitchen. When the customer is done eating the server will be able to show the customer their bill on the handheld device and, if the customer chooses to pay with a credit card, the device will be able to scan the credit card and print out a receipt without having to leave the customer. This system will reduce the time the sever takes to obtain and process an order and settle the bill with the customer. The device will also eliminate some paper used because the only printout is the customer’s credit card receipt. This report contains the strategies and approach that the May 07-14 group used to complete the Project on time. The report contains sections that address the following issues: operating environment; intended users; assumption and limitations; the end product; detailed results of the Project; costs; and schedule used for the completion of the project. The end product will be used in the demonstration, modification/continuation recommendation for the Project. Changes made to the project, since the Project Design are a revision in the cost estimate, time estimates and schedule for the Project. The revisions are being made due to the project being done and the actual numbers being known. 1-1 2 Project Statement This section will outline the purpose of the Project and identify conditions that will need to be satisfied as part of the development of a paperless restaurant system. 2.1 Project Purpose The purpose of the Project is to develop a Wireless Handheld Ordering System (WHOS) to be used in a restaurant. The system will accept order information and send it to the kitchen while the server is standing at the customer’s table. The system needs the ability to notify the server when the order is done. When the customer has finished their meal, the server will be able to display their bill and print a final receipt that will be given to the customer. If the customer is paying by credit card the server will be able to swipe the credit card information using the WHOS. The system will be able to keep track of all orders taken each day. The WHOS will consist of a handheld device (hereinafter called “product”) which will be able to communicate wirelessly to output screens in the kitchen and to a central computer used to record/document all orders. The device will be modeled by using an ICOP Technology eBox-II provided by the Department of Electrical and Computer Engineering. All inputs into the WHOS will be done using a mouse. Receipts given to customers will be printed from a printer connected to the system using Bluetooth communications. Programming for the devices will be done using Microsoft Visual C++ for the eBox-II and Java for the kitchen and central computer. 2.2 Operating Environment The product will need to be used both indoors and outdoors, weather permitting. It will not be required to work in the rain or any other extreme weather conditions. It will be stored at room temperature in a dry place but must be able to perform at non-condensing ambient temperatures. Other wireless devices are possible sources for interference. 2.3 Intended Use and Users The product is intended to be used by servers in a restaurant environment. Customers will also use the device to provide their electronic signature or debt card pin number. Orders will be received in the kitchen where the cook will be able to view and arrange the orders. The product will be designed so it can be easily used by an adult. All parts of the system will be easy to learn with a minimal amount of training. The requirements for using the product are basic reading and writing skills. The WHOS will require initially to be installed by technical personnel but menu changes, data interrogation and record reporting will be able to be accomplished by someone with limited computer skills. 2-1 2.4 Assumptions and Limitations To limit the Project’s definition and scope to a manageable form, we have identified the following assumptions and limitations. 2.4.1 Assumptions 1. Product will not be state of the art – Research shows that the resources are unattainable to make a state of the art product. 2. Since the prototype will be developed using a HDK it will not be handheld. The final commercial product can easily be developed from the prototype. 3. A maximum of 12 units will be used at once. 4. The maximum distance of transmission is within 10 meters (32 feet), about the range of Bluetooth [1]. 5. There will be a maximum of 5 simultaneous transmissions. 6. Handheld devices are able to be recharged throughout the day – The way in which this will occur will be like a Pocket PC. 7. Central computer will be located to maximize coverage. 8. Model can be developed into a handheld device.. 2.4.2 Limitations 1. 2. 3. 4. 5. Wireless and Bluetooth distance – Approximately 10m for Bluetooth and much larger depending on the structure of the building for Wireless. Power supply – This means the size of the battery used will limit the amount of time the device can be used before it needs to be recharged. Size and type of monitor available in the kitchen. The cost for items needed to complete the Project. May need to tone down the demo. The lack of programming skills due to the team being made of just electrical engineers. 2.5 Expected Project Product and Other Deliverables The expected Project product is a model of a WHOS that is ready for prototyping. The WHOS model will use simplified restaurant management software for demonstration. The following components will be available at the end of the Project: 1. 2. 3. 4. 5. Handheld device – ICOP Technology eBox-II; Computer monitor – displays the orders to the kitchen; Wireless printer – prints receipts; Central computer – keeps track of orders and makes updates to the system; and Model – portrays final product. 2-2 A graphical representation of the Project’s product components and how they communicate with each other is shown in Figure 1. Figure 1: Project’s product components 2-3 3 Approach and Results The following section will discuss in detail the approach used to develop the WHOS, the design of the components and the system. The first device to be discussed will be the handheld device, the central computer, and finally the kitchen display. 3.1 End-Product Functional Requirements The following are the functional requirements for the end product with a brief description of how each requirement is suppose to be met: • Send an order to the central computer for processing This will be done by opening a socket between the handheld and the central computer once an order has been placed. To verify that this has worked the kitchen display will then display the new order and the database will be updated with the new order. • Reading and writing to the MySQL database This will be done by the central computer software whereby it takes in information from either the kitchen or the handheld. The information from the kitchen will be when an order has been completed the database needs to be updated to change the state of an order. The information from the handheld that will need access to the MySQL database would be retrieving the menu, updating the menu after an order, adding new orders to the database, and changing the state of an order in the database. • Send from kitchen that an order is done The requirement requires that the kitchen tell the handheld that an order has been completed and is ready for pickup and needs to update the database on the state of the order. • Updating the menu on the handheld when the program first starts This will be done by sending a message out to the central computer that it needs the menu. The handheld will then receive from the central computer a compiled menu that will then be used on the handheld when taking orders and compiling the check. • Read a credit card or debit card from a credit card reader The way in which this requirement will be met by allowing the handheld to read a credit card or debit card when a transaction is made. The way this will be verified is by 3-1 having a message box pop up with the information on the card after the card had been swept. • Print to a printer using Bluetooth This requirement will be met by printing the receipt after the transaction had been completed. • Create a menu to be used by the handheld A brief description of this requirement would be that the software would be able to access the MySQL database and be able to access the tables in the database and be able to add to the tables or be able to create new tables that the handheld would be able to access as menus that patrons could order from. • Ability to rearrange the orders in the kitchen display The main functionality of this would be able to allow cooks to move the orders around so they could change the priority of the orders if they like. • For payment taking in a signature for a credit card or taking in a pin number for a debit card and sending it to the central computer. The way in which this requirement would work would be to take from the handheld the signature from the patron or their pin number and then send it to the central computer where it could be either stored or sent to the appropriate place that would need that information so that the payment method could be verified. • Ability to resend and edit a current order if there is a mistake This functionality would allow the patron to make a change to their order and then allow the wait staff to resend the order to the kitchen where the cooks would get the updated order on their screen. 3.2 Handheld Approach and Results This section will go through the approach taken to complete the handheld subsystem and the results that were obtained when the software was completed. 3.2.1 Resultant Design Constraints The following section contains information regarding the design constraints for the handheld device. 3-2 Bluetooth range The maximum range that our blue tooth device can support is 300 feet. Default menus The software will contain default menus that each menu item must fall under. These menus can be changed, but to do this changes in the code must be made. Menu names and sizes For this application each item name is limited to 100 characters, and each menu is limited to 30 items. These numbers can be changed, but changes to the code must be made. GUI Because of the limited programming knowledge of the group the GUI will not be as visually pleasing as it could be. Maximum number of orders This must be limited in order for the handheld to be able to edit the orders. 3.2.2 Approaches Considered and One Used The following technologies were considered for implementation in the final design: 3.2.2.1 Platform A review of platforms on which to complete the Project were considered. The platforms considered were using a Tablet PC to build a prototype, using a HDK, or using an eBox-II kit. Tablet PC The Tablet PC had the distinct advantage of being a mobile device compared to the other platforms. This would allow a prototype of the handheld to be developed. However, developing the operating system for the Tablet PC would be considerably more difficult than other platforms. Also, integration of the many hardware components would be more difficult because Tablet PC’s are not designed to maximize hardware integration. 3-3 Hardware Development Kit (HDK) The HDK is a platform specifically designed for development projects. Toward this end, the kit allows easy integration of hardware components and simplifies the development of the operator system. Disadvantages of the HDK are the cost and the lack of mobility. However, designing the handheld on a HDK would produce a workable prototype. ICOP Technology eBox-II The eBox-II is another development tool for design projects. The eBox-II runs a compiled Windows CE operating system. The operating system comes with many hardware drivers to ease integration. Also, these boxes are readily available to the team. However, development on the eBox-II is somewhat cumbersome, plagued with long compile times and a steep learning curve. Selected Approach The platform chosen was the eBox-II because it would simplify the development and the integration of the Project and is freely available from the Department of Electrical and Computer Engineering. 3.2.2.2 Programming Language The programming language to use for the handheld development was reviewed. The languages considered were Visual C++ and Java. Visual C++ Visual C++ language is based on C++ which is familiar to many members of the WHOS team. Additional components assist in developing GUIs, often without writing much additional code and is the native code that can be used on the eBox-II. Java Java is another language that lends itself to development of GUIs. There are a lot of libraries, scripts, and other example code available freely on the internet. Selected Approach The language chosen for the handheld development was Visual C++. The WHOS team is familiar with C++ and Java, but Visual C++ is native to 3-4 Windows CE and would require less development time on figuring out how to get Java working in Windows CE. 3.2.2.3 Wireless Communications The wireless communication method for the system was reviewed. The methods considered were Bluetooth and WiFi. Bluetooth Bluetooth is a wireless communication method for low power, shortrange, secure communications. It allows quick and easy integration of different devices. However, only a limited number of devices can communicate simultaneously using Bluetooth. WiFi WiFi is a wireless communication method often employed for larger networks. It allows farther ranges and can be more secure than Bluetooth, but it consumes more power and is more difficult to integrate devices. Selected Approach The wireless communication method chosen was to use both WiFI and Bluetooth. WiFi’s range and its ability to have simultaneous users communicate at the same time will make communicating with the central computer to be easier, while Bluetooth will allow easier integration of multiple close range devices, such as a printer, and consumes less power. 3.2.3 Detailed Design (hardware) The following sections contain detailed information regarding the features and design of the handheld device used in the project. 3.2.3.1 ICOP Technology eBox-II The ICOP eBox-II hardware development kit was chosen because of its capabilities to run Microsoft Windows CE 5.0 and Microsoft Visual C++. The eBox-II combines an x86 compatible processor, Ethernet networking capability, USB and other input/output ports, and memory in to a compact case seen in the Figure 2. 3-5 Figure 2: ICOP Technology eBox-II[2] The eBox-II has the following features and specifications: • Processor – 200 MHz Vortex86 system-on-chip (equivalent to the SiS550); • Memory – 128 MB SDRAM; • Disk – EIDE interface; • Ethernet – 10/100 Mbps Realtek 8100B with PXE boot; • CRT/LCD video controller: o AGP Rev 2.0 Compliant o Shared system memory area up to 128 MB o Up to 1920 X 1440 resolution in “true color” • Other input/output ports: o USB X 3 o PS/2 keyboard/mouse o Parallel • Real Time Clock with lithium battery backup; • BIOS – AMI BIOS; • Audio o AC97 V2.1 CODEC o Microphone, line in/out connections 3-6 • Power Requirements – single voltage, +5Volts at 1.7 Amps, with ACPI support; • Dimensions – 5.2 X 2.5 X 4.4 inches; and • Operating temperature – 20 to 60 degrees C[2]. The eBox were supplied free of charge by the Department of Electrical and Computer Engineering at Iowa State University. 3.2.3.2 Credit Card Reader A Magtek Mini USB credit card reader will be used for this Project. This particular credit card reader was chosen because it has the following desired features and specifications. • Powered by USB (No external power supply required); • Dual and three track capability; • Bi-directional read capability; • Reads encoded cards that meet ISO, ANSI and AAMVA standards; • Up to 1,000,000 passes with ISO-conforming cards; • Includes USB interface; • Card speed – 3 – 50 inches per second[3]. Figure 3: Magtek Mini USB credit card reader[3] The credit card reader was purchase from theNerds.net at a cost of $53.70. 3-7 3.2.3.3 USB Wireless Network Card A U.S. Robotics Wireless MAXg USB Adapter will be used in this project because it is capable of connecting to the eBox-II via a USB port. The important specifications and system requirements for this device are as follows: • System requirements o PC with Pentium processor or equivalent, 100 MHz or higher o USB 2.0 or USB 1.1 Port o Windows 2000 & XP • Specifications o Radio data rate – MAXg Technology for up to 125 Mbps performance o Frequency – 2.400 ~ 2.462 GHz o Encryption – 802.11i (WPA2); Wi-Fi Protected Access (WPA), TKIP; AES Encryption; 64/128-bit Wired Equivalent Privacy (WEP) encryption; 802.1x authentication o Bus interface – USB 2.0[4] Figure 4: U.S. Robotics Wireless MAXg USB Adapter[5] 3.2.3.4 Bluetooth Converter A Bluetooth converter will be used in order to convert a standard printer into a wireless printer. The Ambicom wireless Bluetooth printer kit (Model BT2-USB) was used for out application because it has the following specifications: • Enables your computer and USB printer with Bluetooth wireless technology and allows you to wirelessly send print jobs to a USB printer • Plug and play, easy to install • Range of up to 300 ft The wireless printer kit was purchased from Ambicom Incorporated at a cost of $79.99. A picture of the all of the components in the kit can be seen in the following figure. The device with the USB port will plug in the handheld device, and will be responsible for send all information to be printed. The other device will connect to the printer, and will receive all information that needs to be printed. 3-8 Figure 5: Ambicom Wireless Bluetooth Printer Kit[6] 3.2.3.5 Printer We will be using an hp deskjet960c printer for this application. This printer was chosen because of its compatibility with the Bluetooth printer kit. 3.2.4 Detailed Design (software) The following sections contain detailed information regarding the features and design of the handheld device used in the project. 3.2.4.1 Inputs The two types of inputs that the handheld device will use are inputs from the mouse and inputs from the card reader. Mouse clicks The user will be able to select different menu options by clicking on them with the mouse pointer. Credit card reader The credit card reader will be able to convert the information stored on the magnetic strip of a credit card into data that the hand held device is capable of understanding. 3.2.4.2 User Interfaces The GUI for the handheld device will consist of two regions. The first region will consist of the bottom half of the handheld’s display. This region is where all menu options will be displayed. The final region is the display window across the top of the handheld’s display. It will show all order information, the price of each item, and a 3-9 running tally of all items in the current order. The following figure shows GUI for the handheld device Figure 6: GUI for the handheld device 3.2.4.3 Modules The handheld’s programming was broken down into smaller easier to handle functions. The following is a break down of the functionality of each of these functions. 3.2.4.3.1 Update/Startup function The purpose of this function is to send a message to the central server that the handheld needs to be sent the menus. After receiving this is message the central server will send the menus to the handheld were they will be stored in one large character array. 3.2.4.3.2 Sorting function The purpose of this function is to take the large array generated by the update/start up function and sort it into the correct menus. 3.2.4.3.3 Create an order function The purpose of this function is to create an order array that can be sent to the kitchen. The first step in this process is to ask the user to enter an order number. This number will be stored on the first line of the array. The next step will as the user to enter the seat number for the order. After the seat number is entered it will ask the user to select the top menu that the item is located in. When a selection is made it will enter it into the order array, and then display the form with the next set of selections. This processes will continue until all selections for a single item have been made, at this point the program will once again ask for a seat number. This process will continue until the send 3-10 option is selected, at which point the order will be sent to the central computer, and the program will go to the item selection function. An example of the order array can be seen in Figure 7. [Handheld 55555\n :Appetisers\nChicken Fingers\n :Salad\nCeasar Salad\nBlue Cheese\n :Bugers\nCheese\nFris\nRanch\n :Entres\nShrimp\n :Appetisers\nBreaded Mush\n :Appetisers\nCheese Fris\n] Figure 7: Example of an order array 3.2.4.3.4 Edit order module The purpose of this function is to display a list of the current orders. The user will then be able to select one the order to be edited. Once the order is selected it will be loaded into the order array. After the order is entered into the array it will be sent into the create order function. 3.2.4.3.5 Payment module The purpose of the payment module is to provide point-of-sale support for the handheld device. With the assistance of the magnetic stripe reader, the module supports cash, check, credit, and debit card payments. The payment module consists of a main menu and submenus for cash, check, credit and debit payment methods. A menu to add a tip to the bill is a submenu of the credit and debit menus. 3-11 Figure 8: Hierarchal view of the payment module. Payment main menu The payment main menu requires the total bill as input. Main menu allows the user to access the different payment menus by clicking on the appropriate button. To exit the payment module, the user can click on the “Main Menu” button. In addition, this keeps a running tally of the total payments and total tips entered in the payment methods submenus. Figure 9: Payment main menu Cash submenu 3-12 The cash submenu requires the total bill as input. It allows the user to enter in the amount of cash given using the onscreen numeric keypad, and can calculate the change. Once finished, the user can return to the payment main menu by pressing “done” if they are to return the change or pressing “tip” if the change is to be converted to a tip. The total payment and total tip is incremented appropriately in the payment main menu. Pressing “cancel” will return the user to the payment main menu without incrementing. Figure 10: Cash submenu Check submenu The check submenu requires the total bill as input. It allows the user to enter the value of a check given. Pressing “done” will return to the payment main menu and increment the total payment and the total tip appropriately. Pressing “cancel” will return the user to the payment main menu without incrementing. 3-13 Figure 11: Check submenu Credit submenu The credit submenu requires the total bill as input. It allows the user to enter a tip using the tip menu which will be discussed below. Credit card information can be inputted by pressing the credit box and then swiping the card using the magnetic stripe reader. This information is then to be sent to the appropriate resources to verify the credit card. If valid, this will be shown using the indicator. The user can then use the mouse to sign their name. Pressing “done” will return to the payment main menu and increment the total payment and the total tip appropriately. Pressing “cancel” will return the user to the payment main menu without incrementing. 3-14 Figure 12: Credit submenu Debit submenu The debit submenu requires the total bill as input. It allows the user to enter a tip using the tip menu which will be discussed below. Debit card information can be inputted by pressing the debit box and then swiping the card using the magnetic stripe reader. The user’s pin is then entered using the onscreen numeric keypad. By clicking the “enter” button, this information is sent to appropriate resources to be verified. Pressing “done” will return to the payment main menu and increment the total payment and the total tip appropriately. Pressing “cancel” will return the user to the payment main menu without incrementing. 3-15 Figure 13: Debit submenu Tip submenu The tip submenu allows the user to enter a tip using the onscreen numeric keypad. The tip entered is returned to the previous menu. Pressing “done” will return to the previous menu with the entered tip. Pressing “cancel” will return the user to the payment main menu without incrementing. Figure 14: Tip submenu 3-16 3.2.4.3.6 Item selection function The purpose of this function is to guide the user through the item selection process. It will consist of a top form were the user will have the following options: • Update Menu • Start New Order • Edit Order • Payment If the update menu option is select the program will rerun the update/start up and sorting functions, and then return back to the top form. If the start new order option is selected the program will call the start new order function. It will do the same things for the edit order and payment selections. 3.2.4.4 Communications The handheld device and the central computer will communicate using a wireless network. On the software level the two systems will communicate using sockets 3.2.4.4.1 Socket programming Sockets are one of the easiest ways for two computers to communicate with each other. When the handheld device (client) needs to communicate with the central computer (server) it will create a socket. This socket will correspond to a socket on the server with specific port identification. When the client socket connects with server socket it creates a link between the two computers that information can be passed along. After communications with the server are finished the connection will be broken until the next time the client needs to communicate with the server in which case the connection will be remade. The sockets being used will be unidirectional, so if the central computer needs to communicate with the handheld device the central computer will become the client and the handheld will become the server. The same process will occur just the roles will be reversed. The following figure shows a basic diagram for how socket programming works. 3-17 Figure 15: Socket diagram[7] 3.2.4.4.2 Communication between handheld and central computer The handheld device needs to have the capability to communicate with all of the devices in the system. The most import of which is the central computer. In order for the handheld to achieve its desired functionality the following information must be sent/received to/from the correct location. • Send order information to the central computer • Send credit card verification to the central computer • Send order to kitchen display • Send bill to be printed to Bluetooth printer • Receive menu updates from the central computer • Receive credit card verification from central computer • Receive order status form kitchen 3.2.5 Implementation Process Description Since this project 90 % programming it was implemented by building each small function and then bringing them together to form the program. The functionality of the program was split into 3 manageable functions the communication, the item selections, and making a payment. Each function was developed by a different group member using Visual C++ .NET. During each weekly meeting members of the group updated each other on the progress being made, and helped each other with any problem. Once all of the functions were complete they were combined to make the final program. The one problem in the implementation process was that a non-GUI version was developed before the GUI version was developed. The nonGUI code could not really be converted into the GUI code so it would have been easier to start with the GUI to begin with. The smaller hardware part of the project was primarily given to one team member who tested it on the eBox-II. Once the program was finally complete the program was transferred to the eBox-II. 3-18 3.2.6 End-Product Testing Description Since this was mainly a software program most testing was done while building the program. Every time a new form or button was added it was tested to make sure it functioned like it was supposed to. The communications for the handheld was tested by stepping through the program and making sure that the right information was being sent back and forth. When the program was finished the group had people enter an order, and asked them to give us oral feedback on what needed to be changed. Everyone that the system was tested on didn’t have any trouble completing an order. The final test of the system was once the program was ported onto the eBox-II. For the final test the group made a couple of sample orders and verified that the correct changes were made to the database. 3.3 Kitchen Display Approach and Results This section will go through the approach taken to complete the kitchen display subsystem and the results that were obtained when the software was completed. 3.3.1 Resultant Design Constraints The project requirements for the kitchen display also include some design restraints, which are described as the following: Cost The overall product budget is $150, but the goal is to keep the cost for the kitchen display system as low as possible. That is why all the software being used is available for free. An affordable desktop computer that is already available for testing will be used, as well. User interfaces All user interfaces on the kitchen display must be presented in a simple, graphical interface to allow for easy user navigation. Minimal wireless communications The kitchen display application must be designed to allow the overall system to work with minimal communication between the two systems. The less the two systems have to interact over the network, the lower the risk of communication errors. This will also allow for more handheld systems to interact with the central computer system at once. 3.3.2 Approaches Considered and One Used The following technologies were considered for implementation in the final design: 3-19 3.3.2.1 Programming Language The programming language to use for the WHOS development was reviewed. The languages considered were Visual C++ and Java. Visual C++ Visual C++ language is based on C++ which is familiar to many members of the WHOS team. Additional components assist in developing GUIs, often without writing much additional code. Java Java is another language that lends itself to development of GUIs. There are a lot of libraries, scripts, and other example code available freely on the internet. Selected Approach The language chosen for the kitchen development was Java. The reason for the choice was that the kitchen development team was very familiar with Java. 3.3.2.2 Wireless Communications The wireless communication method for the system was reviewed. The methods considered were Bluetooth and WiFi. Bluetooth Bluetooth is a wireless communication method for low power, shortrange, secure communications. It allows quick and easy integration of different devices. However, only a limited number of devices can communicate simultaneously using Bluetooth. WiFi WiFi is a wireless communication method often employed for larger networks. It allows farther ranges and can be more secure than Bluetooth, but it consumes more power and is more difficult to integrate devices. 3-20 Selected Approach The wireless communication method chosen was to use was WiFI. WiFi’s range and its ability to have simultaneous users communicate at the same time will make communicating with the central computer to be easier. 3.3.3 Detailed Design (hardware) The following is a detailed look at the design of the kitchen display system which will process orders coming from the handheld device via the central server and display them on a kitchen monitor. 3.3.3.1 Dell GX270 The Dell GX270 was chosen as the computer for the kitchen display system because it is a multi-purpose desktop computer with the capabilities to run the applications that will be created for it. It was also chosen because there are multiple of these machines available to the team for testing purposes. In reality, the applications will be made to be able to be installed on any modern desktop computer running on a Windows operation system. A similar computer will be used for the kitchen display, though it will likely be a laptop running an application on the Dell GX270 via a remote desktop connection. The Dell GX270 has the following features and specifications that may apply to this project: • Processor – Intel 865G chipset, Intel® Pentium® 4 processor with 800 MHz front side bus and Hyper-Threading support or 533 MHz front side bus (depending on processor) and 512K L2 cache or Celeron® processor with 400 MHz front side bus and 128K L2 cache • Memory – .4 DIMM slots (SF Chassis only has two); Non-ECC dual channel shared2 DDR SDRAM system memory (333Mhz or 400Mhz) up to 4GB on the SD and SMT chassis • Ethernet – One RJ45 Port • Other input/output ports: o Eight USB 2.0 o PS/2 keyboard/mouse o One Ethernet (RJ45) • Video Controller- Integrated Intel Extreme® Graphics 2 • Power Supply – Small Form Factor 160W, Small Desktop 210W, Small Mini-Tower 250W[8] 3-21 3.3.4 Detailed Design (software) The following is an overview of the software design for the kitchen display application. The application will be written in Java 5.0. A main application will be used to receive order information and to call methods from two classes, one for processing and displaying orders and one for sending messages to the central server. 3.3.4.1 Inputs The application will use two types of input: User input via a keyboard and/or mouse and information being directly received from the handheld via the central server. 3.3.4.1.1 User Input If the user is at the kitchen-based computer, he/she will use a mouse and keyboard to either prioritize orders that are on the screen or send a message to the handheld confirming that the order has been completed. 3.3.4.1.2 Input via Wireless Communication The kitchen application will receive and send information to and from the central server. Using socket programming (Java 5.0 has classes designed for networking, including the Socket() class) the application will be able to receive and deliver information to/from the central server. Networking in the Java Application The application will serve as a client to the central server. The kitchen will connect with the server and request order information. This idea is shown in the following diagram: Figure 16: Server and client communication[9] The two will then be able to communicate by writing to or reading from their sockets. 3-22 3.3.4.2 User Interfaces For the kitchen display, the GUI will consist of a simple series of boxes, each containing an order. They will be displayed from left to right, top to bottom, in the order they were received by the handheld. The image below is a screen shot from the working GUI of the kitchen display. As you can see, each order is displayed, and a text field at the bottom allows the user to enter them number of a completed order (1-6, respective to the numbers above each order in the GUI). Upon pushing the “Order Done” button, the order is removed, the update is displayed with a new order from the queue, and a message is sent to the central computer confirming said order completion. . Figure 17: Working prototype design of kitchen display GUI 3.3.4.3 Application Flow When the main kitchen display application starts up, it will establish connection with the central server through the wireless router. It will request order information continuously from the server and display these orders on the kitchen monitor. Upon order completion, which is initiated by the user, a message will be sent to the server notifying the completion of said order. This process will be going on continuously and automatically as long as the application is running. The figure below shows in detail these communications and exactly what functions the application will be performing. 3-23 Figure 18: Application flow of kitchen display 3.3.5 Implementation Process Description The approach to developing the kitchen-based system was designed to minimize the risk of failure. With the success of the project in mind, the first and biggest priority for the kitchen system was to achieve a very basic working version that incorporated all the most important functions on the kitchen side. This included the ability for the software to appropriately process and display orders in some fashion, as well as the functionality of user input to confirm order completion and refresh the order queue. Once this functionality was established in the software in a non-graphical version (text-based display), the focus was moved to system integration. Communication with the central computer server is essential since that is where all the orders come from in the first place. Software being developed for communication purposes on the central computer side was merely simplified and altered accordingly to the needs of the kitchen side of communications and implemented into the text-based kitchen software. Finally, with the system in basic functioning order, the final stage of the process, the development of a user-friendly graphical interface, began. A very simple user interface was created with ease-of-use in mind. Upon completion of the GUI, the kitchen-based system was complete. 3-24 3.3.6 End-Product Testing Description Because the kitchen-based system is entirely software based, testing was going on all throughout the development process. As each required element of the system was added in, every function and system component was carefully tested to insure that everything was still working and that system integration was going as planned. Any problems encountered while testing in the development stage were immediately looked into and fixed accordingly to prevent the issue from becoming a bigger problem later on in the product development. For testing with a user, the main thing that has to be tested is ease-of-use. Can a person new to the kitchen system easily start the application and use it in a kitchen environment? Can he/she understand the kitchen display itself? Can he/she understand how to confirm completion of an order? These questions were to be answered and by answering yes to all of these then it was known that the kitchen display worked properly. 3.4 Central Computer Approach and Results The following addresses the design objectives, the functional requirements, and the design restraints of the central computer system. It also looks at some technical and testing approach considerations. 3.4.1 Resultant Design Constraints The Project requirements for the central computer system also include some design restraints, which are described as the following: Cost The overall product budget is $150, but the goal is to keep the cost for the central computer system as low as possible. That is why all the software being used is available for free. An affordable desktop computer that is already available for testing will be used, as well. User interfaces All user interfaces on the central computer system must be presented in a simple, graphical interface to allow for easy user navigation. Minimal wireless communications The central system must be designed to allow the overall system to work with minimal communication between the two systems. The less the two systems have to interact over the network, the lower the risk of communication errors. This will also allow for more handheld systems to interact with the central computer system at once. 3-25 3.4.2 Approaches Considered and One Used The following technologies were considered for implementation in the final design: 3.4.2.1 Programming Language The programming language to use for the central computer development was reviewed. The languages considered were Visual C++ and Java. Visual C++ Visual C++ language is based on C++ which is familiar to many members of the WHOS team. Additional components assist in developing GUIs, often without writing much additional code. Java Java is another language that lends itself to development of GUIs. There are a lot of libraries, scripts, and other example code available freely on the internet. Selected Approach The language chosen for the creation of the central computer software was Java because of its ease of use and the amount of documentation available that can be used during the development of the software. 3.4.2.2 Wireless Communications The wireless communication method for the system was reviewed. The methods considered were Bluetooth and WiFi. Bluetooth Bluetooth is a wireless communication method for low power, shortrange, secure communications. It allows quick and easy integration of different devices. However, only a limited number of devices can communicate simultaneously using Bluetooth. WiFi WiFi is a wireless communication method often employed for larger networks. It allows farther ranges and can be more secure than Bluetooth, but it consumes more power and is more difficult to integrate devices. 3-26 Selected Approach The wireless communication method chosen was to use WiFI. WiFi’s range and its ability to have simultaneous users communicate at the same time will make communications easier due to the support for it in Java. 3.4.3 Detailed Design (hardware) The following is a detailed look at the design of the central computer system which will process packets coming from the handheld device and from the kitchen and take the packets and update the restaurant’s item database and order history. The central computer system will have software that will allow users to create, edit, and select menus and update information on the wireless handheld device. 3.4.3.1 Dell GX270 The Dell GX270 was chosen as the computer for the central computer system because it is a multi-purpose desktop computer with the capabilities to run the applications that will be created for it. It was also chosen because there are multiple of these machines available to the team for testing purposes. In reality, the applications will be made to be able to be installed on any modern desktop computer running on a Windows operation system. A similar computer will be used for the kitchen display, though it will likely be a laptop running an application on the Dell GX270 via a remote desktop connection. The Dell GX270 has the following features and specifications that may apply to this project: • Processor – Intel 865G chipset, Intel® Pentium® 4 processor with 800 MHz front side bus and hyper-threading support or 533 MHz front side bus (depending on processor) and 512K L2 cache or Celeron® processor with 400 MHz front side bus and 128K L2 cache; • Memory – .4 DIMM slots (SF chassis only has two); non-ECC dual channel shared2 DDR SDRAM system memory (333Mhz or 400Mhz) up to 4GB on the SD and SMT chassis; • Ethernet – One RJ45 port; • Other input/output ports: o Eight USB 2.0 o PS/2 keyboard/mouse o One Ethernet (RJ45) • Video controller- Integrated Intel Extreme® Graphics 2; 3-27 • Power supply – small form factor 160W, small desktop 210W, small mini-tower 250W[8]. 3.4.3.2 Linksys BEFW11S4 Wireless-B Broadband Router The Linksys BEFW11S4 Wireless-B Broadband Router has been chosen as an affordable and reliable router that will be able to handle the requirements of this system. It has the following features and specifications that make it a choice wireless router for this Project: • Standards: IEEE 802.3, IEEE 802.3u, IEEE 802.11b; • Protocol: CSMA/CD; • Channels: 11 channels (US, Canada), 13 channels (Europe) 14 channels (Japan); • Ports: o Internet: one 10/1000 RJ-45 port for cable/DSL modem connection o LAN: four 10/100 RJ-45 switched ports • Speed: 10/100Mbps (half duplex) 20/200 (full duplex); • Cabling Type: UTP category 5 or better; • Dimensions: 7.31" x 6.16" x 1.88" (186 mm x 154 mm x 48 mm); • Unit weight: 16 oz. (0.45 kg); • Power: external, 5V DC, 2A; • Certifications: FCC, CE, WiFi, UPnP; • Operating temp: 0ºC to 40ºC (32ºF to 104ºF); • Storage temp: -20ºC to 70ºC (-4ºF to 158ºF); • Operating humidity: 10% to 85%, non-condensing; and • Storage humidity: 5% to 90%, non-condensing[10] 3-28 [10] Figure 19: Linksys BEFW11S4 broadband router 3.4.4 Detailed Design (software) The following is an overview of the software design for the applications running on the central computer system. The applications will be written in Java 5.0, and MySQL will be used for database support. One Java application will act like a server that will process incoming data packets from the handheld or the kitchen display and the other will be used for the creating/editing menus, view order history, and view/edit the inventory. MySQL databases will store all inventory, order, menu, and pricing information. These databases will be accessed from the Java application through MySQL client software for Java. 3.4.4.1 Inputs The application on the central computer will use two types of input: user input via a keyboard and/or mouse and information being directly received from the handheld via wireless communication. 3.4.4.1.1 User Input The user will have the capability to input information into the central computer through some different applications. If the user is accessing the database, he/she will be able to create/edit/choose menus, as well as view/update the restaurant inventory and view/edit the order history. 3.4.4.1.2 Handheld Device Input via Wireless Communication The application on the central system will receive and send information to and from the handheld through a wireless router. Using socket programming (Java 5.0 has classes designed for networking, including the Socket() class) the application will be able to receive and deliver information to/from the handheld. 3.4.4.2 System Communication MySQL is database software that is available free over the internet. It runs on commands given by the user (much like a language such as Java or C++). The very 3-29 useful thing about MySQL for the purposes of the project is that there is client software available that allows a program running in either Java or C++ to directly speak to the databases and create, edit, and read from databases. This database system will work as follows: There will be a database for: the restaurant inventory; the order history; and each menu created. Every time an order is placed by the handheld the central computer will process the order and notify the kitchen that a new order has arrived. The central computer can also take care of using the order information to update the inventory and order history, which will minimize the number of communications between the handheld and the central system over the network. 3.4.4.3 User Interfaces The application on the central computer system will have a few different uses, each requiring its own graphical user interface. For creating/editing menus, the GUI will consist of a series of options that the user can select with a mouse or keyboard. These will allow the user to select from choosing a menu, creating a menu, or editing a previously created menu as shown in Figure 20. Figure 20: This GUI will allow a manager to create/edit menus The next GUI that will be run on the central computer will be the server software that will enable the user to start and stop the server whenever they want to. The way in which the GUI looks is shown in Figure 21. 3-30 Figure 21: This GUI controls the server 3.4.4.4 Application Flow The following section will go over the application flow of central computer server and then the manager software. 3.4.4.4.1 Central Computer Server When the central computer application starts up, it will start a simple server that will wait for incoming data from the handheld or the kitchen. This is basically waiting for an order to be placed. The program will then notify the kitchen that a new order has been placed by forwarding the order to the kitchen and then update the database with the order and then update the counter in the menu that keeps track of the inventory of each item in the restaurant. This process will be going on continuously and automatically as long as the application is running. A flow diagram of how incoming information into the server is processed is shown in Figure 22. The class diagram interaction of what the algorithm for the server is shown in Figure 23 and 24. This basically shows blueprint of how the server was created to get it to do what it does. 3-31 Figure 22: Flow diagram of how an incoming packet of data is handled Figure 23: Part of how the classes interact with each other in the central computer server software 3-32 Figure 24: The rest of how the classes interact with each other in the central computer server software 3.4.4.4.2 Manager Software At the same time, the central computer will also be able to display the options for the user, should they need to create/choose menus or view the database. If the user chooses to create a menu, the program will display a form with numerous blank entries, in which the user can type in main categories (appetizers, salads, entrees, etc.). After pressing enter, the program will display these categories. By clicking on one of these categories, another form will be displayed, again showing blank entries into which the user can type in sub-categories, and so on (for example, salad sub-categories would be various different salads and the sub-categories of each of these may be possible salad dressing options). After entering all desired items, the user can complete and save the menu. This can be accessed from the “Choose Menu” section, which will allow the user to edit the menu or select it to be sent to the handheld. 3-33 3.4.5 Implementation Process Description A description of the process to implement the central computer server software was to start by first figuring out what were the functions that the server would need to do. After coming up with a list of functions the classes were designed by coming up with the necessary methods and attributes that each class would need to perform the necessary tasks that the server would be required to do. Once this was completed then the next part was to develop a simple multithreading server that once completed could have the functions added onto to it. The first stage after getting a simple multithreading server running was to develop a GUI that would interact with it to start and stop the server and to get information passed into it such as the username, password, and IP addresses for the database; IP address for the kitchen; and the number of handhelds that can simultaneously connect to the central server. The next stage was to write the classes for receiving the data packets from the kitchen and the handheld and sending them to the right places. Only then could it be possible to start working on the design of the database. The reason for this was by waiting until now the database could be matched to what needed to be sent and received from the handheld instead of needing to meet a ridged requirement of the type of data to put into the database. Also, the manipulation of the database is very easy and would require little effort to change to the needs of the program. Once all of this was complete then the integration would begin between the other subsystems of the Project. As for any improvements to the process for developing the central computer and database this method was a good process to follow for developing this subsystem of the Project. 3.4.6 End-Product Testing Description Since this is mainly a proof of concept project the testing was done exclusively by the team. The type of testing that the team did to this particular part of the Project was broken down into to two parts. The first part was to test the subsystem on its own and make sure that it could take in test packets and process them properly and the second part was with full integration with the other subsystems of the Project. The first part of the testing was done as a standalone program. The way in which it was verified that the software worked properly was by using examples from Sun Microsystems of two programs one of which was a server and another that was a client. These two programs would help in verifying what type of data is sent out of the central computer software and how it processes incoming data. To verify that the central computer software was processing incoming data properly the program was stepped through to make sure that all of the data was handled properly and the appropriate items in the database were updated properly or queried properly to gain information from it. To make sure that the central computer software sent the data out properly a complete example of making an order was tried, which used the Sun Microsystems client program and sending an order to the central computer server and then making sure that the Sun Microsystems server program was running and watching to see 3-34 what got sent from the central computer because the server program would show this. This would be repeated for a “get menu” call from the handheld to the central computer and a “done” command from the kitchen. After passing these tests then it was possible to begin the next stage of testing which was for the full integration of all the subsystems together. The testing of the full integration followed the same path as when the central computer was tested as a standalone. This was done by going through and making sure that all of the functions that were required for the whole Project worked properly. If there was an error the offending software was stepped through to find the problem and then fixed. Once the functionality was verified to work then it was determined that the whole system could work. 3.5 Project End Results The end result of the handheld will be a working model centered around the eBox-II. The credit card reader, Bluetooth printing kit, and wireless card will all be connected and will interacting the handheld’s software running on the eBox-II. Due to the large cost of developing an actual size product, the group was only able to model the system using item that were not of ideal sizes. The result of the kitchen-based system is a system that meets all the basic requirements of the project objectives that it is concerned with. A GUI-based program processes and displays the orders on a monitor separate from the central computer. The program achieves basic communication with the restaurant server. The system receives user input via the GUI to confirm order completion. There are many areas in which this system could be improved if further development were to take place, such as the appearance of the GUI and the overall efficiency of the code, but nonetheless, the system has been developed up to the project’s standards. As for the end results of the central computer the central computer will be able to redirect the traffic from the handheld to the kitchen and vice-versa. As the data is being passed through the central computer the database will be updated by updating the inventory, adding the orders and updating the order status. Besides handling the data from the handheld and the kitchen the central computer will also have software running on it that will be able to maintain the menus for the restaurant by allowing a manager the ability to edit the menus. 3-35 4 Actual and Estimated Resources and Schedules This section presents the estimated resources and schedules that will be used to estimated time for each part of the phase of the Project and identify the cost of the Project. The first part will present the estimated resources required for completing the Project. The second part will present the schedule and how much time will be spent on each phase of the Project. 4.1 Actual and Estimated Resource Requirements The actual and estimated resources requirements are broken down into three categories: personnel and actual manhours for each task; equipment/material inventory list and associated costs for each item; and the actual total cost of the Project. 4.1.1 Actual Resource Requirements The actual personnel manhour effort for each of the tasks is shown below in Table 1. The hours given in the table reflect the actual hours required to complete the project. The reason for zero hours for Task 6 is that Task 6 is defined to be the amount of hours put into creating end-user documentation. Since this project has no end-users and is a proof of concept project there is no need to create end-user documentation. Table 1: Actual Personnel Manhour Effort for Each Task Personnel Name Chris Ford Sean McVeigh Obioma Ohia Nichole Taylor Anthony VanSant Total Task 1 2.5 7.03 5.5 6.0 0.25 21.28 Task 2 4.0 2.43 16.0 15.0 1.25 38.68 Task 3 15.0 11.47 12.5 14.0 3.22 56.19 Task 4 80.0 88.52 40.5 41.0 52.63 302.65 Task 5 10.0 23.64 35.0 37.0 15.9 121.54 Task 6 0 0 0 0 0 0 Task 7 4.0 1.0 5.0 5.0 2.0 17.0 Task 8 50.0 49.03 32.5 44.0 13.13 188.66 Total 165.5 183.12 147.0 162.0 101.38 759.15 Task 1 – Problem Definition Task 2 – Technology Considerations and Selections Task 3 – End Product Design Task 4 – End Product Prototype Implementation Task 5 – End-Product Testing Task 6 – End-Product Documentation Task 7 – End-Product Demonstration Task 8 – Project Reporting The equipment/materials necessary to complete the Project and the associated costs are shown in Table 2. The cost information has been gathered from the actual cost of the items purchased for to complete the project. Most of the items located in the list are free because either the team already owns the items or they can be easily obtained from the Department of Electrical and 4-1 Computer Engineering. The references of where the prices came from are all contained in Section 7. Table 2: Actual Required Resources Item Parts and Materials: a. ICOP Technology eBox-II b. Magtek Mini USB Credit Card Reader[11] c. U.S. Robotics Wireless MAXg 802.11g USB 2.0 Adapter[12] d. Bluetooth Printer Adapter[13] e. Print Project Poster f. Dell Dimension GX270 g. Linksys BEFW11S4 Wireless Router Software: a. Microsoft Windows CE .NET 5.0 b. Microsoft Visual Studio Pro 2005 w/MSDN Pro Totals Team Hours Other Hours Cost 0 0 0 0 0 0 Free $53.70 $45.95 0 8 0 0 0 0 0 0 $79.99 $55.00 Free Free 0 0 11 0 0 0 Free Free $234.64 The total cost of the Project includes both the cost for the equipment/materials and the labor. Labor costs were calculated by assuming that the team personnel would receive $10.50 per hour for working on the Project. The cost per hour was multiplied by the total hours each person is estimated to work to get the total cost for one team member to work on the Project. The $10.50 per hour comes from an estimate of what a recently graduated engineer (does not include benefits markup) would make per hour and what an intern would make on an internship. The actual cost for the Project is shown in Table 3. 4-2 Table 3: Actual Project Costs Item Parts and Materials: a. ICOP Technology eBox-II b. Magtek Mini USB Credit Card Reader c. U.S. Robotics Wireless MAXg 802.11g USB 2.0 Adapter d. Bluetooth Printer Adapter e. Print Project Poster f. Dell Dimension GX270 g. Linksys BEFW11S4 Wireless Router W/O Labor With Labor Free $53.70 $45.95 Free $53.70 $45.95 Subtotal $79.99 $55.00 Free Free $234.64 $79.99 $55.00 Free Free $234.64 Subtotal Free Free Free Free Free Free $234.64 $1,737.75 $1,922.76 $1,543.50 $1,701.00 $1,064.49 $7,969.50 $8,204.14 Software: a. Microsoft Windows CE .NET 5.0 b. Microsoft Visual Studio Pro w/MSDN Pro Labor at $10.50 per hour: a. Ford, Chris b. McVeigh, Sean c. Ohia, Obioma d. Taylor, Nichole e. VanSant, Anthony Subtotal Total 4.1.2 Estimated Resource Requirement The following section is provided to show the original and revised estimates for the project. The first item to go over is Table 4 that shows the tasks required to complete the Project and the corresponding estimated manhours to complete each task. The hours given for each team member closely related to their expertise in programming and how much responsibility they will assume for a given Table 4: Revised Estimated Personnel Manhour Effort Requirements for Each Task Personnel Name Chris Ford Sean McVeigh Obioma Ohia Nichole Taylor Anthony VanSant Total Task 1 6.50 7.00 5.50 5.75 5.25 30.0 Task 2 14.0 19.0 13.0 11.5 12.5 70.0 Task 3 21.0 14.0 15.5 16.0 13.5 80.0 Task 4 40.0 49.0 48.0 43.0 45.0 225.0 Task 1 – Problem Definition Task 2 – Technology Considerations and Selections Task 3 – End Product Design Task 4 – End Product Prototype Implementation Task 5 – End-Product Testing Task 6 – End-Product Documentation Task 7 – End-Product Demonstration Task 8 – Project Reporting 4-3 Task 5 44.0 36.0 38.0 46.0 36.0 200.0 Task 6 11.5 14.0 9.5 12.0 13.0 60.0 Task 7 4.6 4.2 5.0 5.0 5.2 24.0 Task 8 42.0 56.0 35.0 45.0 38.0 216.0 Total 183.60 199.20 169.50 184.25 168.45 905.00 task. Table 4 does not show any change from the original manhours given in the Project Plan. The reason for this is that it was still believed that these estimations were still the best estimation of how the project will to be completed. The original manhours from the Project Plan is shown below in Table 5. Table 5: Original Estimated Personnel Manhour Effort Requirements for Each Task Personnel Name Chris Ford Sean McVeigh Obioma Ohia Nichole Taylor Anthony VanSant Total Task 1 6.50 7.00 5.50 5.75 5.25 30.0 Task 2 14.0 19.0 13.0 11.5 12.5 70.0 Task 3 21.0 14.0 15.5 16.0 13.5 80.0 Task 4 40.0 49.0 48.0 43.0 45.0 225.0 Task 5 44.0 36.0 38.0 46.0 36.0 200.0 Task 6 11.5 14.0 9.5 12.0 13.0 60.0 Task 7 4.6 4.2 5.0 5.0 5.2 24.0 Task 8 42.0 56.0 35.0 45.0 38.0 216.0 Total 183.60 199.20 169.50 184.25 168.45 905.00 Task 1 – Problem Definition Task 2 – Technology Considerations and Selections Task 3 – End Product Design Task 4 – End Product Prototype Implementation Task 5 – End-Product Testing Task 6 – End-Product Documentation Task 7 – End-Product Demonstration Task 8 – Project Reporting The equipment/materials necessary to complete the Project and the associated costs are shown in Table 6. The cost information for each item comes from going to supply companies on the internet that provided these items. Most of the items located in the list are free because either the team already owns the items or they can be easily obtained from the Department of Electrical and Computer Engineering. In the instance of the HDK the cost is an estimate for now. It was hoped that this item was to be donated by Intel in which case the cost would have been nothing. Showing the cost provides a good cost estimate of how much something like this costs and how it affects the budget. The references of where the prices came from are all contained in Section 7. 4-4 Table 6: Revised Required Resources Item Parts and Materials: h. Hardware Development Kit Assembly[14] i. ICOP Technology eBox-II j. Magtek Mini USB Credit Card Reader[15] k. NETGEAR 802.11B Wireless USB Adapter l. Bluetooth Printer Adapter[16] m. Miscellaneous Parts n. Print Project Poster o. Dell Dimension GX270 p. Linksys BEFW11S4 Wireless Router Software: c. Microsoft Windows CE .NET 5.0 d. Microsoft Visual Studio Pro 2005 w/MSDN Pro Totals Team Hours Other Hours Cost 3 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 ~$1,399.00 Free $67.20 Free $54.00 $20.00 $50.00 Free Free 0 0 11 0 0 0 Free Free $1,590.20 To better understand the origin of the items in Table 6 it is necessary to review the original plan equipment/material list. The original plan equipment/material list is presented in Table 7 and shows the costs for each of the items that were needed for the Project. It was believed initially that all of the items could be obtained through donations and that the estimated costs were developed to give an idea of how much it would cost to get all of the items necessary to complete the Project. Since the Project Plan was first presented, we have determined that the ideal equipment/material to complete the Project will not be realized and we have revised the required equipment/material resources in Table 6. It is necessary to present the original items to show what it will take to complete the Project under ideal conditions. Table 7: Original Required Resources Item Parts and Materials: a. Hardware Development Kit Assembly[14] b. Card Swipe[15] c. Wireless 802.11g PCMCIA Card[17] d. Bluetooth Printer[18] e. Bluetooth Adapter[19] f. Miscellaneous Parts g. Print Project Poster h. Dell Dimension B110[20] i. Linksys WRT54G Wireless Router[21] Software: a. Microsoft Windows CE .NET 4.2[22] b. Microsoft Visual Studio Pro 2005 w/MSDN Pro[23] Totals Team Hours Other Hours Cost 3 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 $1,399 $75.80 $59.99 $725.00 $30.00 $20.00 $50.00 $569.00 $49.99 0 0 11 0 0 0 $995.00 $644.00 $4,617.78 The total cost of the Project includes both the cost for the equipment/materials and the labor. Labor costs were calculated by assuming that the team personnel would receive $10.50 per hour for working on the Project. The cost per hour was multiplied by the total hours each person is estimated to work to get the total cost for one team member to work on the Project. 4-5 The $10.50 per hour comes from an estimate of what a recently graduated engineer (does not include benefits markup) would make per hour and what an intern would make on an internship. The cost estimate for the Project is shown in Table 8. This information is a revised estimated project cost from the original plan. The change is due to the equipment/materials needed to complete the Project has changed, thus the estimated project costs were updated to reflect these changes and also the labor cost has decreased due to new estimates in labor. Table 8: Revised Estimated Project Costs Item Parts and Materials: h. Hardware Development Kit Assembly i. ICOP Technology eBox-II j. Magtek Mini USB Credit Card Reader k. NETGEAR 802.11B Wireless USB Adapter l. Bluetooth Printer Adapter m. Miscellaneous Parts n. Print Project Poster o. Dell Dimension GX270 p. Linksys BEFW11S4 Wireless Router W/O Labor With Labor Subtotal ~$1,399.00 Free $67.20 Free $54.00 $20.00 $50.00 Free Free $1,590.20 ~$1,399.00 Free $67.20 Free $54.00 $20.00 $50.00 Free Free $1,590.20 Subtotal Free Free Free Free Free Free $1,590.20 $1,927.80 $2,091.60 $1,779.75 $1,934.63 $1,768.73 $9,502.51 $11,092.71 Software: c. Microsoft Windows CE .NET 5.0 d. Microsoft Visual Studio Pro w/MSDN Pro Labor at $10.50 per hour: f. Ford, Chris g. McVeigh, Sean h. Ohia, Obioma i. Taylor, Nichole j. VanSant, Anthony Subtotal Total Table 9 is presented for purposes of showing the ideal case for completing the Project. It was unrealistic to think that all the equipment/material could be obtained through donations and that the least ideal case is the realistic way of completing the project. 4-6 Table 9: Original Estimated Project Costs Item Parts and Materials: a. Hardware Development Kit b. Card Swipe c. Wireless 802.11b PCMCIA Card d. Bluetooth Printer e. Bluetooth Adapter f. Miscellaneous Parts g. Project Poster h. Dell Dimension B110 i. Linksys WRT54G Wireless Router W/O Labor With Labor Subtotal $1,399 $75.80 $59.99 $725.00 $30.00 $20.00 $50.00 $569.00 $49.99 $2,978.78 $1,399 $75.80 $59.99 $725.00 $30.00 $20.00 $50.00 $569.00 $49.99 $2,978.78 Subtotal $995.00 $644.00 $1,639.00 $995.00 $644.00 $1,639.00 $4,617.78 $4,590.00 $4,980.00 $4,237.50 $4,606.25 $4,211.25 $22,625.00 $27,242.28 Software: a. Microsoft Windows CE .NET 4.2 b. Microsoft Visual Studio Pro w/MSDN Pro Labor at $25.00 per hour: a. Ford, Chris b. McVeigh, Sean c. Ohia, Obioma d. Taylor, Nichole e. VanSant, Anthony Subtotal Total 4.2 Actual and Estimated Schedule Requirements The estimated schedule has two components: task start and finish schedule; project deliverables schedule. The actual schedule for when a task begins and ends in shown in Figure 16, which is on the following page and the revised original schedule is shown in Figure 17 followed by the original schedule Figure 18. The actual deliverables schedule is shown in Figure 19 followed by the revised deliverables schedule in Figure 20 and the original deliverables schedule shown in Figure 21. 4-7 4-8 Constraint Identification 4 Technology Research Technology Selection 8 9 Test Development Actual Testing 18 19 Client Demonstration Industrial Review Panel Demonstration 23 24 Unbound Project Plan Bound Project Plan Unbound Design Report Bound Design Report Project Poster Unbound Final Report Bound Final Report Weekly Email Reporting 26 27 28 29 30 31 32 33 Project Reporting Faculty Advisor(s) Demonstration 22 25 Demonstration Planning 21 End-Product Demonstration Test Planning 17 20 End-Product Testing Implementation of Prototype 15 16 Identification of Limitations 14 Prototype Implem entation Design Process 12 13 Identification of Requirements 11 End-Product Design Identification of Criteria 7 10 Identification of Technologies 6 Technology Considerations End User(s) and End Use(s) 5 Project Definition Completion 3 Project Definition 1 2 Task Name ID Fri 10/6/06 Sat 9/16/06 Mon 9/11/06 Tue 4/24/07 Wed 4/18/07 Wed 4/11/07 Wed 4/4/07 Wed 4/4/07 Mon 1/29/07 Tue 1/23/07 Tue 1/16/07 Tue 1/16/07 Fri 10/20/06 Fri 10/13/06 Fri 10/13/06 Fri 10/13/06 Fri 10/6/06 Fri 10/6/06 Fri 10/20/06 Mon 10/2/06 Mon 9/25/06 Fri 9/8/06 Fri 9/8/06 Wed 9/13/06 Fri 9/15/06 Tue 8/29/06 Tue 8/29/06 Start 169 days 14 days 12 days 11 days 8 days Mon 9/11/06 Fri 4/13/07 Fri 3/16/07 Wed 2/14/07 Mon 12/4/06 23 days Wed 10/11/06 3 days 5 days 172 days 1 day 1 day 1 day 5 days 15 days 60 days 5 days 5 days 70 days 132 days 3 days 137 days 98 days 5 days 103 days 3 days 14 days 5 days 12 days 34 days 5 days 1 day 13 days 16 days Duration Oct 8, '06 W T F Oct 29, '06 S S M Nov 19, '06 T W Dec 10, '06 T F S Figure 25: Actual Project Schedule Aug 27, '06 Sep 17, '06 F S S M T Dec 31, '06 S M T Jan 21, '07 W T Feb 11, '07 Mar 4, '07 F S S M T Mar 25, '07 W T F A pr 15, '0 7 M S S M 4-9 Constraint Identification Technology Research Technology Selection 8 9 23 Client Demonstration Industrial Review Panel Demonstration 29 30 Unbound Project Plan Bound Project Plan Unbound Design Report Bound Design Report Project Poster Unbound Final Report Bound Final Report Weekly Email Reporting 32 33 34 35 36 37 38 39 Project Reporting Faculty Advisor(s) Demonstration 28 31 Demonstration Planning 27 Maintence Documentation Test Documentation End-Product Documentation 22 End-Product Demonstration Result Evaluation 21 26 Actual Testing 20 End-user Documentation Test Development 19 25 Test Planning 18 24 End-Product Testing 17 Implementation of Prototype 14 Identification of Limitations Document Design Prototype Implem entation 13 16 Design Process 12 15 Identification of Requirements 11 End-Product Design Identification of Criteria 7 10 Identification of Technologies 6 Technology Considerations End User(s) and End Use(s) 4 5 Project Definition Completion 3 Project Definition 1 2 Task Name ID 27 Sep '06 3 10 17 24 15 22 Nov '06 29 5 12 19 26 Dec '06 3 10 17 24 Jan '0 7 31 7 Figure 26: Revised Estimated Project Schedule Oct '06 1 8 14 21 Feb '07 28 4 11 18 Mar '07 25 4 11 18 25 Apr '0 7 1 8 15 22 May 29 4-10 Constraint Identification Technology Research Technology Selection 8 9 23 Client Demonstration Industrial Review Panel Demonstration 29 30 Unbound Project Plan Bound Project Plan Unbound Design Report Bound Design Report Project Poster Unbound Final Report Bound Final Report Weekly Email Reporting 32 33 34 35 36 37 38 39 Project Reporting Faculty Advisor(s) Demonstration 28 31 Demonstration Planning 27 Maintence Documentation Test Documentation End-Product Documentation 22 End-Product Demonstration Result Evaluation 21 26 Actual Testing 20 End-user Documentation Test Development 19 25 Test Planning 18 24 End-Product Testing 17 Implementation of Prototype 14 Identification of Limitations Document Design Prototype Implem entation 13 16 Design Process 12 15 Identification of Requirements 11 End-Product Design Identification of Criteria 7 10 Identification of Technologies 6 Technology Considerations End User(s) and End Use(s) 4 5 Project Definition Completion 3 Project Definition 1 2 Task Name ID 27 Sep '06 3 10 17 24 15 22 Nov '06 29 5 12 19 26 Dec '06 3 10 17 24 Jan '0 7 31 7 Figure 27: Original Estimated Project Schedule Oct '06 1 8 14 21 Feb '07 28 4 11 18 Mar '07 25 4 11 18 25 Apr '0 7 1 8 15 22 May 29 4-11 Unbound Design Report Bound Design Report Project Poster Unbound Final Report Bound Final Report Class Presentation Industrial Review Presentation Weekly Email Reporting 5 6 7 8 9 10 11 Bound Project Plan 4 Unbound Project Plan 3 Project Reporting 1 2 Task Name ID 27, '06 S S 9/22 Sep 17, '06 M T 10/10 Oct 8, '06 W T F Nov 19, '06 T W 11/10 M 12/13 Dec 10, '06 T F S Dec 31, '06 S M Figure 28: Actual Deliverables Schedule Oct 29, '06 S S T Jan 21, '0 7 W T Feb 11, '07 F S S 2/27 Mar 4, '07 M T 3/27 3/30 Mar 25, '07 W T F 4/24 Apr 15, '0 7 S S M 5/2 May 6, '0 T 4-12 Unbound Project Plan Bound Project Plan Unbound Design Report Bound Design Report Project Poster Unbound Final Report Bound Final Report Class Presentation Industrial Review Presentation Weekly Email Reporting 3 4 5 6 7 8 9 10 11 Project Reporting 1 2 Task Name ID 27 Sep '06 3 10 17 9/22 24 Oct '06 1 8 22 Nov '06 29 5 11/10 12 19 26 Dec '06 3 10 12/13 17 24 Jan '0 7 31 7 Figure 29: Revised Deliverables Schedule 10/10 15 14 21 Feb '07 28 4 11 18 2/27 Mar '07 25 4 11 18 25 3/30 A pr '0 7 1 8 4/10 15 22 4/25 5 May 29 4-13 Unbound Project Plan Bound Project Plan Unbound Design Report Bound Design Report Project Poster Unbound Final Report Bound Final Report Class Presentation Industrial Review Presentation Weekly Email Reporting 3 4 5 6 7 8 9 10 11 Project Reporting 1 2 Task Name ID 27 Sep '06 3 10 17 9/22 24 Oct '06 1 8 22 Nov '06 29 5 11/10 12 19 26 Dec '06 3 10 12/13 17 24 Jan '0 7 31 7 Figure 30: Original Deliverables Schedule 10/10 15 14 21 Feb '07 28 4 11 18 2/27 Mar '07 25 4 11 18 25 3/30 A pr '0 7 1 8 4/10 15 22 4/25 5 May 29 5 Project Evaluation The current progress of the project is that it has been partially met. The reason for this is that at the time of printing the project still lacked full integration of the three major subsystems which are the handheld, central computer and kitchen. The reason that it can be considered partially met is that the individual subsystems can stand on their own and are fully operational. For this project to be met all three parts must be proven to work together and the handheld software needs to be on the eBox-II, which is another thing that has not been met quite yet. For the project to be fully met all of the subsystems must work together and this was to be proven by checking all of the functionalities of the handheld and the kitchen. The functionalities to be checked on the handheld would be the ability to get the menu from the database through the central computer, send an order and complete a transaction. As for the kitchen the only thing to test would be to make sure that an order sent from the handheld was correctly displayed on the kitchen display and that when the order was ready for pickup the done button sent a message to the handheld notifying it that the order was done and ready for pickup. By checking all of these functionalities it would then be known that the project had been fully met. 5-1 6 Commercialization Since the project is a proof of concept instead of a final product it will not be able to be marketed directly. If a handheld device was produced that had the same functionality as the setup involving the eBox-II there would be a very good market for this program. This product could be marketed to any restaurant in the United States. As with most products the selling price would be made up from two components, recurring cost (such as the cost to manufacture the handhelds) and non-recurring cost (such as cost of developing the software). Assuming that this product could be sold on a large scale (more than 10,000 total units) the non-recurring cost would be less than $1.00 per device. Each handheld would more than likely be produced for at most $300. This estimate is base on the cost of the top of the line palm pilot (including the supplier markup). This makes a total cost of $301.00 per handheld. This product should sell for the range of $450 $600 corresponding to 50% – 100% mark up. At this price the system could be sold to an average size restaurant (about 30 - 40 table) for a price of $3,600 - $4,800. This price would not include the cost of the central computer, or the kitchen display since they do not have to be as application specific as the handheld device. 6-1 7 Recommendations for Additional Work The following is a list of recommendations for additional work that could be done on this project. Increased functionality In order for the system to be more marketable a manager function that allows someone complete control over all the orders must be implemented. A prototype of the handheld If a prototype of the handheld device was made this product would be to be marketed to local business, and the revenue generated could fund other senior design projects. 7-1 8 Lessons Learned This project taught us a lot about what is involved in bringing a project from a conceptual idea to a final product. The group was very good at communicating with each other over the various aspects of the project. Especially, when someone needed help to finish something on time, or didn’t understand how to implement something. The thing that gave our group the most problem was developing a GUI for our application. Most of the group members had very limited programming knowledge and what they did know was primarily used in text based application. The biggest problem is also what taught us the most; because we did not know that much about developing GUIs the group was forced to learn it as we were developing the project. While completing this project the group also increased some of its non-technical skill. The most important of which was documenting information regarding the project. At the beginning of the first semester not a lot records of references or research that was conducted was kept, which made it very hard to write the reports since the group had to go back and find all of the material again. By the end of the project this was no longer a problem, if any thing was even a little important to the project it was recorded incase it needed to be used in the future. The only thing that would have been changed if this project was to be done over again would be that the group would have skipped developing a text based version and started out with the GUI version. 8-1 9 Risk and Risk Management The possibility of losing team members is of notable concern, as illness, family emergencies, and other causes can create conflicts. There is also a concern with a member of the team not contributing sufficiently to the project. To best deal with said risks, there will be an emphasis on communication. Regular meetings will be held to discuss individual progress. In regards to the risk of failure caused by any technical issues that may arise, the members of the project team and faculty have much of the background knowledge needed to complete the project. In order to make the project as technically successful as possible, a list of priorities has been developed. The first priority, for example, is to establish wireless communications between the eBox-II and the kitchen-based system. This is followed by other priorities and sub-priorities. This approach will insure that the most necessary functions will be developed successfully, with other more obscure functions added on only after the higher priority items have been completed. If the selected software would not be able to be used to complete the application a new version or different software package must be used. The only major problem the group faced was it lack of technical knowledge. This problem was solved by communications with the faculty advisor, and by looking for possible solutions on the internet. The only unanticipated problem was that it was not possible to implement the program using the version of Microsoft Visual Studio on all of the campus computers. This problem was solved by downloading the newest version from the Iowa State University website, and coding everything on our person computers. This made it so a section regarding software use had to be added to the risk management plan. 9-1 10 Project Team Information The following information identifies who the client is for the Project and the contact information for all of the team members, the faculty advisor and technical advisor that will be used in the completion of the Project. Client Senior Design Faculty Advisor Dr. Manimaran Govindarasu 3219 Coover Hall Ames, IA 50011-3060 Technical Advisor Dr. Randall Geiger 351 Durham Hall Ames, IA 50011-2252 Office Phone: (515) 294-9175 Fax: (515) 294-8432 Email: [email protected] Office Phone: (515) 294-7745 Fax: (515) 294-1152 Email: [email protected] Project Team Christopher Ford Electrical Engineering 15411 Horton Avenue Urbandale, IA Home Phone: (515) 975-7088 Email: [email protected] Nichole Taylor Electrical Engineering 1400 Coconino Rd #213 Ames, IA 50014 Home Phone: (563) 505-4735 Email: [email protected] Sean McVeigh (Project Manager) Electrical Engineering 420 South 4th Street #11 Ames, IA 50010 Home Phone: (515) 233-3360 Email: [email protected] Anthony Vansant Electrical Engineering 123 Sheldon Ave #13 Ames, IA 50014 Home Phone: (515) 708-1291 Email: [email protected] Obioma Ohia Electrical Engineering 103 Stanton Ave #25 Ames, IA 50014 Home Phone: (515) 710-9177 Email: [email protected] 10-1 11 Summary Although this device will not be a marketable product, the concept of the product will be proven. A restaurant waiter will have a wireless handheld device that will allow the waiter to place orders, receive payments and print receipts all with one device. Specifically, the device will incorporate a magnetic card swipe and a Bluetooth printer which will allow restaurants to increase the efficiency of the restaurants order/billing and inventory system and reduce the amount of paper used. Restaurants may find the idea of this device to be an attractive option, therefore such a system has a potential for success in commercial applications. 11-1 12 References [1] "Bluetooth Frequently Asked Questions Components." MobileInfo.Com. MobileInfo. 18 Sept. 2006 <http://www.mobileinfo.com/Bluetooth/FAQ.htm>. [2] "Low-Cost Platform Supports Windows CE Contest." WindowsForDevices.com. 6 Nov. 2006 <http://www.windowsfordevices.com/news/NS2983372021.html>. [3] "Card Reading > Magstripe > Swipe > Mini." Magtek. 6 Nov. 2006 <http://www.magtek.com/products/card_reading/magstripe/swipe/mini/specs_usb.asp>. [4] "USRobotics Wireless: USR5421 USRobotics Wireless MAXg USB Adapter - Specs." USRobotics. 28 Mar. 2007 <http://www.usr.com/products/networking/wirelessproduct.asp?type=specs&sku=USR5421>. [5] "USRobotics Product Images - USR5421 Wireless MAXg USB Adapter." USRobotics. 28 Mar. 2007 <http://www.usr.com/images/products/product.asp?prod=5421>. [6] "AmbiCom, Inc. - WBP-KIT Wireless Bluetooth Printer <http://www.ambicom.com/products/air2net/wbpkit.html>. [7] "Socket Programming." Troubleshooters.Com. <http://www.troubleshooters.com/codecorn/sockets/>. Kit." 6 28 Nov. Mar. 2007 2006 [8] "gx270-Spec.Pdf." 6 Nov. 2006 <http://www.scs.fsu.edu/classroom/Dell/gx270-spec.pdf>. [9] "What is a Socket? (the Java Tutorials > Custom Networking > All About Sockets)." Sun Microsystems. 6 Nov. 2006 <http://java.sun.com/docs/books/tutorial/networking/sockets/definition.html>. [10] "Linksys.com - Products/Wireless/Basic Networking/Broadband Routers/WirelessB/BEFW11S4." Linksys. 6 Nov. 2006 <http://www.linksys.com/servlet/Satellite?c=L_Product_C2&childpagename=US%2FLa yout&cid=1115416826220&packedargs=site%3DUS&pagename=Linksys%2FCommon %2FVisitorWrapper>. [11] "MAGTEK - 21040102 - MINI USB SWIPE RDR MSR TRACK 1/2/3 HID COMPATIBLE TheNerds.Net. 28 Mar. 2007 BLK/6FT CABL." <http://www.thenerds.net/index.php?page=productpage&pn=21040102>. [12] "Wireless MAXg 802.11g USB 2.0 Adapter At Academic Superstore." Academic Superstore. 28 Mar. 2007 <http://www.academicsuperstore.com/market/marketdisp.html?PartNo=737402>. 12-1 [13] "Wireless Bluetooth Printer Kit." online.stores.yahoo.net/wiblprkit.html>. 28 Mar. 2007 <http://ambicom- [14] "PXA270 - PhyCORE-XScale/PXA270 Rapid Development Kit." 9 Oct. 2006 <http://www.phytec.com/products/rdk/ARM-XScale/phyCORE-XScale-PXA270.html>. [15] "Tracks 1, 2, & 3 Credit Card Reader." BarcodesInc. Barcodes Inc. 7 Sept. 2006 <http://barcodesinc.com/cats/credit-card-readers/1-2-3.htm>. [16] "Bluetooth Print Adapter Kit for USB Prints (IOGEAR-GBP201KIT)." PriceGrabber.Com. 7 Nov. 2006 <http://www.pricegrabber.com/p__IOGEAR_Bluetooth_Print_Adapter_Kit_for_USB_Pr inters,__7411747>. [17] "NetGear WG511 54 Mbps WL PC Card (NetGeat - WG511)." PriceGrabber.Com. 9 Oct. 2006 <http://amdmb.pricegrabber.com/search_getprod.php/masterid=691890>. [18] "Auto ID Solutions by Integrated Labeling Systems, Inc." 11 Sept. 2006 <http://www.productcatalog.com/preview_item.cfm?line=Intermec%20PB20%20Direct%20Thermal%20Port able%20Printer&page_name=vendor&manu=Intermec&item=&BAToken=ils>. [19] "Network Adapter Bluetooth USB Wireless Networking." PriceGrabber.Com. 9 Oct. 2006 <http://amdmb.pricegrabber.com/search_attrib.php/page_id=371/popup2%5B%5D=40:1 012/popup1%5B%5D=50:227/popup3%5B%5D=10:264>. [20] "Basic Desktops." Dell. Dell Inc. 20 Sept. 2006 <http://www.dell.com/content/products/features.aspx/featured_basdt?c=us&cs=19&l=en &s=dhs>. [21] "Linksys WRT54G Wireless G-Router." Amazon.Com. Amazon. 20 Sept. 2006 <http://www.amazon.com/Linksys-WRT54G-Wireless-G-Router/dp/B00007KDVI>. [22] "BSQARE Store." BSQUARE. BSQUARE Corporation. 21 Sep 2006 <http://store.bsquare.com/catalog/index.cfm?fuseaction=product&theParentId=142&id=2 469>. [23] "Visual Studio 2005 Professional Edition w/MSDN Pro." Pricegrabber.com. Price Grabber. 21 Sep 2006 <http://amdmb.pricegrabber.com/search_getprod.php/masterid=13954436>. 12-2