Создание dll и её последующие использование в новом приложении - C#

Узнай цену своей работы

Формулировка задачи:

Мною было создано приложение под Windows Form, которое при нажатии кнопки "Старт", ищет устройства подключённые к USB, с использованием микросхемы Ftdi и в случае обнаружения такого устройства, устанавливает с ним связь с заданными параметрами ( скорость передачи, стоповые биты, проверка чётности и т.д. ) и после установки связи, по прерываниям от таймера принимает от этого устройства байты информации. Зная протокол передачи, программа разбирает принятые пакеты и записывает оцифрованные показания датчиков в соответствующие буферы. Принятые значения отображаются на экране в виде непрерывных графиков и подвергаются дальнейшей обработке. Для своей работы, приложения использует dll:
 using FTD2XX_NET;
Всё это отлажено и великолепно работает. А вот теперь требуется ваша помощь. Так как, аналогичных приложений надо будет создавать множество, хочется этот код оформить не в виде приложения exe, а в виде библиотеки dll. И уже на основе этой dll, создавать новые приложения. На C# пишу недавно - помогите с этим вопросом.

Решение задачи: «Создание dll и её последующие использование в новом приложении»

textual
Листинг программы
        private void button1_Click(object sender, EventArgs e)
        {
            myFtdiDevice = new FTDI();
 
            ftStatus = myFtdiDevice.GetNumberOfDevices(ref ftdiDeviceCount);
            if (ftStatus == FTDI.FT_STATUS.FT_OK)
            {
            }
 
            if (ftdiDeviceCount == 0)
            {
                MessageBox.Show("Не найдено ни одного устройства FTDI!");
                return;
            }
 
            FTDI.FT_DEVICE_INFO_NODE[] ftdiDeviceList = new FTDI.FT_DEVICE_INFO_NODE[ftdiDeviceCount];
 
            ftStatus = myFtdiDevice.GetDeviceList(ftdiDeviceList);
 
            if (ftStatus == FTDI.FT_STATUS.FT_OK)
            {
            }
 
            ftStatus = myFtdiDevice.OpenBySerialNumber(ftdiDeviceList[0].SerialNumber);
            if (ftStatus != FTDI.FT_STATUS.FT_OK)
            {
                string str1;
                str1 = "Failed to open device (error " + ftStatus.ToString();
                MessageBox.Show(str1);
                return;
            }
 
 
            ftStatus = myFtdiDevice.SetBaudRate(57600);
            if (ftStatus != FTDI.FT_STATUS.FT_OK)
            {
                string str1;
                str1 = "Failed to set Baud rate (error " + ftStatus.ToString();
                MessageBox.Show(str1);
                return;
            }
 
            ftStatus = myFtdiDevice.SetDataCharacteristics
                (FTDI.FT_DATA_BITS.FT_BITS_8,
                 FTDI.FT_STOP_BITS.FT_STOP_BITS_1,
                 FTDI.FT_PARITY.FT_PARITY_NONE);
            if (ftStatus != FTDI.FT_STATUS.FT_OK)
            {
                string str1;
                str1 = "Failed to set data characteristics (error " + ftStatus.ToString();
                MessageBox.Show(str1);
                return;
            }
 
            ftStatus = myFtdiDevice.SetFlowControl(FTDI.FT_FLOW_CONTROL.FT_FLOW_RTS_CTS, 0x11, 0x13);
            if (ftStatus != FTDI.FT_STATUS.FT_OK)
            {
                string str1;
                str1 = "Failed to set flow control (error " + ftStatus.ToString();
                MessageBox.Show(str1);
                return;
            }
 
            Svjaz = true;
 
            return;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы