Хелпикс

Главная

Контакты

Случайная статья





Введение. Описание программы. Исходный текст программы



Введение

Описание программы

В этой курсов я создал программу которая позволяет общаться людом посредством компьютеров, соединённых по COM порту. Для проверки работоспособности приложения использовал эмулятор последовательного порта COM – com0com.

 

Ниже приведен скриншот работающего приложения:

 

Рисунок 1 – Работающее приложение


Исходный текст программы

 

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) { }

   }

}

 

public static string SetPortName(string defaultPortName)

{

   string portName;

 

   Console. WriteLine(" Available Ports: " );

   foreach (string s in SerialPort. GetPortNames())

   {

       Console. WriteLine(" {0}", s);

   }

 

   Console. Write(" COM port({0}): ", defaultPortName);

   portName = Console. ReadLine();

 

   if (portName == " " )

   {

       portName = defaultPortName;

   }

   return portName;

}

 

public static int SetPortBaudRate(int defaultPortBaudRate)

{

   string baudRate;

 

   Console. Write(" Baud Rate({0}): ", defaultPortBaudRate);

   baudRate = Console. ReadLine();

 

   if (baudRate == " " )

   {

       baudRate = defaultPortBaudRate. ToString();

   }

 

   return int. Parse(baudRate);

}

 

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(" Parity({0}): ", defaultPortParity. ToString());

   parity = Console. ReadLine();

 

   if (parity == " " )

   {

       parity = defaultPortParity. ToString();

   }

 

   return (Parity)Enum. Parse(typeof(Parity), parity);

}

 

public static int SetPortDataBits(int defaultPortDataBits)

{

   string dataBits;

 

   Console. Write(" Data Bits({0}): ", defaultPortDataBits);

   dataBits = Console. ReadLine();

 

   if (dataBits == " " )

   {

         dataBits = defaultPortDataBits. ToString();

   }

 

   return int. Parse(dataBits);

}

 

public static StopBits SetPortStopBits(StopBits defaultPortStopBits)

{

   string stopBits;

 

   Console. WriteLine(" Available Stop Bits options: " );

   foreach (string s in Enum. GetNames(typeof(StopBits)))

   {

       Console. WriteLine(" {0}", s);

   }

 

   Console. Write(" Stop Bits({0}): ", defaultPortStopBits. ToString());

   stopBits = Console. ReadLine();

 

   if (stopBits == " " )

   {

       stopBits = defaultPortStopBits. ToString();

   }

 

   return (StopBits)Enum. Parse(typeof(StopBits), stopBits);

}

 

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(" Handshake({0}): ", defaultPortHandshake. ToString());

   handshake = Console. ReadLine();

 

   if (handshake == " " )

   {

       handshake = defaultPortHandshake. ToString();

   }

 

   return (Handshake)Enum. Parse(typeof(Handshake), handshake);

}

}

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.