text: # -*- coding: utf-8 -*-
  #############################################################################
  # @package ad_hmi.framework
  # @brief init methode of python package ad_hmi.framework.
  #############################################################################
  # @author WANG Vincent
  # @copyright (c) All rights reserved.
  #############################################################################
  
  class Signal:
      (
          SAME,
          RISING,
          TRAILING,
          CHANGE
      ) = range(4)
  
      def __init__(self, val=0):
          self.__val = val
  
      @property
      def val(self):
          return self.__val
  
      @val.setter
      def val(self, val):
          self.__val = val
  
      def update(self, val, type=CHANGE):
          old_val = self.__val
          self.__val = val
  
          if self.__val > old_val:
              return Signal.RISING
          elif self.__val < old_val:
              return Signal.TRAILING
          elif self.__val == old_val:
              return Signal.SAME
  
      @staticmethod
      def IS_CHANGED(ret):
          return ret in (Signal.RISING, Signal.TRAILING)