Politen

Ответы в темах

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Сообщения
  • Politen
    Участник

    Драйвер написан под конкретное специфическое оборудование. После обкатки, если кому-то интересно могу прислать.

    Politen
    Участник

    Все получилось. Всем спасибо за помощь.
    В View в процедуре:
    public override ICollection<CnlPrototype> GetCnlPrototypes()
    откорректировал часть кода:
    else if (format == «String»)
    { cnl.DataTypeID = DataTypeID.Unicode;
    cnl.DataLen = DeviceTag.CalcDataLength(20, TagDataType.Unicode);
    cnl.FormatCode = FormatCode.String;}
    В Logic в процедуре:
    public override void InitDeviceTags()
    if (sig_type == «String»)
    { deviceTag.DataType = TagDataType.Unicode;
    deviceTag.DataLen = DeviceTag.CalcDataLength(20, TagDataType.Unicode);
    deviceTag.Format = TagFormat.String; }

    Politen
    Участник

    У меня в View эти данные не нужны.
    В Logic в void Session() и идет запрос и получение данных от оборудования (в журнале линии они отображаются:
    Содержимое ответа:
    Нагрев включен
    Нет потока
    23.9
    10.0
    после обработки в журнал устройства я получаю:
    Текущие данные
    +——-+—————+———————————+———-+——-+
    | Номер | Код | Наименование | Значение | Канал |
    +——-+—————+———————————+———-+——-+
    | 1 | HeatingSt | Статус системы нагрева | — | |
    +——-+—————+———————————+———-+——-+
    | 2 | FiltrationSt | Статус системы фильтрации | — | |
    +——-+—————+———————————+———-+——-+
    | 3 | Twater | Температура воды [гр.С] | 23,800 | |
    +——-+—————+———————————+———-+——-+
    | 4 | TSPwater | Уставка температуры воды [гр.С] | 10,000 | |
    +——-+—————+———————————+———-+——-+
    | 5 | Error | Общее сообщение об ошибке | 1,000 | |
    +——-+—————+———————————+———-+——-+
    значение первых двух параметров пустые. Вопрос в том, вообще возможно в значение передать полученный текст?

    Politen
    Участник

    Драйвер написал. Но появилась следующая проблема. Часть данных, которое передает устройство в ответе — текст:»Нагрев включен». В драйвере не получается передать это значение. DeviceData.SetUnicode(Code, text,1) — ни чего не записывает. Есть какие-то ограничения по текстовым значениям (может надо делить на 8 символов)?

    Politen
    Участник

    Спасибо. Изучив код, пришел к выводу что нужно писать свой драйвер.

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)