|
Serial
Port
|
 |
 |
|
| Port |
| On
computer and telecommunication devices, a port
is generally a specific place for being physically connected to some
other device, usually with a socket and plug of some kind. Typically, a
personal computer is provided with one or more
Serial
ports and usually one
Parallel
port.
|
| Serial & Parallel Port |
| The serial port supports sequential, one bit-at a time transmission to
peripheral devices such as scanners and the parallel port supports multiple bit
at a time transmission to devices such as printers.
|
| Parallel Port
|
Serial port |
 |
 |
|
| Serial Port – The 9 Pin Connector |
 |
|
| Serial Port – The 9 Pin Connector
|
| Carrier Detect
|
Determines if the modem is connected to a working phone line.
|
| Receive
Data
|
Computer receives information sent from the modem.
|
| Transmit
Data
|
Computer sends information to the modem. |
| Data
Terminal Ready
|
Computer tells the modem that it is ready to talk.
|
| Signal
Ground
|
Pin is grounded.
|
| Data
Set Ready
|
Modem tells the computer that it is ready to talk.
|
| Request
To Send
|
Computer asks the modem if it can send information.
|
| Clear
To Send
|
Modem tells the computer that it can send information.
|
| Ring
Indicator
|
Once a call has been placed, computer acknowledges signal (sent
from modem) that a ring is detected.
|
|
| Serial Port In programming |
A
port is a "logical connection place" and specifically, using the Internet's
protocol
(TCP/IP)
the way a client program specifies a particular server program on a computer in
a network. Higher-level applications that use TCP/IP such as the Web protocol
Hypertext Transfer Protocol
have ports with pre-assigned numbers. These are known as "well-known ports"
that have been assigned by the
Internet Assigned Numbers Authority (IANA)
Other application processes are given
port numbers dynamically for each connection. When a service (server program)
initially is started, it is said to bind to its designated port number. As any
client program wants to use that server, it also must request to bind to the
designated port number.
|
|
| Serial Port In programming
|
An
interface on a computer to which you can connect a device.
A PC have various types of
ports. Internally, there are several ports for connecting disk drives, display
screens, and keyboards.
Externally, personal computers have
ports for connecting modems, printers, mouse, and other peripheral devices.
Almost all personal computers come
with a
RS-232C
port or
RS-422
port for connecting a modem or mouse and a parallel port for connecting a
printer.
|
|
|
|
| Establishing Communication |
Can
we talk/Listen through serial port?
The answer is simple
-
YES
|
|
| Communicating with Serial Port |
The
following steps are used for sending and receiving data through the serial port
of a PC.
Open the Communication Port that you decide to use.
Configure the selected Communication Port by setting the Baud rate, parity, no.
of data bits, etc.
Set time-out value for Communication.
Read/Write Data to the Port.
Close the Port |
 |
|
| Buffer |
A
Buffer
is a region of memory used to temporarily hold data while it is being moved
from one place to another.
Typically, the data is stored in a buffer as it is retrieved from an input
device (such as a keyboard) or just before it is sent to an output device (such
as a printer).
However, a buffer may be used when moving data between processes within a
computer.
Buffers can be implemented in either hardware or software, but the vast
majority of buffers are implemented in software. Buffers are typically used
when there is a difference between the rate at which data is received and the
rate at which it can be processed, or in the case that these rates are
variable, for example in a printer spooler.
|
|
| Baud Rate |
In
telecommunications and electronics, it is a measure of the
symbol rate;
that is the number of distinct symbol changes(signaling events)made to the
transmission medium per second in a digitally modulated signal
Object . BaudRate [ = value ]
Value - An Int32 representing the baud rate of the communications port. |
 |
|
| Baud Rate
|
110
300
600
1200
2400
4800
9600 (Default)
14400
19200
28800
38400
56000
57600
115200
128000
256000
Errors - Attempting to set BaudRate to an invalid value will
cause PortController to throw an "Invalid argument" exception. |
 |
|
| BreakSTATE Property |
X
Sets and returns the state of the break signal.
X
object. BreakState [ = value ]
X
Errors -
Setting this value while the port is closed causes Port Controller to throw a
"Port is closed" exception. You may read this value while the port is closed
but the returned value is meaningless as it does not represent the current or
initial break state of the port. |
Object
-
An object expression that evaluates to a Port Controller object.
Value
-
A Boolean value representing the state of the break signal.
Return Value
–
When All data in the transmit queue is cleared then we will get true bool value
Default
-
false

|
|
| BytesUsedRQ Property
|
X
Returns a long integer indicating how many bytes are in the
receive queue.
X
object.BytesUsedRQ
X
Errors -
None |
Object
-
An object expression that evaluates to a PortController object.
Return Value
-
A long integer representing the number of bytes in the receive queue.
Remarks
-
This property is read-only. |
|
| DataBits Property |
X
Sets and returns the data bits communications parameter.
X
object.DataBits [ = value ] |
Object
-
An object expression that evaluates to a PortController object.
Value
-
An Int16 representing the data bits in each frame.
Return Value
-
An Int16 representing the data bits in each frame.
Remarks
-
Valid data bits values are as follows:8
(Default)
7
6
5
Default
-
8
|
 |
 |
|
| DataBits Property |
Errors
- Attempting to set Data Bits to an invalid value will cause Port Controller to
throw an "Invalid argument" exception.
Attempting to set Data Bits to 6, 7, or 8 when Stop Bits is
1.5 is illegal and will cause Port Controller to throw a "Invalid stop bits /
data bits combination" exception if the port is open. If the port is closed, no
exception will be thrown.
Attempting to set Data Bits to 5 when Stop Bits is 2 is illegal and will cause
Port Controller to throw an "Invalid stop bits / data bits combination"
exception if the port is open. If the port is closed, no exception will be
thrown.
|
|
| Close Method
|
X
Closes the communications port .
X
object.Close()
X
Errors -
If the port is open and unable to be closed for any reason, the PortController
will throw an "Unexpected Error" exception |
Object
-
An object expression that evaluates to a PortController object.
Return Value
–
None
Remarks
-
If Close() is called on an unopened port, no exception is thrown and execution
will continue normally. This means that it is always safe to call Close(), even
when there is no guarantee that the port is open. This method is called
automatically when the object is destroyed.
|
 |
|
| IsOpen Property |
X
Returns the open state of the port.
X
object.IsOpen
X
Errors –
None |
Object
-
An object expression that evaluates to a PortController object.
Return Value
-
The Boolean value true if the port is open, false otherwise.
Remarks
-
This property is read-only.
Default
-
False |
 |
|
| Parity Property |
X
Sets and returns the parity communications
parameter.
X
object.Parity [ = value ]
X
Errors -
Attempting to set Parity to an invalid value will cause PortController to throw
an "Invalid argument" exception.
X
Valid parity values are as follows:
X
Parity_None (Default)
X
Parity_Odd
X
Parity_Even
X
Parity_Mark
X
Parity_Space
X
Default - Parity_None |
Object
-
An object expression that evaluates to a PortController object.
Value
-
A value of type ParityValue indicating the parity setting.
Return Value
- A value of type ParityValue representing the parity setting.
Remarks
-
Parity values are contained in the SciCom.PortController.ParityValue namespace
|
 |
|
| PortName Property |
X
Returns the name of the port ("COM1", "COM2", etc.).
X
object.PortName
X
Errors -
Reading the PortName property while the port is closed is not permitted and
will cause PortController to throw a "Port is closed" exception. |
Object
-
An object expression that evaluates to a PortController object.
Return Value
-
A String containing the name of the open port. |
 |
|
| ReadBufferSize Property |
X
Sets and returns the recommended size of the port's internal
input buffer, in bytes.
X
object.ReadBufferSize=
[ value ]
X
Errors -
If PortController is unable to set the receive buffer size, a "Failed trying to
set buffer size. This could be because the specified buffer size was too
large." exception is thrown.
X
Remarks -
The port receives the recommended buffer sizes, but is free to use any input
and output (I/O) buffering scheme, as long as it provides reasonable
performance and data is not lost due to overrun (except under extreme
circumstances).
|
Object
-
An object expression that evaluates to a PortController object.
Value
-
An integer indicating the recommended size of the port's internal input buffer,
in bytes.
Return Value
-
An integer representing the recommended size of the port's internal input
buffer, in bytes. |
 |
|
| StopBits Property |
X
Sets and returns the stop bits communications parameter.
X
object.StopBits [=value ]
X
Valid StopBits values are as follows:
X
StopBits_1 (Default)
X
StopBits_1_5 (1.5 stop bits)
X
StopBits_2
X
Default – StopBits_1
|
Object
-
An object expression that evaluates to a PortController object.
Value
-
A value of type StopBitsValue indicating the stop bits setting.
Return Value
-
A value of type StopBitsValue representing the stop bits setting.
Remarks
-
StopBits values are contained in the SciCom.PortController.StopBitsValue
namespace
|
 |
|
| StopBits Property |
X
Errors -
Attempting to set StopBits to an invalid value will cause the PortController to
throw an "Invalid argument" exception.
X
Attempting to set StopBits to 1.5 when DataBits is 6, 7, or 8
is illegal and will cause PortController to throw a "Invalid stop bits / data
bits combination" exception if the port is open. If the port is closed, no
exception will be thrown.
X
Attempting to set StopBits to 2 when DataBits is 5 is illegal
and will cause PortController to throw a "Invalid stop bits / data bits
combination" exception.
|
|
| GetPortNames Property |
X
Returns a collection of the names of COM ports in the system.
X
object.GetPortNames
X
Errors -
If PortController is unable to determine the COM ports on the system, an
"Unable to enumerate system ports." exception is thrown. It is likely, however,
you will still be able to open a port directly using the Open() method. |
Object
-
An object expression that evaluates to a PortController object.
Return Value
-
A String Collection containing the names of the serial ports in the system.
Remarks
-
This property returns the names of the ports that exist on the system,
including
ports that are in use by other processes (that is, each port that cannot
currently be opened). To get a list of all ports on the system that are
openable,
examine the AvailableSystemPorts property |
 |
|
| Open Method |
X
Opens a communications port.
X
object.Open(PortName [, BaudRate, DataBits,
Parity, StopBits]) |
Object
-
An object expression that evaluates to a PortController object.
PortName
-
A string containing the name of the communications port.
[optional] fields.
Return Value
–
None
Remarks
-
The BaudRate, DataBits, Parity, and StopBits paramters are optional. If not
provided, the default values will be used |
 |
|
| Open Method |
X
Errors -
After opening a port using Open(), any subsequent call to Open() will cause
PortController to throw a "Port is already open" exception.
X
An attempt to open a port that has already been opened by
another application or that does not exist will cause PortController to throw a
"Could not open port. This may be because the port does not exist or it is
already in use." exception.
|
|
| Read Method |
X
Errors -
Attempting to read from the receive queue when the port is closed will cause
PortController to throw a "Port is closed." exception.
X
If an error occurs during the read, "An error
occurred while trying to read data from the receive queue." exception is
thrown.
X
Attempting to set Timeout or
NumBytesToRead
to a negative value will cause
PortController to throw an "Invalid argument" exception |
|
| Read Method |
X
Remarks -
The NumBytesToRead and Timeout parameters are optional. When the NumBytesToRead
parameter is omitted (or set to 0) all data currently in the receive buffer is
read. When the Timeout parameter is omitted (or set to 0), the function waits
indefinitely for the operation to complete before returning.
X
This function is used most effectively in the handler functions for the
DataReceived
and EventCharReceived events.
X
If the operation does not complete in the time specified by
the Timeout parameter, the function returns a blank string.
|
|
| Write Method |
X
Writes data to the output queue.
X
object.Write(WriteBuffer
[, NumBytesToWrite,
Timeout])
X
Errors -
Attempting to write to the output queue when the port is closed will cause the
PortController to throw a "Port is closed." exception.
X
If an error occurs during the write, a "An error occurred
while trying to place data in output queue." exception is thrown.
|
|
 |
|
|