Saturday, July 4, 2015

local project



      CHAPTER 1

          INTRODUCTION



1.1           INTRODUCTION TO MOBILE TRACKING SYSTEM



                                    Mobile Tracking System is used to improve the performance of mobile and mobile tracing in any reasons. Mobile Tracking System using in the police department and sales companys.

LIST OF MODULES

1.      MU Details (Mobile user)

2.      DB Management

3.      Mobile Node management (hlr,vlr)

4.      Path Details (locations)

5.      Tracking



1.   MU Details



Mobile user contains managing user details Profiles, PTN (Personal telecommunication number) and Registration details,

1.      Profile

2.      Indexing







2. DB  Management



Database management contains Distributed server details; the distributed database management contains multiple architectures, DB0, DB1, and DB2

















ORGANIZATION OF DB0:



                                  The DB0 consists of an index file and a data file. With the location-independent numbering plan being adopted, every subscriber in the whole mobile system has an entry in the index file. If the direct file is used, each index entry only contains a pointer. When a user is residing in the current DS area, the pointer is pointing to the user’s service profile stored in the data file. The user service profile contains a pointer to the DB1 where the user is visiting. When the user is staying in another DS, the pointer in the user’s index entry points to the DB0 associated with that DS.



                             All entries in the index file are allocated the same size of storage and stored in increasing order of the users’ PTNs so that direct addressing can be used to retrieve a record from the index file. Note that the PTN does not need to be stored in the index entry.   On the other hand, the T-tree or the B -tree needs to include the PTN in each index entry and store other index management information, thus requiring more memory capacity than the direct file. Therefore, the direct file is the best choice for the index file of the DB0. In the data file, each user residing in the current DS area is allocated a record to store the user’s service profile.



                             Note that the access time of the DB0 is independent of the database size when the direct file technique is employed (but the access time is affected by the access frequency of the DB0). This scalability feature is very useful for future mobility applications since the number of subscribers is expected to increase steadily.





ORGANIZATION OF DB1:



                               Each DB1 consists only of one part: the index file, in which each user currently residing in the DB1 area has a data item. Each data item in the index file consists of two fields: the user’s PTN and a pointer to the DB2 the user is currently visiting. No other user information is stored in the DB1. Results from Section V reveal that the T-tree is a preferable technique for the index file of DB1.







ORGANIZATION OF DB2:



                              Each of the database DB2s consists of two parts: the index file and the data file. Each user currently residing in the DB2 area has an entry in the index. Each entry in the index consists of two fields: the user’s PTN and a pointer to the user record in the data file that stores the service profiles for each user currently visiting this DB2 area.







3. Mobile Node management (hlr,vlr)



Managing the mobile node address and movement of the mobile node based on the loss of energy. And when the user will move, join or leave the information will exchange the server.



4. Path Details (locations)



The path details contain store the detail about tower reaching areas and directions, location details. It is used to very easily find out the particular user locations.

 



5. Tracking



How the predicted sensor measurement at candidate locations is used to obtain the predicted target estimate on the basis of Bayesian estimation, calculate the target estimate based on the predicted sensor measurements. The node can then make a decision on where to move.





















1.2COMPANY PROFILE



At Edge solutions, we go beyond providing software solutions. We work with our client’s technologies and business changes that shape their competitive advantages.





                          

Founded in 2000, Edge Technologies(P) Ltd. is a software and service provider that helps organizations deploy, manage, and support their business-critical software more effectively. Utilizing a combination of proprietary software, services and specialized expertise, Edge Technologies(P) Ltd. helps mid-to-large enterprises, software companies and IT service providers improve consistency, speed, and transparency with service delivery at lower costs. Edge Technologies(P) Ltd. helps companies avoid many of the delays, costs and risks associated with the distribution and support of software on desktops, servers and remote devices.









Our automated Technologies include rapid, touch-free deployments, ongoing software upgrades, fixes and security patches, technology asset inventory and tracking, software license optimization, application self-healing and policy management. At Edge solutions, we go beyond providing software solutions. We work with our clients’ technologies and business processes that shape their  advantages.
































About The People



As a team we have the prowess to have a clear vision and realize it too. As a statistical evaluation, the team has more than 40,000 hours of expertise in providing real-time Technologies in the fields of Embedded Systems, Control systems, Micro-Controllers, c Based Interfacing, Programmable Logic Controller, VLSI Design And Implementation, Networking With C, ++, java, client Server Technologies in Java,(J2EE\J2ME\J2SE\EJB),VB & VC++, Oracle and operating system concepts with LINUX.





Our Vision



“Dreaming a vision is possible and realizing it is our goal”.



Our Mission



We have achieved this by creating and perfecting processes that are in par with the global standards and we deliver high quality, high value services, reliable and cost effective IT products to clients around the world.





 

  





















CHAPTER 2

                      SYSTEM STUDY



2.1 EXISTING SYSTEM

Existing System is: MANET



A MANET generally has the following characteristics



·        Difficult to invoke the mobile users Location.

·        We can’t implement Dynamic Changing topology in Mobile Adhoc Network.

·        Loss of network Connectivity in Adhoc Network. [Error in Network Connection]

·        Difficult to Identify the Node Movement (Mobile Users Movement) in Mobile Adhoc Network.















2.2  PROPOSED SYSTEM

  

    1. Distributed Database:

                  Collections of data (e.g.. in a database) can be distributed across multiple physical locations. A distributed database is distributed into separate partitions/fragments. Each partition/fragment of a distributed database may be replicated.



   

2. Mobile Sensor Network:

It Will Work in any environment So no Problem about Dynamic changing topology.



3.      Bayesian Estimation:



Bayesian means Prediction. Predict Mobile Users Movement in our project with the help of Bayesian estimation.



The proposed scheme considers node movement decisions as part of a distributed optimization problem which integrates mobility-enhanced improvement in the quality of target tracking data with the associated negative consequences of increased energy consumption due to locomotion, potential loss of network connectivity, and loss of sensing coverage.





                       















                                   CHAPTER 3

                      SYSTEM   SPECIFICATION



3.1 Software Specification(Min)



The software used for the development of the project is:



OPERATING SYSTEM                    :           Windows 2000 Professional 



ENVIRONMENT                              :           Visual Studio .NET 2003



.NET FRAMEWORK                       :           Version 1.1



LANGUAGE                         :           VB.NET



WEB SERVER                                  :           Internet Information Server 5.0



 BACK END                                      :           Ms-Access 2000



  REPORTS                                        :           WebFormDataGridcontrol



 

 

THE .NET FRAMEWORK

The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet.









Objectives of .NET FRAMEWORK:





1.      To provide a consistent object-oriented programming environment whether object      codes is stored and executed locally on Internet-distributed, or executed remotely.



      2. To provide a code-execution environment to minimizes software deployment and  

          guarantees safe execution of code.



     3. Eliminates the performance problems.   







              There are different types of application, such as Windows-based applications and Web-based applications. To make communication on distributed environment to ensure that code be accessed by the .NET Framework can integrate with any other code.

 









 COMPONENTS OF .NET FRAMEWORK





1. THE COMMON LANGUAGE RUNTIME (CLR): 

The common language runtime is the foundation of the .NET Framework. It manages code at execution time, providing important services such as memory management, thread management, and remoting and also ensures more security and robustness. The concept of code management is a fundamental principle of the runtime. Code that targets the runtime is known as managed code, while code that does not target the runtime is known as unmanaged code.



THE .NET FRAME WORK CLASS LIBRARY:

                           It is a comprehensive, object-oriented collection of reusable types used to develop applications ranging from traditional command-line or graphical user interface (GUI) applications to applications based on the latest innovations provided by ASP.NET, such as Web Forms and XML Web services.

          

                        



           The .NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that can exploit both managed and unmanaged features. The .NET Framework not only provides several runtime hosts, but also supports the development of third-party runtime hosts.

                     











FEATURES OF THE COMMON LANGUAGE RUNTIME:



                        The common language runtime manages memory; thread execution, code execution, code safety verification, compilation, and other system services these are all run on CLR.

·        Security.

·        Robustness.

·        Productivity.

·        Performance.





SecuritY:





                               The runtime enforces code access security. The security features of the runtime thus enable legitimate Internet-deployed software to be exceptionally feature rich. With regards to security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin to perform file-access operations, registry-access operations, or other sensitive functions.



ROBUSTNESS:





                             The runtime also enforces code robustness by implementing a strict type- and code-verification infrastructure called the common type system(CTS). The CTS ensures that all managed code is self-describing. The managed environment of the runtime eliminates many common software issues.





PRODUCTIVITY:





                            The runtime also accelerates developer productivity. For example, programmers can write applications in their development language of choice, yet take full advantage of the runtime, the class library, and components written in other languages by other developers.







PERFORMANCE:

                           The runtime is designed to enhance performance. Although the common language runtime provides many standard runtime services, managed code is never interpreted. A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it is executing. Finally, the runtime can be hosted by high-performance, server-side applications, such as Microsoft® SQL Server™ and Internet Information Services (IIS).





.

REPORT:



            A report is used to vies and print information from the database. The report can ground records into many levels and compute totals and average by checking values from many records at once. Also the report is attractive and distinctive because we have control over the size and appearance of it.



MACRO:   

  

    A macro is a set of actions. Each action in macros does something. Such as opening a form or printing a report .We write macros to automate the common tasks the work easy and save the time.



MODULE:   

 

   Modules are units of code written in access basic language. We can write and use module to automate and customize the database in very sophisticated ways.                 










3.2 Hardware Specification (Min)



The hardware used for the development of the project is:



PROCESSOR             :           PENTIUM III 766 MHz

RAM                           :           128 MD SD RAM

MONITOR                 :           15” COLOR

HARD DISK              :           20 GB

FLOPPY DRIVE       :           1.44 MB

CDDRIVE                  :           LG 52X

KEYBOARD :           STANDARD 102 KEYS

MOUSE                      :           3 BUTTONS







                            CHAPTER 4



                        SYSTEM DESIGN




4.1 Procedural design



Design is multi-step process that focuses on data structure software architecture, procedural details, (algorithms etc.) and interface between modules. The design process also translates the requirements into the presentation of software that can be accessed for quality before coding begins.



         Computer software design changes continuously as new methods; better analysis and broader understanding evolved. Software Design is at relatively early stage in its revolution.









    Therefore, Software Design methodology lacks the depth, flexibility and quantitative nature that are normally associated with more classical engineering disciplines. However techniques for software designs do exist, criteria for design qualities are available and design notation can be applied.



 INPUT DESIGN



Input design is the process of converting user-originated inputs to a computer-based format. Input design is one of the most expensive phases of the operation of computerized system and is often the major problem of a system.

              In the project, the input design is made in various window forms with various methods.        

·        Member Details

·        Distributed Database Management

·        Tracking Details

·        Path Details

·        Call Details





 OUTPUT DESIGN

     

              Output design generally refers to the results and information that are generated by the system for many end-users; output is the main reason for developing the system and the basis on which they evaluate the usefulness of the application. In any system, the output design determines the input to be given to the application.





 DATABASE DESIGN

                        

                     The database design is a must for any application developed especially more for the data store projects. Since the chatting method involves storing the message in the table and produced to the sender and receiver, proper handling of the table is a must.

In the project, admin table is designed to be unique in accepting the username and the length of the username and password should be greater than zero.



4.2 Module Description

LIST OF MODULES

4.2.1.MU Details (Mobile user)

4.2.2.DB Management

4.2.3.Mobile Node management (hlr,vlr)

4.2.4Path Details (locations)

4.2.5.Tracking





4.2.1.  MU Details (Mobile user)



Mobile user contains managing user details Profiles, PTN (Personal telecommunication number) and Registration details,

4.      Profile

5.      Indexing



4.2.2. DB Management



Database management contains Distributed server details; the distributed database management contains multiple architectures, DB0, DB1, and DB2


Distributed database management architecture



ORGANIZATION OF DB0:



                                  The DB0 consists of an index file and a data file. With the location-independent numbering plan being adopted, every subscriber in the whole mobile system has an entry in the index file. If the direct file is used, each index entry only contains a pointer. When a user is residing in the current DS area, the pointer is pointing to the user’s service profile stored in the data file. The user service profile contains a pointer to the DB1 where the user is visiting. When the user is staying in another DS, the pointer in the user’s index entry points to the DB0 associated with that DS.



                             All entries in the index file are allocated the same size of storage and stored in increasing order of the users’ PTNs so that direct addressing can be used to retrieve a record from the index file. Note that the PTN does not need to be stored in the index entry.   On the other hand, the T-tree or the B -tree needs to include the PTN in each index entry and store other index management information, thus requiring more memory capacity than the direct file. Therefore, the direct file is the best choice for the index file of the DB0. In the data file, each user residing in the current DS area is allocated a record to store the user’s service profile.



                           





 Note that the access time of the DB0 is independent of the database size when the direct file technique is employed (but the access time is affected by the access frequency of the DB0). This scalability feature is very useful for future mobility applications since the number of subscribers is expected to increase steadily.





ORGANIZATION OF DB1:



                               Each DB1 consists only of one part: the index file, in which each user currently residing in the DB1 area has a data item. Each data item in the index file consists of two fields: the user’s PTN and a pointer to the DB2 the user is currently visiting. No other user information is stored in the DB1. Results from Section V reveal that the T-tree is a preferable technique for the index file of DB1.



ORGANIZATION OF DB2:



                              Each of the database DB2s consists of two parts: the index file and the data file. Each user currently residing in the DB2 area has an entry in the index. Each entry in the index consists of two fields: the user’s PTN and a pointer to the user record in the data file that stores the service profiles for each user currently visiting this DB2 area.



4.2.3. Mobile Node management (hlr,vlr)



Managing the mobile node address and movement of the mobile node based on the loss of energy. And when the user will move, join or leave the information will exchange the server.









4.2.4. Path Details (locations)



The path details contain store the detail about tower reaching areas and directions, location details. It is used to very easily find out the particular user locations.

 













4.2.5. Tracking



How the predicted sensor measurement at candidate locations is used to obtain the predicted target estimate on the basis of Bayesian estimation, calculate the target estimate based on the predicted sensor measurements. The node can then make a decision on where to move.





Level-0:


Server

      Start Server

ServerInterface Inter
                                                                                                                                                                                                                                                                                                                                                                    ViewDB1 Detail                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ViewDB2 Detail                                                                                                                                                                                                                                                                                                                                     ViewMember Detail                                                                                                                                                                                                                                                                                                                                     Call List Details                                                                                                                                                                                                                                                                                                                                                Location Details Reg                                                                                                                                                                                                                                                                                                                                                                                                                                                                   View Tracking Info                                                                                                                                                                                                                                                                                                                                                                                   


                                                                       



                                                                                                                       

                       

                                                                                                   

                   

                                                                                                                                                                                               

                                                                                                                                                                                                                                               

                                                                                                                                                           

                       

                                                                                               

                   

                                                                                             

                                                                                                                                                                                                                                                                                                                                                                        Level-I:






Client


   Connect Server


                                                                                                                       
Member Register

Calling

New DB1

New DB2
    












































Level II:




PTN

Distributed Database

DB0,DB1,DB2

Track Mobile Users Location

Output in Google Map










































4.3 DATA DESIGN

Members Table:




DB2 Table:






DB1 Table:






Login:




         





CHAPTER 5


                               TESTING




Software testing is a critical element of quality assurance and represents ultimate reviews of specification, design, coding. It presently provides an interesting anomaly for the software. First a set of data is given as input and from output got we can find out whether the program is performing as expected. There are a series of steps. They are,



1. Unit Testing

2. Integration Testing





6.1 Unit Testing

Unit Testing focuses on the smallest unit of the software design.   It forms a series of tests that are done prior to integration of unit in the large system. In general, it is the testing of the individual module. It is done at the coding time. While being coded each module is tested and corrected accordingly.

 In our project, the initial architecture was developed and tested in the data being passed from the excel file to the SQL database. Similarly, for every module, unit testing is to be done to verify, whether the details from the SQL database are correspondingly displayed in the output form or not.







6.2 Integration Testing

          Data can be lost across an interface. Output of one module may affect the other. Sub function when combined may not produce desired function. It is a systematic technique for constructing the program structure while at the same time conducting test to uncover errors associated within the interface.



The objective is to take unit tested modules and build the program structure that has been dictated by design. All modules are combined in this testing. The entire program is tested as whole. Correction is difficult at this stage because the isolation of causes is complicated by the vast expense of the entire program. All the errors found in the system were corrected for next testing step.



          In this project, unit testing is to be done after developed each modules and in combined manner integration testing is to be done in combined manner to verify whether the system is properly working after the integration of the modules.

















                       

                       CHAPTER 6

                  IMPLEMENTATION



                      Implementation is the most crucial stage in achieving a successful system and giving the user’s confidence that the new system is workable and effective. Implementation of a modified application to replace an existing one. This type of conversation is relatively easy to handle, provide there are no major changes in the system. 

                     Each program is tested individually at the time of development using the data and has verified that this program linked together in the way specified in the programs specification, the computer system and its environment is tested to the satisfaction of the user. The system that has been developed is accepted and proved to be satisfactory for the user. And so the system is going to be implemented very soon. A simple operating procedure is included so that the user can understand the different functions clearly and quickly.

                  Initially as a first step the executable form of the application is to be created and loaded in the common server machine which is accessible to all the user and the server is to be connected to a network. The final stage is to document the entire system which provides components and the operating procedures of the system. 



6.1 SCOPE FOR FUTURE DEVELOPMENT



       Every application has its own merits and demerits. The project has covered almost all the requirements. Further requirements and improvements can easily be done since the coding is mainly structured or modular in nature. Changing the existing modules or adding new modules can append improvements. Further enhancements can be made to the application, so that the web site functions very attractive and useful manner than the present one.













CHAPTER 7

      CONCLUSION



7.1 Conclusion and Future Enhancement





    It is concluded that the application works well and satisfy the users. The application is tested very well and errors are properly debugged. The site is simultaneously accessed from more than one system. Simultaneous login from more than one place is tested.



The site works according to the restrictions provided in their respective browsers. Further enhancements can be made to the application, so that the web site functions very attractive and useful manner than the present one. The speed of the transactions become more enough now.



FUTURE WORK



            The objectives of this maintenance work are to make sure that the system gets into work all time without any bug. Provision must be for environmental changes which may affect the computer or software system. This is called the maintenance of the system. Nowadays there is the rapid change in the software world. Due to this rapid change, the system should be capable of adapting these changes. In our project the process can be added without affecting other parts of the system.



             Maintenance plays a vital role. The system liable to accept any modification after its implementation. This system has been designed to favour all new changes. Doing this will not affect the system’s performance or its accuracy.



                       In the project system testing is made as follows:



                The procedure level testing is made first. By giving improper inputs, the errors occurred are noted and eliminated. Then the web form level testing is made. For example storage of data to the table in the correct manner.



                In the form, the zero length username and password are given and checked. Also the duplicate username is given and checked. The client side validations are made.



             The dates are entered in wrong manner and checked. Wrong email-id is given and checked.



                         This is the final step in system life cycle. Here we implement the tested error-free system into real-life environment and make necessary changes, which runs in an online fashion. Here system maintenance is done every months or year based on company policies, and is checked for errors like runtime errors, long run errors and other maintenances like table verification and reports.         



                Implementation is the stage of the project when the theoretical design is turned out into a working system. Thus it can be considered to be the most critical stage in achieving a successful new system and in giving the user, confidence that the new system will work and be effective.



              The implementation stage involves careful planning, investigation of the existing system and it’s constraints on implementation, designing of methods to achieve changeover and evaluation of changeover methods.



              Implementation is the process of converting a new system design into operation. It is the phase that focuses on user training, site preparation and file conversion for installing a candidate system. The important factor that should be considered here is that the conversion should not disrupt the functioning of the organization.



               The application is implemented in the Internet Information Services 5.0 web server under the Windows 2000 Professional and accessed from various clients.















APPENDIX  1



















SAMPLE CODE





Client Connectivity



Public Class Database



    Public Function DBinsert(ByVal qry As String) As Integer



        Dim sqlconn As New SqlConnection("workstation id=PHOENIX_PR;packet size=4096;integrated security=SSPI;data source=PHOENIX_PR;persist security info=False;initial catalog=Tracking")

        Dim sqlcmd As New SqlCommand(qry, sqlconn)

        '         "insert into Members values('"& TextBox1.text   &"','"&TextBox2.text &"','"& TextBox3.text &"','"& TextBox4.text &"','"& TextBox5.text &"','"& TextBox6.text &"','"& TextBox7.text &"')"

        Try

            sqlconn.Open()

            sqlcmd.ExecuteNonQuery()

            sqlconn.Close()

        Catch ex As Exception

            MessageBox.Show(ex.ToString)

            Return 0

        End Try

        Return 1





    End Function







Server



Module global

    Public servername As String = Environment.MachineName.ToString

    Public serverport As Integer = 8000

    Public clientport As Integer = 9000

    Public clientname As String = ""

    Public alpha As Integer = 2

    Public prime As Integer = 17

    Public status As Boolean = False

    Public members() As String

    Public pbkey() As String

    Public count As Integer

    Public rprime() = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}

    Public rndprime As New Random(9)

    Public ralpha As New Random(5)

    Public connection As New SqlConnection("workstation id=.;packet size=4096;integrated security=SSPI;data source=.;persist security info=False;initial catalog=NS1")







    Public Function readdb(ByVal qry As String) As String()

        Dim str(100) As String

        Dim cmd As New SqlCommand(qry.ToString(), connection)

        If connection.State = ConnectionState.Closed Then

            connection.Open()

        End If

        Dim obj As SqlDataReader

        Dim i As Integer = 0

        Dim count As Integer = 0

        obj = cmd.ExecuteReader()

        While obj.Read

            i = i + 1

            str(i) = obj(0)

        End While

        str(0) = i

        If connection.State = ConnectionState.Open Then

            connection.Close()

        End If

        Return str

    End Function





    Public Function insert(ByVal query As String)

        Try

            connection.Open()

            Dim cmd As New SqlCommand(query, connection)

            cmd.ExecuteNonQuery()



            connection.Close()

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

    End Function

    Public Function delete(ByVal query As String)

        Try

            connection.Open()

            Dim cmd As New SqlCommand(query, connection)

            cmd.ExecuteNonQuery()

            connection.Close()

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

    End Function



    Public Function load(ByVal table As String) As DataTable

        Dim cmdtxt As String = "select * from  " & table & ""

        Dim cmd As New SqlCommand

        Dim da As New SqlDataAdapter

        Dim dt As New DataTable

        Try

            If connection.State = ConnectionState.Closed Then

                connection.Open()

            End If

            cmd.Connection = connection

            cmd.CommandType = CommandType.Text

            cmd.CommandText = cmdtxt

            da.SelectCommand = cmd

            dt.Rows.Clear()

            da.Fill(dt)

            'dt.Rows.Clear()

            If connection.State = ConnectionState.Open Then

                connection.Close()

            End If



        Catch e1 As Exception

            MsgBox(e1.ToString())

        End Try

        Return dt



    End Function

End Module





ClientServerConnectivity



Imports System.Runtime.Remoting

Imports System.Runtime.Remoting.Channels.Tcp

Imports System.Runtime.Remoting.Channels

Module Servertoclient

    Public client As ClientInterface.Clientinterface

    Private Channel2 As System.Runtime.Remoting.Channels.tcp.Tcpchannel 'New System.Runtime.Remoting.Channels.tcp.TcpChannel(0)

    Private serverProv As BinaryServerFormatterSinkProvider

    Private clientProv As BinaryClientFormatterSinkProvider

    Private props As IDictionary = New Hashtable



    Private Sub SetChannel()

        serverProv = New BinaryServerFormatterSinkProvider

        clientProv = New BinaryClientFormatterSinkProvider

        serverProv.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full

        props("port") = 0

        Channel2 = New TcpChannel(props, clientProv, serverProv)

    End Sub

    Public Sub Init()

        SetChannel()

        Try

            client = CType(Activator.GetObject(GetType(ClientInterface.Clientinterface), "tcp://" & clientname & ":9000/Client"), ClientInterface.Clientinterface)

            If client Is Nothing Then

            End If

        Catch ex As Exception

        End Try

    End Sub

    Public Sub dispose()

        ChannelServices.UnregisterChannel(Channel2)

        client = Nothing

        Channel2 = Nothing

        serverProv = Nothing

        clientProv = Nothing

    End Sub



End Module



Routing



Public Function routing(ByVal ptn() As String, ByVal addr() As String, ByVal count As Integer, ByVal coverage() As String) As String()



        Dim path(100) As String

        Dim i, j, k As Integer

        Dim tmp As String





        For i = 1 To count



            For j = i + 1 To count



                If coverage(i) <= coverage(j) Then



                    tmp = ptn(i)



                    ptn(i) = ptn(j)



                    ptn(j) = tmp



                    tmp = coverage(i)



                    coverage(i) = coverage(j)



                    coverage(j) = tmp



                    tmp = Shortestpath(ptn(i), ptn(j))



                End If



            Next



        Next



    End Function



    Function Shortestpath(ByVal x As Integer, ByVal y As Integer) As Integer



        If x > y Then

            Return x

        Else

            Return y

        End If



    End Function





Server MainPage



Imports System.Threading

Imports System.Data.SqlClient

Public Class Server

    Inherits System.Windows.Forms.Form

    Dim objServer As ServerInterface.ServerInterface

    Dim oldx, oldy, newx, newy As Integer

    Dim chindex As Integer

    Dim dset As New DataSet

    Dim MobNum As Long

    Dim dr As SqlDataReader

    Dim con As New SqlConnection("Server=.;database=NS1;uid=sa;pwd=;")

    Dim cmd As New SqlCommand

    Dim ClientName As String = ""

    Dim RunningNodeSerialNo As Integer

    Dim ServerStarted As Boolean = False

    Public Bmplist(1000) As Bitmap

    Dim callid As Integer = 101

    Dim locregid As Integer = 201

    Dim bmp01 As Bitmap

    Dim bmp12 As Bitmap

    Dim bmp03 As Bitmap

    Dim bmp04 As Bitmap

    Dim bmp05 As Bitmap

    Dim bmp06 As Bitmap

    Dim bmp07 As Bitmap

    Dim bmp08 As Bitmap

    Dim bmp09 As Bitmap

    Dim bmp10 As Bitmap

    Dim bmp11 As Bitmap



    Dim ptnpos(3, 100) As String

    Dim selectedtrack As Boolean = False

    Dim selectedptnindex As Integer

    Public path(100) As String

    Dim level1y As Integer = 100

    Dim level2y As Integer = 200

    Dim level3y As Integer = 300

    Dim level3x As Integer = 10

    Dim level1x As Integer = 10

    Dim level2x As Integer = 10

    Dim clientname1 As String

#Region " Windows Form Designer generated code "



    Public Sub New()

        MyBase.New()



        'This call is required by the Windows Form Designer.

        InitializeComponent()



        'Add any initialization after the InitializeComponent() call



    End Sub



    'Form overrides dispose to clean up the component list.

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

        If disposing Then

            If Not (components Is Nothing) Then

                components.Dispose()

            End If

        End If

        MyBase.Dispose(disposing)

    End Sub



    'Required by the Windows Form Designer

    Private components As System.ComponentModel.IContainer



    'NOTE: The following procedure is required by the Windows Form Designer

    'It can be modified using the Windows Form Designer. 

    'Do not modify it using the code editor.

    Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox

    Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox

    Friend WithEvents Label3 As System.Windows.Forms.Label

    Friend WithEvents ClientList As System.Windows.Forms.ListBox

    Friend WithEvents Button3 As System.Windows.Forms.Button

    Friend WithEvents Button1 As System.Windows.Forms.Button

    Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox

    Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox

    Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid

    Friend WithEvents Button5 As System.Windows.Forms.Button

    Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox

    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox

    Friend WithEvents Label4 As System.Windows.Forms.Label

    Friend WithEvents Button2 As System.Windows.Forms.Button

    Friend WithEvents TextBox2 As System.Windows.Forms.TextBox

    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox

    Friend WithEvents Label6 As System.Windows.Forms.Label

    Friend WithEvents Label7 As System.Windows.Forms.Label

    Friend WithEvents Timer1 As System.Windows.Forms.Timer

    Friend WithEvents SEARCH_PANEL As System.Windows.Forms.Panel

    Friend WithEvents L4 As System.Windows.Forms.Label

    Friend WithEvents L3 As System.Windows.Forms.Label

    Friend WithEvents L2 As System.Windows.Forms.Label

    Friend WithEvents Label20 As System.Windows.Forms.Label

    Friend WithEvents L1 As System.Windows.Forms.Label

    Friend WithEvents Button6 As System.Windows.Forms.Button

    Friend WithEvents Label12 As System.Windows.Forms.Label

    Friend WithEvents ListBox1 As System.Windows.Forms.ListBox

    Friend WithEvents ComboBox2 As System.Windows.Forms.ComboBox

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

        Me.components = New System.ComponentModel.Container

        Me.GroupBox1 = New System.Windows.Forms.GroupBox

        Me.TextBox2 = New System.Windows.Forms.TextBox

        Me.TextBox1 = New System.Windows.Forms.TextBox

        Me.Label6 = New System.Windows.Forms.Label

        Me.Label7 = New System.Windows.Forms.Label

        Me.Button2 = New System.Windows.Forms.Button

        Me.Label4 = New System.Windows.Forms.Label

        Me.GroupBox2 = New System.Windows.Forms.GroupBox

        Me.Label12 = New System.Windows.Forms.Label

        Me.ListBox1 = New System.Windows.Forms.ListBox

        Me.Label3 = New System.Windows.Forms.Label

        Me.ClientList = New System.Windows.Forms.ListBox

        Me.Button3 = New System.Windows.Forms.Button

        Me.Button1 = New System.Windows.Forms.Button

        Me.GroupBox3 = New System.Windows.Forms.GroupBox

        Me.ComboBox2 = New System.Windows.Forms.ComboBox

        Me.SEARCH_PANEL = New System.Windows.Forms.Panel

        Me.L4 = New System.Windows.Forms.Label

        Me.L3 = New System.Windows.Forms.Label

        Me.L2 = New System.Windows.Forms.Label

        Me.Label20 = New System.Windows.Forms.Label

        Me.L1 = New System.Windows.Forms.Label

        Me.Button6 = New System.Windows.Forms.Button

        Me.ComboBox1 = New System.Windows.Forms.ComboBox

        Me.DataGrid1 = New System.Windows.Forms.DataGrid

        Me.Button5 = New System.Windows.Forms.Button

        Me.GroupBox4 = New System.Windows.Forms.GroupBox

        Me.PictureBox1 = New System.Windows.Forms.PictureBox

        Me.Timer1 = New System.Windows.Forms.Timer(Me.components)

        Me.GroupBox1.SuspendLayout()

        Me.GroupBox2.SuspendLayout()

        Me.GroupBox3.SuspendLayout()

        Me.SEARCH_PANEL.SuspendLayout()

        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()

        Me.GroupBox4.SuspendLayout()

        Me.SuspendLayout()

        '

        'GroupBox1

        '

        Me.GroupBox1.BackColor = System.Drawing.Color.CornflowerBlue

        Me.GroupBox1.Controls.Add(Me.TextBox2)

        Me.GroupBox1.Controls.Add(Me.TextBox1)

        Me.GroupBox1.Controls.Add(Me.Label6)

        Me.GroupBox1.Controls.Add(Me.Label7)

        Me.GroupBox1.Controls.Add(Me.Button2)

        Me.GroupBox1.Controls.Add(Me.Label4)

        Me.GroupBox1.Controls.Add(Me.GroupBox2)

        Me.GroupBox1.Controls.Add(Me.Button3)

        Me.GroupBox1.Controls.Add(Me.Button1)

        Me.GroupBox1.Controls.Add(Me.GroupBox3)

        Me.GroupBox1.Controls.Add(Me.Button5)

        Me.GroupBox1.Location = New System.Drawing.Point(614, 0)

        Me.GroupBox1.Name = "GroupBox1"

        Me.GroupBox1.Size = New System.Drawing.Size(378, 504)

        Me.GroupBox1.TabIndex = 0

        Me.GroupBox1.TabStop = False

        '

        'TextBox2

        '

        Me.TextBox2.Location = New System.Drawing.Point(272, 16)

        Me.TextBox2.Name = "TextBox2"

        Me.TextBox2.TabIndex = 35

        Me.TextBox2.Text = ""

        '

        'TextBox1

        '

        Me.TextBox1.Location = New System.Drawing.Point(88, 16)

        Me.TextBox1.Name = "TextBox1"

        Me.TextBox1.TabIndex = 34

        Me.TextBox1.Text = ""

        '

        'Label6

        '

        Me.Label6.BackColor = System.Drawing.Color.Silver

        Me.Label6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Label6.Location = New System.Drawing.Point(192, 16)

        Me.Label6.Name = "Label6"

        Me.Label6.Size = New System.Drawing.Size(72, 23)

        Me.Label6.TabIndex = 33

        Me.Label6.Text = "IP Address"

        '

        'Label7

        '

        Me.Label7.BackColor = System.Drawing.Color.Silver

        Me.Label7.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Label7.Location = New System.Drawing.Point(8, 16)

        Me.Label7.Name = "Label7"

        Me.Label7.Size = New System.Drawing.Size(72, 23)

        Me.Label7.TabIndex = 32

        Me.Label7.Text = "HostName"

        '

        'Button2

        '

        Me.Button2.BackColor = System.Drawing.Color.DarkBlue

        Me.Button2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Button2.ForeColor = System.Drawing.SystemColors.ControlLightLight

        Me.Button2.Location = New System.Drawing.Point(272, 40)

        Me.Button2.Name = "Button2"

        Me.Button2.Size = New System.Drawing.Size(104, 32)

        Me.Button2.TabIndex = 31

        Me.Button2.Text = "Show Mobile Numbers"

        '

        'Label4

        '

        Me.Label4.BackColor = System.Drawing.Color.MidnightBlue

        Me.Label4.Font = New System.Drawing.Font("Comic Sans MS", 10.0!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Italic), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte), True)

        Me.Label4.ForeColor = System.Drawing.Color.Lime

        Me.Label4.Location = New System.Drawing.Point(8, 464)

        Me.Label4.Name = "Label4"

        Me.Label4.Size = New System.Drawing.Size(368, 40)

        Me.Label4.TabIndex = 30

        Me.Label4.Text = "Status"

        '

        'GroupBox2

        '

        Me.GroupBox2.BackColor = System.Drawing.SystemColors.InactiveCaption

        Me.GroupBox2.Controls.Add(Me.Label12)

        Me.GroupBox2.Controls.Add(Me.ListBox1)

        Me.GroupBox2.Controls.Add(Me.Label3)

        Me.GroupBox2.Controls.Add(Me.ClientList)

        Me.GroupBox2.Enabled = False

        Me.GroupBox2.Location = New System.Drawing.Point(8, 80)

        Me.GroupBox2.Name = "GroupBox2"

        Me.GroupBox2.Size = New System.Drawing.Size(352, 152)

        Me.GroupBox2.TabIndex = 29

        Me.GroupBox2.TabStop = False

        '

        'Label12

        '

        Me.Label12.BackColor = System.Drawing.Color.FromArgb(CType(128, Byte), CType(128, Byte), CType(255, Byte))

        Me.Label12.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Label12.ForeColor = System.Drawing.SystemColors.ActiveCaptionText

        Me.Label12.Location = New System.Drawing.Point(216, 24)

        Me.Label12.Name = "Label12"

        Me.Label12.Size = New System.Drawing.Size(120, 16)

        Me.Label12.TabIndex = 54

        Me.Label12.Text = " MOBILE NUMBERS"

        '

        'ListBox1

        '

        Me.ListBox1.Location = New System.Drawing.Point(216, 48)

        Me.ListBox1.Name = "ListBox1"

        Me.ListBox1.Size = New System.Drawing.Size(128, 95)

        Me.ListBox1.TabIndex = 53

        '

        'Label3

        '

        Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Label3.ForeColor = System.Drawing.Color.FromArgb(CType(192, Byte), CType(64, Byte), CType(0, Byte))

        Me.Label3.Location = New System.Drawing.Point(8, 16)

        Me.Label3.Name = "Label3"

        Me.Label3.Size = New System.Drawing.Size(184, 24)

        Me.Label3.TabIndex = 25

        Me.Label3.Text = "Running Client  Application"

        '

        'ClientList

        '

        Me.ClientList.Location = New System.Drawing.Point(8, 48)

        Me.ClientList.Name = "ClientList"

        Me.ClientList.Size = New System.Drawing.Size(120, 95)

        Me.ClientList.TabIndex = 22

        '

        'Button3

        '

        Me.Button3.BackColor = System.Drawing.Color.DarkBlue

        Me.Button3.Enabled = False

        Me.Button3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Button3.ForeColor = System.Drawing.SystemColors.ControlLightLight

        Me.Button3.Location = New System.Drawing.Point(96, 40)

        Me.Button3.Name = "Button3"

        Me.Button3.Size = New System.Drawing.Size(80, 32)

        Me.Button3.TabIndex = 28

        Me.Button3.Text = "STOP"

        '

        'Button1

        '

        Me.Button1.BackColor = System.Drawing.Color.DarkBlue

        Me.Button1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Button1.ForeColor = System.Drawing.SystemColors.ControlLightLight

        Me.Button1.Location = New System.Drawing.Point(8, 40)

        Me.Button1.Name = "Button1"

        Me.Button1.Size = New System.Drawing.Size(80, 32)

        Me.Button1.TabIndex = 27

        Me.Button1.Text = "START"

        '

        'GroupBox3

        '

        Me.GroupBox3.BackColor = System.Drawing.SystemColors.InactiveCaption

        Me.GroupBox3.Controls.Add(Me.ComboBox2)

        Me.GroupBox3.Controls.Add(Me.SEARCH_PANEL)

        Me.GroupBox3.Controls.Add(Me.ComboBox1)

        Me.GroupBox3.Controls.Add(Me.DataGrid1)

        Me.GroupBox3.Enabled = False

        Me.GroupBox3.Location = New System.Drawing.Point(8, 248)

        Me.GroupBox3.Name = "GroupBox3"

        Me.GroupBox3.Size = New System.Drawing.Size(360, 216)

        Me.GroupBox3.TabIndex = 26

        Me.GroupBox3.TabStop = False

        '

        'ComboBox2

        '

        Me.ComboBox2.Items.AddRange(New Object() {"North India", "India North East", "Chennai", "Central India", "NH45", "West India", "East India", "South India", "India North", "India Zonal"})

        Me.ComboBox2.Location = New System.Drawing.Point(216, 16)

        Me.ComboBox2.Name = "ComboBox2"

        Me.ComboBox2.Size = New System.Drawing.Size(121, 21)

        Me.ComboBox2.TabIndex = 58

        Me.ComboBox2.Text = "SELECT MAP"

        '

        'SEARCH_PANEL

        '

        Me.SEARCH_PANEL.BackColor = System.Drawing.Color.FromArgb(CType(192, Byte), CType(192, Byte), CType(255, Byte))

        Me.SEARCH_PANEL.Controls.Add(Me.L4)

        Me.SEARCH_PANEL.Controls.Add(Me.L3)

        Me.SEARCH_PANEL.Controls.Add(Me.L2)

        Me.SEARCH_PANEL.Controls.Add(Me.Label20)

        Me.SEARCH_PANEL.Controls.Add(Me.L1)

        Me.SEARCH_PANEL.Controls.Add(Me.Button6)

        Me.SEARCH_PANEL.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.SEARCH_PANEL.Location = New System.Drawing.Point(-208, 8)

        Me.SEARCH_PANEL.Name = "SEARCH_PANEL"

        Me.SEARCH_PANEL.Size = New System.Drawing.Size(336, 208)

        Me.SEARCH_PANEL.TabIndex = 57

        Me.SEARCH_PANEL.Visible = False

        '

        'L4

        '

        Me.L4.Location = New System.Drawing.Point(16, 144)

        Me.L4.Name = "L4"

        Me.L4.Size = New System.Drawing.Size(312, 24)

        Me.L4.TabIndex = 4

        '

        'L3

        '

        Me.L3.Location = New System.Drawing.Point(16, 112)

        Me.L3.Name = "L3"

        Me.L3.Size = New System.Drawing.Size(312, 24)

        Me.L3.TabIndex = 3

        '

        'L2

        '

        Me.L2.Location = New System.Drawing.Point(16, 80)

        Me.L2.Name = "L2"

        Me.L2.Size = New System.Drawing.Size(312, 24)

        Me.L2.TabIndex = 2

        '

        'Label20

        '

        Me.Label20.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Italic), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Label20.ForeColor = System.Drawing.Color.Brown

        Me.Label20.Location = New System.Drawing.Point(8, 8)

        Me.Label20.Name = "Label20"

        Me.Label20.Size = New System.Drawing.Size(320, 24)

        Me.Label20.TabIndex = 1

        Me.Label20.Text = "SEARCH RESULT"

        Me.Label20.TextAlign = System.Drawing.ContentAlignment.MiddleCenter

        '

        'L1

        '

        Me.L1.Location = New System.Drawing.Point(16, 48)

        Me.L1.Name = "L1"

        Me.L1.Size = New System.Drawing.Size(312, 24)

        Me.L1.TabIndex = 0

        '

        'Button6

        '

        Me.Button6.Location = New System.Drawing.Point(144, 176)

        Me.Button6.Name = "Button6"

        Me.Button6.Size = New System.Drawing.Size(72, 24)

        Me.Button6.TabIndex = 5

        Me.Button6.Text = "OK"

        '

        'ComboBox1

        '

        Me.ComboBox1.Items.AddRange(New Object() {"DB0", "CallandRec", "Tracking"})

        Me.ComboBox1.Location = New System.Drawing.Point(16, 16)

        Me.ComboBox1.Name = "ComboBox1"

        Me.ComboBox1.Size = New System.Drawing.Size(192, 21)

        Me.ComboBox1.TabIndex = 19

        '

        'DataGrid1

        '

        Me.DataGrid1.DataMember = ""

        Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText

        Me.DataGrid1.Location = New System.Drawing.Point(16, 40)

        Me.DataGrid1.Name = "DataGrid1"

        Me.DataGrid1.Size = New System.Drawing.Size(336, 176)

        Me.DataGrid1.TabIndex = 18

        '

        'Button5

        '

        Me.Button5.BackColor = System.Drawing.Color.DarkBlue

        Me.Button5.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.Button5.ForeColor = System.Drawing.SystemColors.ControlLightLight

        Me.Button5.Location = New System.Drawing.Point(184, 40)

        Me.Button5.Name = "Button5"

        Me.Button5.Size = New System.Drawing.Size(80, 32)

        Me.Button5.TabIndex = 25

        Me.Button5.Text = "SEARCH USER"

        '

        'GroupBox4

        '

        Me.GroupBox4.BackColor = System.Drawing.Color.CornflowerBlue

        Me.GroupBox4.Controls.Add(Me.PictureBox1)

        Me.GroupBox4.Location = New System.Drawing.Point(8, 0)

        Me.GroupBox4.Name = "GroupBox4"

        Me.GroupBox4.Size = New System.Drawing.Size(600, 504)

        Me.GroupBox4.TabIndex = 1

        Me.GroupBox4.TabStop = False

        Me.GroupBox4.Text = "Tree Structure"

        '

        'PictureBox1

        '

        Me.PictureBox1.BackColor = System.Drawing.Color.Black

        Me.PictureBox1.Location = New System.Drawing.Point(8, 16)

        Me.PictureBox1.Name = "PictureBox1"

        Me.PictureBox1.Size = New System.Drawing.Size(584, 480)

        Me.PictureBox1.TabIndex = 0

        Me.PictureBox1.TabStop = False

        '

        'Timer1

        '

        Me.Timer1.Enabled = True

        Me.Timer1.Interval = 10000

        '

        'Server

        '

        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

        Me.BackColor = System.Drawing.SystemColors.InactiveCaption

        Me.ClientSize = New System.Drawing.Size(1000, 517)

        Me.Controls.Add(Me.GroupBox4)

        Me.Controls.Add(Me.GroupBox1)

        Me.Name = "Server"

        Me.Text = "Server"

        Me.GroupBox1.ResumeLayout(False)

        Me.GroupBox2.ResumeLayout(False)

        Me.GroupBox3.ResumeLayout(False)

        Me.SEARCH_PANEL.ResumeLayout(False)

        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()

        Me.GroupBox4.ResumeLayout(False)

        Me.ResumeLayout(False)



    End Sub



#End Region

    Private Sub Server_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        cmd.Connection = con

        Dim NodeName As String = ""

        NodeName = System.Net.Dns.GetHostName()

        TextBox1.Text = NodeName

        Dim IPAddress As String = System.Net.Dns.GetHostByName(NodeName).AddressList(0).ToString

        TextBox2.Text = IPAddress

        con.Open()

        cmd.CommandText = "Select * From RunningNodes"

        ClientName = System.Net.Dns.GetHostName()

        cmd.CommandText = "Select count(Sno) from RunningNodes"

        RunningNodeSerialNo = cmd.ExecuteScalar + 1

        cmd.CommandText = "Insert into RunningNodes values (" & RunningNodeSerialNo & ",'" & ClientName & "','" & IPAddress & "','Server','Active')"

        cmd.ExecuteNonQuery()

        con.Close()

        bmp01 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp12 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp03 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp04 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp05 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp06 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp07 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp08 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp09 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp10 = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        bmp11 = New Bitmap(PictureBox1.Width, PictureBox1.Height)



        bmp01 = Bitmap.FromFile("map.bmp")



        bmp03 = Bitmap.FromFile("India North East.bmp")

        bmp04 = Bitmap.FromFile("chennai-map.bmp")

        bmp05 = Bitmap.FromFile("central-india.bmp")

        bmp06 = Bitmap.FromFile("NH45.gif")

        bmp07 = Bitmap.FromFile("west-india.bmp")

        bmp08 = Bitmap.FromFile("east-india-map.bmp")

        bmp09 = Bitmap.FromFile("south-india.bmp")

        bmp10 = Bitmap.FromFile("India North.bmp")

        bmp11 = Bitmap.FromFile("india_zonal_map.bmp")

        bmp12 = Bitmap.FromFile("north_india.bmp")



    End Sub



    Public layoutlist(100) As Image

    Function getindex(ByVal cn As String) As Int32

        ClientList.Items.IndexOf(cn)

    End Function

    <System.Runtime.Remoting.Messaging.OneWay()> _

    Public Sub stest(ByVal hname As String)

        ClientList.Items.Add(hname)

        Dim id As Int32 = ClientList.Items.Count + 100

        global.insert("insert into db0 values('" & id & "','" & hname & "' )")

        drawclient()

    End Sub

    <System.Runtime.Remoting.Messaging.OneWay()> _

    Public Sub callgenerate(ByVal mobnum As String, ByVal mobnum2 As String, ByVal hname As String)

        global.insert("insert into callandrec values('" & callid & "','" & mobnum & "','" & mobnum2 & "','" & DateTime.Today & "','Recieved' )")

        callid = callid + 1

    End Sub

   

    <System.Runtime.Remoting.Messaging.OneWay()> _

 Public Sub Tracking(ByVal ptnpos(,) As String, ByVal hname As String, ByVal count As Integer, ByVal int As Integer)

        Dim jee As Int32

        jee = int

        Dim i As Integer

        For i = 0 To count

            If (Me.ptnpos(1, i) <> ptnpos(1, i) Or Me.ptnpos(2, i) <> ptnpos(2, i)) Then



                If Me.ptnpos(1, i) = 0 And Me.ptnpos(2, i) = 0 Then

                    oldx = 0

                    oldy = 0

                    newx = 0

                    newy = 0



                Else



                    oldx = Me.ptnpos(1, i)

                    oldy = Me.ptnpos(2, i)

                    newx = ptnpos(1, i)

                    newy = ptnpos(2, i)





                End If

                chindex = i



            End If

        Next

        Me.ptnpos = ptnpos



        For i = 0 To count

            global.insert("insert into tracking values('" & ptnpos(0, i) & "','" & ptnpos(1, i) & "','" & ptnpos(2, i) & "')")

        Next



        drawimage(hname)



        Dim pos1 As String

        Dim pos2 As String

        con.Open()



        Dim cmd1 As New SqlCommand("Select Loc1,Loc2 from tracking where PtnName='" & jee & "'", con)

        dr = cmd1.ExecuteReader()



        While dr.Read

            pos1 = Convert.ToString(dr(0))

            pos2 = Convert.ToString(dr(1))

        End While





        If (pos1 > 0 And pos1 <= 110 And pos2 > 500) Then

            Label4.Text = "T-Nagar"

        ElseIf (pos1 > 0 And pos1 <= 110 And pos2 <= 500 And pos2 > 400) Then

            Label4.Text = "Saidapet"

        ElseIf (pos1 > 0 And pos1 <= 110 And pos2 <= 400 And pos2 > 300) Then

            Label4.Text = "Guindy"

        ElseIf (pos1 > 0 And pos1 <= 110 And pos2 <= 300 And pos2 > 200) Then

            Label4.Text = "Mount"

        ElseIf (pos1 > 0 And pos1 <= 110 And pos2 <= 200 And pos2 > 100) Then

            Label4.Text = "Pazavanthangal"

        ElseIf (pos1 > 0 And pos1 <= 110 And pos2 <= 100 And pos2 > 5) Then

            Label4.Text = "Meenambakkam"





        ElseIf (pos1 > 110 And pos1 <= 210 And pos2 > 500) Then

            Label4.Text = "Thirusulam"

        ElseIf (pos1 > 110 And pos1 <= 210 And pos2 <= 500 And pos2 > 400) Then

            Label4.Text = "Pallavaram"

        ElseIf (pos1 > 110 And pos1 <= 210 And pos2 <= 400 And pos2 > 300) Then

            Label4.Text = "Chrompet"

        ElseIf (pos1 > 110 And pos1 <= 210 And pos2 <= 300 And pos2 > 200) Then

            Label4.Text = "Sanitorium"

        ElseIf (pos1 > 110 And pos1 <= 210 And pos2 <= 200 And pos2 > 100) Then

            Label4.Text = "Tambaram"

        ElseIf (pos1 > 110 And pos1 <= 210 And pos2 <= 100 And pos2 > 5) Then

            Label4.Text = "Tambaram East"





        ElseIf (pos1 > 210 And pos1 <= 310 And pos2 > 500) Then

            Label4.Text = "Kodambakkam"

        ElseIf (pos1 > 210 And pos1 <= 310 And pos2 <= 500 And pos2 > 400) Then

            Label4.Text = "choolaimedu"

        ElseIf (pos1 > 210 And pos1 <= 310 And pos2 <= 400 And pos2 > 300) Then

            Label4.Text = "Nungambakkam"

        ElseIf (pos1 > 210 And pos1 <= 310 And pos2 <= 300 And pos2 > 200) Then

            Label4.Text = "Chetpet"

        ElseIf (pos1 > 210 And pos1 <= 310 And pos2 <= 200 And pos2 > 100) Then

            Label4.Text = "Egmore"

        ElseIf (pos1 > 210 And pos1 <= 310 And pos2 <= 100 And pos2 > 5) Then

            Label4.Text = "Pantheon Road"



        ElseIf (pos1 > 310 And pos1 <= 410 And pos2 > 500) Then

            Label4.Text = "Park"

        ElseIf (pos1 > 310 And pos1 <= 410 And pos2 <= 500 And pos2 > 400) Then

            Label4.Text = "Ribbon Building"

        ElseIf (pos1 > 310 And pos1 <= 410 And pos2 <= 400 And pos2 > 300) Then

            Label4.Text = "Fort"

        ElseIf (pos1 > 310 And pos1 <= 410 And pos2 <= 300 And pos2 > 200) Then

            Label4.Text = "Beach"

        ElseIf (pos1 > 310 And pos1 <= 410 And pos2 <= 200 And pos2 > 100) Then

            Label4.Text = "City Center"

        ElseIf (pos1 > 310 And pos1 <= 410 And pos2 <= 100 And pos2 > 5) Then

            Label4.Text = "Marina"





        ElseIf (pos1 > 410 And pos2 > 500) Then

            Label4.Text = "CMBT"

        ElseIf (pos1 > 410 And pos2 <= 500 And pos2 > 400) Then

            Label4.Text = "Anna Nagar"

        ElseIf (pos1 > 410 And pos2 <= 400 And pos2 > 300) Then

            Label4.Text = "Villivakam"

        ElseIf (pos1 > 410 And pos2 <= 300 And pos2 > 200) Then

            Label4.Text = "Padi"

        ElseIf (pos1 > 410 And pos2 <= 200 And pos2 > 100) Then

            Label4.Text = "Red Hills"

        ElseIf (pos1 > 410 And pos2 <= 100 And pos2 > 5) Then

            Label4.Text = "Vyasarpadi"

        End If

        Label4.Text = "PTN: " + Convert.ToString(jee) + "   Location: " + Label4.Text + "  Position: X=  " + pos1 + "  Position: Y = " + pos2



        dr.Close()

        con.Close()

    End Sub





    Private Sub Button1_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Try

            ServerModule.Serverstart()

            AddHandler ServerModule.server.EventTest, AddressOf stest

            AddHandler ServerModule.server.eventcallgenerate, AddressOf callgenerate

            AddHandler ServerModule.server.EventTracking, AddressOf Tracking

            ClientList.Items.Clear()

            Button1.Enabled = False

            Button3.Enabled = True

            GroupBox2.Enabled = True

            GroupBox3.Enabled = True

            GroupBox4.Enabled = True

            cleardb()

            MsgBox("SERVER IS STARTED")

        Catch ex As Exception

            Label4.Text = ex.ToString()

            MsgBox(ex.ToString())

        End Try

    End Sub

    Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        If MsgBox(" Server is stoped") = MsgBoxResult.OK Then

            GroupBox2.Enabled = False

            GroupBox3.Enabled = False

            GroupBox4.Enabled = False

            Button1.Enabled = True

            Button3.Enabled = False

        End If

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        Dim obj As New dlclass

        Dim dt As DataTable



        dt = global.load(ComboBox1.SelectedItem)

        DataGrid1.DataSource = dt



    End Sub

    Private Sub Button5_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        dset.Tables.Clear()

        MobNum = Val(InputBox("enter Mobile Number"))

        dset = SQL_QUERY("SELECT * FROM CLIENT WHERE PH_NO=" & MobNum, "SER")

        If dset.Tables("SER").Rows.Count > 0 Then

            Dim XX As String

            XX = dset.Tables("SER").Rows.Item(0).Item("PH_NO")

            L1.Text = "MOBILE NUMBER    :  " & XX

            XX = dset.Tables("SER").Rows.Item(0).Item("CLIENT_NAME")

            L2.Text = "HOLDER NAME        :  " & XX

            XX = dset.Tables("SER").Rows.Item(0).Item("PLACE")

            L3.Text = "COUNTRY                 :  " & XX

            XX = dset.Tables("SER").Rows.Item(0).Item("DB")

            L4.Text = "DATA BASE             :  " & XX

            SEARCH_PANEL.Location = New Point(12, 12)

            SEARCH_PANEL.Visible = True

        Else

            MsgBox("MOBILE NUMBER IS NOT FOUND")

            SEARCH_PANEL.Visible = False

        End If



    End Sub

   

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim dr As SqlDataReader

        Dim place As String

        ListBox1.Items.Clear()

        place = InputBox("Enter The Country Name")

        con.Open()

        cmd.CommandText = "select ph_no from client where place='" & place & "'"

        cmd.Connection = con

        dr = cmd.ExecuteReader

        If dr.Read Then

            While dr.Read

                ListBox1.Items.Add(dr(0))

            End While

            dr.Close()

            MsgBox(" Mobile Numbers In " & place)

        Else

            MsgBox("Country Not Found")

        End If

        con.Close()

    End Sub



    Function cleardb()

        global.delete("delete from members")

        global.delete("delete from db1")

        global.delete("delete from db2")

        global.delete("delete from db0")



        global.delete("delete from tracking")

        global.delete("delete from locreg")

        global.delete("delete from callandrec")

    End Function



 

    Public Function drawclient()

        PictureBox1.Image = bmp01



        Try

            Dim Client() As String = global.readdb("select HNAME from DB0")

            Dim bmp02 As Bitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height)

            Dim bmp1 As Bitmap = bmp02

            Dim graphics1 As Graphics = graphics1.FromImage(bmp1)

            Dim myPen = New Pen(Color.Green, 2)

            Dim fontFmly As New FontFamily("Tahoma")

            Dim green28 As New Font(fontFmly, 10)

            Dim w, h As Integer

            w = PictureBox1.Width

            h = PictureBox1.Height

            w = w / 2



            graphics1.DrawEllipse(myPen, w, 20, 70, 60)

            graphics1.DrawString("DB0", green28, New SolidBrush(Color.Red), w + 20, 10 + 30)



            Dim i As Int32

            Dim lx, ly As Int64



            lx = 20

            ly = h / 2







            For i = 1 To Convert.ToInt32(Client(0))

                graphics1.DrawEllipse(myPen, lx, ly, 30, 30)

                graphics1.DrawString(Client(i), green28, New SolidBrush(Color.Red), lx + 20, ly + 30)

                lx = lx + 100

            Next

            PictureBox1.Image = bmp1

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

    End Function

    Public Function drawimage(ByVal csname As String)

        PictureBox1.Image = bmp01

        Try

            Dim db1() As String = global.readdb("select DB1ADDR from DB1 where hname like '" & csname.ToString() & "'")

            Dim db2() As String = global.readdb("select DB2ADDR from DB2 where hname like '" & csname.ToString() & "'")

            Dim Member() As String = global.readdb("select ptn from Members where hname like '" & csname.ToString() & "'")

            Dim bmp1 As Bitmap = bmp01

            Dim graphics1 As Graphics = graphics1.FromImage(bmp1)

            Dim myPen = New Pen(Color.Green, 2)

            Dim myPen1 = New Pen(Color.Blue, 2)

            Dim fontFmly As New FontFamily("Tahoma")

            Dim green28 As New Font(fontFmly, 10)



            Dim w, h As Integer

            w = PictureBox1.Width

            h = PictureBox1.Height

            w = w / 2



            graphics1.DrawEllipse(myPen, w, 20, 70, 60)

            graphics1.DrawString("DB0", green28, New SolidBrush(Color.Red), w + 20, 10 + 30)



            Dim i As Int32

            Dim lx1, lx2, ly1, ly2, ly3, lx3 As Int64



            lx1 = level1x

            ly1 = level1y



            For i = 1 To Convert.ToInt32(db1(0))

                graphics1.DrawEllipse(myPen, lx1, ly1, 30, 30)

                graphics1.DrawString(db1(i), green28, New SolidBrush(Color.Red), lx1 + 20, ly1 + 30)

                lx1 = lx1 + 100

            Next



            lx2 = level2x

            ly2 = level2y





            For i = 1 To Convert.ToInt32(db2(0))

                graphics1.DrawEllipse(myPen, lx2, ly2, 30, 30)

                graphics1.DrawString(db2(i), green28, New SolidBrush(Color.Red), lx2 + 20, ly2 + 30)

                lx2 = lx2 + 100

            Next





            For i = 1 To Convert.ToInt32(Member(0))



                lx3 = Convert.ToInt32(ptnpos(1, i - 1))

                ly3 = Convert.ToInt32(ptnpos(2, i - 1))



                graphics1.DrawEllipse(myPen, lx3, ly3, 30, 30)

                graphics1.DrawString(ptnpos(0, i - 1), green28, New SolidBrush(Color.Red), lx3 + 20, ly3 + 30)



            Next

            graphics1.DrawLine(myPen1, oldx, oldy, newx, newy)

            PictureBox1.Image = bmp1

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

    End Function

    Public Function defaultPosition()

        Dim i As Integer

        Dim Member() As String = global.readdb("select ptn from Members where hname like '" & ClientList.SelectedItem.ToString() & "'")

        Dim lx As Integer = level3x

        Dim ly As Integer = level3y

        For i = 1 To Convert.ToInt32(Member(0))

            ptnpos(0, i - 1) = Member(i)

            ptnpos(1, i - 1) = lx.ToString

            ptnpos(2, i - 1) = ly.ToString

            lx = lx + 100

        Next

    End Function

    Private Sub ClientList_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClientList.SelectedIndexChanged

        defaultPosition()

        drawimage(ClientList.SelectedItem)

    End Sub

    Sub CheckCalls()



        If con.State <> ConnectionState.Open Then

            con.Open()

        End If

        cmd.CommandText = "Select * From ServerCheckStatus Where Status='TobeChecked'"

        Dim r As SqlDataReader = cmd.ExecuteReader

        'This loop is For checking numbers in other applications

        Dim clientnodename As String = ""

        Dim MobNum As String = ""

        Dim SerNo As Long



        Dim RunNodeSNo As Long

        If r.Read Then

            SerNo = r(0)

            clientnodename = r(1)

            MobNum = r(2)

            RunNodeSNo = r(4)

        End If

        r.Close()

        r = Nothing



        'Check the number in all client applications except source client

        If clientnodename <> "" Then

            Dim x As String

            For Each x In ClientList.Items



                cmd.CommandText = "Select count(*) From ClientCheckStatus"

                Dim sno As Long

                sno = cmd.ExecuteScalar + 1

                cmd.CommandText = "Insert into ClientCheckStatus values(" & sno & ",'" & x & "','" & MobNum & "','TobeChecked'," & RunNodeSNo & ")"

                cmd.ExecuteNonQuery()



            Next

            cmd.CommandText = "Update ServerCheckStatus Set Status='Checked' Where SNo=" & SerNo

            cmd.ExecuteNonQuery()

        End If

        con.Close()

    End Sub



    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If ServerStarted = False Then Exit Sub

        If con.State <> ConnectionState.Open Then

            con.Open()

        End If

        cmd.CommandText = "Select distinct(IPAddress) From RunningNodes Where NodeType='Client' and Status='Active'"

        Dim r As SqlDataReader = cmd.ExecuteReader

        ClientList.Items.Clear()

        While r.Read

            ClientList.Items.Add(r(0))

        End While

        r.Close()

        CheckCalls()

    End Sub



    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

        SEARCH_PANEL.Visible = False

    End Sub



    Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged



        If (ComboBox2.SelectedItem = "North India") Then

            PictureBox1.Image = bmp12

        End If

        If (ComboBox2.SelectedItem = "India North East") Then

            PictureBox1.Image = bmp03

        End If

        If (ComboBox2.SelectedItem = "Chennai") Then

            PictureBox1.Image = bmp04

        End If

        If (ComboBox2.SelectedItem = "Central India") Then

            PictureBox1.Image = bmp05

        End If

        If (ComboBox2.SelectedItem = "NH45") Then

            PictureBox1.Image = bmp06

        End If

        If (ComboBox2.SelectedItem = "West India") Then

            PictureBox1.Image = bmp07

        End If

        If (ComboBox2.SelectedItem = "East India") Then

            PictureBox1.Image = bmp08

        End If

        If (ComboBox2.SelectedItem = "South India") Then

            PictureBox1.Image = bmp09

        End If

        If (ComboBox2.SelectedItem = "India North") Then

            PictureBox1.Image = bmp10

        End If

        If (ComboBox2.SelectedItem = "India Zonal") Then

            PictureBox1.Image = bmp11

        End If

      

    End Sub

End Class



Public Class frmClient

    Inherits System.Windows.Forms.Form



#Region " Windows Form Designer generated code "



    Public Sub New()

        MyBase.New()



        'This call is required by the Windows Form Designer.

        InitializeComponent()



        'Add any initialization after the InitializeComponent() call



    End Sub



    'Form overrides dispose to clean up the component list.

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

        If disposing Then

            If Not (components Is Nothing) Then

                components.Dispose()

            End If

        End If

        MyBase.Dispose(disposing)

    End Sub



    'Required by the Windows Form Designer

    Private components As System.ComponentModel.IContainer



    'NOTE: The following procedure is required by the Windows Form Designer

    'It can be modified using the Windows Form Designer. 

    'Do not modify it using the code editor.

    Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu

    Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem4 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem5 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem6 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem7 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem8 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem9 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem10 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem11 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem12 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem13 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem14 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem15 As System.Windows.Forms.MenuItem

    Friend WithEvents MenuItem16 As System.Windows.Forms.MenuItem

    Friend WithEvents SqlConnection1 As System.Data.SqlClient.SqlConnection

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

        Me.MainMenu1 = New System.Windows.Forms.MainMenu

        Me.MenuItem1 = New System.Windows.Forms.MenuItem

        Me.MenuItem2 = New System.Windows.Forms.MenuItem

        Me.MenuItem3 = New System.Windows.Forms.MenuItem

        Me.MenuItem4 = New System.Windows.Forms.MenuItem

        Me.MenuItem5 = New System.Windows.Forms.MenuItem

        Me.MenuItem6 = New System.Windows.Forms.MenuItem

        Me.MenuItem7 = New System.Windows.Forms.MenuItem

        Me.MenuItem8 = New System.Windows.Forms.MenuItem

        Me.MenuItem11 = New System.Windows.Forms.MenuItem

        Me.MenuItem9 = New System.Windows.Forms.MenuItem

        Me.MenuItem13 = New System.Windows.Forms.MenuItem

        Me.MenuItem10 = New System.Windows.Forms.MenuItem

        Me.MenuItem12 = New System.Windows.Forms.MenuItem

        Me.MenuItem14 = New System.Windows.Forms.MenuItem

        Me.MenuItem15 = New System.Windows.Forms.MenuItem

        Me.MenuItem16 = New System.Windows.Forms.MenuItem

        Me.SqlConnection1 = New System.Data.SqlClient.SqlConnection

        '

        'MainMenu1

        '

        Me.MainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem1, Me.MenuItem6, Me.MenuItem8, Me.MenuItem9, Me.MenuItem10, Me.MenuItem14})

        '

        'MenuItem1

        '

        Me.MenuItem1.Index = 0

        Me.MenuItem1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem2, Me.MenuItem3, Me.MenuItem4, Me.MenuItem5})

        Me.MenuItem1.Text = "Client"

        '

        'MenuItem2

        '

        Me.MenuItem2.Index = 0

        Me.MenuItem2.Text = "Connect"

        '

        'MenuItem3

        '

        Me.MenuItem3.Index = 1

        Me.MenuItem3.Text = "Disconnnect"

        '

        'MenuItem4

        '

        Me.MenuItem4.Index = 2

        Me.MenuItem4.Text = "Settings"

        '

        'MenuItem5

        '

        Me.MenuItem5.Index = 3

        Me.MenuItem5.Text = "Exit"

        '

        'MenuItem6

        '

        Me.MenuItem6.Index = 1

        Me.MenuItem6.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem7})

        Me.MenuItem6.Text = "Members"

        '

        'MenuItem7

        '

        Me.MenuItem7.Index = 0

        Me.MenuItem7.Text = "New Members"

        '

        'MenuItem8

        '

        Me.MenuItem8.Index = 2

        Me.MenuItem8.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem11})

        Me.MenuItem8.Text = "Call"

        '

        'MenuItem11

        '

        Me.MenuItem11.Index = 0

        Me.MenuItem11.Text = "Outgoing"

        '

        'MenuItem9

        '

        Me.MenuItem9.Index = 3

        Me.MenuItem9.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem13})

        Me.MenuItem9.Text = "Registration"

        '

        'MenuItem13

        '

        Me.MenuItem13.Index = 0

        Me.MenuItem13.Text = "Location"

        '

        'MenuItem10

        '

        Me.MenuItem10.Index = 4

        Me.MenuItem10.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem12})

        Me.MenuItem10.Text = "Layout"

        '

        'MenuItem12

        '

        Me.MenuItem12.Index = 0

        Me.MenuItem12.Text = "View Architecture"

        '

        'MenuItem14

        '

        Me.MenuItem14.Index = 5

        Me.MenuItem14.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem15, Me.MenuItem16})

        Me.MenuItem14.Text = "DB"

        '

        'MenuItem15

        '

        Me.MenuItem15.Index = 0

        Me.MenuItem15.Text = "New DB1"

        '

        'MenuItem16

        '

        Me.MenuItem16.Index = 1

        Me.MenuItem16.Text = "New DB2"

        '

        'SqlConnection1

        '

        Me.SqlConnection1.ConnectionString = "workstation id=PHOENIX_PR;packet size=4096;integrated security=SSPI;data source=P" & _

        "HOENIX_PR;persist security info=False;initial catalog=Tracking"

        '

        'frmClient

        '

        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

        Me.ClientSize = New System.Drawing.Size(648, 398)

        Me.Menu = Me.MainMenu1

        Me.Name = "frmClient"

        Me.Text = "Client"

        Me.WindowState = System.Windows.Forms.FormWindowState.Maximized



    End Sub



#End Region



    Private Sub MenuItem7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem7.Click

        Dim Mem As New frmMembers

        Mem.Show()

    End Sub



    Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click

        Dim settings As New frmSettings

        settings.Show()

    End Sub



    Private Sub MenuItem15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem15.Click

        Dim DB1 As New NewDB1

        DB1.Show()

    End Sub



    Private Sub MenuItem16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem16.Click

        Dim db2 As New NewDB2

        db2.Show()

    End Sub



    Private Sub frmClient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load



    End Sub

End Class







                             APPENDIX 2



SCREEN SHOTS

Server Main Page:









Start Server:





Search User:





Search Results:





Show Mobile Number:









Client Main Page:





Client Registration:







Client Home Page:





New Mobile Register:







Location Update:







Call Setup:











Roaming:





Tracking: