Vous êtes sur la page 1sur 127

Moi University

Department of Electrical and Communications Engineering

Faculty of Technology

Control and Monitoring of Non-computing Devices Over The Internet and The GSM Cellular Network
COURSE: NAME: SUPERVISORS: ELC 590-Engineering Project II Makau Thomas Mulei EC/14/98 Dr. Marcel Odhiambo PhD and Dr. George Kamuncha PhD

This report is submitted in partial fulfillment for the award of the degree of Bachelor of Technology in Electrical and Communications Engineering of Moi University

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

To My Mother, for showing me the right path in life

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Acknowledgement
The completion of this project would have been impossible without the help I received from very many people. I would first like to thank my God for the far He has taken me and the favours He has shown me even though I didnt deserve some of them. I would also like to thank Dr. Marcel Odhiambo the head of computer engineering in Moi University for the invaluable support, correction and Guidance in undertaking this project. Dr. Kevit Desai the IEEE chairman in East Africa and director of Engineering at Centurion systems for giving me a platform to express my Ideas. Industrialist Dr. Manu Chandaria for encouraging me to work harder in life. The testing of this project would have been hard if I had not got support from fellow students who were part of the NgeriaNET-The students hall of residence Local Area Network in Hall two: Thank you all for the shared documents, programs and letting me test my project on the LAN. I would also like to thank my course mates Guru Kumar Prashant and the senior high priest of programming Casper Odiko who have been resourceful in this project to bring it into completion. I would also like to acknowledge all my lecturers for shaping me for the last five years to be what I am today. Lastly and not least, I would like to acknowledge the support I got from my Heartthrob Rehema for proof reading this report. -God bless you all.

ii

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Science, her vision proudly magnified, By skilled invention, proves all things perceived, Mere atoms energized but mystified Recks not whose thought spinning specks conceived. -Sir George Cockerill in Late Harvest

iii

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Abstract
Remote control and monitoring of unattended non-computing systems provides a real and tangible economic advantage over the existing onsite systems. This project is about the feasibility, analysis, design, implementation and testing of a prototype that can control non computing devices such a motors, lights, boilers and ovens over the Internet and the GSM mobile network. The report starts by looking at the feasibility of such a system and its possible application in industry and then goes to analyze how the system would look like and come up with the system components. The design of the system takes place with more attention being paid to how the individual system components interacts effectively to achieve the global objective of this project which is to remotely control and monitor non computing devices. The design after undergoing some computer simulation to ensure that it works as expected, is implemented and tested. The test results were very impressive because after fewer modifications than initially expected, the system worked. The rigorous design considerations that were to improve system safety, redundancy that also put into consideration the poor prevailing Kenyan telecommunication infrastructure were also tested to ensure reliability of the system and the test results showed that the system reliability is very high because even when the Internet fails (which often happens in Kenya), one is still able to control devices using an ordinary mobile phone that uses the GSM network. The report concludes with a comprehensive cost analysis that shows that deployment of such a system in industry would yield very high return on investment that is above 1000% in less than two years.

iv

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Table of Contents
1 CHAPTER ONE: INTRODUCTION --------------------------------------------------1

1.1 PREAMBLE ----------------------------------------------------------------------------------1 1.1.1 MOTIVATION ------------------------------------------------------------------------------1 1.1.2 PROJECT AIM AND OBJECTIVES---------------------------------------------------------1 1.1.2.1 The local Objectives:------------------------------------------------------------------1 1.1.2.2 The global objectives: ----------------------------------------------------------------1 2 CHAPTER TWO: LITERATURE REVIEW ----------------------------------------3

2.1 WEB-BASED CONTROL -------------------------------------------------------------------3 2.1.1 THE INTERNET ----------------------------------------------------------------------------4 2.1.1.1 Web Servers ----------------------------------------------------------------------------5 2.1.2 RELATIONAL DATABASE SYSTEMS ----------------------------------------------------5 2.1.3 OSI REFERENCE MODEL ----------------------------------------------------------------6 2.1.3.1 Types And Sources Of Network Threats----------------------------------------- 11 2.1.3.2 Protecting a Network Using Firewalls ------------------------------------------- 12 2.2 THE GLOBAL SYSTEM FOR MOBILE COMMUNICATIONS (GSM)---------------- 15 2.2.1 ARCHITECTURE OF THE GSM NETWORK -------------------------------------------- 15 2.2.2 SHORT MESSAGE SERVICE (SMS) --------------------------------------------------- 18 2.3 SOFTWARE DEVELOPMENT ------------------------------------------------------------23 2.3.1 APPLICATION DEVELOPMENT CYCLE ------------------------------------------------- 23 3 3.1 3.2 3.3 3.4 4 CHAPTER THREE: ANALYSIS ----------------------------------------------------- 27 PROBLEM ANALYSIS -------------------------------------------------------------------- 27 PROJECT CHALLENGES ----------------------------------------------------------------- 28 PROPOSED SOLUTION ------------------------------------------------------------------- 28 THE CONTROL AND MONITORING SYSTEM ----------------------------------------- 29 CHAPTER FOUR: SYSTEM DESIGN --------------------------------------------- 33

4.1 WEB SERVER ----------------------------------------------------------------------------- 33 4.1.1 APACHE WEB SERVER ----------------------------------------------------------------- 33 4.1.2 MICROSOFT INTERNET INFORMATION SERVER (IIS)-------------------------------33 4.1.3 XITAMI WEB SERVER ------------------------------------------------------------------ 34 4.1.4 SCRIPTING ------------------------------------------------------------------------------- 35 4.1.4.1 How PHP is installed ---------------------------------------------------------------36 4.2 DATABASE SERVER ---------------------------------------------------------------------- 37 4.2.1 MICROSOFT SQL ----------------------------------------------------------------------- 37 4.2.2 ORACLE ---------------------------------------------------------------------------------- 38 4.2.3 MYSQL---------------------------------------------------------------------------------- 38 4.2.3.1 Installing MySQL ------------------------------------------------------------------- 39

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

4.2.3.2 Creating the database ---------------------------------------------------------------40 4.3 OPEN DATA BASE CONNECTIVITY (ODBC) DATA ACCESS ENGINE ------------ 41 4.4 USER INTERFACE ------------------------------------------------------------------------ 42 4.4.1 DESIGNING THE WEB INTERFACE ----------------------------------------------------- 43 4.5 SOFTWARE DESIGN ---------------------------------------------------------------------- 45 4.6 SOFTWARE CODING --------------------------------------------------------------------- 49 4.6.1 THE SPLASH SCREEN ------------------------------------------------------------------- 50 4.6.2 MOBILE PHONE ACCESS PROGRAM --------------------------------------------------- 50 4.6.3 DATABASE ACCESS PROGRAM --------------------------------------------------------51 4.7 REMOTE COMPUTER INTERFACE ----------------------------------------------------- 52 4.7.1 SERIAL INTERFACE --------------------------------------------------------------------- 52 4.7.2 PARALLEL INTERFACE ----------------------------------------------------------------- 53 4.7.3 PORT ACCESS --------------------------------------------------------------------------- 54 4.8 SWITCHING INTERFACE CIRCUIT ----------------------------------------------------- 54 4.8.1 CIRCUIT OPERATION ------------------------------------------------------------------- 55 4.8.2 MONITORING CIRCUITS ----------------------------------------------------------------56 5 CHAPTER FIVE: TESTS AND RESULTS ---------------------------------------- 59

5.1 CIRCUIT TESTING ------------------------------------------------------------------------ 59 5.1.1 BURN-IN TEST --------------------------------------------------------------------------- 59 5.2 PROGRAM TESTING ---------------------------------------------------------------------- 59 5.3 SYSTEM TESTING ------------------------------------------------------------------------ 60 5.3.1 WEB CONTROL -------------------------------------------------------------------------- 61 5.3.2 TEXT MESSAGE (SMS) CONTROL ----------------------------------------------------- 61 5.3.3 WEB THEN SMS TEXT CONTROL ----------------------------------------------------- 62 6 CHAPTER SIX: COST ANALYSIS-------------------------------------------------- 64

6.1 COST ANALYSIS -------------------------------------------------------------------------- 64 6.1.1 SYSTEM LEARNING AND DESIGN ------------------------------------------------------64 6.1.2 RETURN ON INVESTMENT -------------------------------------------------------------65 6.1.3 TO INSTALL OR NOT?------------------------------------------------------------------- 66 7 CHAPTER SEVEN: CONCLUSION AND RECOMMENDATIONS-------- 68

7.1 CONCLUSION ----------------------------------------------------------------------------- 68 7.1.1 SYSTEM LIMITATIONS ------------------------------------------------------------------ 69 7.1.2 PROBLEMS ENCOUNTERED ------------------------------------------------------------69 7.2 RECOMMENDATIONS -------------------------------------------------------------------- 69 8 9 9.1 9.2 BIBLIOGRAPHY ------------------------------------------------------------------------ 71 APPENDIX--------------------------------------------------------------------------------- 73 APPENDIX I ------------------------------------------------------------------------------- 73 APPENDIX II ------------------------------------------------------------------------------ 78

vi

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

9.3 9.4 9.5 9.6 9.7 9.8 9.9

APPENDIX II ------------------------------------------------------------------------------ 79 APPENDIX III ----------------------------------------------------------------------------- 90 APPENDIX IV ----------------------------------------------------------------------------- 92 APPENDIX V ------------------------------------------------------------------------------ 94 APPENDIX VI ----------------------------------------------------------------------------- 97 APPENDIX VII -------------------------------------------------------------------------- 108 APPENDIX VIII ------------------------------------------------------------------------- 110

vii

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter One: Introduction

1 Chapter One: Introduction


1.1 Preamble
The Oxford dictionary defines remote control as control of an apparatus from a distance by means of signals transmitted from a radio or any other electronic transmission device. This project is about remotely controlling and monitoring devices over the Internet and the GSM network. Such devices include domestic appliances, industrial plants, security systems and unmanned vehicles/robots

1.1.1 Motivation
Remote monitoring and control of non-computing unattended systems already provides real tangible economic advantage in many applications and industry. The continuous reduction in communications costs and connection options constantly expands the set of applications for which these tangible operational benefits may be derived [Canuteson 2003]. This project is motivated by an interest in applicability of the Internet communication infrastructure in industrial and domestic real-time control of non-computing systems.

1.1.2 Project Aim and Objectives


The main aim of this project is to remotely control and monitor in real-time, noncomputing devices hence saving on time, money and human resource that are critical determinant factors of profitability in any industrial or domestic system [Lacy 1994]

1.1.2.1 The local Objectives:


q

By the end of the project implementation, I should be able to control and monitor any non-computing devices from a simple web page, accessible from any Internet connected computer or any Mobile Phone Short Message Text interface

1.1.2.2 The global objectives:


q

Understand the distributed systems environment, including its architecture and services. Understand the Internet and its protocols Review what has already been done in this area and how others have tackled this problem in the past. Look at technologies like Consumer Electronics Bus (CEBus), LonWorks technology, SMART HOUSE, X-10, BatiBUS, European 1

q q

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter One: Introduction

Home System, European Installation Bus, and Japan's Home Bus System [Wacks 1997]. Look at user interface issues and design a simple and useful GUI, hiding technical complexities as much as possible.
q q

Gain a deeper understanding of developing Internet -enabled software. Adhere to a low-cost software model.

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

2 Chapter Two: Literature Review


2.1 Web-Based Control
Web-based control refers to the control of systems from a WebPage interface either from the Internet or a Local Area Network (LAN). The first philosophy to the whole concept of web-based control arises from the question why do users need to control a device through the web? The answer to this question is not based on the mere fact that the web exists but rather on the economic implications of web-based control. In this age of distributed computing, telecommuting and nose diving telecommunication costs, web based control offers a real and tangible alternative to onsite control. The Internet and the World Wide Web have emerged as the primary means of sharing information between businesses, and company intranets have become the norm in information exchange within the organization, web-based monitoring and control therefore avails information on demand to users who might need it. A web based interface for a control system consists of a web server that that serves preformatted web pages with data to the user. This data mostly comes from a database server such as MySQL that in turn is populated by data acquisition software

Web Interface

Web Server

Database Server The Internet

Data Acquisition software

Fig.2.0: Web Interface components

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

2.1.1 The Internet


What is the Internet? The internet is made up of millions of computers linked together around the world in such a way that information can be sent from any computer to any other 24 hours a day. These computers can be in homes, schools, universities, government departments, or businesses small and large. They can be any type of computer and be single personal computers or workstations on a school or a company network. The Internet is often described as a network of networks because all the smaller networks of organizations are linked together into the one giant network called the Internet. All computers are pretty much equal once connected to the Internet, the only difference will be the speed of the connection. Sometimes people use the words Internet and World Wide Web (WWW) synonymously but they are different. The WWW is a component of the Internet that presents information in a graphical interface. One can think of the WWW as the illustrated version of the Internet. It began in the late 1980's when physicist Dr. Berners-Lee wrote a small computer program for his own personal use. This program allowed pages, within his computer, to be linked together using keywords. It soon became possible to link documents in different computers, as long as they were connected to the Internet. The document formatting language used to link documents is called HTML (Hypertext Markup Language.) The Web remained primarily text based until 1992. Two events occurred that year that forever changed the way the Web looked. Marc Andreesen developed a new computer program called the NCSA Mosaic and gave it away! The NCSA Mosaic was the first Web browser. The browser made it easier to access the different Web sites that had started to appear. Soon Web sites contained more than just text, they also had sound and video files. The development of the WWW has been the catalyst for the popularity of the Internet and is also the easiest part of the Internet to use. We now have Internet Chat, Discussion Groups, Internet Phone capabilities, Video conferencing, News Groups, Interactive Multimedia, Games and so much more.

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

2.1.1.1 Web Servers


A Web server is the caretaker of all the information that travels over the World Wide Web (WWW) to the Web browsers. A person interested in surfing the WWW would start up a browser and specify a place to start looking. Most all the information received while surfing or browsing the Internet comes from a Web server. A Web server is responsible for managing and delivering the content that an organization wishes to make available over the WWW. The Web server takes a large repository of information and makes it easily available to whoever wants to view it. This information can be in an almost endless number of different shapes, forms, and sizes. The most popular of which include HTML, text, images, audios, and movies [Segal 1998]. Most users of the WWW never really see a Web server. Their view of the Web is the browser tool they are using and the information they obtain. The person(s) that administers the Web server and the people that are responsible for providing the content for a Web site mostly see the server end of the WWW.

2.1.2 Relational Database Systems


Over the years, database management systems have evolved from hierarchical to network to relational database management systems (RDBMS). A relational database system is an organized model of subjects and characteristics that have relationships among the subjects [Dawes 2000]. Examples of RDBMS include, Oracle, MySQL, MSSQL and Interbase. A well-designed relational database provides information about a business or process and is used most widely to store and retrieve information. Some major advantages of RDBMS are in the way it stores and retrieves information, and in how it maintains data integrity. RDBMS structures are easy to understand and to build. These structures are logically represented using the entity-relationship (ER) model. The ER model includes the following: Characteristics of a Relational Database Relational databases have the following three major characteristics that constitute a welldefined RDBMS: Structures: These are objects that store or access data from the database. Tables, views, and indexes are examples of structures.

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

Operations: These are the actions used to define the structures or manipulate data between the structures. SELECT statements or CREATE statements are examples of operations in Oracle and MySQL. Integrity rules: These govern the kinds of actions allowed on data and the database structure. Integrity rules protect the data and the structure of the database. The primary keys and foreign keys are examples of integrity rules in Oracle and MySQL.

2.1.3 OSI Reference Model


The Open Systems Interconnection1 (OSI) reference model is a conceptual blueprint of how communications should take place. It addresses all the processes required for effective communication and divides these processes into logical groupings called layers. When a communication system is designed in this manner, its known as layered architecture. The main advantages of a layered approach to WAN2 design are as follows:
q q

Dividing the complex network operation into more manageable layers Changing one layer without having to change all layers. This allows application developers to specialize in design and development. Defining the standard interface for the plug-and-play multivendor integration

The OSI has seven levels on which the different equipment belongs to. These are: Layer 7: The Application layer provides the software for network services such as file transfer, remote login, remote execution, e-mail and etc. It provides the interface between the user programs and the network. What the user runs Layer 6: The Presentation layer converts outbound data from a machine specific format to an international standard format and vice versa. Translator Layer 5: The Session layer allows the setup and termination of communication path, and synchronizes the dialog between the two systems. Terminal emulator Layer 4: The Transport layer provides reliable flow of datagrams between the sender and receiver, and ensures that the data arrives at the correct destination. Software error correction

1 2

The OSI Reference model was designed by the International Standards Organization (ISO) The Internet can be considered as a Wide Area Network (WAN) covering the whole world

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

Layer 3: The Network layer decides the path that will be taken through the network. It provides packet addressing which will alert computers on the network as to where to route the users data. Addressing schemes Layer 2: The Data link layer provides reliable, error free media access for data transmission. It produces the frame around data. Hardware error correction Layer 1: The Physical layer establishes the actual physical connection (cable) between the network and the computer equipment. The functions provided at this level include the type of signaling (what represents a bit 0, what represents a 1), cable length specifications, and connector size, etc. Cable Application Presentation Session Transport Network Data link Physical File, print, database and application services Data encryption, compression and translation services Dialog Control End-to-End Connection Routing Framing Physical topology

Fig 2.1: The OSI reference model Internet Protocol (IP) addressing Internet nodes are uniquely identified by an Internet protocol (IP) address. An Internet node can be a router, hub, gateway, server or a desktop computer that is connected to the Internet. An IP address consists of 32 bits of information. These bits are divided into four sections, referred to as octets or bytes, each containing 1 byte (8 bits). One can depict an IP address using one of three methods:
q q q

Dotted-decimal, as in 172.16.30.56 Binary, as in 10101100.00010000.00011110.00111000 Hexadecimal, as in 82 39 1E 38

All these examples represent the same IP address. Although hexadecimal is not used as often as dotted-decimal or binary when IP addressing is discussed.

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

The 32-bit IP address is a structured or hierarchical address, as opposed to a flat or nonhierarchical, address. Although either type of addressing scheme could have been used, the hierarchical variety was chosen for a good reason. The advantage of this scheme is that it can handle a large number of addresses, namely 4.3 billion (a 32-bit address space with two possible values for each positioneither 0 or 1gives you 232, or approximately 4.3 billion). The disadvantage of this scheme, and the reason its not used for IP addressing, relates to routing. If every address were unique, all routers on the Internet would need to store the address of each and every machine on the Internet. This would make efficient routing impossible, even if only a fraction of the possible addresses were used. The solution to this dilemma is to use a two- or three-level, hierarchical addressing scheme that is structured by network and host, or network, subnet, and host. This twoor three-level scheme is comparable to a telephone number. The first section, the area code, designates a very large area. The second section, the prefix, narrows the scope to a local calling area. The final segment, the customer number, zooms in on the specific connection. IP addresses use the same type of layered structure. Rather than all 32 bits being treated as a unique identifier, as in flat addressing, a part of the address is designated as the network address, and the other part is designated as either the subnet and host or just the node address. Network Addressing The network address uniquely identifies each network. Every machine on the same network shares that network address as part of its IP address. In the IP address 172.16.30.56, for example, 172.16 is the network address. The node address is assigned to, and uniquely identifies, each machine on a network. This part of the address must be unique because it identifies a particular machinean individualas opposed to a network, which is a group. This number can also be referred to as a host address. In the sample IP address 72.16.30.56, here, .30.56 is the node address. The designers of the Internet decided to create classes of networks based on network size. For the small number of networks possessing a very large number of nodes, they created the rank Class A network. At the other extreme is the Class C network, which is reserved for the numerous networks with a small number of nodes. The class distinction for networks between very large and very small is predictably called the Class B network. Subdividing an IP address into a network and node address is determined by the class

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

designation of ones network. The figure below summarizes the three classes of networks,

Fig 2.2: IP Address class organization

TCP/IP TCP/IP is a communications protocol used to transfer digital data around the Internet. TCP and IP were developed by the US Department of Defense (DoD) research project to connect different networks designed by different vendors into a network of networks (the "Internet"). TCP/IP is often referred to as the 'Internet protocol'. As with all communications protocols, TCP/IP is composed of layers: IP - is responsible for moving packet of data from node to node. IP forwards each packet based on a four-byte destination address (the IP number). The Internet authorities assign ranges of numbers to different organizations. The organizations assign groups of their numbers to departments. IP operates on gateway machines that move data from department to organization to region and then around the world. TCP - is responsible for verifying the correct delivery of data from client to server. Data can be lost in the intermediate network. TCP adds support to detect errors or lost data and to trigger retransmission until the data is correctly and completely received. Sockets - is a name given to the package of subroutines that provide access to TCP/IP on most systems. Attacks Against The IP A number of attacks against the IP are possible. Typically, these exploit the fact that the IP does not perform a robust mechanism for authentication, which is proving that a packet came from where it claims it did. A packet simply claims to originate from a given

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

address, and there isn't a way to be sure that the host that sent the packet is telling the truth. This isn't necessarily a weakness, per se, but it is an important point, because it means that the facility of host authentication has to be provided at a higher layer on the ISO/OSI Reference Model. Today, applications that require strong host authentication (such as cryptographic applications) do this at the application layer. common attacks are explained as below: IP Spoofing. This is where one host claims to have the IP address of another. Since many systems (such as router access control lists) define which packets may and which packets may not pass based on the sender's IP address, this is a useful technique to an attacker: he can send packets to a host, perhaps causing it to take some sort of action. Additionally, some applications allow login based on the IP address of the person making the request (such as the Berkeley r-commands)[Morris 1995]. These are both good examples how trusting untrustable layers can provide security that is at best, weak. IP Session Hijacking. This is a relatively sophisticated attack, first described by Steve Bellovin [Bellovin 1989]. This is very dangerous, however, because there are now toolkits available in the market that allow otherwise unskilled hackers to perpetrate this attack. IP Session Hijacking is an attack whereby a user's session is taken over, being in the control of the attacker. If the user was in the middle of email, the attacker is looking at the email, and then can execute any commands he wishes as the attacked user. The attacked user simply sees his session dropped, and may simply login again, perhaps not even noticing that the attacker is still logged in and doing otherwise harmful things. Replacing standard telnet-type applications with encrypted versions of the same thing can solve this. In this case, the attacker can still take over the session, but he'll see only gibberish because the session is encrypted. The attacker will not have the needed cryptographic key(s) to decrypt the data stream that he has taken over the session, and will, therefore, be unable to do anything with the session. Some type of

10

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

2.1.3.1 Types And Sources Of Network Threats


Denial-of-Service DoS (Denial-of-Service) attacks are probably the nastiest, and most difficult to address. These are the nastiest, because they're very easy to launch, difficult (sometimes impossible) to track, and it isn't easy to refuse the requests of the attacker, without also refusing legitimate requests for service. The premise of a DoS attack is simple: send more requests to the machine than it can handle. There are toolkits available in the market that make this a simple matter of running a program and telling it which host to blast with requests. The attacker's program simply makes a connection on some service port, perhaps forging the packet's header information that says where the packet came from, and then dropping the connection. If the host is able to answer 20 requests per second, and the attacker is sending 50 per second, obviously the host will be unable to service all of the attacker's requests, much less any legitimate requests (hits on the web site running there, for example). Such attacks were fairly common in late 1996 and early 1997, but are now becoming less popular. 3 Some things that can be done to reduce the risk of being stung by a denial of service attack include:
q q

Not running the visible-to-the-world servers4 at a level too close to full capacity. Using packet filtering to prevent obviously forged packets from entering into your network address space5. Obviously forged packets would include those that claim to come from your own hosts, addresses reserved for private networks as defined in RFC 1918 [Moskowitz et al 1991], and the loopback network (127.0.0.0). Keeping up-to-date on security-related patches for your hosts' operating systems.

Unauthorized Access Unauthorized access is a very high-level term that can refer to a number of different sorts of attacks. The goal of these attacks is to access some resource that a machine

3 In 1999 a DoS attack brought the Internet to a standstill when an attacker attacked yahoo.com, amazon.com, deutschebank.de and hsbc.com 4 These include mail, HTTP and FTP servers. 5 Ingress (in bound) and Egress (out bound) packet filtering can be applied on Internet gateways

11

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

should not provide to the attacker. For example, a host might be a web server, and should provide anyone with requested web pages. However, that host should not provide command shell access without being sure that the person making such a request is someone who should get it, such as a local administrator. Executing Commands Illicitly It's obviously undesirable for an unknown and untrusted person to be able to execute commands on server machines. There are two main classifications of the severity of this problem: normal user access, and administrator access. A normal user can do a number of things on a system (such as read files, mail them to other people, etc.) that an attacker should not be able to do. This might, then, be all the access that an attacker needs. On the other hand, an attacker might wish to make configuration changes to a host (perhaps changing its IP address, putting a start-up script in place to cause the machine to shut down every time it's started, or something similar). In this case, the attacker will need to gain administrator privileges on the host. Confidentiality Breaches There is certain information that could be quite damaging if it fell into the hands of a competitor, an enemy, or the public. In these cases, it's possible that compromise of a normal user's account on the machine can be enough to cause damage (perhaps in the form of obtaining information that can be used against the company, etc.) While many of the perpetrators of these sorts of break-ins are merely thrill-seekers, there are those who are more malicious.

2.1.3.2 Protecting a Network Using Firewalls


In order to provide some level of separation between an organization's Intranet and the Internet, firewalls have been employed. A firewall is simply a group of components that collectively form a barrier between two networks. Types of Firewalls There are three basic types of firewalls: Application Gateways: Sometimes known as proxy gateways. These are made up of bastion hosts that run special software to act as a proxy server. This software runs at the Application Layer of the ISO/OSI Reference Model, hence the name. Clients behind the

12

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

firewall must be proxitized (that is, must know how to use the proxy, and be configured to do so) in order to use Internet services. Traditionally, these have been the most secure, because they don't allow anything to pass by default, but need to have the programs written and turned on in order to begin passing traffic. These are also typically the slowest, because more processes need to be started in order to have a request serviced. Packet Filtering: Packet filtering is a technique whereby routers have ACLs (Access Control Lists) turned on. By default, a router will pass all traffic sent to it, and will do so without any sort of restrictions. Employing ACLs is a method for enforcing security policy with regard to what sorts of access are allow the outside world to have access to an internal network, and vice versa. There are fewer overheads in packet filtering than with an application gateway, because the feature of access control is performed at a lower ISO/OSI layer (typically, the transport or session layer). Due to the lower overhead and the fact that packet filtering is done with routers6, a packet filtering gateway is often much faster than its application layer peers. Because they work at a lower level, supporting new applications either comes automatically, or is a simple matter of allowing a specific packet type to pass through the gateway. There are problems with this method, though. Because TCP/IP has absolutely no means of guaranteeing that the source address is really what it claims to be. As a result, layers of packet filters have to be used in order to localize the traffic. Its impossible to get all the way down to the actual host, but with two layers of packet filters, differentiation between a packet that came from the Internet and one that came from an internal network can be made. Hybrid Systems: In an attempt to marry the security of the application layer gateways with the flexibility and speed of packet filtering, some vendors have created systems that use the principles of both. In some of these systems, new connections must be authenticated and approved at the application layer. Once this has been done, the remainder of the connection is passed down to the session layer, where packet filters watch the connection to ensure that only packets that are part of an ongoing (already authenticated and approved) conversation are being passed. Other possibilities include using both packet
6

Which are specialized computers optimized for tasks related to networking

13

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

filtering and application layer proxies. The benefits here include providing a measure of protection against servers that provide services to the Internet (such as a public web server), as well as provide the security of an application layer gateway to the internal network. Additionally, using this method, an attacker, in order to get to services on the internal network, will have to break through the access router, the bastion host, and the core router.

14

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

2.2 The Global System for Mobile Communications (GSM)


GSM belongs to the class of cellular networks, which are used predominantly for public mass communication. They had an early success with analog systems like the Advance Mobile Phone System (AMPS) in America, the Nordic Mobile Telephone (NMT) in Scandinavia, or the C-Netz in Germany. Founded on the digital system GSM (with its variants for 900 MHz, 1800 MHz, and 1900 MHz)[Gozalvez 2000]

2.2.1 Architecture of the GSM network


The GSM technical specifications define the different entities that form the GSM network by defining their functions and interface requirements. The GSM network can be divided into four main parts: 1. The Mobile Station (MS). 2. The Base Station Subsystem (BSS). 3. The Network and Switching Subsystem (NSS). 4. The Operation and Support Subsystem (OSS).

Mobile Station A Mobile Station consists of two main elements: The mobile equipment or terminal: There are different types of terminals distinguished principally by their power and application:
q

The fixed terminals are the ones installed in cars. Their maximum allowed output power is 20 W. The GSM portable terminals can also be installed in vehicles. Their maximum allowed output power is 8W. The handheld terminals (handsets) have experienced the biggest success thanks to their weight and volume, which are continuously decreasing. These terminals can emit up to 2 W. The evolution of technologies allows decreasing the maximum allowed power to 0.8 W.

The Subscriber Identity Module (SIM): The SIM is a smart card that identifies the terminal. By inserting the SIM card into the terminal, the user can have access to all the subscribed services. Without the SIM card, the terminal is not operational.

15

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

The SIM card is protected by a four-digit Personal Identification Number (PIN). In order to identify the subscriber to the system, the SIM card contains some parameters of the user such as its International Mobile Equipment Identity (IMEI). Another advantage of the SIM card is the mobility of the users. In fact, the only element that personalizes a terminal is the SIM card. Therefore, the user can have access to its subscribed services in any terminal using its SIM card. The Base Station Subsystem The BSS connects the Mobile Station and the NSS. It is in charge of the transmission and reception. The BSS can be divided into two parts: The Base Transceiver Station (BTS) or Base Station: The BTS corresponds to the transceivers and antennas used in each cell of the network. A BTS is usually placed in the center of a cell. Its transmitting power defines the size of a cell. Each BTS has between one and sixteen transceivers depending on the density of users in the cell. The Base Station Controller (BSC): The BSC controls a group of BTS and manages their radio resources. A BSC is principally in charge of handovers, frequency hopping, exchange functions and control of the radio frequency power levels of the BTSs. The Network and Switching Subsystem Its main role is to manage the communications between the mobile users and other users, such as mobile users, ISDN users, fixed telephony users, etc. It also includes data bases needed in order to store information about the subscribers and to manage their mobility. The different components of the NSS are described below. The Mobile services Switching Center (MSC):It is the central component of the NSS. The MSC performs the switching functions of the network. It also provides connection to other networks. The Gateway Mobile services Switching Center (GMSC): A gateway is a node interconnecting two networks. The GMSC is the interface between the mobile cellular network and the Public Switched Telephone Network. It is in charge of routing calls from the fixed network towards a GSM user. The GMSC is often implemented in the same machines as the MSC. Home Location Register (HLR): The HLR is considered as a very important database that stores information of the subscribers belonging to the covering area of a MSC. It also stores the current location of these subscribers and the services to which they have

16

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

access. The location of the subscriber corresponds to the SS7 address of the Visitor Location Register (VLR) associated to the terminal. Visitor Location Register (VLR): The VLR contains information from a subscriber's HLR necessary in order to provide the subscribed services to visiting users. When a subscriber enters the covering area of a new MSC, the VLR associated to this MSC will request information about the new subscriber to its corresponding HLR. The VLR will then have enough information in order to assure the subscribed services without needing to ask the HLR each time a communication is established. The VLR is always implemented together with a MSC; so the area under control of the MSC is also the area under control of the VLR. The Authentication Center (AuC): The AuC register is used for security purposes. It provides the parameters needed for authentication and encryption functions. These parameters help to verify the user's identity.

The Equipment Identity Register (EIR): The EIR is also used for security purposes. It is a register containing information about the mobile equipments. More particularly, it contains a list of all valid terminals. A terminal is identified by its International Mobile Equipment Identity (IMEI). The EIR allows then to forbid calls from stolen or unauthorized terminals (e.g, a terminal which does not respect the specifications concerning the output RF power). The GSM InterWorking Unit (GIWU): The GIWU corresponds to an interface to various networks for data communications. During these communications, the transmission of speech and data can be alternated. The Operation and Support Subsystem (OSS) The OSS is connected to the different components of the NSS and to the BSC, in order to control and monitor the GSM system. It is also in charge of controlling the traffic load of the BSS. However, the increasing number of base stations, due to the development of cellular radio networks, has provoked that some of the maintenance tasks are transferred to the BTS. This transfer decreases considerably the costs of the maintenance of the system.

17

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

Mobility Management (MM) The MM function is in charge of all the aspects related with the mobility of the user, specially the location management and the authentication and security. Location management: When a mobile station is powered on, it performs a location update procedure by indicating its IMSI to the network. The first location update procedure is called the IMSI attach procedure. The mobile station also performs location updating, in order to indicate its current location, when it moves to a new Location Area or a different PLMN. This location-updating message is sent to the new MSC/VLR, which gives the location information to the subscriber's HLR. If the mobile station is authorized in the new MSC/VLR, the subscriber's HLR cancels the registration of the mobile station with the old MSC/VLR. A location updating is also performed periodically. If after the updating time period, the mobile station has not registered, it is then deregistered. When a mobile station is powered off, it performs an IMSI detach procedure in order to tell the network that it is no longer connected. Authentication and security: The authentication procedure involves the SIM card and the Authentication Center. A secret key, stored in the SIM card and the AuC, and a ciphering algorithm called A3 are used in order to verify the authenticity of the user. The mobile station and the AuC compute a SRES using the secret key, the algorithm A3 and a random number generated by the AuC. If the two computed SRES are the same, the subscriber is authenticated. The different services to which the subscriber has access are also checked. Another security procedure is to check the equipment identity. If the IMEI number of the mobile is authorized in the EIR, the mobile station is allowed to connect the network. In order to assure user confidentiality, the user is registered with a Temporary Mobile Subscriber Identity (TMSI) after its first location update procedure.

2.2.2 Short Message Service (SMS)


Short Message Service (SMS) messages are 160 character text messages, sent using a SDCCH 7(slow speed data channel) from a mobile phone handset to another handset.

This means that they can be sent at the same time as a fax or data call, but also means that they can be a little slow because of the limited bandwidth available to carry them.
7

18

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

SMS delivery is a store-and-forward system, where the message is sent to a Short Message Service Center (SMSC), which then forwards them on to the destination mobile handset. Short Message Data Structure A short message is formally known as a Protocol Data Unit (PDU) and comprises two parts - the header information and the short message text itself (known as the user data). This short message is sent to the SMS Center that looks at the details on the header and tries to send the message to the recipient using the type of postal service the sender specified. The header contains the following parameters: SMSC Address: The address of the SMS Center to which the short message is to be sent. Destination Address: The Destination Address field denotes the final recipient of the short message. The sender usually specifies this parameter. Originating Address: The address of the sender of the short message. Usually automatically appended to the short message itself so that the recipient can identify the sender. Status Report Request: This parameter allows the short message sender to request confirmation that the short message has been delivered to its intended recipient. Service Center Timestamp: In addition to the short message text itself and the Originating Address, the time and date that the SMS Center received the short message are usually also automatically appended to outbound short messages from the SMS Center. Validity Period: Each short message submitted to the SMS Center is assigned a Validity Period, which sets the maximum time that the short message is retained in the SMS Center. Failure to successfully deliver the short message within the short message lifetime causes it to be marked for purge, with no further delivery attempts made. Setting specific short message Validity Periods is important for many SMS-based applications. Some SMS Centers can inform software applications as soon as a short message lifetime expires, allowing alternative, secondary action to be taken. All short messages have a message lifetime - those short messages that do not have a specific value when submitted are automatically assigned the default Validity Period for that mobile network. For example, some mobile network operators set a maximum short message lifetime of 72 hours (Vodafone, UK) or 24 hours (Safaricom, Kenya), after which any short messages that havent been delivered are deleted [Eberspcher et al 1999].

19

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

Data Coding Scheme8 The Data Coding Scheme (DCS) parameter is used for several purposes, including the following:
q

Indicate the form in which the short message text (user data) is encoded, be it the GSM 7-bit default alphabet, 16-bit text or binary. Specify short message classes, which tell the mobile phone how to deal with the short message. For example, the Data Coding Scheme flag is used to indicate whether to store the short message in the SimCard or memory, send it directly to the display or to Terminal Equipment attached to the mobile phone. Allow a receiving Short Message Entity to display an icon associated with a short message, such as an email or voice mail icon. Indicate that a short message is compressed.

Protocol Identifier (PID) Another flag that is used for a wide variety of purposes is the Protocol Identifier (PID). The PID determines how the short message should be handled by the receiving entity or the SMS Center. Uses of the Protocol Identifier include: Routing short messages to the correct outbound interface: This is useful when several interfaces share the same numbering plan (e.g. PSTN fax and voice). Use of the Protocol Identifier indicates to the SMS Center where to send the short message to maximize the likelihood that it is successfully delivered to its intended Destination Address. Routing by Protocol Identifier is, for example, used in the provision of SMS to Fax services, through which a mobile phone user can send a short message to a fax machine. The SMS Center recognizes that the Protocol Identifier indicates an SMS to Fax message and routes the short message to the module within the SMS Center that incorporates fax outdial, or an SMS to Fax platform resident outside the SMS Center itself. Indicating that a mobile phone receiving a short message should check to see if a short message of the same type is currently stored and if so replace it with the new one. Reply Path The Reply Path allows a user to indicate to the receiver that a reply to the short message is requested. When the recipient chooses to reply to a short message, the SMSC Address
The Data Coding Scheme values are described in GSM 03.38. How or if they are supported depends on the specific mobile phone. Network support of the DCS parameter also varies- application developers and users have to check with their network operator to see which if any uses of the DCS are allowed.
8

20

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

from which the short message came is used instead of the SMSC Address stored on the SimCard. Additionally, the Originating Address from which the short message came is automatically used as the Destination Address. This feature was incorporated to indicate to the SMS Center that the initial sending entity should be charged for the reply rather than the replying entity. The advantage is that someone sending a message can receive a reply even if the recipient of the short message has not got an SMS Center number programmed into his or her SimCard. Many mobile phones allow a recipient to reply to a short message irrespective of the setting of the Reply Path parameter in the received short message. In such cases, the SMS Center and Originating Address translation described above is also applied. Message Reference An identifier (1- 255) that is incremented with each short message sent. Message Length Indicates the length of the short message in terms of the number of characters and spaces used. Reject Duplicates The Reject Duplicates parameter allows a sender to indicate to the SMS Center that a short message with the same Message Reference as one already stored in the SMS Center for the same Destination Address should be discarded and replaced by the new one.

User Data Header Indicator The User Data Header Indicator allows a sender to indicate that the short message text itself (the user data) is in a special format of the types defined in GSM 03:40 standard such as SMS concatenation. SMS Commands Some mobile phones allow the sender to send specific instructions to the SMS Center to carry out operations on previously submitted short messages. For example, different command types allow the user to inquire about the status of a short message or delete a short message that is waiting to be delivered.

21

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

Message Type Indicator The Message Type Indicator parameter indicates whether a short message is for sending, receiving, is a status report (confirmation of delivery), or a specific command to the SMS Center such as an enquiry on a short message. A user does not normally have control over this parameter from the mobile phone keypad. Some of these parameters are added by the mobile network entities and some are accessible by the originator of the short message. A default value for all of these parameters except the Destination Address is usually built into the application software, the SMS Center and mobile phone. Different combinations of these Short Message Data Structure parameters are formed depending on what SMS-related action is being carried out. For example, the Validity Period parameter is only set when submitting short messages. Some of the Short Message Data Structure parameters are optional and some are mandatory9. The user data plus the other parameters is collectively known as the Protocol Data Unit (PDU) or SMS-TPDU (SMS-Transport Protocol Data Unit). There are several different types of PDU, each of which contains different parameter combinations. For example, the Submit PDU is the format sent by the originating Short Message Entity to send a short message. The Deliver PDU is the format presented to the receiving message. The Command PDU is the format sent by the originating SME to request an action on previously submitted but not yet delivered short messages. The Status Report PDU indicates the status of a previously submitted short message to the originating SME (for example, confirming successful delivery to the Destination Address).

The presence and order of the parameters for different types of short message transactions are defined within GSM 03:40 standard.
9

22

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

2.3 Software Development


Software development is an engineering discipline and thus the process of software development is like other engineering processes. Thus a model of software development well resembles that of engineering activities. These various software models that available among them are discussed below. Waterfall approach It views software as being made up of stages such as requirements specification, software design, implementation testing etc. after each stage is designed it is written off and development proceeds to the next stage. Explanatory programming This approach involves development of the system as quickly as possible and then modifies the system until it performs adequately. This method is mainly used for artificial intelligence (AI) system development where users cannot formulate detailed requirements specification and where adequacy rather than accuracy is the main aim of the system designer. Prototyping It is similar to explanatory programming in that the first phase of development involves the developing a program for user experiment. This is followed by a re-implementation of software to produce a production quality system. Formal transformation This approach involves developing formal specification software and transforming its specification using correctness- preserving transformations. System assembly from reusable components This technique assumes that systems are mostly made of components that already exist. The system development becomes a process of assembly rather than creation. Of the models mentioned above it was deemed that the waterfall model would be best suitable in developing the applications in this project.

2.3.1 Application development cycle


A well-designed software application makes the application programming and tuning much easier. Every application, small or large, passes through the stages of the

23

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

application development cycle (also known as the system development cycle) described below: Analysis Analysis is the first stage of an application development, and it should enable the developer to answer the following questions: Why is the application being developed? Who is going to use it? How will the application benefit the users? What business rules and needs should be addressed? The complete functionalities of the system should be determined in requirement analysis. Typically, functional-level managers take care of this phase. Design Design is the most important phase of application development. After the application requirements are analyzed, the design phase begins. In this phase, the database design is performed using ER diagrams. The logical database design is converted to physical structures. Development In the development phase, coding is done based on the design; you use the end product of the design phase of the life cycle as a building block for the development process. The software design and the designed system requirements provide the basis for the development of the application. Testing The developed application is tested against its objectives to ensure that it is doing what it is supposed to do. System/integration testing is done on the entire system. Any errors are corrected, and the application is tested again. Application users do the acceptance testing. Implementation Implementation is the final stage in the development cycle. Once the testing is complete, the application is ready to implement. Errors reported after implementation are fixed by going back to the appropriate stages. Following all these steps again carries out enhancements to the application.10 Figure 2.3 shows the application development cycle.

10

This makes the whole process of application development a truly iterative process

24

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Two: Literature Review

Strategy & Analysis

Design Building & Documentation Testing Implementation

Fig 2.3: Iterative Application development cycle

25

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Three: Analysis

3 Chapter Three: Analysis


3.1 Problem Analysis
The project aims to control and monitor non-computing devices remotely over the Internet and the GSM network. Non-computing devices can be defined as those which do not posses microprocessors in them and if they do then these devices are not smart/intelligent but dumb devices [Held et. al. 1994], such devices include:
q q q q q

Lighting systems Motors Industrial boilers Security doors and gates Ovens

It is very difficult to control non-computing devices using a computer because of the fact that their underlying modes of operation are different and sometimes incompatible. The fact that we want to control and monitor these devices remotely makes this problem even more complicated because of the underlying functional differences of these devices, although from the feasibility study done, such a project is feasible. The existing problems can be stated as:
q

The current technology for switching devices remotely over a telecommunication channel is power line carrier communications (PLCC) This technology is not allowed for commercial use in Kenya by the Communications Commission of Kenya (CCK) and only Kenya Power and lighting Company is allowed to use it in their internal operations and communications [CCK 1999]. Even if PLCC was to be commercialized, the fact that less than 5% of the country has electricity coverage [UNESCO 1999] would make it difficult for this technology to catch up, whereas the use of the Internet which is now available everywhere thanks to technologies such as Very Small Aperture Terminals (VSAT), terrestrial microwave radio links etc makes the use of the Internet to control devices cheaper and widely accessible. The recent rise in popularity of GSM cellular mobile phones makes the concept of Data-over-GSM11 communication widely available.

11

Albeit slow for multimedia data, it is sufficient for some type of data such as short text (SMS)

27

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Three: Analysis

Some devices such as heavy-duty boilers and noisy industrial plants are potential health hazard to people operating them on site. The existing remote switching systems lack the high degree of flexibility availed by use of web enabled software interface such as that presented on a web page on the Internet, users of these systems must do their control and monitoring tasks from a specified terminal and not any other.

3.2 Project Challenges


The above problems present major challenges in coming up with a working project. Some of the major technical challenges to be overcome are:
q

Non-computing devices do not all behave in a prescribed manner, they also posses different functional characteristics e.g. a rotating motor produces back e.m.f whereas a light bulb does not. Computer terminals are digital in nature whereas majority of non-computing devices are analog. The various non computing devices are incompatible among themselves, thus the way a stepper motor would switch on is not the same way a boiler does hence device specificity has to be taken into consideration in the analysis and design. The observable physical parameters in the many of the controlled devices are different and a way has to be found to make them compatible to the digital computer. Such include temperature, speed, light etc. The intermittent availability of Internet in Kenya at high speeds

3.3 Proposed solution


With the above-mentioned problems and challenges, a solution is to be developed that will not only overcome them but also meet the systems. The block diagram of the desired system is as shown in Fig 3.0

28

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Three: Analysis

Device 1

Device 2 Control Station The Internet or the GSM mobile Network Remote Station

Device 3

Device n-1

Device n

Fig 3.0 System block diagram

3.4 The Control and Monitoring System


The system shall be in such a way as to allow the user, through the Internet to control and monitor devices. Figure 3.1 shows the system block representation

Web Server User web Interface Database Server


The Internet

Remote PC station

Device Interface

Circuit

Mobile Phone handset

Mobile Phone Devices

GSM Network

Fig 3.1: System layout The User Interface The interface shall be a graphical user interface (GUI) that is web based (in the case of using the Internet) or a phones Short Message Service (SMS) text interface (in the case of GSM control). The reason for choosing a web-based interface is its ability to work well in a distributed environment such as the Internet, platform independence and its ease of

29

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Three: Analysis

design. The reason for choosing the GSM based interface is its high availability and flexibility12 as compared to the Internet. The functions of the user interface shall be:
q

Present device status information to the user e.g. is the light on? What is the boiler temperature? etc. Present interactive options/ parameters which the user can use to control devices Present configuration options and error messages to the user

q q

The Internet The Internet is the main communication and data storage infrastructure on which the system runs. Designing a system that runs parallel to the Internet would be uneconomical and irrational. In this block we have two sub blocks as shown in figure 3.1 namely the Web server and the database server. Web server: Process user and database requests through server side scripting, which as compared to client side scripting is safer, faster and client-platform independent. The web server also acts as a middleman between the database and the user because it is responsible for formatting data from the database into information that can be understood by the user. Another function of the web server is to provide user authentication to improve security of the system so that unauthorized persons do not run the system. This is by providing login WebPage before the user can use/run the system. Database: A relational database system, its the main system storage of the system status data. Data read from the device interface software is stored here, data from the user interface passes through the web browser to the database from which the application switching software reads it and executes the desired action. The need for the database arises due to the need to log device activity and act as a buffer for data in case the latency of the communication paths increases to an extent that data in transit is lost. The database will also offer and extra layer of security if need be, this will be by users providing a password before accessing the data stored.

Flexibility because one is able to control a device even while traveling by simply sending a text message to the device
12

30

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Three: Analysis

The GSM Network This is the wireless cellular phone network that is currently provided by Safaricom and Kencell Communications Ltd. The user of the system can use the GSM network as a backup of the Internet (incase Internet fails) or when the user is out of reach of an Internet connected computer. To control say the lights, the user sends a SMS to his home phone with the message lights on, to switch them off, he/she sends lights off. The system is in such a way that it will only act on the message if it comes from a particular phone number to prevent malicious interference. This is done by accessing the phone software by use of the communications port through activeX controls that we are currently developing. The activeX components will not only be able to read the message received but also get the International Mobile Equipment Identification (IMEI) number of the phone that sent the message, this additional feature will enhance security by preventing phone number spoofing.13 Application switching software This is software that shall be running on the remote computer to which devices are connected to, its main duty is to interface the switching circuits to the rest of the system and get data from the mobile phone. It shall be executing commands from the user that have been stored in a predefined data format in the database. This software shall also make it possible to perform locally all the services that can be done remotely mainly for troubleshooting purposes. The software shall also interpret data from the devices and post it to the database from which the user interface shall output the device status to the user of the system.14 Device interface This is an electronic circuit that interfaces the devices being monitored and controlled to the rest of the system. This device shall have a port that connects to the computer through which data shall flow to and from the circuits. It shall also gather device status information, digitize it and send it to the rest of the system. Devices These are the main focus of the system, they are the devices to be monitored and controlled, and they include any non-computing electrical or electronic device or system

13 14

This is similar to IP address spoofing used in Denial of Service Attacks (DoS) on Computer networks This is where closed loop feedback comes in to the system.

31

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Three: Analysis

such as motors, lights, industrial boilers etc. for demonstration purposes only, we shall use only two of these devices i.e. an incandescent light bulb and a 12V dc motor.

32

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

4 Chapter Four: System Design


4.1 Web server
A Web server is a computer program that serves web pages to users who request them and runs in background mode (daemon). Other functions of a web server include formatting information into user readable format. e.g. from a database, a web server can pick data from a specified field in a table and format it to HTML format that can be displayed on a web browser. It does this by using a scripting language (such as PHP which we will use for this project) Currently, there are several commercial and freeware web servers such as Apache, Microsoft Internet Information server (IIS), Xitami and Adobe.

4.1.1 Apache Web server


Apache is more widely used than all other web servers combined. About 61 % of the Internet web servers are apache. Apache was designed to work on Linux operating systems but of recent times, Windows versions have been released. Apache has the following advantages: Contains a host of configuration options making it easy to customize Can support and handle very many client requests/connections It is open source meaning that one can fully customize it by going into the software code and modifying its behavior Has extremely good security options

Apaches disadvantages are: Needs powerful server hardware to run it effectively The server configuration options are very many and have to be learned The fact that its open source makes apache vulnerable to malicious changing of the program code

4.1.2 Microsoft Internet Information Server (IIS)


The IIS is a commercial web server distributed by Microsoft Corporation. It runs on windows operating system that are built on NT or .NET technology. The advantages of ISS are: 33

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

Extremely compatible with windows OS (because they were both developed by Microsoft Corporation) Can support and handle very many client requests/connections Has a graphical user interface hence user friendly

The disadvantages of IIS are: User license is required to run the server, this means that running IIS is expensive Configuration options are static unlike in Apache where there is 100% freedom to enter even into the source code IIS has very well know security holes making it vulnerable to hacking, this however can be corrected by installing IIS patches from Microsoft Needs powerful server hardware to run it effectively Can only run in Windows OS unlike Apache that can run on both Windows and Linux OS

4.1.3 Xitami Web server


The Xitami web server is a small but versatile server for small office applications and intranets. Its advantages are: Can run in an ordinary desktop computer Can handle many user requests though not as many as Apache or IIS Easy to configure through its browser interface. Can run on both Linux and Windows OS It is freeware hence no licenses are required to run it

Disadvantages of Xitami are: Its compact size makes it inefficient in serving very many connections that demand a lot of data transfer. We have decided to use the Xitami web server version two release four from iMATRIX corporation because of its ease of configuration and the light loading it has on the central processing unit of the computer in which it is running. The web server is installed into the computer and during the installation the option to enable automatic starting of the server when the computer is started is enabled. Other installation options done are:

34

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

Username and password to enable web-based configuration, this configuration is simpler as compared to the text editing done on say the apache web server where one has to edit long pages of configuration scripts (the httpd.conf file). If one does not wish to enable web based administration and configuration of the webserver, the username and password fields are left blank. Server performance option which had radio buttons for normal (if we run several servers), tiny (The server activity will never block another task) or Turbo (for best performance)

Once the server is installed and running, the following options are set by going to a web browser and directing it to the address http://127.0.0.1/admin (127.0.0.1 is usually the default loop back address in Windows/Linux operating systems but can be changed to a suitable public IP address if the web server is to run on the Internet)
q q

Click on the configuration hyperlink to view the configuration options On the default html page we add index.php because we shall be running a PHP script that shall be querying the database On the server IP address we can chose the IP address assigned to the network card of the computer running the server. On the main html directory space we can fill the path to where the index web pages and PHP scripts will be stored Click save and the restart server for the changes made to take effect

4.1.4 Scripting
Scripts are program codes that act on data in a desired manner for example picking user input and saving it to a database. There are two types of scripting methods namely server side and client side scripting. Server side scripting is whereby a script runs on the server and not the client machine whereas client side scripting, the script is executed on the client machine. Advantages of server side scripting over client side is:
q

It does not consume a lot of bandwidth that would have been used to transfer the code to the client side in the case of client side scripting this means that web pages load faster The client CPU is freed from the task of script execution that is done at the server side. This means that pages load faster too. Server side scripting is more secure because it is not visible to the client

35

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

Server side scripts can be re-used by several server threads that are serving different connections. Server side scripting is independent of the client platform Client side scripting is slow especially when querying databases

q q

Disadvantages of server side scripting are:


q

Cannot get local machine parameters such as client side date and time. For example if you view a date displayed on a web page that was generated by server side scripting, it would display the server system date and not the clients system date. This brings problems especially when we want to time stamp client activity logs. Client side scripting comes in handy.

Several server side scripting languages exist, they include: PHP, TCL and ASP. The main advantage of PHP over the rest is:
q

PHP is freeware as compared to say ASP for which one has to buy a license from Microsoft It was written with connectivity to databases such as MySQL in mind Is easy to learn as compared to ASP, and TCL It has more functional capability as compared to the other languages hence runs more efficiently. PHP is platform/server independent i.e. can run in a UNIX/Linux server as well as a windows server.

q q q

4.1.4.1 How PHP is installed


The PHP scripting engine may be downloaded for free from http://www.php.net/ (or one of its mirrors listed at http://www.php.net/mirrors.php). When installing we are given a list of web servers that PHP will use and in our case we select Xitami web server because it is the web server that we are running. Once it is installed, we make sure that the web server sees and is able to use the PHP scripting engine by making sure that the php.ini file has the following lines in it (php.ini is found in the windows directory) magic_quotes_gpc = On <enables use of short PHP tags <? ?>>

36

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

doc_root = <the document root folder of the Xitami Web server> extension_dir = <the PHP install directory> register_globals = On The document root folder is where the WebPages that the server will serve are placed. The full path of the location is entered here e.g. C:\Webpages. The PHP install directory is the folder in which we installed the PHP engine e.g. C:\program files\php After this is done and saved, we restart the Xitami web server by clicking the back arrow on the web browser to the server configuration main page and clicking on the restart server button.

4.2 Database Server


A database server is a program that can store large amounts of information in an organized format that is easily accessible from scripting languages like PHP. The database servers work is to store data about the status of the devices we are controlling and monitoring. There are several types of commercial and freeware database servers in the market today such as Microsoft SQL, Oracle, and MySQL etc.

4.2.1 Microsoft SQL


This is one of the most versatile servers on the market, its ability to allocate separate CPU threads for each connection makes it fast and efficient. Advantages of MS SQL are:
q q q

It can handle very many connections at a time Issues separate CPU threads per connection making it fast Has good security features

Its disadvantages are:


q

Can only run in Microsoft NT based operating systems such as windows NT4, 2000, XP Needs a license from Microsoft making it expensive Needs powerful hardware to run

q q

37

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

4.2.2 Oracle
Oracle is the most popular enterprise relational database management system (RDMS). Several versions exist such as Oracle 8i, Oracle 9i etc. It posses similar characteristics to MS SQL but also includes the following
q q

It was written with server side scripting in mind Has easy to use syntax

Oracles disadvantages include the MS SQL disadvantages and the following:


q q

Its not freeware and a license has to be bought for it to be used Runs on Microsoft Windows operating systems and not Linux

4.2.3 MySQL
MySQL is a RDBMS that is strikingly similar to Oracle. MySQL has the following advantages:
q

Its freeware meaning its free to download from the Internet as compared to commercial version of database servers such as Microsoft SQL which requires a license from Microsoft corporation before being used. Its syntax is easy to use and simple to apply e.g. to use a database called project we simply type use project on the MySQL command prompt It is multiplatform i.e. MySQL can be run in Linux or Windows platforms MySQL is capable of handling more than one connection simultaneously and issues a separate CPU threads for each connection hence making it faster.

q q

No memory leaks. MySQL has been tested with Purify, a commercial memory leakage detector. Full support for several different character sets, including ISO-8859-1 (Latin1), big5, ujis, and more. For example, the Scandinavian characters and are allowed in table and column names.

MySQL has the following disadvantages


q

It is not user friendly because it does not have a graphical user interface but a command prompt interface.

38

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

In this project, MySQL was chosen as the database server to be used because of its wide availability due to the fact that its freeware and open source.

4.2.3.1 Installing MySQL


The database server is installed into a computer that has at least 64MB Physical memory. MySQL database engine can be found by going to http://www.mysql.com (or one of its mirrors listed at http://www.mysql.com/mirrors.html) and selecting "Register and download shareware version of MySQL-Win32" in the "Downloads" section under "Downloads for Windows MySQL related software". After downloading the file, we unzip it and run the setup.exe program contained therein. Once installed, MySQL is ready to run (except for a couple of configuration tasks that are needed to optimize it). Just like the Xitami Web server, MySQL is a server that should be run in the background so that it may respond to requests for information at any time. The server program may be found in the "bin" subfolder of the folder where we installed MySQL. From the MS-DOS Prompt, we can start the server by typing on the command prompt: C:\mysql\bin> mysqld To ensure that the server is started whenever Windows starts, we can create a shortcut to the program and put it in the Startup folder meaning that every time we start windows, the server shall be running in background mode. The next step is to set the username and password that shall be used in accessing the server because if we dont do this and the server is connected to the Internet, anyone can access the data stored and make some modifications or worse still delete stored data. To set a root password for MySQL, we type the following command in the bin directory of the MySQL installation (including the quotes): mysqladmin -u root password <new password> Where <new password> is replaced with the password we wish to use and the username root can be replaced by any other suitable name. To make sure MySQL has registered this change, we reload its list of authorized users and passwords: mysqladmin -u root reload If this command gives an error message saying that access was denied, it means the password has already taken effect.

39

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

4.2.3.2 Creating the database


Once the server is up and running, we create a database in the server. Before this is done we must login using the credentials we set by typing the following in the command prompt: mysql -h 127.0.0.1 -u root -p The -p argument will make the server ask for the users password that we shall enter. Once inside, we can proceed to create the databases which we shall call rock. mysql> create database rock; (Every MySQL statement must end with a semi-colon) Once the database is created we have to tell MySQL that we need to use it, this is done by typing the line: mysql> use rock; We then proceed to create a table that shall consist of columns of the items we are controlling and monitoring, in this case we choose, The Gate, lights, Fridge, and a boiler. These form part of the possible devices we want to control. The table (which we call master) is created by typing on the MySQL command prompt as follows: mysql> CREATE TABLE master ( -> ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Gate char(3), -> Lights char(3), -> Fan char(3), -> Boiler char(3), ->); The first line says that we want to create a new table called master. The second line says that we want a column called ID that will contain an integer (INT). The rest of this line deals with special details for this column. First, this column is not allowed to be left blank (NOT NULL). Next, if we don't specify any value in particular when adding a new entry to the table, MySQL should pick a value that is one more than the highest value in the table so far (AUTO_INCREMENT). Finally, this column is to act as a unique identifier for entries in this table, so all values in this column must be unique (PRIMARY KEY). The third, fourth fifth and sixth line say that we want to create columns called Gate, Lights, Fan, Boiler that will contain three character long values (char (3)). The last line closes the whole process by ending with a semi-colon. 40

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

To view the contents of the table we have just created we type


mysql> DESCRIBE master;

The result of this command is displayed in the table below.


+----------+---------+------+-----+------------+ | Field | Type | Null | Key | Default | +----------+---------+------+-----+------------+ | ID | int(11) | | PRI | NULL | | Gate | char(3) | | | | | Lights | char(3) | | | | | Fridge | char(3) | | | | | Boiler | char(3) | | | | +----------+---------+------+-----+------------+ 5 rows in set

Table 4.0: Command prompt output for the command: Describe master This confirms that the table was created with the properties we defined. These are the devices that we wish to remotely control, we have entered then into a database so as to store any information relating to their status (on/off). It is from this database that all other software modules will get or post information. The database is now ready for use.

4.3 Open Data Base Connectivity (ODBC) data access engine


The ODBC data access engine is used to connect ODBC-aware data access components to a MySQL server. For MySQL, MyODBC engine is used. MyODBC is a 32-bit ODBC (2.50) level 0 (with level 1 and level 2 features) driver for connecting an ODBC-aware application to MySQL. MyODBC works on Windows95, Windows98, NT, and on most Unix/Linux platforms. The ODBC aware component used in Delphi programming need to use a DSN entry that is created as follows:
q q q q q

Open the Control Panel on the Windows machine. Double-click the ODBC Data Sources 32 bits icon. Click the tab User DSN. Click the button Add. Select MySQL in the screen Create New Data Source and click the Finish button.

41

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

The ODBC set up is filled as follows for this project: Example of how to fill in the ODBC setup: Windows DSN name: Description: MySql Database: Server: User: Password: Port: rock-MySQL ELC 590 Project database rock localhost root rock 3306

4.4 User Interface


The user interface is defined as the mechanism through which a dialogue between a computer program and the human is established [Roger 1992]. The user interface should be easy to use and learn. We have decided to use two types of user interface: 1. A web-based interface 2. A GSM Mobile phone Short Message Text interface The web-based interface is set on a web page and displayed on a web browser. The reasons for this are:
q

Web based interface is platform independent (Can execute on any web browser either in windows, Macintosh or Linux) It is extremely flexible in that control and monitoring can be done from any computer that is online (No need to install any special program interfaces on the local machine) Has a high Input/Output efficiency as compared to resident program-based interfaces. An interface is I/O efficient when the information can be supplied or understood by the user with an economy of intellectual effort [Barstow and Shobe 1998] Easier to design and maintain as compared to conventional interfaces

42

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

4.4.1 Designing the Web interface


The web interface shall consist of the main HTML page and the PHP scripts; the main page calls the PHP scripts to act on user input. e.g. when a user clicks the lights on button, the HTML page calls The PHP scripts responsible for this action to initiate a connection to the database, update the database, update the user interface and close the database connection. Four pages shall characterize the web interface namely: 1. The login page 2. Device control page 3. Device Status page 4. Exception handling pages The login page is a PHP Script that compares the username and password supplied to the stored values in the database. The device control page is the main page from which a user can initiate commands to switch or control devices, on this page we have push buttons which when clicked will send commands to carry out the intended action. The Device history page contains the real-time status of the devices, to ensure that the displayed status is up-to-date, a refresh rate line is included in the HTML header of the page set to 2 seconds. The Exception handling pages are the pages displayed when an error occurs. Such errors include wrong username and password, failure to connect to the database or page time out (when device status page refresh fails to occur). Once a user types the address of the website from which to control devices on the web browser, he or she must first login to make sure that the user is an authorized user, the username and password are encrypted by a client side scripting language script into cipher text which is then transmitted to the user database for comparison.

43

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

Mobile Phone Interface The Mobile phone Short Message Text interface is to be used as an alternative to the web-based interface in the following circumstances: 1. When the Internet is unavailable, SMS can be used to control critical systems such as industrial boilers 2. When the use is traveling (one can send a text message from a moving vehicle15) 3. When the user is out of reach of an Internet enabled computer. 4. Where it proves that the SMS method is cheaper than Internet access (e.g. in rural areas where Internet is via dialup trunk call) At the remote station, an activeX-based software will be running which can access the phone software through a serial data cable. The activeX is able to do the following: 1. Read the short message string and act on it so that if the received message is lights on, the activeX can update the database whose data is read by the application switching software to switch the lights on. If the message is fan on the same procedure is carried out to switch on the fan. 2. Query the source phone number and the source phone International Mobile Equipment Identification number (IMEI); this will prevent the system from acting on just any received message because malicious people can control your devices. So the activeX will only update the database if and only if the message received comes from the expected phone number and handset. The need to check the IMEI number arises from the fact that people can spoof a phone number from the free SMS websites from which short message text can be sent. 3. Send a SMS notification to the user that the desire control action has been performed.

15

Data (text) transmission on SMS does not occur if the user is moving at speeds higher than 120 kph.

44

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

4.5 Software Design


The software used in this system runs on the remote computer. The software is responsible for the translation of database information into actions such as switching on a device. The software pseudo-code is as follows: Start Login user; If user is unauthorized then End Else Attempt to connect to database; If database is not accessible then Alert user; Re-entry; Else Connect to database; Read database; Select data table; For column 1 to column n do Read data table; Till end of table; If column value is ON then send activating bit string to port Else Send deactivating bit string to port; End The above program executes repeatedly so that any changes in the database (which the user has input) are acted upon. The other software is the PHP4 script whose main function is to provide for interactive input on the user interface web page. The PHP4 script has the following pseudo-code: Start Login user; If user is unauthorized then Return login error; End Else Open database connection; Select table in database; Has user input data to switch on or off devices? If yes

45

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

If no

Collect user input; Post user input to database table;

End

Do nothing; Interface Refresh time out? Yes Read database table; Format data from database Output formatted data to user interface; Close database connection; No Do nothing and wait for refresh time out

The other software is the activeX component that connects to the mobile handset through the serial communications port (COM 1). The code is written with the understanding that when a phone sends am SMS, it send it together with the SMS center number, Phones IMEI and the user data. Its pseudo code is shown below: Start Connect to phone If connection failed then Alert user Else continue Read phones SMS inbox If Short message received Check source phone number and IMEI number If source phone number and IMEI number are correct then Update database with message value Send confirmation to user Else do nothing End The software flowchart for the user input process is as shown in figure 4.0:

46

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

START

Challenge user to login

Is user logged in? No

Yes

Change device status?

Yes

Open database connection

No

Collect data from user

No

Third login attempt?

Yes

Post data to database

Close database connection

END

Fig 4.0: User input flow chart

The software flow chart for device switching is shown in figure 4.1:

47

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

START

Login User No

Third login attempt? Yes END

No

Is user authorized?

Yes

Open database connection

Read database

Send OFF bit sequence to port

No

Device value is ON

Yes

Send ON bit sequence to port

48

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

Read input pins to get device status

Update database

Update user interface

Close database connection

END Fig 4.1: software flow chart for device switching

4.6 Software coding


After the software design is complete, the next step is to code the software using a suitable high level programming language. The suitability of a programming language is dependent on whether that chosen language can effectively and efficiently carry out the desired software operation. Effectively in that it can do exactly what is required and output the desired results, efficiently in that t will do so in as few lines of code as possible. Borland Delphi 6.0 programming language was chosen as the most suitable language because of the following reasons:
q

Delhi provides the fundamental control-flow constructions required for wellstructured programs, statement grouping, decision-making algorithms, looping and early loop testing and condition testing. Delphi 6 and above can be used to develop programs that can run on both Linux and Windows platforms. Delphi 6 is basically advanced visual Pascal, having a good knowledge of Object Pascal meant that is much easier to program in Delphi than learn a new language altogether.

49

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

When addressing peripheral devices (which we do in this project), one does not need to write separate dynamic link libraries (dll) as in other programming languages such as Visual basic. One can write direct assembly language in Delphi to access a peripheral device.

The software for this project is divided into several parts for ease of programming
q

The splash screen which is shown every time the program is run from a windows computer The Database access and port access program The mobile phone access program

q q

4.6.1 The splash screen


The splash screen is an important component in any program. This is because its main function is to announce the registered name of the program, the owners (e.g. Microsoft). The splash screen also indicates any acquired or pending patents and the software version. The splash screen is designed from a simple Delphi form and placing visual components on the form. The complete source code for the splash screen is found in appendix V

4.6.2 Mobile phone access program


The mobile phone access program is responsible for accessing the mobile phone software and memory to read any incoming messages and also send messages from the desktop computer. This program works in the following way:
q

It connects to a phone through a communications port (COM port 1 or COM port 2) and if it fails to connect it alerts the user It constantly reads the phone memory locations for any new incoming message If there is a new message, it first makes sure that the message is from the expected phone number by comparing the senders phone number with the preset phone number. It can also scan for the IMEI number of the senders phone if the network operator sends this information with the text message headers. Currently neither Safaricom nor Kencell sends this information with an SMS. The program then searches the message string for key words such as lights on, fan on, motor

q q

50

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

off, lights off. The program is case insensitive so the LIGHTS ON is the same as Lights on or LiGhTS oN
q

Using case of switching in the program flow, it will update the desired column in the MySQL database so that if the message contains the key words lights on, the program will update the lights column in the database with the word ON if the key words were lights off the it will update the lights column with the word OFF and so on. Once the desired device is switched, the phone access program sends back a confirmation text message (SMS) to the sender confirming that the desired device has been switched on or off.16

The full program code for the phone access software is found in appendix VI

4.6.3 Database access program


This is the main program in the system. It is responsible for getting user input data from the database and acting on it appropriately so that if a user wished to switch on the fan, the use information which was saved on the database is read by this program which then proceeds to output data signals on the parallel port which will activate the device switching circuits to switch on the fan. The Data Controls page of the Component palette in the Delphi programming interface provides a set of data-aware controls that represent data from fields in a database record, and, if the dataset allows it, enable users to edit that data and post changes back to the database. By placing data controls onto the forms in our database access application, were able to build a database applications User Interface (UI) so that information is visible and accessible to users and the PHP scripts Data controls connect to datasets by using a data source. A data source component ( TDataSource) acts as a conduit between the control and a dataset containing data. Each data-aware control must be associated with a data source component to have data to display and manipulate. Similarly, all datasets must be associated with a data source component in order for their data to be displayed and manipulated in data-aware controls on a form.

16

This is subject to the availability of airtime credit on the remote phone. The confirmation SMS is charged as a normal SMS based on the network providers existing tariffs at the time of sending

51

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

The complete source code for the database program in Delphi is found in appendix II and appendix VII for the PHP scripts

4.7 Remote Computer Interface


An interface is a boundary between a controlling device and a connected device, which may or may not include controlling logic such as a transducer, a peripheral or a microprocessor [Gripps 1981]. An interface will therefore consist of the physical, electrical and logical properties of the boundary. Physical properties comprise of the type of interface, shape and number of pins on the connector. The electrical properties define which electrical signals are used and their potential level with relation to the ground. Logical properties define the response of the two devices to electrical signals. We have two basic types of interfaces namely:
q q

Serial interface Parallel interface

4.7.1 Serial interface


In this type of interface, the data bits are transmitted along a single line. The use of a single line saves the cost of wires especially over long distances. The price paid in this type of interface is the complexity of the interface in that the sender and receiver must be accurately synchronized so that the receiver must know when to expect data on the line. This calls for additional signals. First, the sender must inform the receiver of the intention to transmit data and the receiver must also send another signal indicating whether it is ready to receive data or not. In a computer there are serial interfaces provided, where the external ones are called communications (COM) ports (Communications Port). A common serial interface is the RS232C with a 25-pin D type connector. The serial port RS232C standard pin configuration is shown in table 4.1

52

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

4.7.2 Parallel Interface


In a parallel interface, there are as many data lines as the size of data rate being transferred so that for transfer of one byte per second then there will be eight data lines (a data line for each bit). This has the advantage of speed especially over short distances. In this project we intend to output a three-bit signal (in Parallel) and also receive bit values from the monitoring circuits hence a parallel port is needed or a parallel to serial (shift) converter if we are to use the serial port provided by the computer. The above hurdle can be overcome by making use of the fact that the 25-pin serial port has two independent channels, which give a total of 8 inputs and seven outputs with the rest of the signal pins use for timing, grounding and power. Because of the many output and input pins available in the parallel interface, we shall use it in the project.

Pin No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Signal Type Ground Data Data Control Control Control Ground Control

RS232-C Signal Designation

Modified Use in This Project Switching Bit3 out (LSB) Switching Bit2 out Switching Bit1 out (MSB) Bit Input from Transducer Bit Input from Transducer

Protective Ground Data Transmit (Tx) Data Receive (Rx) Request To Send (RTS) Clear To Send (CTS) Data Set Ready (DSR) Signal Ground Received signal detector (RSD) Reserved for testing Reserved for testing Not Assigned Control Secondary RSD Control Secondary CTS Data Secondary Tx Timing Transmitted Signal Timing Data Secondary RX Timing Receiver Signal Timing Not Assigned Control Secondary RTS Control Data Terminal ready Control Signal Quality detector Control Ring Indicator Control Data Signal Rate Selector Timing Transmitted signal timing Not Assigned Table 4.1: Comparison of RS 232 and our modified pin usage table

Bit Input from Transducer Bit input from Transducer

53

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

4.7.3 Port Access


Port access is easily achieved in Delphi programming because on simply writes assembly language directly in the Delphi program module. Unlike in other programming languages such as visual basic.NET where one has to write separate dynamic link libraries (dlls) in another programming language such as C++ or Pascal. This is time consuming because one has to write a lot of code. In Delphi, less than ten lines of code do the trick as seen from the appendix II

4.8 Switching Interface Circuit


This is the interface circuit between the devices to be switched and the rest of the system. The circuit is roughly divided into two parts namely:
q q

Control circuit Monitoring circuit

These circuits shall connect to a computer through the parallel port (printer port). The control circuit should be able to do the following:
q

Protect the parallel port from back e.m.f produced by inductive devices such as motors that we might need to control and electromagnetic relays. This calls for the use of a power transistor switch and a buffer Convert the active low output of the buffer IC to active high outputs, this calls for the use of inverter IC Switch as many devices as possible using the limited number of output pins in the parallel port. This means that a decoder has to be used. Use low voltage output of the parallel port to switch on higher voltage devices (e.g. A 240V device). This calls for the use of electromagnetic relays. Give a stable output to avoid capacitive effects, have a bounce less switching and this will need a latch such as a JK flip flop.

Upon enquiry in the electrical laboratory, the following devices were available and are to be used in the control circuit design:
q q q q q

One 74LS138 3-8 Decoder One 74LS244 8 line Buffer Two 74LS04 6 line Inverters Eight AD149 Power transistors Eight 12 to 240 Volts JZC20F Electromagnetic relays

54

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

q q q q q

Two 74LS76 JK Flip Flop Clock signal generator (555 timer IC) 5V Power supply 1 k resistor AD 149 NPN Power transistor with metal collector body

4.8.1 Circuit Operation


The circuit operation is a follows:
q

The 3 to 8 decoder receives three bits in parallel from the parallel port pins 2,3 and 4 Depending on the bit values, the decoder can switch one of the eight output lines to low (the decoder being active low) The decoder output is passed through a 74LS244 buffer IC to stabilize it and also isolate the decoder and computer port from the rest of the circuit. Buffering is important because any fault that might occur in the switching circuit will not harm the port and decoder. The buffer output is then inverted through the 74LS04 inverter IC so as to get an active high output. This output is used to set a flip flop into active high output The active high output is then used to switch a power transistor that in turn switches an electromechanical relay or enables any other suitable switching device. To switch off the device a similar signal is sent from the twin pin to reset the flip flop and switch off the device

The relationship between the switching circuit and the rest of the system is as follows:
q

In the program, we set that each device be represented by two- three bit binary number as shown in table 4.2.

DEVICE ON BITS A 001 B 011 C 101 Table 4.2: Device bit combinations

OFF BITS 010 100 110

55

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

So when the user selects to switch on the device B, 011 is output on the port and the fourth pin on the decoder is active low, it this that is buffered and inverted to switch on the transistor which then switches the motor driver IC and the motor runs.
q

To switch off the device B, a binary value of 100 is output on the port and this signal is similarly used as the one above but this time it resets the flip-flop and the device is shut down.

Electronic workbench software was used to design and simulate the circuit using the chosen components. After few modifications, the simulation worked as expected. The circuit in figure 4.2 below shows the switching/control circuit that was simulated where the device has been represented by a 240Volts incandescent light bulb although it could be a motor, heater etc.

Parallel Port

Fig 4.2: Diagram for the control circuit as viewed in the Electronics workbench simulator. The rest of the devices can be connected in a similar manner as shown by the connection of a light bulb. The pin-to-pin connection table of the various integrated circuit (IC) chips is found in the appendix.

4.8.2 Monitoring Circuits


The monitoring circuit should be able to monitor the device status by observing one key parameter of the device and send an electrical signal to a specified pin on the parallel port. The device monitoring software (which constantly observes this pin) will be able to

56

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

indicate that the monitored device is on or off. If the pin is low (zero volts) then the device of off whereas if it is high then the device is on. For demonstration purposes we shall use the following devices and their suitable transducers in this project: DEVICE TRANSDUCER 240V Incandescent bulb Light dependent resistor Motor DC Tachometer Water heater Thermistor Table 4.3: Devices and their suitable transducers In this project, we do not intend to design transducers but shall use commercial off the shelf (COTS) transducers but because of their varying output, a conditioner to harmonize their outputs to TTL Level (1 or 0 which correspond to five and zero volts respectively) The transducer output will be conditioned by use of a Zener diode working in the breakdown region. This will ensure that the transducer output is trimmed to 5 volts (TTL Level) because any over voltage can destroy the port internal buffers. Also in the event of an under voltage, the same Zener diode can act as a pull-up to increase the voltage to 5 volts. The graph below shows the operation of a Zener diode as a voltage conditioner/ clipper.

Fig 4.3: Zener Diode input and output waveforms The conditioner circuit shall be as shown in figure 4.4.

57

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Four: System Design

Fig 4.4: Transducer output voltage conditioner

Each transducer shall have its own conditioner diode and its own input pin on the port. The monitoring software will then be able to tell whether a given device is on or off depending on the state of the input pin of that device on the port e.g. when the light is on, the Light dependent resistor will conduct and the light monitoring pin will go high (5 volts after conditioning) and the user will then be able to know that the lights have actually turned on. If the user switches on a given device and does not get a confirmation that the device has responded to the users command, he will the know that there is a malfunction e.g. the incandescent light bulb has blown e.t.c.

58

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Five: Tests and Results

5 Chapter Five: Tests and Results


5.1 Circuit testing
The Electronic workbench program, which is used to design and simulate circuits, was first used to predict the expected results and behavior of the circuit. After getting all the desired components from the laboratory, the circuit was then tested at component level to make sure that the components used worked. The components were then soldered on the strip board to form the complete control and monitoring circuit. The lack of some of the components we required in the labs led to some modifications in the final working circuit. The complete circuit was then tested by use of function generators, word generators and oscilloscopes. The word generators and function generators simulates the computer output and the oscilloscope was able to display the circuit output behavior when an input from the word generators was registered. The relays that were to switch high voltage devices by use of the low voltage output from the circuit also worked as expected. The circuit worked as expected.

5.1.1 Burn-in test


A burn in test is simply done by leaving the circuit powered on for over 24 hrs to see if any of the circuit components give in to fatigue. Fatigue can be caused by over or under voltage/ current, overheating due to improper connection, poor soldering, hysterisis etc. The circuit was left powered on for more than 24 hours with constant monitoring of the temperature of the devices. All the components did not overheat except for the step down transformer that was quite hot even though the heat did not cause it to malfunction. The possible reason why it was overheating was because of age. It was purchased in 1990 and has severally been used in the electrical laboratories for practical and other projects and in the process lost some efficiency due to mishandling. A solution to the overheating transformer was to provide a suitable heat sink to dissipate the heat especially when the circuit is supposed to be on 24 hours a day.

5.2 Program testing


The program code, after being written in the Delphi programming interface, was run and the result was that there were many syntax errors that were corrected by debugging the program code.

59

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Five: Tests and Results

The web interface WebPages and PHP scripts were also loaded to the root directory set in configuring the web server and accessed from a local web browser by typing http://localhost on the address bar and the web server was able to server the index page which contained the login prompt. The program output to the port was tested by use of light emitting diodes (LEDs) that lit when an output was registered in the port output pins. The program after several runs and debugging sessions, ran as expected. For demonstration purposes in this project we switch on a 240 Volt incandescent light bulb and a small DC fan. The light activation circuit derives its trigger signals from pin 6 of the parallel port and the DC fan from pin 7 of the parallel port.

5.3 System testing


The system is comprised of:
q

The interface switching software (phone access, splash screen and database access programs) The Web server The Database server The Interface circuit The Open Data Base Connectivity (ODBC) data access engine The switched devices (a light bulb and a DC fan)

q q q q q

Before running the program we have written, the following things were done in the order in which they are listed:
q

The local computer was connected to the halls of residence Local Area Network (LAN) made up 18 computers in Hall 2 While the computer is switched off and disconnected from power supply, the interface circuit is connected to the PC through a parallel port printer cable and the circuit is then powered The mobile phone is connected to the computer COM port (serial port) and powered, any PIN numbers must be supplied to the phone if required before the computer is booted The Xitami web server must be up and running The MySQL database server must be up and running 60

q q

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Five: Tests and Results

After this the program was run from the local machine, the program alerted the use that a phone had been detected at COM port 1 through a message box. The web server that was running in the local machine was able to serve pages to all the LAN users. The LAN was used to simulate the Internet environment on which the system is to run. From any computer on the LAN, we were able to switch on/off the 240-volt light and DC motor by accessing the user interface WebPage from a web browser and clicking on/off the device to be switched.

5.3.1 Web control


The user first logged in with the correct username and password. An attempt to use the incorrect username and or password led to the user being denied permission to access the control page from where the devices are controlled. After login in successfully, the use selected to switch on the lights that were initially off. And when the user submitted the information to the web server. After about one second, the lights went on. The use then switched on the fan and the fan and the light were both on. The use then tried switching off the lights leaving the fan on and the lights went off as expected leaving the fan on. The fan was then switched off and now all the devices were off. The web interface therefore worked without any problems.

5.3.2 Text message (SMS) control


The next step was to test the system using the SMS interface control. The text message setup consisted of the following
q q

A GSM cellular mobile phone Remote GSM cellular mobile phone connected to the remote PC through the serial port (COM port) Software to read local mobile phone memory The interface circuit and devices to be switched (This is the same circuit used in the web-based tests)

q q

A short message text with the text string lights on was sent from a phone to the phone number of the phone connected to the computer. After about two seconds, the sent message arrived at the recipient phone. The mobile phone access software we wrote was able to read the received message and switch on the 240 volts bulb. After the bulb went

61

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Five: Tests and Results

on, the software sent a confirmation message through the phone connected to the computer to the phone that originally sent the message. The confirmation message read lights now on. The software was able to switch on the light bulb because on receiving the message, it form confirmed that the message came from a valid source and not any other phone. It was able to do this by comparing the SMS sender number that is found in the SMS header to the local preset number in the source code. To confirm that the software only acted on valid SMS messages, we sent a message with the words lights off from another unauthorized phone and the light bulb did not go off but when the same message was sent from a valid phone, the lights went off.

5.3.3 Web then SMS text control


A scenario was envisaged where by a user could switch on a device remotely over the Internet and then loses the Internet connection through an outage. Would the use be able to switch off the device using a SMS? Tests to simulate such a scenario were done by login in to the web control interface, switching on the fan that went on as expected. A message was the sent to the remote phone with the text fan off. After two seconds, the message was received and the fan was turned off. This therefore meant that the two modes of communications could be used to complement each other in cases where one fails. This has the effect of greatly improving the system redundancy and hence reliability is improved.

62

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Five: Tests and Results

Fig 5.0: The complete system layout

63

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Six: Cost Analysis

6 Chapter Six: Cost Analysis


6.1 Cost Analysis
The design of any project is incomplete without a comprehensive cost analysis. The cost analysis of a project can be categorized into two main areas [Lacy 1994]:
q q

System design and learning Return on investment

6.1.1 System learning and design


The learning of a system involves the costs incurred while trying to learn it e.g. user training. Brooks define user friendliness of a system in the following way: That a system is user friendly if the cost incurred in learning the system is much lower than the benefits got from using the system [Brooks et al 1994]. The system in this project uses common user interfaces such as web pages, short message service text (SMS). Majority of users of our system are already familiar with these interfaces and this means that little or no training is needed for users to be able to use the system. From Brooks definition, the cost of learning this system is lower compared to the benefits got. The system in this project was designed and implemented using freeware (FREE softWARE). These include:
q q q q

PHP Scripting language Xitami web server MySQL Database Server MyODBC connectivity engines

Borland Delphi 6.0 Enterprise edition, which was used in the programming, is not freeware. The freeware, although free, we had to pay for the cost of downloading them from the Internet, this cost is dependent on download speeds available at the time of download. The use of Commercial Off The Shelf (COTS) systems such as mobile phones also helped in lowering the overall cost of the system. It would have been very costly to deign our own mobile phone from scratch.

64

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Six: Cost Analysis

6.1.2 Return on Investment


For any system to be adopted, it must have a good return on investment. For demonstration purposes, we will use a two-year return on investment model for a system that that is controlling a remote critical system such as an oilrig in southern Sudan via Internet using a VSAT link17. This model is consistent with expected parameters for a piece of critical remote equipment and uses approximate operational parameters from the example presented. Following ISO standards, the table for cost analysis is show below for our system. The currency used is in US dollars (USD): Cost of Down Time Downtime (without monitoring) Downtime (with monitoring) Cost of Service visit Frequency of Service visit (No monitoring) Frequency of Service visit (With monitoring) Cost of Service (No monitoring) Cost of Service (With monitoring) Installation Cost Monthly expense Annual software license& maintenance Cost Saving per year 1 Cost Saving per year 2 Total cost saving for the two years Simple return on investment for the two years Table 6.0: Return on Investment Data for the Web-based/GSM remote monitoring system The return on investment for the first two years is more than 1000%. The return is very high because the upfront design and installation expenses are low this in turn produces a very high return as per percentage of investment. The next analysis compares the system we have designed with what is there on the market that is non-web based or mobile phone controlled systems that heavily rely on onsite control. This system yields a marginal simple return on investment for the first two years. USD/Hour Hrs/Year Hrs/Year Days Days USD/Year USD/Year $50 168 24 $150 7 14 $8,400 $1,200

$7,821 $3,910 $1,250 $130 $0 $8,300 $9,550 $17,850 1193.58%

The war and instability in this region would make remote oilrig monitoring and control a viable option to multinational oil companies as compared to sending staff there. This system would also find wide use in Iraq where insecurity has increased in the last few months
17

65

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Six: Cost Analysis

Cost of Down Time Downtime (without monitoring) Downtime (with monitoring) Cost of Service visit Frequency of Service visit (No monitoring) Frequency of Service visit (With monitoring) Cost of Service (No monitoring) Cost of Service (With monitoring) Installation Cost Monthly expense Annual software license& maintenance Cost Saving per year 1 Cost Saving per year 2 Total cost saving for the two years Simple return on investment for the two years

USD/Hour Hrs/Year Hrs/Year Days Days USD/Year USD/Year

$50 168 24 $150 7 14

$8,400 $1,200

$7,821 $3,910 $7,500 $100 $2,000 $2,410 $7,910 $10,320 35.81%

Table 6.1: Return on Investment Data for on-site control and monitoring system

Downtime is a general term used to describe a system that is out of control. In this oilrig example, it may mean that the pump has stopped, in environmental applications; it could refer to a process that is out of regulatory compliance. The oilrig example is such that downtime alone justifies a complete monitoring and control system. In general, the maintenance visit costs will more frequently dominate. In the case of actual deployment of the system for example, a saving of 24 hours of downtime per year would yield a payback of over 1000% during the first year alone.

6.1.3 To install or not?


The decision of whether to install the system or not in any industrial setting can be clouded in uncertainty of whether the system will make any cost saving or improve productivity; we have simplified decision-making by the following steps:
q q q

Compute the monthly cost savings if this system is implemented. Compute the monthly cost for the remote monitoring system. Subtract the monthly cost of the remote monitoring system fro the monthly savings

66

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Six: Cost Analysis

q q

If the result is negative, do not proceed with installing the system. If the result is positive, compare the installation costs with the incremental cost savings, the simplest method is to simply compare the savings over the first two years to the upfront cost required. A slightly more advanced financial model can discount the cost savings with an appropriate cost of capital for an organization.

The overall results in most cases would yield a positive result meaning that the cost savings of deploying such a system in an industrial setting is very high.

67

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Seven: Conclusion and Recommendations

7 Chapter Seven: Conclusion and Recommendations


7.1 Conclusion
Having designed implemented and tested the system; the local and global objectives were all met as intended at the beginning of this project. The project if implemented as desired could be applied in a variety of situations such as:
q

Remote control of machines in a manufacturing setting the advantage of which is lower operational costs due to improved efficiency, less human capital etc Operation of equipment and devices found in polluted environments such as noise-polluted power plants could be controlled from far, nuclear power plants could be controlled from far. Dusty mines and grinders, boilers, high-speed machines could all be controlled from far. Control and monitoring of Oilrigs in war prone zones: it is worth noting that most countries where there is oil, war is very common and insecurity to oilrig staff is real. Telecommuting (working from home) Control of domestic appliances from a centralized place (the home PC or mobile phone) could revolutionize lifestyles (On your way from work you could switch on the water heating system in your house from your mobile phone right from the middle of a traffic jam so that once you arrive in your house you take a hot refreshing shower)

q q

The recently concluded computer exposition by Technology Students Association (TSA) also helped in the further refining and testing the system, during the exposition, the system ran for two days being tested by the exposition guests.18 Questions were asked that lead to further improvement of the system such as the general look of the web interface. The system performance was as expected although in a real-life setting where the system works over the real Internet as opposed to a Local Area Network would introduce speed bottlenecks, latency and these mean that the device response would not be as fast as when the system is on a LAN.

18

The project also emerged as the best project in the exposition

68

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Seven: Conclusion and Recommendations

7.1.1 System limitations


q

The system cannot be used to control devices in real time especially in regions where Internet bandwidth is a problem such as Kenya this is because of the time delays present. Even if the system was real-time, its response is not instantaneous and cannot therefore be used in high precision or high speed response systems such as control of fast moving remote unmanned vehicles Due to the finite number of output pins (eight in number), not many devices can be remotely controlled by this system. It can only be used in regions with Internet access and or GSM cellular network. A VSAT solution would overcome the Internet connectivity problem whereas the use of satellite phone would also overcome the problem of GSM coverage. A good example of a worldwide satellite phone is Thuraya satellite phones

7.1.2 Problems encountered


The project was more challenging than we initially anticipated. Although we managed to implement the project, the lack of circuit components in the lab led to a lot of modifications in the circuit. The lack of two public IP addresses (one for the web server and the other for the database server) meant that the system could not be tested on the Internet per se but had to be tested on a Local Area Network (LAN). The LAN in the electrical laboratory was also malfunctioning and the test had to be done in the LAN found in the halls of residence. The program coding was also done in Delphi 6.0 that requires at least 128 MB RAM, 333Mhz CPU. We did it in a 64MB RAM, 233Mhz CPU making compiling the code somehow slower. Port access in the newer Windows NT based computers was a problem. In windows XP, one has to be logged in with administrator privileges to be able to access any portconnected device in this project.

7.2 Recommendations
The project, although implemented and working as expected, can do with several improvements such as:

69

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Chapter Seven: Conclusion and Recommendations

Use of multiple cascaded demultiplexers to switch more devices using the finite number of output pins. The use CMOS based components as opposed to TTL based would make the response time of the circuit faster especially for speed critical switching. The cost of the whole project would be much lower if the system is massproduced. The Use of Programmable Logic Controllers (PLCs) would eliminate the need for having a dedicated personal computer at the remote end.

All in all the project worked as expected and was great success to see that we achieved 95% of our objectives.

70

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Bibliography

8 Bibliography
[Bellovin 1991] S.M. Bellovin, Security Problems in the TCP/IP Protocol Suite. Computer Communication Review, Vol. 19, No. 2, April 1991. pp. 32-48 Canuteson, E. Wireless Web-Native monitoring and Control, IEE Journal of Computing and Control Engineering, August/September 2003, pp. 22-23. Carney, D. Requirements and COTS-Based Systems: A Thorny Question Indeed, http://interactive.sei.cmu.edu/news@sei/columns/the_cots_spo t/cots-spot.htm http://www.cck.go.ke/ Policy and Regulations WebPages. Dawes C, Thomas B. (2000) OCP: Oracle8i DBA SQL and PL/SQL Study Guide Sybex Inc. Alameda Jrg Eberspcher, Hans-Jrg Vgel, Christian Bettstetter (1999) GSM switching, services, and protocols.2nd ed.John Willey and Sons, New York Gozalvez, J. S (2000) An Overview of the GSM System, John-Willey and Sons, New York Held, C. et al. (1994), An introduction to Embedded Systems, McGrawHill, New York. Lacy, A. J. (1994), Systems Engineering Management, McGraw-Hill, New York R.T. Morris, (1995.) A Weakness in the 4.2BSD Unix TCP/IP Software, Computing Science Technical Report No. 117, AT&T Bell Laboratories, Murray Hill, New Jersey. R. Moskowitz, Y. Rekhter, , D. Karrenberg, G. de Groot, E. Lear, Address Allocation for Private Internets. RFC 1918. Segal B, (1998) A Short History of Internet Protocols at CERN, World Wide Web Consortium, Atlanta. Theraja, B.L, Theraja A.K, (1999) A Textbook of Electrical Technology, S. Gupta & sons publishers, New Delhi http://www.uunet.co.ke Newsletter WebPage.

[Canuteson 2003]

[Carney 1999]

[CCK 1999] [Dawes 2000] [Eberspcher 1999]

[Gozalvez 2000] [Held et. al. 1994] [Lacy 1994] [Morris 1995]

[Moskowitz 1991 ] [Segal 1998] [Theraja & Theraja] [UUNET 2004]

71

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Bibliography

[Wacks 1997]

Wacks, K. (1997), Home Automation and Utility Customer Services, Aspen publishers, Cambridge Massachusetts

72

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9 Appendix
9.1 Appendix I
The program interfaces

The main login and control page as viewed from a web browser on the LAN/Internet

73 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

The Program Splash screen

The Database login prompt

74 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

The exception-handling page

75 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

The Remote PC interface which has access to the www. The panel on the right shows the device status; currently the gate is open as indicated by the light green icon. This interface also read the phone memory in the background.

76 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

The web based device History page

77 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9.2 Appendix II
The main Initialization program that calls the other units program Rock; uses Forms, Mainfrm in 'Mainfrm.pas' {RockForm}, DMfrm in 'DMfrm.pas' {DM: TDataModule}, Aboutfrm in 'Aboutfrm.pas' {AboutForm}, UnitD in 'UnitD.pas' {PhoneForm}; PassDlg in 'PassDlg.pas' {PasswordDlg} ;

{$R *.RES} Var Splash : TAboutForm; begin Application.Initialize; Splash:=TAboutForm.Create(Nil); Splash.OKBtn.Visible :=False; Splash.Show; Splash.Update ; Application.Title:='Remote Web-Based Control Interface'; Application.CreateForm(TRockForm, RockForm); Application.CreateForm(TPasswordDlg, PasswordDlg); Application.CreateForm(TDM, DM); Application.CreateForm(TAboutForm, AboutForm); Splash.Hide; Splash.Free; Application.Run; end.

78 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9.3 Appendix II
The Main Database and port access unit unit Mainfrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, Menus, ComCtrls, OleCtrls, SHDocVw, ImgList, StdCtrls, Buttons, AgentObjects_TLB; type TRockForm = class(TForm) Timer1: TTimer; MainMenu1: TMainMenu; File1: TMenuItem; Open1: TMenuItem; N1: TMenuItem; Exit1: TMenuItem; PageMan: TPageControl; DataSheet: TTabSheet; BrowserSheet: TTabSheet; ToolBar: TPanel; DBGrid1: TDBGrid; ImageList1: TImageList; SBar: TStatusBar; SpeedButton1: TSpeedButton; Help1: TMenuItem; About1: TMenuItem; View1: TMenuItem; Data1: TMenuItem; Browser1: TMenuItem; PBar2: TProgressBar; Panel3: TPanel; GroupBox2: TGroupBox; Panel1: TPanel; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; Label1: TLabel; URLCombo: TComboBox; Panel4: TPanel; Browser: TWebBrowser; DBNavigator1: TDBNavigator; Agent1: TAgent;

79 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Timer2: TTimer; SpeedButton4: TSpeedButton; GroupBox1: TGroupBox; DeviceList: TTreeView; StatusPanel: TPanel; Splitter1: TSplitter; SpeedButton5: TSpeedButton; PhoneModule1: TMenuItem; Edit1: TEdit; procedure Timer1Timer(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure BrowserSheetShow(Sender: TObject); procedure FormActivate(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure About1Click(Sender: TObject); procedure Data1Click(Sender: TObject); procedure Browser1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure URLComboKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure URLComboClick(Sender: TObject); procedure Agent1DblClick(Sender: TObject; const CharacterID: WideString; Button, Shift, x, y: Smallint); procedure FormCreate(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure PhoneModule1Click(Sender: TObject); procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } Function CheckUpdate:Boolean; Procedure WritePort(PortNo:Word;Data:Byte); Function ReadPort(PortNo:Word):Word; Procedure Delay(Ms: Real); public { Public declarations } GateOpen : Boolean; Procedure UpdateDevs; Procedure UpdateList; Procedure PhoneUpdate(InMsg,Source : String); Procedure DOQry(Qry : String);

80 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

end; Const LPT1:Word = $378; Const FData: Array [0..3] Of Byte = (1,2,4,8); Const RData: Array [0..3] Of Byte = (2,1,8,4); Const ComArray : Array [1..4] Of String = ('LIGHTS ON','LIGHTS OFF','FAN ON','FAN OFF');

var RockForm: TRockForm; PortStatus : Word; Genie: IAgentCtlCharacter ; implementation uses DMfrm, Aboutfrm, UnitD; {$R *.DFM}

Procedure TRockForm.DoIntro; Begin

End;

Procedure TRockForm.Delay(Ms:Real); Var Time1,CurrTime: Double; Del : Real; Begin Time1:=Now; //CurrTime:=Time1; Del := Ms/(24*60*60*1000); //Label1->Caption = FloatToStr(Del); Repeat CurrTime:=Now; Application.ProcessMessages; Until ( CurrTime >= Time1+Del); End;

81 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Procedure TRockForm.UpdateDevs; Var I : Integer; PortData: Integer; Begin For I:= 0 To DM.RockQry.RecordCount Do Begin PortData:=0; If DM.RockQry.Fields[3].AsString = 'On' Then PortData:=(PortData Or 16); If DM.RockQry.Fields[6].AsString = 'On' Then PortData:=(PortData Or 32); SendData(LPT1,16) WritePort(LPT1,PortData);

End; Function TRockForm.ReadPort(PortNo:Word):Word; Var PortStat : Word; Begin PortStat:=PortNo+1; Asm Mov Dx,PortStat In Ax,Dx Mov PortStatus,Ax End ; Result:=PortStatus;

End;

Procedure TRockForm.WritePort(PortNo:Word;Data:Byte); Begin Asm Mov Dx, PortNo Mov Al, Data Out Dx, Al End

82 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

End;

Procedure TRockForm.UpdateList; Var I :Integer; Begin If DM.RockQry.RecordCount > 0 Then Begin DM.RockQry.Last ; For I:= 1 To 8 Do Begin If DM.RockQry.Fields[I].AsString = 'On' Then Begin DeviceList.Items[I-1].ImageIndex := 1; DeviceList.Items[I-1].SelectedIndex := 1;

End Else Begin DeviceList.Items[I-1].ImageIndex := 0; DeviceList.Items[I-1].SelectedIndex := 0; End; End; DeviceList.Refresh ; DeviceList.Update ; DeviceList.Invalidate; End; End; Function TRockForm.CheckUpdate:Boolean; Var Cnt1,Cnt2:Integer; Begin

83 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Cnt1:=DM.SnoopTable.Recordset.RecordCount ; DM.SnoopTable.Close; DM.SnoopTable.Open; Cnt2:=DM.SnoopTable.Recordset.RecordCount ; Result:= (Cnt2 <> Cnt1); End; procedure TRockForm.Timer1Timer(Sender: TObject); begin If RockForm.Visible Then If CheckUpdate Then Try DM.RockQry.Close; DM.RockQry.Open; UpdateList; UpDateDevs; Except ShowMessage('Data Refresh Error. Please Troubleshoot Extensions.'); End; end; procedure TRockForm.Exit1Click(Sender: TObject); begin Close; end; procedure TRockForm.BrowserSheetShow(Sender: TObject); begin Browser.Navigate('Http://localhost/ '); end;

Procedure TRockForm.PhoneUpdate(InMsg,Source : String); Var Devs : Array [1..8] Of String; I: Integer; Index : Integer; Flag : Boolean; Begin InMsg:= UpperCase(Trim(InMsg)); If InMsg=ComArray[1] Then

84 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Begin Index:=3; Flag:=True; End Else If InMsg=ComArray[2] Then Begin Index:=3; Flag:=False; End

Else If InMsg=ComArray[3] Then Begin Index:=6; Flag:=True; End Else If InMsg=ComArray[4] Then Begin Index:=6; Flag:=False; End Else Begin ShowMessage('Invalid Command : ' + InMsg); Exit; End;

DM.RockQry.Last; For I:=1 To 8 Do Begin Devs[I]:= DM.RockQry.Fields[I].AsString; End; If Flag Then Devs[Index] := 'On' Else Devs[Index] := 'Off';

With DM.TempTable Do Begin Open; Insert; For I:=1 To 8 Do Fields[I].AsString := Devs[I]; Fields[9].AsDateTime:=Now; Post;

85 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

End; DOQry(Qry); SBar.SimpleText :='Phone Update . . .'; PhoneForm.SendTextE.Text := InMsg; PhoneForm.SendToE.Text := Source; PhoneForm.SendMsgBtnClick(Self); End;

Procedure TRockForm.DOQry(Qry : String); Var TempQry: TStringlist; Begin With DM.RockQry Do Begin TempQry := TStringList.Create ; TempQry.Assign(SQL); SQL.Clear; SQL.Add(Qry); Close; ShowMessage(SQL.Commatext); ExecSQL; Close; SQL := TempQry; Open; End;

End;

procedure TRockForm.SpeedButton1Click(Sender: TObject); Var TempQry: TStringlist; begin TempQry := TStringList.Create ; TempQry.Assign(DM.RockQry.SQL); DM.RockQry.SQL.Clear; DM.RockQry.SQL.Add('Delete From master'); DM.RockQry.Close;

86 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

DM.RockQry.ExecSQL; DM.RockQry.Close; DM.RockQry.SQL := TempQry; DM.RockQry.Open;

end; procedure TRockForm.About1Click(Sender: TObject); begin AboutForm.ShowModal; end; procedure TRockForm.Data1Click(Sender: TObject); begin PageMan.ActivePage:=DataSheet; end; procedure TRockForm.Browser1Click(Sender: TObject); begin PageMan.ActivePage:=BrowserSheet;

end; procedure TRockForm.SpeedButton2Click(Sender: TObject); begin Try Browser.GoBack Except End; end; procedure TRockForm.SpeedButton3Click(Sender: TObject); begin Try Browser.GoForward Except End; end; procedure TRockForm.URLComboKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin Case Key Of VK_RETURN: Begin URLCombo.Items.Add(URLCOmbo.Text);

87 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Browser.Navigate(URLCombo.Text); End; End; end;

procedure TRockForm.URLComboClick(Sender: TObject); begin Browser.Navigate(URLCombo.Text); end;

procedure TRockForm.FormCreate(Sender: TObject); begin PageMan.ActivePage := BrowserSheet; end; procedure TRockForm.Timer2Timer(Sender: TObject); begin StatusPanel.Caption := Format('Status : %d',[ReadPort(LPT1)]); end; procedure TRockForm.SpeedButton4Click(Sender: TObject); begin

PhoneUpDate(Edit1.Text,'+254721460438'); end; procedure TRockForm.PhoneModule1Click(Sender: TObject); begin PhoneModule1.Checked := Not PhoneModule1.Checked; PhoneForm.Visible:= PhoneModule1.Checked ;

end; procedure TRockForm.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin

88 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Case Key Of VK_Return : PhoneUpDate(Edit1.Text,'+254721460438'); End; end; end.

89 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9.4 Appendix III


The minor Database access unit unit DMfrm; interface uses Windows, Messages, Db, ADODB, Classes,SysUtils, Graphics, Controls, Forms, Dialogs ; type TDM = class(TDataModule) RockSource: TDataSource; Rock: TADOConnection; SnoopTable: TADOTable; RockQry: TADOQuery; procedure RockSourceDataChange(Sender: TObject; Field: TField); procedure DataModuleCreate(Sender: TObject); procedure RockWillConnect(Connection: TADOConnection; var ConnectionString, UserID, Password: WideString; var ConnectOptions: TConnectOption; var EventStatus: TEventStatus); procedure RockAfterConnect(Sender: TObject); procedure RockQryAfterOpen(DataSet: TDataSet); private { Private declarations } public { Public declarations } end; var DM: TDM; implementation uses Mainfrm, PassDlg; {$R *.DFM} procedure TDM.RockSourceDataChange(Sender: TObject; Field: TField); begin RockForm.UpdateList; RockForm.UpdateDevs;

90 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

end; procedure TDM.DataModuleCreate(Sender: TObject); begin Rock.Open ; end; procedure TDM.RockWillConnect(Connection: TADOConnection; var ConnectionString, UserID, Password: WideString; var ConnectOptions: TConnectOption; var EventStatus: TEventStatus); begin UserID:=''; Password:='';

If PasswordDlg.ShowModal=mrOK Then Begin UserID:=PasswordDlg.UserName.Text; Password:=PasswordDlg.Password.Text; End Else Begin ShowMessage('Database Login Aborted !'); Abort; End; end; procedure TDM.RockAfterConnect(Sender: TObject); begin SnoopTable.Open ; RockQry.Open ; RockForm.Timer1.Enabled:=True; end; procedure TDM.RockQryAfterOpen(DataSet: TDataSet); begin end.

91 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9.5 Appendix IV
The login prompt source code unit PassDlg; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls,Dialogs,Registry; type TPasswordDlg = class(TForm) GroupBox1: TGroupBox; Label2: TLabel; Password: TEdit; Label1: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Panel1: TPanel; Label3: TLabel; Label4: TLabel; UserName: TEdit; Role: TEdit; procedure FormActivate(Sender: TObject); procedure UserNameChange(Sender: TObject); private { Private declarations } public Procedure GetLastUser; Procedure LoadUsers; { Public declarations } end; Const RegKey : AnsiString = '%\windows\system 32\; var PasswordDlg: TPasswordDlg; Reg:TRegistry; Vals: TStringlist; implementation {$R *.DFM}

Procedure TPasswordDlg.GetLastUser; Begin 92 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Reg:=TRegistry.Create ; Try Reg.RootKey:=HKEY_LOCAL_MACHINE; // Section to look for within the registry Reg.OpenKey(RegKey,True); UserName.Text := Reg.ReadString('LastUser'); Role.Text := Reg.ReadString('LastRole'); Finally Reg.CloseKey ; Reg.Free ; End;

End; procedure TPasswordDlg.FormActivate(Sender: TObject); Begin GetLastUser; UserName.Text :='root'; Password.Text:=''; Password.SetFocus; End; Procedure TPasswordDlg.UserNameChange(Sender: TObject); Begin If Trim(UserName.Text) = 'SYSDBA' Then Role.Enabled := False Else Role.Enabled := True; End; End.

93 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9.6 Appendix V
The splash screen source code unit Aboutfrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons,Shellapi, Menus,shlobj, jpeg,Registry; type TAboutForm = class(TForm) Panel1: TPanel; OKBtn: TBitBtn; Label1: TLabel; Label3: TLabel; Label8: TLabel; Timer1: TTimer; AppTitle: TLabel; Label2: TLabel; UserLabel: TLabel; CompLabel: TLabel; Label5: TLabel; Bevel1: TBevel; Image1: TImage; Label4: TLabel; Label10: TLabel; Image2: TImage; BugProof: TLabel; Mail: TLabel; procedure Timer1Timer(Sender: TObject); procedure FormActivate(Sender: TObject); procedure BugProofClick(Sender: TObject); procedure MailClick(Sender: TObject); private { Private declarations } public { Public declarations } Procedure Delay(Ms:Integer); end;

94 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Var AboutForm: TAboutForm; Reg:TRegistry; Implementation {$R *.DFM} Procedure TAboutForm.Delay (Ms:Integer); Begin Timer1.Tag:=0; Timer1.Enabled :=True; Repeat Application.ProcessMessages; Until Timer1.Tag >= Ms; Timer1.Enabled :=False; End; procedure TAboutForm.Timer1Timer(Sender: TObject); begin Timer1.Tag := Timer1.Tag +Timer1.Interval ; end; procedure TAboutForm.FormActivate(Sender: TObject); Var I,J: Integer; Tempo:AnsiString; Begin Tempo:=AppTitle.Caption ; AppTitle.Caption :=''; J:=Length(Tempo); For I:=1 To J Do Begin AppTitle.Caption :=AppTitle.Caption + String(Tempo[I]); ShowMessage(AppLabel.Caption); Application.ProcessMessages; Delay(50); End; end; procedure TAboutForm.BugProofClick(Sender: TObject); begin ShellExecute(Handle,'Open','mailto:makau@mu.ac.ke',Nil,Nil, SW_SHOWMAXIMIZED);

95 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

end;

procedure TAboutForm.MailClick(Sender: TObject); begin ShellExecute(Handle,'Open','mailto:prash1004@yahoo.com',Nil ,Nil,SW_SHOWMAXIMIZED); end; end.

96 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9.7 Appendix VI
Phone access source code unit UnitD; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Jpeg, ExtDlgs, Buttons, Spin, ComCtrls, ExtCtrls, Grids, SMSComp, StdCtrls, Menus, FileCtrl; type TPhoneForm = class(TForm) StBar: TStatusBar; GBox1: TGroupBox; PhoneML: TLabel; PhoneMCB: TComboBox; PortL: TLabel; PortE: TSpinEdit; ConnTypeL: TLabel; ConnTCB: TComboBox; ConnBtn: TButton; DisConnBtn: TButton; GBox2: TGroupBox; GetInbox_Btn: TButton; MsgNumCB: TComboBox; TotalL: TLabel; TotalMsgL: TLabel; BusyL: TLabel; BusyMsgL: TLabel; CurMsgL: TLabel; TextL: TLabel; MsgTextL: TLabel; TimeL: TLabel; MsgTimeL: TLabel; FromL: TLabel; MsgFromL: TLabel; PictureL: TLabel; Image1: TImage; NoPictureL: TLabel; Bevel1: TBevel; DelMsg_Btn: TButton; ReadMsg_Btn: TButton; GBox3: TGroupBox;

97 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

SendToL: TLabel; SendTextL: TLabel; SendValidL: TLabel; NRepChB: TCheckBox; UnicodeChB: TCheckBox; SendMsgBtn: TButton; SendToE: TEdit; SendTextE: TEdit; SendValidE: TSpinEdit; GBox4: TGroupBox; MsgGrid: TStringGrid; OPD1: TOpenPictureDialog; Picture_Btn: TSpeedButton; Bevel2: TBevel; Label3: TLabel; Label4: TLabel; Label6: TLabel; Label7: TLabel; Label1: TLabel; Label2: TLabel; Label5: TLabel; Button7: TButton; Label8: TLabel; SPD: TSavePictureDialog; SpeedButton1: TSpeedButton; SendSendL: TLabel; MSGTypeCB: TComboBox; SendSMSCL: TLabel; SendSMSCE: TEdit; SendMCCL: TLabel; SendMNCL: TLabel; MCCE: TSpinEdit; MNCE: TSpinEdit; procedure FormCreate(Sender: TObject); procedure ConnBtnClick(Sender: TObject); procedure DisConnBtnClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure SMSRepReceived(Index: Integer; Time: TDateTime; Send: String; Delivery:integer); procedure SMSMSGReceived(Index: Integer; Time: TDateTime;Text, Send: String; Pict: TBitmap); procedure ReadMsg_BtnClick(Sender: TObject); procedure DelMsg_BtnClick(Sender: TObject); procedure GetInbox_BtnClick(Sender: TObject); procedure SendMsgBtnClick(Sender: TObject); procedure Button7Click(Sender: TObject);

98 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

procedure ConnTCBChange(Sender: TObject); procedure PortEChange(Sender: TObject); procedure MsgNumCBChange(Sender: TObject); procedure PhoneMCBChange(Sender: TObject); procedure ConnState(st: boolean); procedure Clear1Click(Sender: TObject); procedure MsgGridClick(Sender: TObject); procedure LoadMessage(location : integer); procedure Image1DblClick(Sender: TObject); procedure Picture_BtnClick(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure MSGTypeCBChange(Sender: TObject); private { Private declarations } public { Public declarations } end; var PhoneForm: TPhoneForm; SMS1: TOxygenSMS; FldNum: integer; Numbers: TStringList; SendPic : TBitmap; BMPPath : string; implementation uses Mainfrm; {$R *.DFM} procedure TPhoneForm.LoadMessage(location : integer); var IsMsg: WordBool; Time: TDateTime; Text, Send : string; Deliv: integer; Pict : TBitmap; begin if SMS1.ReadSMSMessage(Location, isMsg, Time, Text, Send, Deliv, Pict) then begin MsgTimeL.caption := DateTimeToStr(Time); if isMsg then MsgTextL.caption := Text else MsgTextL.caption := IntTostr(Deliv); MsgFromL.caption := send;

99 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

if Pict <> nil then Image1.Picture.Assign(Pict) else Image1.visible := false; end else begin MsgTimeL.caption := ''; MsgTextL.caption := ''; MsgFromL.caption := ''; Image1.visible := false; ShowMessage('Slot is empty'); end; end; procedure TPhoneForm.ConnState(st: boolean); begin PhoneMCB.Enabled := not st; PortE.enabled := not st; ConnTCB.Enabled := not st; end; procedure TPhoneForm.FormCreate(Sender: TObject); begin SMS1 := TOxygenSMS.create(self); with SMS1 do begin top := 10; left := 10; //ComNumber := 2; ComNumber := StrToInt(PortE.text); Model := 0; ConnectionMode := 0; OnSMSReportReceived := SMSRepReceived; OnSMSMessageReceived := SMSMsgReceived; AutoDeleteMessages := False; AutoDeleteReports := False; Try ConnBtnClick(Self); Except End; end; Numbers := TStringList.Create; PhoneMCB.ItemIndex := 0; // ConnTCB.ItemIndex := 0; with MsgGrid do begin

100 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

Cells[0,0] := 'Type'; Cells[1,0] := 'Location'; Cells[2,0] := 'From'; Cells[3,0] := 'Time'; Cells[4,0] := 'Text'; Cells[5,0] := 'Picture'; end; ConnState(false); SendPic := nil; BMPPath := ExtractFileDir(Application.ExeName)+ '\bmp\'; if not DirectoryExists(BMPPath) then CreateDir(BMPPath); end; procedure TPhoneForm.ConnBtnClick(Sender: TObject); begin SMS1.Close; if SMS1.Open = true then begin StBar.Panels[0].text := 'Connected'; StBar.Panels[1].text := 'Phone type: ' + sms1.PhoneType; StBar.Panels[2].text := 'IMEI: ' + SMS1.Imei; // ConnState(true); end else ShowMessage('FAILED'); end; procedure TPhoneForm.DisConnBtnClick(Sender: TObject); begin SMS1.Close; StBar.Panels[0].text := 'Not Connected'; StBar.Panels[1].text := 'Phone type: none'; StBar.Panels[2].text := 'IMEI:'; // ConnState(false); end; procedure TPhoneForm.FormClose(Sender: TObject; var Action: TCloseAction); begin SMS1.Close; SMS1.Free; Numbers.Free; RemoveDir(BMPPath); end;

101 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

procedure TPhoneForm.SMSRepReceived(Index: Integer; Time: TDateTime; Send: String; Delivery: integer); begin with MsgGrid do begin Cells[0,RowCount-1] := 'REP'; Cells[1,RowCount-1] := IntToStr(Index); Cells[2,RowCount-1] := Send; Cells[3,RowCount-1] := DateTimeToStr(Time); Cells[4,RowCount-1] := IntToStr(Delivery); RowCount := RowCount + 1; MsgNumCB.Items.Add(IntTostr(Index)); BusyMsgL.Caption := IntToStr(MsgNumCB.Items.count); end; StBar.Panels[3].text := 'Report arrived'; end; procedure TPhoneForm.SMSMSGReceived(Index: Integer; Time: TDateTime; Text, Send: String; Pict: TBitMap); begin with MsgGrid do begin Cells[0,RowCount-1] := 'MSG'; Cells[1,RowCount-1] := IntToStr(Index); Cells[2,RowCount-1] := Send; Cells[3,RowCount-1] := DateTimeToStr(Time); Cells[4,RowCount-1] := Text;

If Pos('Balance',Text)<>0 Then Begin RockForm.PhoneUpdate(Text,Send); End Else Begin RockForm.PhoneUpdate(False,3); End;

if Pict <> nil then begin Cells[5,RowCount-1] := 'Picture'; Pict.SaveToFile(BMPPath + IntToStr(RowCount-1)+ '.bmp'); end; RowCount := RowCount + 1; if Index <> 0 then

102 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

begin MsgNumCB.Items.Add(IntTostr(Index)); BusyMsgL.Caption := IntToStr(MsgNumCB.Items.count); end end; StBar.Panels[3].text := 'Message arrived'; end; procedure TPhoneForm.ReadMsg_BtnClick(Sender: TObject); begin LoadMessage(StrToInt(MsgNumCB.text)); end; procedure TPhoneForm.DelMsg_BtnClick(Sender: TObject); var s : string; i : integer; begin try if SMS1.DeleteSMSMessage(StrToInt(MsgNumCB.text)) then begin MsgNumCB.Items.Delete(MsgNumCB.ItemIndex); StBar.Panels[3].text := 'Message deleted'; s := BusyMsgL.Caption; i := StrToInt(s); if i > 0 then begin Dec(i); s := IntToStr(i); BusyMsgL.Caption := s; end; MsgNumCB.text := ''; end else StBar.Panels[3].text := 'Message NOT deleted'; except end; end; procedure TPhoneForm.GetInbox_BtnClick(Sender: TObject); var count, busy : integer; Locations : string; begin GetInbox_Btn.Enabled := false; SMS1.GetInboxInfo(Count, Busy, Locations); TotalMsgL.Caption := IntToStr(Count); BusyMsgL.Caption := IntToStr(Busy); MsgNumCB.Clear;

103 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

MsgNumCB.Items.CommaText := Locations; if MsgNumCB.Items.Count > 0 then begin MsgNumCB.ItemIndex := 0; MsgNumCBChange(Self); end; GetInbox_Btn.Enabled := true; end; procedure TPhoneForm.SendMsgBtnClick(Sender: TObject); var Res : boolean; begin if SendSMSCE.text <> '' then SMS1.SetSMSCNumber(SendSMSCE.text); StBar.Panels[3].text := 'Sending message...'; Case MsgTypeCB.ItemIndex of 0: Res := sms1.SendSMSMessage(SendToE.text, SendtextE.text, StrToInt(SendValidE.text), NRepChB.Checked, UnicodeChB.Checked, nil); 1: Res := sms1.SendUnicodeSMSMessage(SendToE.text, SendtextE.text, StrToInt(SendValidE.text), NRepChB.Checked, nil); 2: Res := sms1.SendSMSMessage(SendToE.text, SendtextE.text, StrToInt(SendValidE.text), NRepChB.Checked, UnicodeChB.Checked, SendPic); 3: if sms1.CheckRTTTL(SendtextE.text) = 0 then Res := sms1.SendRingtone(SendToE.text, SendtextE.text, StrToInt(SendValidE.text), NRepChB.Checked) else Res := false; 4: Res := sms1.SendOperatorLogo(SendToE.text, MCCE.Value, MNCE.Value, StrToInt(SendValidE.text), NRepChB.Checked, SendPic); 5: Res := sms1.SendCLILogo(SendToE.text, StrToInt(SendValidE.text), NRepChB.Checked, SendPic); 6: Res := sms1.SendFlashMessage(SendToE.text, SendTextE.text, StrToInt(SendValidE.text),NRepChB.checked); Else Res := false; end; if Res then StBar.Panels[3].text := 'Message sent' else StBar.Panels[3].text := 'Message NOT sent';

end; procedure TPhoneForm.Button7Click(Sender: TObject); begin

104 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

if SMS1.CheckConnection then begin Label1.Caption := 'State: ' + IntToStr(SMS1.State); Label2.Caption := 'SMSC: ' + SMS1.getsmscnumber; Label3.Caption := 'Signal: ' + IntToStr(SMS1.SignalLevel); Label4.Caption := 'Battery: ' + IntToStr(SMS1.BatteryLevel); Label5.Caption := 'HardWare: ' + SMS1.HW; Label6.Caption := 'Software: ' + SMS1.SW; Label7.Caption := 'SWDate: ' + SMS1.SWDate; StBar.Panels[0].text := 'Connected'; end else StBar.Panels[0].text := 'Not Connected';

end; procedure TPhoneForm.ConnTCBChange(Sender: TObject); begin SMS1.ConnectionMode := ConnTCB.ItemIndex; end; procedure TPhoneForm.PortEChange(Sender: TObject); begin SMS1.ComNumber := StrToInt(PortE.text); end; procedure TPhoneForm.MsgNumCBChange(Sender: TObject); begin if MsgNumCB.text <> '' then LoadMessage(StrToInt(MsgNumCB.text)); end; procedure TPhoneForm.PhoneMCBChange(Sender: TObject); begin // SMS1.Model := PhoneMCB.ItemIndex; end;

procedure TPhoneForm.Clear1Click(Sender: TObject); begin

105 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

SendPic := nil; Picture_btn.Glyph.Assign(nil); end; procedure TPhoneForm.MsgGridClick(Sender: TObject); begin with MsgGrid do if Row <> RowCount-1 then case StrToInt(Cells[1, Row]) of 0: begin MsgFromL.caption := Cells[2, Row]; MsgTimeL.caption := Cells[3, Row]; MsgTextL.caption := Cells[4, Row]; try Image1.Picture.LoadFromFile(BMPPath + IntToStr(Row) + '.bmp'); Image1.visible := true; except Image1.visible := false; end; end; else begin MsgNumCB.itemindex := MsgNumCB.Items.IndexOf(Cells[1, Row]); LoadMessage(StrToInt(Cells[1, Row])); Image1.visible := false; end; end; end; procedure TPhoneForm.Image1DblClick(Sender: TObject); begin if SPD.Execute then Image1.Picture.SaveToFile(SPD.filename); end; procedure TPhoneForm.Picture_BtnClick(Sender: TObject); begin if OPD1.Execute then begin Picture_btn.Caption := ''; Picture_btn.Glyph.LoadFromFile(OPD1.FileName); SendPic := Picture_btn.Glyph; SendPic.width := 72; SendPic.height := 28; SendPic.height := 14;

106 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

end; end; procedure TPhoneForm.SpeedButton1Click(Sender: TObject); begin SendPic := nil; Picture_btn.Glyph.Assign(nil); Picture_btn.Caption := 'No picture' end; procedure TPhoneForm.MSGTypeCBChange(Sender: TObject); begin if MSGTypeCB.ItemIndex = 4 then begin MCCE.Enabled := true; MNCE.Enabled := true; end else begin MCCE.Enabled := false; MNCE.Enabled := false; end; end; end.

107 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9.8 Appendix VII


PHP scripts 1. Database connection PHP Script <? function db_connect($UserName,$Password) { $dbcon = @mysql_connect('localhost', $UserName, $Password); if (!$dbcon) return false; if (! @mysql_select_db("rock") ) return false; return $dbcon; } ?> 2. PHP script to get data from database to web browser <?php require_once("dbcon.php"); $dbcnx = db_connect('php','phpman'); if (!$dbcnx) { echo( "<P>Unable to connect to the " . "database server at this time.</P>" ); exit(); } $ourqry="SELECT * FROM Master"; $Result =mysql_query($ourqry);

$rowcnt=mysql_num_rows($Result); $fldcnt=mysql_num_fields($Result); printf("<center><h3>Device History </h3></center>"); echo "<table border=1 align='center'>";

for ($k=0 ;$k < $fldcnt; $k++) {

108 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

printf("<th> %s </th>",mysql_fieldname($Result,$k)); }

for ($i=0; $i < $rowcnt ;$i++) { if($i % 2) { $RowCol='#ccccdd'; } else{ $RowCol='#ddcccc'; }

printf("<tr bgcolor=$RowCol>"); $Dat=mysql_fetch_row($Result);

for ($j=0; $j < $fldcnt; $j++) { printf(" <td> %s </td>",$Dat[$j]); } printf("</tr>"); } echo "</table>";

?>

109 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

9.9 Appendix VIII


1. Banner page HTML code <html> <head> <title>ELC 590 Project Banner</title> <link rel="stylesheet" type="text/css" href="./css/main.css"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>

<body > <table align=center width=100%> <tr> <td><image src="./images/moilogo.gif" width=80 height=80 name='logo1'>&nbsp;&nbsp;</td> <td><center><font color=green size=5 ><b>MOI UNIVERSITY</font><br> <FONT color=red SIZE=4 >Faculty of Technology </FONT><BR> <font color=navy size=4>Department of Electrical and Communications Engineering</b></font> </center> </td> <td><image src="./images/moilogo.gif" width=80 height=80 name='logo2'></td> </tr> </table>

</body> </html>

110 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

2. Database modification and exception handling page HTML and PHP code <html> <head> <title>ELC 590 Project Exception page</title> <link rel="stylesheet" type="text/css" href="./css/main.css"> </head> <body>

<?php require_once("dbcon.php"); $dbcnx = db_connect($User,$Passwd); // login with username "guest" and password "mypass" to local serve if (!$dbcnx) { echo( "<P Class=Shout>Unable to connect to the " . "database server at this time.<BR><BR> Please Check That : <ul> <li>The Database Server Is Up & Running. <li>Your Username and Password are Properly Spelt. <li>Your CAPSLOCK is set Correctly. <li>Your Keyboard is Working :-) </ul></P>" ); exit(); } @$upquery= sprintf("INSERT INTO Master (Gate,Heater,Lights,TV,Fridge,Fan,Music,Alarm) Values ( '%s','%s','%s','%s','%s','%s','%s','%s')",$Gate? 'On':'Off',$Heater? 'On':'Off',$Lights? 'On':'Off', $TV? 'On':'Off',$Fridge? 'On':'Off',$Fan? 'On':'Off',$Music? 'On':'Off',$Alarm? 'On':'Off');

//printf($upquery); if (mysql_query($upquery)) { printf("<center><p class=info> Update Was Successful. <p> Click <A href='showdata.php'>Here </A> to view Records</center>");

111 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

} else { printf("Update Failure!!!"); } ?> </body> </html>

112 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

3. Index page HTML code <html> <head> <title>ELC 590:Engineering Project II</title> </head> <frameset rows="25%,*" frameborder="no" noresize > <frame src="banner.php" name="banner" scrolling="NO" > <frameset cols="20%,*" noresize> <frame src="toc.htm" noresize> <frame src="rock.php" name="main" noresize > </frameset </frameset>

<noframes> <p class=shout> This Page Contains Frames Which Cannot Be Viewed By This Browser. </noframes> </html>

113 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

4. The main login and Control page HTML code <HTML> <HEAD> <META NAME="AUTHOR" Content="Tom Makau and Kumar Prashant"> <TITLE>ELC 590: FINAL YEAR PROJECT</TITLE> <link rel="stylesheet" type="text/css" href="./css/main.css"> </HEAD> <BODY> <h3 align=center>Remote Web-native Control <br>(R.W.C.C.)</h3> <FORM METHOD="POST" ACTION="dolog.php"> <Center> Username: <INPUT type='text' size='15%' name='User'> <br> Password: <INPUT type='Password' name='Passwd' size="15%" > <p> <h4> Device Options</h4> <TABLE BORDER=1 align="center"> <TR><TD> Gate<INPUT type='checkbox' name='Gate' > </TD> <TD> Heater<INPUT type='checkbox' name='Heater' > </TD> <TD> Lights<INPUT type='checkbox' name='Lights'> </TD> <TD> TV<INPUT type='checkbox' name='TV'> </TD> <TD> Fridge<INPUT type='checkbox' name='Fridge'></TD> <TD> Fan<INPUT type='checkbox' name='Fan'> </TD> <TD> Music<INPUT type='checkbox' name='Music' ></TD> <TD> Alarm<INPUT type='checkbox' name='Alarm' ></TD></TR> </TABLE> <p> <INPUT type="Reset" Value="Reset"> <INPUT type="Submit" Value="Submit"> </Center> </FORM> </BODY> </HTML>

114 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

5. The Cascade Style Sheet referred to by all the WebPages and PHP scripts .note { font-weight: bold; font-size: 75%; font-style: italic; color: navy; } .info { font-weight: bold; font-size: 80%; color: rgb(102,102,102); } .shout { font-weight: bold; color: red; } input { ; }

a {

a:hover { font-style: italic; } a:link { } a:visited

115 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

{ color: rgb(51,102,204); } a:active { color: rgb(255,153,0); } th { color: navy; } td { text-align:right; font-size: 13; } table { color: brown; table-border-color-light: black; table-border-color-dark:black; } body { font-size: 14; font-family: Times; background-color: #ffffcc; color: #666633; } h1 { font-family: arial, color: rgb(153,153,51); } h2 { font-size: 18pt; color: rgb(204,153,0); } h3

116 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

{ font-size: 14pt; font-family: Times; color: rgb(0,102,153); } h4 { font-family: Times New Roman, Times; color: rgb(255,153,0); } h5 { font-family: Times New Roman, Times; color: rgb(153,153,0); } h6 { font-family: Times New Roman, Times; color: rgb(51,102,204); }

117 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

6. Jscript code that runs the status bar text var SysStr = "ELC 590:Final Year Project 2004 :" var StatStr = "(C)Tom Makau and Prashnat Kumar. All Rights Reserved. EMail: makau@mu.ac.ke, prash1004@yahoo.com "; defaultStatus = StatStr; var DeptStr = "Department Of Electrical And Communications Engineering. "; var FactStr = "Faculty of Technology."; var UniStr = "Moi University."; var MyArray= new array(SysStr,DeptStr,FactStr,UniStr,StatStr); var CharInd = 1; var ArrInd = 0; function Init() { setInterval("Animate()",50); } function Animate() { defaultStatus = MyArray[ArrInd].substr(0,CharInd) ; if (CharInd++ >MyArray[ArrInd].length) { CharInd = 1; if (ArrInd++ > 3 ) ArrInd = 0 ; } } function fade(orb,stat) { if(stat==1) { orb.bgColor="ffeeaa"; } else { orb.bgColor="#ffffcc"; } }

118 PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Appendix

74LS 138 Pins 1 2 3 4 5 A A B B C C

10

11

12

13
T

14
X

15

16

74LS244 1 2 3 4
X

6
T

10

11

12

13

14
U

15

16
V

17

18

19

20

X T V T X V O U V

X U T

V X T

(Table is continued here) 74LS04 Pins 1 2 3 4 5 6 7 8 A A B B C C


V O U U K V O U K K O

10

11

12

13

14

74LS76 Pins 1 2 3 4 5
O

OUTPUT 6 7 8 9 10 11 12 13 14 15
P P K O P P K Q Q K

16 Pin 15 high = A is On Pin 15 low = A is Off Pin 11 high = B is On Pin 11 low = B is Off Pin 15 high=C is on Pin 15 low =C is off

V O

Table 3.0 Pin connection table for the control circuit

119

PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com

Vous aimerez peut-être aussi