4-Описание программы final (1061387)
Текст из файла
Московский государственный технический университет им. Н.Э.Баумана
_________________________________________________________________
| Утверждаю: | |
| Галкин В.А. | "__"_____________2010 г. |
Курсовая работа по дисциплине
«Сетевые технологии»
«Локальная безадаптерная сеть»
Описание программы
(вид документа)
писчая бумага
(вид носителя)
27
(количество листов)
| ИСПОЛНИТЕЛИ: | |
| студенты группы ИУ5-71 | |
| Бобылёв Д.А. Грицына Д.А. Черных С.О. | "___"_________2010 г. |
Москва - 2010
______________________________________________________________
1. Общие сведения.
Наименование: “Программа посылки сообщений через com-порты Чат”.
Программа выполняется на языке программирования С# и работает под управлением операционной системы Windows 98 и выше.
2. Назначение разработки.
Программа должна реализовывать функцию передачи текстовых файлов между двумя ПЭВМ, соединенными через интерфейс RS-232C нуль-модемным кабелем.
3. Описание логической структуры.
3.1. Алгоритм интерфейсной части программы.
Алгоритм интерфейсной части приведен на рисунке 1.
Рисунок 1
3.2. Алгоритм передачи сообщения.
Рисунок 2
3.3 Алгоритм приема сообщения.
Рисунок 3
4. Используемые технические средства.
Программа должна работать на IBM-совместимой ЭВМ следующей конфигурации:
-
Центральный процессор Perntium I или выше;
-
Объем оперативной памяти 32 Мб;
-
Видеоадаптер и монитор VGA и выше;
-
Стандартная клавиатура;
-
Свободного пространства на жестком диске 2Мб;
Для работы программы требуются два IBM-совместимых компьютера, соединенных нуль-модемным кабелем через интерфейс RS-232C.
5. Входные и выходные данные.
5.1. Входные данные.
Входными данными является текстовое сообщение, набранное пользователем.
5.2. Выходные данные.
Выходными данными являются:
-
текст переданного сообщения на ПЭВМ;
-
сообщения об ошибках и выполнении передачи.
6. Спецификация данных.
6.1. Внутренние данные.
Данные указаны без учета стартовых и стоповых байтов.
Запрос на соединение:
| Наименование | Тип поля | Размер (байт) |
| UPLINK | Byte | 1 |
Поддержание соединения:
| Наименование | Тип поля | Размер (байт) |
| LINKACTIVE | Byte | 1 |
Положительная квитанция:
| Наименование | Тип поля | Размер (байт) |
| ACK | Byte | 1 |
Разрыв соединения:
| Наименование | Тип поля | Размер (байт) |
| DOWNLINK | Byte | 1 |
Информационный блок:
| Наименование | Тип поля | Размер (байт) |
| DAT | Byte | 1 |
| Data | AnsiString | Sizeof(Data) |
6.2. Структура сообщения.
Программа работает с текстовыми сообщениями стандарта ANSI размером не более 255 символов.
7. Спецификация функций.
void WriteData(string msg,FrameType CurrentFrameType, bool msg_no_display)
– процедура записи в порт;
void DisplayData(MessageType type, string msg) – процедура вывода данных с порта на экран;
bool OpenPort() – функция открытия порта;
void SetParityValues(object obj) – процедура заполнения выпадающего списка «Бит четности» в форме «Чат» значениями бита четности;
void SetStopBitValues(object obj) - процедура заполнения выпадающего списка «Стопбиты» в форме «Чат» значениями количества стоповых бит;
void SetPortNameValues(object obj) - процедура заполнения выпадающего списка «Порт» в форме «Чат» именами доступных COM-портов;
void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e) – процедура, которая вызывается, когда в буфере появляются данные;
bool ClosePort() – функция закрытия порта;
void cmdOpen_Click(object sender, EventArgs e) – процедура обработки нажатия кнопки «Открыть порт» в форме «Чат»;
void cmdClose_Click(object sender, EventArgs e) - процедура обработки нажатия кнопки «Закрыть порт» в форме «Чат»;
void cmdConnect_Click(object sender, EventArgs e) – процедура обработки нажатия кнопки «Подключиться» в форме «Чат»;
void cmdDisconnect_Click(object sender, EventArgs e) – процедура обработки нажатия кнопки «Разъединить» в форме «Чат»;
void cmdSend_Click(object sender, EventArgs e) – процедура обработки нажатия кнопки «Отправить» в форме «Чат»;
void frmMain_Load(object sender, EventArgs e) – процедура обработки события загрузки формы «Чат»;
void SetDefaults() – процедура установки параметров соединения по умолчанию;
void LoadValues() – процедура загрузки параметров COM-порта;
void SetControlState() – процедура установки состояний органов управления при первой загрузке формы «Чат»;
void Tick(object sender, EventArgs e) – процедура обработки события истечения интервала ожидания кадра ACK_UPLINK;
void Tick_mytimer1(object sender, EventArgs e) – процедура обработки события истечения интервала ожидания кадра ACK_DOWNLINK;
void Tick_mytimer2(object sender, EventArgs e) - процедура обработки события монитора активности соединения Назначение обработчика - отправка по истечении интервала кадра ACTIVELINK и монитор соединения (монитор статуса comm.LinkActive);
void rtbDisplay_TextChanged(object sender, EventArgs e) – процедура обработки события изменения текста в диалоговом окне на форме «Чат», синхронна с событием comm.DataReceived(исключая случаев "Port Opened AT DateTime.NOW" и отображения события отправки кадров);
void frmMain_FormClosing(object sender, FormClosingEventArgs e) – процедура обработки события во время закрытия формы «Чат»;
void frmMain_FormClosed(object sender, FormClosedEventArgs e) - – процедура обработки события закрытие формы «Чат»;
void акваToolStripMenuItem_Click(object sender, EventArgs e) – процедура обработки нажатия пункта меню «Аква» меню «Вид»;
void золотойToolStripMenuItem_Click(object sender, EventArgs e) – процедура обработки нажатия пункта меню «Золотой» меню «Вид»;
void стандартныйToolStripMenuItem_Click(object sender, EventArgs e) – процедура обработки нажатия пункта меню «Стандартный» меню «Вид»;
void toolStripMenuItem4_Click(object sender, EventArgs e) – процедура обработки нажатия пункта меню «О программе» меню «Справка»;
void открытьФайлИсторииToolStripMenuItem_Click(object sender, EventArgs e) - процедура обработки нажатия пункта меню «Открыть файл истории» меню «История»;
void openFileDialog1_FileOk(object sender, EventArgs e) – процедура открытия окна-диалога для выбора файла;
void button1_Click(object sender, EventArgs e) – процедура обработки нажатия кнопки «Ок» на форме «О программе»;
void Form3_Load(object sender, EventArgs e) – процедура обработки события загрузки формы «История»;
void CycleCode(byte a, byte n, out byte code) - процедура кодирования кодовой комбинации v(x)=x^3+x^2+x+1 циклическим кодом с образующим полиномом g(x)=x^3+x+1;
int CountBit(byte a) - функция перевода чисел из десятичного представления в двоичное;
bool CycleDecode(byte a,out byte code,byte n) – процедура декодирования;
List<byte> CodingStr(string str) – функция кодирования строки текста;
string DeCodingStr(byte[] str) – функция декодирования исходной строки байтов в строку, введенную пользователем.
Листинг основных функций:
CommunicationManager.cs (работа с ком портом)
using System;
using System.Text;
using System.Drawing;
using System.IO.Ports;
using System.Windows.Forms;
using CyclicCode;
namespace PCComm
{
class CommunicationManager
{
#region Manager Enums
public enum MessageType { Incoming, Outgoing, Normal, Warning, Error };
#endregion
#region Frame
public enum FrameType:byte //тип кадра
{
UPLINK, //кадр установки соединения
ACK_UPLINK,
ACK,
ACK_DOWNLINK,
ACK_LINKACTIVE,//кадры -квитанция
RET,//кадр - ARQ
DOWNLINK, //кадр разрыва соединения
LINKACTIVE,
DAT
}
const byte START=0xFF;//стартовый байт
#endregion
#region Manager Variables
private string _baudRate = string.Empty;
private string _parity = string.Empty;
private string _stopBits = string.Empty;
private string _dataBits = string.Empty;
private string _portName = string.Empty;
private RichTextBox _displayWindow;
private Color[] MessageColor = { Color.Blue, Color.Green, Color.Black, Color.Orange, Color.Red };
private SerialPort comPort = new SerialPort();
private bool _linkActive=false;
private string _currentMsg = string.Empty;//последнее напечатанное сообщение
public DateTime dt_new = new DateTime();// "засечка" времени
public string user1;
public string user2;
#endregion
#region Manager Properties
public string BaudRate
{
get { return _baudRate; }
set { _baudRate = value; }
}
public string CurrentMsg
{
get { return _currentMsg; }
set { _currentMsg = value; }
}
public bool LinkActive
{
get { return _linkActive; }
set { _linkActive = value; }
}
public string Parity
{
get { return _parity; }
set { _parity = value; }
}
public string StopBits
{
get { return _stopBits; }
set { _stopBits = value; }
}
public string DataBits
{
get { return _dataBits; }
set { _dataBits = value; }
}
public string PortName
{
get { return _portName; }
set { _portName = value; }
}
public RichTextBox DisplayWindow
{
get { return _displayWindow; }
set { _displayWindow = value; }
}
#endregion
#region FrameAnalise
public void FrameAnalysis(byte mybyte)
{
switch (mybyte)
{
case (byte)FrameType.UPLINK:
LinkActive = true;
DisplayData(MessageType.Normal, DateTime.Now + " UPLINK \n");
WriteData(null, FrameType.ACK_UPLINK, false);
break;
case (byte)FrameType.DOWNLINK:
LinkActive = false;
DisplayData(MessageType.Normal, DateTime.Now + " DOWNLINK \n");
WriteData(null, FrameType.ACK_DOWNLINK, false);
break;
case (byte)FrameType.ACK:
DisplayData(MessageType.Normal, DateTime.Now + " ACK \n");
break;
case (byte)FrameType.ACK_DOWNLINK:
LinkActive = false;
DisplayData(MessageType.Normal, DateTime.Now + " ACK_DOWNLINK \n");
break;
case (byte)FrameType.ACK_LINKACTIVE:
LinkActive = true;
DisplayData(MessageType.Normal, DateTime.Now + " ACK_LINKACTIVE \n");
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















