4-Opisanie_Programmy_final (Готовый курсовой проект 10)

2017-12-28СтудИзба

Описание файла

Файл "4-Opisanie_Programmy_final" внутри архива находится в следующих папках: Готовый курсовой проект 10, kursa4-seti. Документ из архива "Готовый курсовой проект 10", который расположен в категории "". Всё это находится в предмете "сетевые технологии" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "сетевые технологии" в общих файлах.

Онлайн просмотр документа "4-Opisanie_Programmy_final"

Текст из документа "4-Opisanie_Programmy_final"

Московский государственный технический университет им. Н.Э.Баумана

_________________________________________________________________

Утверждаю:

Галкин В.А.

"__"_____________2015 г.

Курсовая работа по дисциплине

«Сетевые технологии»

«Локальная безадаптерная сеть»

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

(вид документа)

писчая бумага

(вид носителя)

22

(количество листов)

ИСПОЛНИТЕЛИ:

студенты группы ИУ5-XX

XXX

XXX

XXX

"___"_________2015 г.



Москва - 2015

______________________________________________________________

1. Общие сведения.

Наименование: “Программа посылки сообщений через com-порты Чат”.

Программа выполняется на языке программирования С# и работает под управлением операционной системы Windows XP и выше.

2. Назначение разработки.

Программа должна реализовывать функцию передачи текстовых файлов между ПЭВМ, соединенными через интерфейс RS-232C нуль-модемным кабелем с поддержкой широковещательной рассылки сообщений.

3. Описание логической структуры.

3.1. Алгоритм интерфейсной части программы.

Алгоритм интерфейсной части приведен следующем рисунке.

3.2. Алгоритм передачи сообщения.

3.3 Алгоритм приема сообщения.

4. Используемые технические средства.

Программа должна работать на IBM-совместимой ЭВМ следующей конфигурации:

  1. Центральный процессор Perntium I или выше;

  2. Объем оперативной памяти 32 Мб;

  3. Видеоадаптер и монитор VGA и выше;

  4. Стандартная клавиатура;

  5. Свободного пространства на жестком диске 2Мб;

Для работы программы требуются IBM-совместимые компьютеры, соединенных нуль-модемным кабелем через интерфейс RS-232C. Или же 1 компьютер, на котором установлена программа Virtual Serial Port Emulator с произведенными настройками (созданы 3 пары com-портов: COM1-COM6, COM2-COM3, COM4-COM5)

5. Входные и выходные данные.

5.1. Входные данные.

Входными данными является текстовое сообщение, набранное пользователем.

5.2. Выходные данные.

Выходными данными являются:

  1. текст переданного сообщения на ПЭВМ;

  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. Спецификация функций.

public void SetParityToComboBox(object obj) – задает возможные значения четности

public void SetStopBitsToComboBox(object obj) – задает возможные стоп-биты

public bool OpenPort() – открывает все COM порты на компьютере

public byte[] CodeString(string msg) – кодирует строку по алгоритму Хеминга

public string DeCodeString(byte[] msg) – декодирует массив байтов по алгоритму Хеминга

public void FrameAnalysis(byte mybyte, SerialPort comPort) – анализ типов прищедших кадров

private static int CharToInt(char c) – получение числового кода символа

private void DisplayData(MessageType type, string msg, bool isMsg) – отображение сообщений в чат или лог

public void WriteData(string msg, FrameType currentFrameType, bool msgNoDisplay, SerialPort comPort) – запись данных в COM порт

private void UserNameOKButton_Click(object sender, EventArgs e) – действие при нажатии клавиши ОК на форме выбора пользователя

private void SettingsForm_Load(object sender, EventArgs e) – действия, выполняемые при загрузке формы настроек

private void LoadValues() – загрузка данных для формы настроек

private void SetDefaults() – задание первоначальных значений для формы настроек

private void SettingsOK_Click(object sender, EventArgs e) – действия, выполняемые при нажатии клавиши ОК на форме настроек

public List<SerialPort> GetPorts() – получение портов компьютера

private void button1_Click(object sender, EventArgs e) – действия, выполняемые при нажатии клавиши ОК на форме информации

private void HistoryForm_Load(object sender, EventArgs e) – действия, выполняемые при загрузке формы истории

private void AckUplinkTimerTick(object sender, EventArgs e) – таймер AckUplink для соединения с 1м компьютером

private void AckDownlinkTimerTick(object sender, EventArgs e) – таймер AckDownLink для соединения с 1м компьютером

private void AckUplinkTimerTick(object sender, EventArgs e) – таймер AckUplink для соединения со 2м компьютером

private void AckDownlinkTimerTick(object sender, EventArgs e) – таймер AckDownLink для соединения со 2м компьютером

private void AckActivelinkTimerTick(object sender, EventArgs e) – таймер AckActiveLink

private void DisconnectionState() – действия при разрыве соединения

private void открытьИсториюToolStripMenuItem_Click(object sender, EventArgs e) – действия при нажатии на пункт меню История

private void Form1_Load(object sender, EventArgs e) – действия при загрузке главной формы

private void f_FormClosed(object sender, EventArgs e) – действия при закрытии формы настроек

private void справкаToolStripMenuItem_Click(object sender, EventArgs e) - действия при нажатии на пункт меню Справка

private void ConnectionButton_Click(object sender, EventArgs e) – действия при нажатии на клавишу Соединение

private void DisconectionButton_Click(object sender, EventArgs e) – действия при нажатии на кнопку Разрыв Соединения

private void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e) – действия при получении данных из COM порта

private void SendTextButton_Click(object sender, EventArgs e) – действия при нажатии на клавишу Отправить Главной Формы

private void FileDialog_FileOk(object sender, System.ComponentModel.CancelEventArgs e) – действия при выборе файла истории

private bool OpenUserPort(int startPort) – функция открытия com-портов для конкретного пользователя

Листинг основных функций:

Settings.cs (Настройка COM портов)

using System;

using System.Collections.Generic;

using System.IO.Ports;

using System.Windows.Forms;

namespace ST_Kurs_Chat

{

public class Settings

{

private string _data = string.Empty;

private string _parity = string.Empty;

private string _speed = string.Empty;

private string _stop = string.Empty;

public DateTime DtNew = new DateTime();

public Dictionary<string, SerialPort> ports = new Dictionary<string, SerialPort>();

private readonly SerialPort _comPort = new SerialPort();

public string Speed

{

get{ return _speed;}

set { _speed = value; }

}

public string Parity

{

get { return _parity; }

set { _parity = value; }

}

public string Stop

{

get { return _stop; }

set { _stop = value; }

}

public string Data

{

get { return _data; }

set { _data = value; }

}

public bool LinkActive { get; set; }

public void SetParityToComboBox(object obj)

{

foreach (var str in Enum.GetNames(typeof (Parity)))

((ComboBox) obj).Items.Add(str);

}

public void SetStopBitsToComboBox(object obj)

{

foreach (var str in Enum.GetNames(typeof (StopBits)))

((ComboBox) obj).Items.Add(str);

}

public bool OpenPort(string user)

{

bool opened;

switch (user)

{

case "Сергей":

opened = OpenUserPort(1);

break;

case "Валерия":

opened = OpenUserPort(3);

break;

case "Надежда":

opened = OpenUserPort(5);

break;

default:

opened = false;

break;

}

return opened;

}

private bool OpenUserPort(int startPort)

{

try

{

for (var i = startPort; i < startPort + 2; i++)

{

var newport = new SerialPort();

newport.BaudRate = int.Parse(_speed);

newport.DataBits = int.Parse(_data);

newport.StopBits = (StopBits)Enum.Parse(typeof(StopBits), _stop);

newport.Parity = (Parity)Enum.Parse(typeof(Parity), _parity);

newport.RtsEnable = true;

newport.PortName = "COM" + i;

string name = string.Empty;

switch (i)

{

case 1:

case 4:

name = "Надежда";

break;

case 2:

case 5:

name = "Валерия";

break;

case 3:

case 6:

name = "Сергей";

break;

}

ports.Add(name, newport);

newport.Open();

}

}

catch

{

ports.Clear();

return false;

}

return true;

}

}

}

Program.cs (начало работы с программой)

using System;

using System.Windows.Forms;

namespace ST_Kurs_Chat

{

internal static class Program

{

[STAThread]

private static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

}

Heming.cs (Кодирование и декодирование по алгоритму хеминга)

using System;

using System.Collections.Generic;

using System.Linq;

namespace ST_Kurs_Chat

{

internal class Heming

{

public byte[] CodeString(string msg)

{

if (string.IsNullOrEmpty(msg))

return new byte[1];

var returnMsg = new List<byte>();

var msgArr = msg.ToCharArray();

var msgIntArr = new int[msgArr.Length];

for (var i = 0; i < msgArr.Length; i++)

msgIntArr[i] = Convert.ToInt32(msgArr[i]);

foreach (var oneChar in msgIntArr)

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5138
Авторов
на СтудИзбе
442
Средний доход
с одного платного файла
Обучение Подробнее