How can you Earn 30 Dollar Daily ? Click to see the Earning Ways.
Login(Email) Password Forgot Password
Home ASP.net System Info C# Books Java Script Visual C++(MFC) C/C++ Win API Java Contact Us
Browse Category
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.
 
 
Write Method
X Errors Attempting to set NumBytesToWrite to a negative value will cause the PortController to throw an "Invalid argument" exception.

X If there are greater than 10000 write operations queued for processing (occurs when Timeout is omitted or 0), a "Maximum outstanding write operations limit has been reached" exception is thrown and the write operation is ignored. This error will never occur when requiring a write operation to complete before control is returned by specifying a non-zero value for Timeout.
Write Method
X Object - A n object expression that evaluates to a PortController object.

X WriteBuffer - A String containing the data to be written to the output queue.

X Return Value - An Int32 indicating the number of bytes written to the output queue. If Timeout is 0 or omitted, the return value will be 0 if either no data was written, or no data has yet been written.
Write Method
X Remarks - The NumBytesToWrite and Timeout parameters are optional. When theNumBytesToWrit parameter is omitted (or set to 0) the entire specified string is written to the output queue. When the Timeout parameter is omitted (or set to 0), the function does not wait for the operation to complete before returning.

X If Timeout is a negative value, this function will block until the write operation completes. This will likely lock up the application and its UI if the device receiving the data has indicated it is not ready to receive data and handshaking is enabled.