SerialPort Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili sumber daya port serial.
public ref class SerialPort : System::ComponentModel::Component
public class SerialPort : System.ComponentModel.Component
type SerialPort = class
inherit Component
Public Class SerialPort
Inherits Component
- Warisan
Contoh
Contoh kode berikut menunjukkan penggunaan SerialPort kelas untuk memungkinkan dua pengguna mengobrol dari dua komputer terpisah yang terhubung oleh kabel modem null. Dalam contoh ini, pengguna diminta untuk pengaturan port dan nama pengguna sebelum mengobrol. Kedua komputer harus menjalankan program untuk mencapai fungsionalitas penuh dari contoh ini.
#using <System.dll>
using namespace System;
using namespace System::IO::Ports;
using namespace System::Threading;
public ref class PortChat
{
private:
static bool _continue;
static SerialPort^ _serialPort;
public:
static void Main()
{
String^ name;
String^ message;
StringComparer^ stringComparer = StringComparer::OrdinalIgnoreCase;
Thread^ readThread = gcnew Thread(gcnew ThreadStart(PortChat::Read));
// Create a new SerialPort object with default settings.
_serialPort = gcnew SerialPort();
// Allow the user to set the appropriate properties.
_serialPort->PortName = SetPortName(_serialPort->PortName);
_serialPort->BaudRate = SetPortBaudRate(_serialPort->BaudRate);
_serialPort->Parity = SetPortParity(_serialPort->Parity);
_serialPort->DataBits = SetPortDataBits(_serialPort->DataBits);
_serialPort->StopBits = SetPortStopBits(_serialPort->StopBits);
_serialPort->Handshake = SetPortHandshake(_serialPort->Handshake);
// Set the read/write timeouts
_serialPort->ReadTimeout = 500;
_serialPort->WriteTimeout = 500;
_serialPort->Open();
_continue = true;
readThread->Start();
Console::Write("Name: ");
name = Console::ReadLine();
Console::WriteLine("Type QUIT to exit");
while (_continue)
{
message = Console::ReadLine();
if (stringComparer->Equals("quit", message))
{
_continue = false;
}
else
{
_serialPort->WriteLine(
String::Format("<{0}>: {1}", name, message) );
}
}
readThread->Join();
_serialPort->Close();
}
static void Read()
{
while (_continue)
{
try
{
String^ message = _serialPort->ReadLine();
Console::WriteLine(message);
}
catch (TimeoutException ^) { }
}
}
static String^ SetPortName(String^ defaultPortName)
{
String^ portName;
Console::WriteLine("Available Ports:");
for each (String^ s in SerialPort::GetPortNames())
{
Console::WriteLine(" {0}", s);
}
Console::Write("Enter COM port value (Default: {0}): ", defaultPortName);
portName = Console::ReadLine();
if (portName == "")
{
portName = defaultPortName;
}
return portName;
}
static Int32 SetPortBaudRate(Int32 defaultPortBaudRate)
{
String^ baudRate;
Console::Write("Baud Rate(default:{0}): ", defaultPortBaudRate);
baudRate = Console::ReadLine();
if (baudRate == "")
{
baudRate = defaultPortBaudRate.ToString();
}
return Int32::Parse(baudRate);
}
static Parity SetPortParity(Parity defaultPortParity)
{
String^ parity;
Console::WriteLine("Available Parity options:");
for each (String^ s in Enum::GetNames(Parity::typeid))
{
Console::WriteLine(" {0}", s);
}
Console::Write("Enter Parity value (Default: {0}):", defaultPortParity.ToString());
parity = Console::ReadLine();
if (parity == "")
{
parity = defaultPortParity.ToString();
}
return (Parity)Enum::Parse(Parity::typeid, parity);
}
static Int32 SetPortDataBits(Int32 defaultPortDataBits)
{
String^ dataBits;
Console::Write("Enter DataBits value (Default: {0}): ", defaultPortDataBits);
dataBits = Console::ReadLine();
if (dataBits == "")
{
dataBits = defaultPortDataBits.ToString();
}
return Int32::Parse(dataBits);
}
static StopBits SetPortStopBits(StopBits defaultPortStopBits)
{
String^ stopBits;
Console::WriteLine("Available Stop Bits options:");
for each (String^ s in Enum::GetNames(StopBits::typeid))
{
Console::WriteLine(" {0}", s);
}
Console::Write("Enter StopBits value (None is not supported and \n" +
"raises an ArgumentOutOfRangeException. \n (Default: {0}):", defaultPortStopBits.ToString());
stopBits = Console::ReadLine();
if (stopBits == "")
{
stopBits = defaultPortStopBits.ToString();
}
return (StopBits)Enum::Parse(StopBits::typeid, stopBits);
}
static Handshake SetPortHandshake(Handshake defaultPortHandshake)
{
String^ handshake;
Console::WriteLine("Available Handshake options:");
for each (String^ s in Enum::GetNames(Handshake::typeid))
{
Console::WriteLine(" {0}", s);
}
Console::Write("Enter Handshake value (Default: {0}):", defaultPortHandshake.ToString());
handshake = Console::ReadLine();
if (handshake == "")
{
handshake = defaultPortHandshake.ToString();
}
return (Handshake)Enum::Parse(Handshake::typeid, handshake);
}
};
int main()
{
PortChat::Main();
}
// Use this code inside a project created with the Visual C# > Windows Desktop > Console Application template.
// Replace the code in Program.cs with this code.
using System;
using System.IO.Ports;
using System.Threading;
public class PortChat
{
static bool _continue;
static SerialPort _serialPort;
public static void Main()
{
string name;
string message;
StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
Thread readThread = new Thread(Read);
// Create a new SerialPort object with default settings.
_serialPort = new SerialPort();
// Allow the user to set the appropriate properties.
_serialPort.PortName = SetPortName(_serialPort.PortName);
_serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
_serialPort.Parity = SetPortParity(_serialPort.Parity);
_serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
_serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
_serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);
// Set the read/write timeouts
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
_continue = true;
readThread.Start();
Console.Write("Name: ");
name = Console.ReadLine();
Console.WriteLine("Type QUIT to exit");
while (_continue)
{
message = Console.ReadLine();
if (stringComparer.Equals("quit", message))
{
_continue = false;
}
else
{
_serialPort.WriteLine(
String.Format("<{0}>: {1}", name, message));
}
}
readThread.Join();
_serialPort.Close();
}
public static void Read()
{
while (_continue)
{
try
{
string message = _serialPort.ReadLine();
Console.WriteLine(message);
}
catch (TimeoutException) { }
}
}
// Display Port values and prompt user to enter a port.
public static string SetPortName(string defaultPortName)
{
string portName;
Console.WriteLine("Available Ports:");
foreach (string s in SerialPort.GetPortNames())
{
Console.WriteLine(" {0}", s);
}
Console.Write("Enter COM port value (Default: {0}): ", defaultPortName);
portName = Console.ReadLine();
if (portName == "" || !(portName.ToLower()).StartsWith("com"))
{
portName = defaultPortName;
}
return portName;
}
// Display BaudRate values and prompt user to enter a value.
public static int SetPortBaudRate(int defaultPortBaudRate)
{
string baudRate;
Console.Write("Baud Rate(default:{0}): ", defaultPortBaudRate);
baudRate = Console.ReadLine();
if (baudRate == "")
{
baudRate = defaultPortBaudRate.ToString();
}
return int.Parse(baudRate);
}
// Display PortParity values and prompt user to enter a value.
public static Parity SetPortParity(Parity defaultPortParity)
{
string parity;
Console.WriteLine("Available Parity options:");
foreach (string s in Enum.GetNames(typeof(Parity)))
{
Console.WriteLine(" {0}", s);
}
Console.Write("Enter Parity value (Default: {0}):", defaultPortParity.ToString(), true);
parity = Console.ReadLine();
if (parity == "")
{
parity = defaultPortParity.ToString();
}
return (Parity)Enum.Parse(typeof(Parity), parity, true);
}
// Display DataBits values and prompt user to enter a value.
public static int SetPortDataBits(int defaultPortDataBits)
{
string dataBits;
Console.Write("Enter DataBits value (Default: {0}): ", defaultPortDataBits);
dataBits = Console.ReadLine();
if (dataBits == "")
{
dataBits = defaultPortDataBits.ToString();
}
return int.Parse(dataBits.ToUpperInvariant());
}
// Display StopBits values and prompt user to enter a value.
public static StopBits SetPortStopBits(StopBits defaultPortStopBits)
{
string stopBits;
Console.WriteLine("Available StopBits options:");
foreach (string s in Enum.GetNames(typeof(StopBits)))
{
Console.WriteLine(" {0}", s);
}
Console.Write("Enter StopBits value (None is not supported and \n" +
"raises an ArgumentOutOfRangeException. \n (Default: {0}):", defaultPortStopBits.ToString());
stopBits = Console.ReadLine();
if (stopBits == "" )
{
stopBits = defaultPortStopBits.ToString();
}
return (StopBits)Enum.Parse(typeof(StopBits), stopBits, true);
}
public static Handshake SetPortHandshake(Handshake defaultPortHandshake)
{
string handshake;
Console.WriteLine("Available Handshake options:");
foreach (string s in Enum.GetNames(typeof(Handshake)))
{
Console.WriteLine(" {0}", s);
}
Console.Write("Enter Handshake value (Default: {0}):", defaultPortHandshake.ToString());
handshake = Console.ReadLine();
if (handshake == "")
{
handshake = defaultPortHandshake.ToString();
}
return (Handshake)Enum.Parse(typeof(Handshake), handshake, true);
}
}
' Use this code inside a project created with the Visual Basic > Windows Desktop > Console Application template.
' Replace the default code in Module1.vb with this code. Then right click the project in Solution Explorer,
' select Properties, and set the Startup Object to PortChat.
Imports System.IO.Ports
Imports System.Threading
Public Class PortChat
Shared _continue As Boolean
Shared _serialPort As SerialPort
Public Shared Sub Main()
Dim name As String
Dim message As String
Dim stringComparer__1 As StringComparer = StringComparer.OrdinalIgnoreCase
Dim readThread As New Thread(AddressOf Read)
' Create a new SerialPort object with default settings.
_serialPort = New SerialPort()
' Allow the user to set the appropriate properties.
_serialPort.PortName = SetPortName(_serialPort.PortName)
_serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate)
_serialPort.Parity = SetPortParity(_serialPort.Parity)
_serialPort.DataBits = SetPortDataBits(_serialPort.DataBits)
_serialPort.StopBits = SetPortStopBits(_serialPort.StopBits)
_serialPort.Handshake = SetPortHandshake(_serialPort.Handshake)
' Set the read/write timeouts
_serialPort.ReadTimeout = 500
_serialPort.WriteTimeout = 500
_serialPort.Open()
_continue = True
readThread.Start()
Console.Write("Name: ")
name = Console.ReadLine()
Console.WriteLine("Type QUIT to exit")
While _continue
message = Console.ReadLine()
If stringComparer__1.Equals("quit", message) Then
_continue = False
Else
_serialPort.WriteLine([String].Format("<{0}>: {1}", name, message))
End If
End While
readThread.Join()
_serialPort.Close()
End Sub
Public Shared Sub Read()
While _continue
Try
Dim message As String = _serialPort.ReadLine()
Console.WriteLine(message)
Catch generatedExceptionName As TimeoutException
End Try
End While
End Sub
' Display Port values and prompt user to enter a port.
Public Shared Function SetPortName(defaultPortName As String) As String
Dim portName As String
Console.WriteLine("Available Ports:")
For Each s As String In SerialPort.GetPortNames()
Console.WriteLine(" {0}", s)
Next
Console.Write("Enter COM port value (Default: {0}): ", defaultPortName)
portName = Console.ReadLine()
If portName = "" OrElse Not (portName.ToLower()).StartsWith("com") Then
portName = defaultPortName
End If
Return portName
End Function
' Display BaudRate values and prompt user to enter a value.
Public Shared Function SetPortBaudRate(defaultPortBaudRate As Integer) As Integer
Dim baudRate As String
Console.Write("Baud Rate(default:{0}): ", defaultPortBaudRate)
baudRate = Console.ReadLine()
If baudRate = "" Then
baudRate = defaultPortBaudRate.ToString()
End If
Return Integer.Parse(baudRate)
End Function
' Display PortParity values and prompt user to enter a value.
Public Shared Function SetPortParity(defaultPortParity As Parity) As Parity
Dim parity As String
Console.WriteLine("Available Parity options:")
For Each s As String In [Enum].GetNames(GetType(Parity))
Console.WriteLine(" {0}", s)
Next
Console.Write("Enter Parity value (Default: {0}):", defaultPortParity.ToString(), True)
parity = Console.ReadLine()
If parity = "" Then
parity = defaultPortParity.ToString()
End If
Return CType([Enum].Parse(GetType(Parity), parity, True), Parity)
End Function
' Display DataBits values and prompt user to enter a value.
Public Shared Function SetPortDataBits(defaultPortDataBits As Integer) As Integer
Dim dataBits As String
Console.Write("Enter DataBits value (Default: {0}): ", defaultPortDataBits)
dataBits = Console.ReadLine()
If dataBits = "" Then
dataBits = defaultPortDataBits.ToString()
End If
Return Integer.Parse(dataBits.ToUpperInvariant())
End Function
' Display StopBits values and prompt user to enter a value.
Public Shared Function SetPortStopBits(defaultPortStopBits As StopBits) As StopBits
Dim stopBits As String
Console.WriteLine("Available StopBits options:")
For Each s As String In [Enum].GetNames(GetType(StopBits))
Console.WriteLine(" {0}", s)
Next
Console.Write("Enter StopBits value (None is not supported and " &
vbLf & "raises an ArgumentOutOfRangeException. " &
vbLf & " (Default: {0}):", defaultPortStopBits.ToString())
stopBits = Console.ReadLine()
If stopBits = "" Then
stopBits = defaultPortStopBits.ToString()
End If
Return CType([Enum].Parse(GetType(StopBits), stopBits, True), StopBits)
End Function
Public Shared Function SetPortHandshake(defaultPortHandshake As Handshake) As Handshake
Dim handshake As String
Console.WriteLine("Available Handshake options:")
For Each s As String In [Enum].GetNames(GetType(Handshake))
Console.WriteLine(" {0}", s)
Next
Console.Write("Enter Handshake value (Default: {0}):", defaultPortHandshake.ToString())
handshake = Console.ReadLine()
If handshake = "" Then
handshake = defaultPortHandshake.ToString()
End If
Return CType([Enum].Parse(GetType(Handshake), handshake, True), Handshake)
End Function
End Class
Keterangan
Gunakan kelas ini untuk mengontrol sumber daya file port serial. Kelas ini menyediakan I/O sinkron dan berbasis peristiwa, akses ke status sematkan dan putus, dan akses ke properti driver serial. Selain itu, fungsionalitas kelas ini dapat dibungkus dalam objek internal Stream , dapat diakses melalui BaseStream properti , dan diteruskan ke kelas yang membungkus atau menggunakan aliran.
Kelas SerialPort mendukung pengodean berikut: ASCIIEncoding, , UTF8Encoding, UnicodeEncodingUTF32Encoding, dan pengodean apa pun yang ditentukan dalam mscorlib.dll di mana halaman kode kurang dari 50000 atau halaman kode adalah 54936. Anda dapat menggunakan pengodean alternatif, tetapi Anda harus menggunakan ReadByte metode atau Write dan melakukan pengodean sendiri.
Anda menggunakan metode untuk GetPortNames mengambil porta yang valid untuk komputer saat ini.
SerialPort Jika objek diblokir selama operasi baca, jangan batalkan utas. Sebagai gantinya, tutup aliran dasar atau buang SerialPort objek.
Konstruktor
SerialPort() |
Menginisialisasi instans baru kelas SerialPort. |
SerialPort(IContainer) |
Menginisialisasi instans SerialPort baru kelas menggunakan objek yang ditentukan IContainer . |
SerialPort(String) |
Menginisialisasi instans SerialPort baru kelas menggunakan nama port yang ditentukan. |
SerialPort(String, Int32) |
Menginisialisasi instans SerialPort baru kelas menggunakan nama port dan laju baud yang ditentukan. |
SerialPort(String, Int32, Parity) |
Menginisialisasi instans SerialPort baru kelas menggunakan nama port, laju baud, dan bit paritas yang ditentukan. |
SerialPort(String, Int32, Parity, Int32) |
Menginisialisasi instans SerialPort baru kelas menggunakan nama port, laju baud, bit paritas, dan bit data yang ditentukan. |
SerialPort(String, Int32, Parity, Int32, StopBits) |
Menginisialisasi instans SerialPort baru kelas menggunakan nama port yang ditentukan, laju baud, bit paritas, bit data, dan bit berhenti. |
Bidang
InfiniteTimeout |
Menunjukkan bahwa tidak ada waktu habis yang harus terjadi. |
Properti
BaseStream |
Mendapatkan objek yang mendasar Stream untuk objek SerialPort . |
BaudRate |
Mendapatkan atau mengatur laju baud serial. |
BreakState |
Mendapatkan atau mengatur status sinyal pemutus. |
BytesToRead |
Mendapatkan jumlah byte data dalam buffer penerima. |
BytesToWrite |
Mendapatkan jumlah byte data dalam buffer kirim. |
CanRaiseEvents |
Mendapatkan nilai yang menunjukkan apakah komponen dapat menaikkan peristiwa. (Diperoleh dari Component) |
CDHolding |
Mendapatkan status garis Carrier Detect untuk port. |
Container |
IContainer Mendapatkan yang berisi Component. (Diperoleh dari Component) |
CtsHolding |
Mendapatkan status baris Clear-to-Send. |
DataBits |
Mendapatkan atau mengatur panjang standar bit data per byte. |
DesignMode |
Mendapatkan nilai yang menunjukkan apakah Component saat ini dalam mode desain. (Diperoleh dari Component) |
DiscardNull |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah byte null diabaikan saat dikirimkan antara port dan buffer penerima. |
DsrHolding |
Mendapatkan status sinyal Siap Himpunan Data (DSR). |
DtrEnable |
Mendapatkan atau menetapkan nilai yang memungkinkan sinyal Siap Terminal Data (DTR) selama komunikasi serial. |
Encoding |
Mendapatkan atau mengatur pengodean byte untuk konversi teks pra dan pasca-transmisi. |
Events |
Mendapatkan daftar penanganan aktivitas yang dilampirkan ke ini Component. (Diperoleh dari Component) |
Handshake |
Mendapatkan atau mengatur protokol jabat tangan untuk transmisi port serial data menggunakan nilai dari Handshake. |
IsOpen |
Mendapatkan nilai yang menunjukkan status objek terbuka SerialPort atau tertutup. |
NewLine |
Mendapatkan atau mengatur nilai yang digunakan untuk menginterpretasikan akhir panggilan ke ReadLine() metode dan WriteLine(String) . |
Parity |
Mendapatkan atau mengatur protokol pemeriksaan paritas. |
ParityReplace |
Mendapatkan atau mengatur byte yang menggantikan byte yang tidak valid dalam aliran data saat terjadi kesalahan paritas. |
PortName |
Mendapatkan atau mengatur port untuk komunikasi, termasuk tetapi tidak terbatas pada semua port COM yang tersedia. |
ReadBufferSize |
Mendapatkan atau mengatur ukuran SerialPort buffer input. |
ReadTimeout |
Mendapatkan atau mengatur jumlah milidetik sebelum waktu habis terjadi ketika operasi baca tidak selesai. |
ReceivedBytesThreshold |
Mendapatkan atau mengatur jumlah byte dalam buffer input internal sebelum DataReceived peristiwa terjadi. |
RtsEnable |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah sinyal Request to Send (RTS) diaktifkan selama komunikasi serial. |
Site |
Mendapatkan atau mengatur ISite dari Component. (Diperoleh dari Component) |
StopBits |
Mendapatkan atau menetapkan jumlah stopbit standar per byte. |
WriteBufferSize |
Mendapatkan atau mengatur ukuran buffer output port serial. |
WriteTimeout |
Mendapatkan atau mengatur jumlah milidetik sebelum waktu habis terjadi ketika operasi tulis tidak selesai. |
Metode
Close() |
Menutup koneksi port, mengatur IsOpen properti ke |
CreateObjRef(Type) |
Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh. (Diperoleh dari MarshalByRefObject) |
DiscardInBuffer() |
Membuang data dari buffer penerima driver serial. |
DiscardOutBuffer() |
Membuang data dari buffer transmisi driver serial. |
Dispose() |
Merilis semua sumber daya yang Componentdigunakan oleh . (Diperoleh dari Component) |
Dispose(Boolean) |
Merilis sumber daya tidak terkelola yang SerialPort digunakan oleh dan secara opsional merilis sumber daya terkelola. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetLifetimeService() |
Kedaluwarsa.
Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
GetPortNames() |
Mendapatkan array nama port serial untuk komputer saat ini. |
GetService(Type) |
Mengembalikan objek yang mewakili layanan yang disediakan oleh Component atau oleh Container. (Diperoleh dari Component) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
InitializeLifetimeService() |
Kedaluwarsa.
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
MemberwiseClone(Boolean) |
Membuat salinan dangkal objek saat ini MarshalByRefObject . (Diperoleh dari MarshalByRefObject) |
Open() |
Membuka koneksi port serial baru. |
Read(Byte[], Int32, Int32) |
Membaca sejumlah byte dari SerialPort buffer input dan menulis byte tersebut ke dalam array byte pada offset yang ditentukan. |
Read(Char[], Int32, Int32) |
Membaca sejumlah karakter dari SerialPort buffer input dan menulisnya ke dalam array karakter pada offset tertentu. |
ReadByte() |
Secara sinkron membaca satu byte dari SerialPort buffer input. |
ReadChar() |
Secara sinkron membaca satu karakter dari SerialPort buffer input. |
ReadExisting() |
Membaca semua byte yang tersedia segera, berdasarkan pengodean, baik di aliran maupun buffer SerialPort input objek. |
ReadLine() |
Membaca hingga NewLine nilai dalam buffer input. |
ReadTo(String) |
Membaca string hingga yang ditentukan |
ToString() |
Mengembalikan yang String berisi nama Component, jika ada. Metode ini tidak boleh ditimpa. (Diperoleh dari Component) |
Write(Byte[], Int32, Int32) |
Menulis jumlah byte tertentu ke port serial menggunakan data dari buffer. |
Write(Char[], Int32, Int32) |
Menulis sejumlah karakter tertentu ke port serial menggunakan data dari buffer. |
Write(String) |
Menulis string yang ditentukan ke port serial. |
WriteLine(String) |
Menulis string yang ditentukan dan NewLine nilainya ke buffer output. |
Acara
DataReceived |
Menunjukkan bahwa data telah diterima melalui port yang diwakili oleh SerialPort objek . |
Disposed |
Terjadi ketika komponen dibuang oleh panggilan ke Dispose() metode . (Diperoleh dari Component) |
ErrorReceived |
Menunjukkan bahwa kesalahan telah terjadi dengan port yang diwakili oleh SerialPort objek. |
PinChanged |
Menunjukkan bahwa peristiwa sinyal non-data telah terjadi pada port yang diwakili oleh SerialPort objek . |