PDA

Просмотр полной версии : Реализация протокола ОВЕН на C#



firefox0013
22.11.2013, 13:43
Добрый день. К сожалению не нашел реализации овен под управляемый код. По этому попытался реализовать самостоятельно на основе реализации на "с" (где то на форуме нашел реализацию). Может кому будет полезно.
Реализовано

Запаковка хэша команды во фрэйм овен и преобразование его в ASCII
Распаковка ответ с данными типа Float24


Остальное я думаю не сложно реализовать по аналогии при необходимости

Пример использования как то так:


var asciIframe = OwenEncoding.PackFrame(Addres, command);
var bcmd = Encoding.ASCII.GetBytes(asciIframe);
_sp.Write(bcmd, 0, bcmd.Length);
Thread.Sleep(100);
var read = _sp.ReadExisting().Trim('\0');
if (OwenEncoding.ValidateOwenASCIIframe(read.ToCharAr ray()))
{
var val = OwenEncoding.ReadFloat24(read.ToCharArray());
return val;
}


_sp - SerialPort

TolikZXC
16.03.2022, 07:49
Добрый день!

Сбросьте мне, пожалуйста, пример этой реализации протокола в виде проекта. Мне это очень поможет.

Моя почта: e.titan25@mail.ru

Заранее спасибо!

melky
16.03.2022, 12:04
TolikZXC
з.ы. неужели вы не научились подключать бибки C++ в коде C# ?

Описание на библиотеки owen есть же вроде... только на Linux работать не будет, так как Cи библиотеку надо иметь компилированную под Lin

TolikZXC
16.03.2022, 12:35
melky
Мне необходимо использовать протокол без каких либо библиотек.
Такова моя задача.

melky
16.03.2022, 13:01
Тогда скачиваете описание протокола Овен с сайта и разбираетесь, там есть все, в том числе и расчет контрольной суммы.
Думаю примеров для C# как работать с портом масса.

з.ы. а зачем писать с нуля, если например заранее известно, что будет работа под Windows ? просто подключаете библиотеку owen и дальше уже пишите используя функции библиотеки.

Писать то так или иначе придется, просто меньше писанины будет.