You are on page 1of 30

ORGANIZATIONAL

PROFILE

INSTRUMENTS RESEARCH & DEVELOPMENT


ESTABLISHMENT (IRDE)
DEHRADUN
A
Part Of

DEFENCE RESEARCH & DEVELOPMENT


ORGANIZATION (DRDO)

1.1

ABOUT IRDE
Brief Historical Background

The origin of INSTRUMENTS RESEARCH AND DEVELOPMENT


ESTABLISHMENT (IRDE) dates back to the establishment of Inspectorate of
Scientific Stores in 1939 at Rawalpindi (Now in Pakistan) with the responsibility
to inspect Telecommunication equipment used by the Army. This had the role of
Authority for Holding Seal Particulars (AHSP). This ASHP underwent many
organizational changes until it took a shape of Technical Development
Establishment (Instruments and Electronics) covering both R&D and AHSP
functions in fields of instruments during the subsequent years, shed some of its
R&D and AHSP responsibilities and came into existence in its present form in
February 1960.
Instruments Research & Development Establishment (IRDE), Dehradun is a
pioneering institution devoted to research, design, development and technology
transfer in the fields of sophisticated optical and electro-optical Instruments of vital
interest to the Defense. Situated on the foothills of the great Himalayas, it houses
some of countrys best talents.
Its primary role is to design, develop and provide guideline for indigenous
manufacturing of modern and sophisticated equipment with the sole objective of
modernizing all three wings of Defense Services.

1.2

AREAS OF WORK

Research, design and development in the fields of optical, electro-optical


and optronic instrumentation of surveillance, reconnaissance, piloting,
navigation guidance, target identification and acquisition, weapon aiming,
designation, ranging and counter measures under all weather conditions
during day and night.
Design and development of complete fire control systems and devices.
Applied and background research and development in applied optics.
Creation and maintenance of facilities for parametric measurement
performance and environment evaluators of optical and electro optical
components/systems.
Transfer of technology to public to private sectors, Consultancy of optical
and electro-optical instruments, components and materials.

1.3

PRESENT SCENARIO

This establishment is at present devoted towards the design and development of


equipment in the following areas.
1. Optical instrument
2. Night vision devices
3. Laser based instruments
4. Stabilization of systems
5. Thermal imaging system
6. Integrated fire control system
7. Fiber optics
8. Micro controller, Microprocessor and FPGA based systems.
I.R.D.E has also developed a large number of Opto-Medical instruments.
Specialized groups have been created in the organization that are devoted
towards Research and Development of instruments belonging to different areas
like Fiber optics, Imaging, Ranging, Fire control application and Tracking etc.
Apart from the usual R&D work, the organization has also under taken the
investigation of major defects existing instruments, suggest solutions and carry out
major modification if needed. The establishment has also been assisting the Armed
Forces in the evolution of foreign equipments.
At the international level it maintains liaison with bodies like Optical Society of
America, International Society for Optical Engineering, and Institute of Electrical
and Electronics Engineers (IEEE).

1.4 BALLISTIC

COMPUTER DIVISION

Ballistic Computer Division in I.R.D.E. is hub of all computer related activities


and it has huge infrastructure of software development from client-server
computing to Sun technology, Oracle technology and Microsoft technology to
develop general-purpose application software.
One of the important tasks of this division is development of Ballistic Algorithms.
This division has been named BC (Ballistic Computer) because ballistic solutions
have been provided by the division in fire control systems for projects. Different
projects related software development is also carried out for various systems as and
when required. Responsibility of maintenance and modernization of fire control of
MBT (Main Battle Tank) also lies with Ballistic Computer division.
Intranet and Internet facilities are provided and managed by this division.
Publishing information on intranet and maintaining websites are also offered to
IRDE users for creating efficient working environment.

Client-Server
In Computer science client-server is a software architecture model
consisting of two parts, client systems and server systems, both
communicating over a computer network or on the same computer. A
client-server application is a distributed system made up of both client
and server software. The client process always initiates a connection to
the server, while the server process always waits for requests from any
client. When both the client process and server process are running on
the same computer, this is called a single seat setup.
Another type of related software architecture is known as peer-to-peer,
because each host or application instance can simultaneously act as both
a client and a server (unlike centralized servers of the client-server
model) and because each has equivalent responsibilities and status. Peerto-peer architectures are often abbreviated using the acronym P2P.
The client-server relationship describes the relation between the client
and how it makes a service request to the server, and how the server can
accept these requests, process them, and return the requested information
to the client. The interaction between client and server is often described
using sequence diagrams. Sequence diagrams are standardized in the
Unified Modeling Language.
Both client-server and P2P architectures are in wide usage today.
The basic type of client-server architecture employs only two types of
hosts: clients and servers. This type of architecture is sometimes referred
to as two-tier. The two-tier architecture means that the client acts as one
tier and server process acts as the other tier.
7

The client-server architecture has become one of the basic models of


network computing. Many types of applications have been written using
the client-server model. Standard networked functions such as E-mail
exchange, web access and database access, are based on the client-server
model. For example, a web browser is a client program at the user
computer that may access information at any web server in the world.

A one server based network.

A peer-to-peer based network.

2.1

2.2

Clients Characteristics
Always initiates requests to servers.
Waits for replies.
Receives replies.
Usually connects to a small number of servers at one time.
Usually interacts directly with end-users using any user interface
such as graphical user interface.

Server Characteristics

Always wait for a request from one of the clients.


Serve clients requests then replies with requested data to the
clients.
A server may communicate with other servers in order to serve a
client request.

A server is a source which sends request to client to get


needed data of users.

Client And Server Communication


In general, a service is an abstraction of computer resources and a client
does not have to be concerned with how the server performs while
fulfilling the request and delivering the response. The client only has to
understand the response based on the well-known application protocol,
i.e. the content and the formatting of the data for the requested service.
Clients and servers exchange messages in a requestresponse messaging
pattern: The client sends a request, and the server returns a response.
This exchange of messages is an example of inter-process
communication. To communicate, the computers must have a common
language, and they must follow rules so that both the client and the
server know what to expect. The language and rules of communication
are defined in a communications protocol. All client-server protocols
operate in the application layer. The application-layer protocol defines
the basic patterns of the dialogue. To formalize the data exchange even
further, the server may implement an API (such as a web service). The
API is an abstraction layer for such resources as databases and custom
software. By restricting communication to a specific content format, it
facilitates parsing. By abstracting access, it facilitates cross-platform
data exchange.

A server may receive requests from many different clients in a very short
period of time. Because the computer can perform a limited number of
10

tasks at any moment, it relies on a scheduling system to prioritize


incoming requests from clients in order to accommodate them all in turn.
To prevent abuse and maximize uptime, the server's software limits how
a client can use the server's resources. Even so, a server is not immune
from abuse. A denial of service attack exploits a server's obligation to
process requests by bombarding it with requests incessantly. This
inhibits the server's ability to respond to legitimate requests.

11

4.1

TCP SERVER
INTRODUCTION

The Transmission Control Protocol (TCP) is a core protocol of the


Internet Protocol Suite. It originated in the initial network
implementation in which it complemented the Internet Protocol (IP).
Therefore, the entire suite is commonly referred to as TCP/IP. TCP
provides reliable, ordered, and error-checked delivery of a stream of
octets between applications running on hosts communicating over an IP
network. TCP is the protocol that major Internet applications such as the
World Wide Web, email, remote administration and file transfer rely on.
Applications that do not require reliable data stream service may use the
User Datagram Protocol (UDP), which provides a connectionless
datagram service that emphasizes reduced latency over reliability .

4.2

Network Function

The Transmission Control Protocol provides a communication service at


an intermediate level between an application program and the Internet
Protocol. It provides host-to-host connectivity at the Transport Layer of
the Internet model. An application does not need to know the particular
mechanisms for sending data via a link to another host, such as the
required packet fragmentation on the transmission medium. At the
transport layer, the protocol handles all handshaking and transmission
12

details and presents an abstraction of the network connection to the


application.

At the lower levels of the protocol stack, due to network congestion,


traffic load balancing, or other unpredictable network behavior, IP
packets may be lost, duplicated, or delivered out of order. TCP detects
these problems, requests retransmission of lost data, rearranges out-oforder data, and even helps minimize network congestion to reduce the
occurrence of the other problems. If the data still remains undelivered,
its source is notified of this failure. Once the TCP receiver has
reassembled the sequence of octets originally transmitted, it passes them
to the receiving application. Thus, TCP abstracts the application's
communication from the underlying networking details.

TCP is utilized extensively by many popular applications carried on the


Internet, including the World Wide Web (WWW), E-mail, File Transfer
Protocol, Secure Shell, peer-to-peer file sharing, and many streaming
media applications.

TCP is optimized for accurate delivery rather than timely delivery, and
therefore, TCP sometimes incurs relatively long delays (on the order of
seconds) while waiting for out-of-order messages or retransmissions of
lost messages. It is not particularly suitable for real-time applications
such as Voice over IP. For such applications, protocols like the Real-time
Transport Protocol (RTP) running over the User Datagram Protocol
(UDP) are usually recommended instead.

13

TCP is a reliable stream delivery service that guarantees that all bytes
received will be identical with bytes sent and in the correct order. Since
packet transfer over many networks is not reliable, a technique known as
positive acknowledgment with retransmission is used to guarantee
reliability of packet transfers. This fundamental technique requires the
receiver to respond with an acknowledgment message as it receives the
data. The sender keeps a record of each packet it sends. The sender also
maintains a timer from when the packet was sent, and retransmits a
packet if the timer expires before the message has been acknowledged.
The timer is needed in case a packet gets lost or corrupted.

While IP handles actual delivery of the data, TCP keeps track of the
individual units of data transmission, called segments, that a message is
divided into for efficient routing through the network. For example,
when an HTML file is sent from a web server, the TCP software layer of
that server divides the sequence of octets of the file into segments and
forwards them individually to the IP software layer (Internet Layer). The
Internet Layer encapsulates each TCP segment into an IP packet by
adding a header that includes (among other data) the destination IP
address. When the client program on the destination computer receives
them, the TCP layer (Transport Layer) reassembles the individual
segments and ensures they are correctly ordered and error free as it
streams them to an application.

14

TCP communication

Basic Flowchart Of Tcp Communication

15

INTRODUCTION OF
PROJECT
5.1

ABSTRACT

The Project Client Server Chat Using QT deals with communication between
the Server and multiple Clients using the Telnet. This software focuses on sending
message from the client to the server, where multiple client can communicate with
the server.This software can also be used for chatting between server and a
client.
Since,communication has been the field of exploring as much as possible. Thus
establishing communication and sending and receiving data through Qt has been
the interesting work in the project.

16

5.2

OBJECTIVE

The objective of this project named Client Server Chat Using QT is to


establish communication between server and client using Qt software. Now a day,
chatting is very common in our daily life and useful and fast source of
communication too.Applications of chatting includes sending of text
messages,video,pictures,files such as pdf files,doc files etc.

Thus, the main idea behind the project is to understand the most used feature of
communication between the server and multiple clients using the Tcp server.

17

5.3

QT Software

Qt is a cross-platform application framework that is widely used for


developing application software that can be run on various software and
hardware platforms with little or no change in the underlying codebase,
while having the power and speed of native applications. Qt is currently
being developed both by the Qt Company, a subsidiary of Digia, and the
Qt Project under open-source governance, involving individual
developers and firms working to advance Qt. Digia owns the Qt
trademark and copyright. Qt is available with both commercial and open
source GPL v3, LGPL v3 and LGPL v2 licenses.

Purposes and Abilities


Qt is used mainly for developing application software with graphical
user interfaces (GUIs); however, programs without a GUI can be
developed, such as command-line tools and consoles for servers. An
example of a non-GUI program using Qt is the Cutelyst web
framework.GUI programs created with Qt can have a native-looking
interface, in which cases Qt is classified as a widget toolkit.

Qt uses standard C++ with extensions including signals and slots that
simplifies handling of events, and this helps in development of both GUI
and server applications which receive their own set of event information
and should process them accordingly. Qt supports many compilers,
including the GCC C++ compiler and the Visual Studio suite. Qt also
provides Qt Quick, that includes a declarative scripting language called
QML that allows using JavaScript to provide the logic. With Qt Quick,
18

rapid application development for mobile devices became possible,


although logic can be written with native code as well to achieve the best
possible performance. Qt can be used in several other programming
languages via language bindings. It runs on the major desktop platforms
and some of the mobile platforms. It has extensive internationalization
support. Non-GUI features include SQL database access, XML parsing,
JSON parsing, thread management and network support.

19

Software Architecture
Qt, when it was first released, relied on a few key concepts:
Complete abstraction of the GUI When first released, Qt used its
own paint engine and controls, emulating the look of the different
platforms it runs on when it drew its widgets. This made the porting
work easier because very few classes in Qt depended really on the target
platform; however, this occasionally led to slight discrepancies where
that emulation was imperfect. Recent versions of Qt use the native style
APIs of the different platforms, on platforms that have a native widget
set, to query metrics and draw most controls, and do not suffer from
such issues as much.On some platforms (such as MeeGo and KDE) Qt is
the native API. Some other portable graphical toolkits have made
different design decisions; for example, wxWidgets uses the toolkits of
the target platform for its implementations.
Signals and slots a language construct introduced in Qt for
communication between objects which makes it easy to implement the
Observer pattern while avoiding boilerplate code. The concept is that
GUI widgets can send signals containing event information which can
be received by other controls using special functions known as slots.
Metaobject compiler The metaobject compiler, termed moc, is a tool
that is run on the sources of a Qt program. It interprets certain macros
from the C++ code as annotations, and uses them to generate added C++
code with Meta Information about the classes used in the program. This
Meta information is used by Qt to provide programming features not
available natively in C++: signals and slots, introspection and
asynchronous function calls

20

Releases
Qt 5
Qt 5 was officially released on 19 December 2012. This new version
marked a major change in the platform, with hardware-accelerated
graphics, QML and JavaScript playing a major role. The traditional C+
+-only QWidgets continued to be supported, but did not benefit from the
performance improvements available through the new architecture. Qt5
brings significant improvements to the speed and ease of developing
user interfaces.
Framework development of Qt 5 moved to open governance, taking
place at qt-project.org. It is now possible for developers outside Digia to
submit patches and have them reviewed

GUI designing in Qt Creator using embedded Qt Designer

21

HARDWARE
&SOFTWAREREQUIREMENTS
4.4

SOFTWARE REQUIREMENTS:
QT Creator(3.4.1)open source
OS-WINDOWS XP/VISTA/7

HARDWARE REQUIREMENTS:
800MHz Intel Pentium III
1 GB of RAM

22

4.5

MODULE DESCRIPTION

Detailed description of the modules:


The QTcpServer class provides a TCP-based server.

This class makes it possible to accept incoming TCP connections. We


can specify the port or have QTcpServer pick one automatically. We can
listen on a specific address or on all the machine's addresses.

listen() : to have the server listen for incoming connections.

newConnection() : the signal is then emitted each time a client


connects to the server.

Call nextPendingConnection() : to accept the pending connection as a


connected QTcpSocket. The function returns a pointer to a QTcpSocket
in QAbstractSocket::ConnectedState that we have used for
communicating with the client.

23

If an error occurs, serverError() returns the type of error, and


errorString() can be called to get a human readable description of what
happened.

When listening for connections, the address and port on which the server
is listening are available as serverAddress() and serverPort().

Calling close() makes QTcpServer stop listening for incoming


connections. Although QTcpServer is mostly designed for use with an
event loop, it's possible to use it without one. In that case, you must use
waitForNewConnection() :which blocks until either a connection is
available or a timeout expires.
Qt::DirectConnection is used for the readyRead connection. This is
because it's multithreaded, otherwise we may have some operation
issues. This makes the slot to be invoked immediately, when the signal is
emitted.
enum Qt::ConnectionType:
This enum describes the types of connection that can be used between
signals and slots. In particular, it determines whether a particular signal
is delivered to a slot immediately or queued for delivery at a later time.

24

4.6

SCREEN SHOTS

First, we need to add network module to our project file,


MultiThreadedQTcpServer.pro:
QT

+= core

QT

+= network

QT

-= gui

TARGET = MultiThreadedQTcpServer
CONFIG

+= console

CONFIG

-= app_bundle

TEMPLATE = app
SOURCES += main.cpp

Then, we want to create a new class called MyServer.

25

Another class called MyThread should be created as well.

26

Run the code:


Then we get the result as in the picture below saying the server is
listening:

Then, open up another cmd window, and send a connection request via
telnet:

27

The picture below shows the two responses from two different clients'
connection requests:

28

4.6 FUTURE SCOPE

The software uses the Qt console application,in future it can be mad using
the GUI process.
Since,chatting is most common these days in sharing pictures,files,video
etc.In future this software can be used to transfer pictures,files,video etc.

29

REFERENCES

[1]Section 2.1 https://en.wikipedia.org/wiki/tcpserver


[1] Section 2.2,2.3,2.4https://www.silabs.com
[2]Section 3.1https://en.wikipedia.org
[2]Section 3.2www.trimble.com/tcp_tutorials/whatgps.aspx
[2]Section 3.3www.theconversation.com/explainer-what-is-tcp-12248

**********

30

You might also like