Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: pavlolight от 13 Августа 2020, 11:29:37

Название: Изменение кадра изображения по битам двух переменных
Отправлено: pavlolight от 13 Августа 2020, 11:29:37
добрый день,подскажите пожалуйста как реализовать:
есть две переменных
если бит перемеренной 1 и переменной 2  равен 0 то фрейм 1
если бит переменной 1 равен 1 а бит второй переменной равен 0 то фрейм 2
если бит переменной 1 равен 0 а бит второй переменной равен 1 то фрейм 3
если бит переменной 1 и переменной 2 равен 1 то фреим 4
Название: Re: Изменение кадра изображения по битам двух переменных
Отправлено: Simple_Scada от 13 Августа 2020, 12:08:21
Здравствуйте.

Пример работы с битами можно найти здесь  (https://simple-scada.com/help/script/bit-color.html)- см. пример №3. Методы для работы с битами описаны здесь (https://simple-scada.com/help/script/work-bits.html). Для приведенных условий код будет таким:
Код: (delphi)
begin
  if Sender is TM_Image then        // сначала убедимся, что скрипт вызван объектом "Изображение"
    with Sender as TM_Image do      // далее будем работать с объектом Sender, как с изображением
      begin
        { меняем кадр по битам переменных }
        if (GetBit(AsInt, 1) = False) and (GetBit(VariableEx.AsInt, 1) = False) then Frame := 1
          else
            if (GetBit(AsInt, 1) = True) and (GetBit(VariableEx.AsInt, 1) = False) then Frame := 2
              else
                if (GetBit(AsInt, 1) = False) and (GetBit(VariableEx.AsInt, 1) = True) then Frame := 3
                  else
                    if (GetBit(AsInt, 1) = True) and (GetBit(VariableEx.AsInt, 1) = True) then Frame := 4
      end;
end.
Это универсальный скрипт, который можно применить к любому изображению, для этого необходимо назначить его на события OnDataChange и OnDataChangeEx требуемых изображений.
Название: Re: Изменение кадра изображения по битам двух переменных
Отправлено: pavlolight от 15 Августа 2020, 15:01:41
спасибо ,работает