1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/GodSharp-GodSharp.SerialPort

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 3.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 04:43 da1d9e3

GodSharp.SerialPort

Простой в использовании класс .NET SerialPort.

AppVeyor build status NuGet MyGet

Требования

.NET Framework >= 3.5

Начало работы

  1. Создайте новый экземпляр GodSerialPort:
GodSerialPort serial = new GodSerialPort("COM1", 9600,0);
  1. Используйте событие DataReceived с действием для обработки полученных данных: Action<byte[]>. Примечание: Это не требуется, если вы читаете данные методом read.
serial.UseDataReceived(true,(sp,bytes)=>{});
  1. Откройте объект SerialPort:
serial.Open();
  1. Запишите или отправьте данные:
byte[] bytes = new byte[]{31,32,33,34};
serial.Write(bytes);
serial.Write(bytes,offset:1,count:2);
serial.WriteHexString("7E 48 53 44");
serial.WriteAsciiString("ascii string");
  1. Прочитайте данные:
byte[] bytes = serial.Read();
string stringAsciiOrHex = serial.ReadString();

Пример

class Program
{
    static void Main(string[] args)
    {
        Console.Write("input serialport number(only 0-9):");
        string read = Console.ReadLine();
        bool flag = uint.TryParse(read, out uint num);
        if (!flag)
        {
            Exit();
        }

        GodSerialPort gsp = new GodSerialPort("COM"+num, 9600,0);
        gsp.UseDataReceived(true,(sp,bytes) => {
             string buffer = string.Join(" ", bytes);
             Console.WriteLine("receive data:" + buffer);
        });
        flag = gsp.Open();

        if (!flag)
        {
            Exit();
        }

        Console.WriteLine("serialport opend");

        Console.WriteLine("press any thing as data to send,press key 'q' to quit.");

        string data = null;
        while (data == null || data.ToLower()!="q")
        {
            if (!string.IsNullOrEmpty(data))
            {
                Console.WriteLine("send data:"+data);
                gsp.WriteAsciiString(data);
            }
            data = Console.ReadLine();
        }
    }

    static void Exit()
    {
        Console.WriteLine("press any key to quit.");
        Console.ReadKey();
        Environment.Exit(0);
    }
}

Примечания

1.2.0

    1. Поддержка .NET Core 2.0.

1.1.2

    1. Добавить GodSerialPort в действие события в качестве параметра подписи для инициализации списка.

1.1.1

    1. Добавить конструктор и изменить подпись конструктора.
    1. Добавить класс PortUtil.

1.1.0

    1. Добавить метод UseDataReceived для запуска события DataReceived.
    1. Метод чтения можно использовать для завершения символа.
    1. Добавить время ожидания при попытке чтения данных.

1.0.1

    1. Исправить ctor и комментарии.

1.0.0

    1. Первая версия выпуска.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/GodSharp-GodSharp.SerialPort.git
git@api.gitlife.ru:oschina-mirror/GodSharp-GodSharp.SerialPort.git
oschina-mirror
GodSharp-GodSharp.SerialPort
GodSharp-GodSharp.SerialPort
master