Ласкаво прошу до мого посібника про зв’язок через послідовний порт Serial Port в C#. Нещодавно я отримав безліч запитань про те, як відсилати і отримувати дані через послідовний порт, тому я подумав, що настав час написати статтю на цю тему.
Раніше в часи Visual Basic 6.0, використовували MSComm Control, який постачався з VB6, але в цього методу була проблема – потрібно було переконатися чи не забули ви включити цей компонент в ваш інсталяційний пакет, що насправді не така вже й велика проблема. Компонент робив саме те, що було потрібно для вашого завдання.
Потім ми познайомились з .Net 1.1. VB програмістам сподобався той факт, що Visual Basic врешті решт еволюціонував в ОО мову. Але згодом було виявлено – з усіма цими ОО можливостями, зв’язок через послідовний порт не був доступним. Тому знову VB розробники знову змушені були покладатися на MSComm Control з попередньої версії Visual Basic, хоча це теж не була надто велика проблема, але все ж трохи розчаровувало, що внутрішній спосіб зв’язку по послідовному порту не був запропонований разом з .net Framework. Ба навіть гірше, C# розробники повинні були покладатися на компонент з Visual Basic і на VB простір імен, якщо вони хотіли зв’язатись через послідовний порт.
Потім настав час .Net 2.0, і цього разу Microsoft додала System.IO.Ports простір імен Namespace, всередині якого був клас SerialPort. DotNet розробники врешті решт отримали внутрішній спосіб зв’язку з допомогою послідовного порта, без складнощів взаємодії із застарілим ActiveX OCX. Одним з найбільш корисних методів в класі SerialPort є метод GetPortNames Method. Він дозволяє вам отримати список портів (COM1,COM2, і т.п.) доступних для застосунків комп’ютера .
Тепер, коли ми маємо такий спосіб виходу із ситуації, давайте перейдемо до програмування нашого застосунку.
Як і у всіх моїх застосунках – функціональність буде відокремлена від представлення. Я роблю це створюючи класи Manager, які управляють функціональністю даних процесів. Цей підхід ми побачимо в коді класу CommunicationManager.