Добавлен TryCatchEnumeration
Из SocketBase<> выделен надкласс BackendSocketBase;
SocketBase теперь взял на себя обязанности по контролю закрытости сокета;
BackendSocketBase реализует концепцию Backend-сокета
Из Can-сокета удалил всё, что связано с фильтрацией сообщений при приёме
Восстановил забытые ссылки на файлы в проекте
Отформатирован ISocket
PortBase<> разбит на PortBase<>, отвечающий за хранение, отслеживанеи и Dispose-инг сокетов и BackendPortBase<>, отвечающий за приём-отправку данных посредством системы Backend-ов
Добавление в проект файлов в Communications/Piling/...
Реализации для CanPort и RsPort удалены, вместо них выделены интерфейсы ICanPort, IRsPort
Функции по работе с библиотекой SocketCan разнесены по отдельным классам, обёрнуты через интерфейсы для удобства тестирования и просмотра кода.
Реализованы DirectSocketCanPort и DirectSocketCanSocket, работающие напрямую с Linux SocketCan портами, не отслеживая ошибки при работе с буферами и готовность отправки сообщений.
Вынесены интерфейсы ISocketCanReader, ISocketCanWriter, добавлены их прямые реализации: DirectSocketCanReader, DirectSocketCanWriter
DirectSocketCanSocket обобщена до SocketCanSocket, который использует ISocketCanReader, ISocketCanWriter
Разбил по файликам и упорядочил по пространствам имён
Исправил недоразумение с переименованием SocketCanSocket.sc
Linux SocketCan переведён на вторую версию библиотеки, поддерживающую Flush, отправку списка сообщений и отчёт о просраных сообщениях
ISocket теперь имеет два различных методва Receive(Timeout, ThrowExpectionOnTimeout) и Receive().
SocketBase<> реализует оба этих метода через соответствующие ImplementSend. Виртуальный ImplementSend() вызывает ImplementSend(Timeout) с параметром Timespan.MaxValue
Исправил ошибку в DirectSocketCanReader: раньше он просто переправлял чтение входящих сообщений, как есть. Теперь - выдерживает таймаует чтения, циклически вызывая функцию выгребания сообщений.
Поддержка указания рамеров буферов для входящих и исходящих сообщений при открытии сокета
DirectSocketCanWriter теперь учитывает размер буфера исходящих сообщений в сокете и не превышает его
Исправил опечатку в названии метода SocketFlushInBuffer(int SocketNumber)
Функция Write(IList<CanFrame>) в Linux SocketCan теперь возвращает количество сообщених, поставленных в буфер на отправку
Функционал по нарезке пачки сообщений на отправку выделен из DirectSocketCanWriter в SlicetSocketCanWriterBase и реализован через возвращаемое значение функции ILunixSocket.Send()