Exemplo n.º 1
0
 def processDawnDusk(l):
   d = codec.DAWN_DUSK_ENTRY.createDataMap()
   utils.merge_dict_if_not_default(l, d, "reserved_1", 0)
   utils.merge_dict_if_not_default(l, d, "reserved_2", 0)
   d["start_double_hour"], d["start_min"] = utils.timespec_to_x10_time(l["rise"])
   d["stop_double_hour"],  d["stop_min"]  = utils.timespec_to_x10_time(l["set"])
   return d
Exemplo n.º 2
0
  def __init__(self, bytes=None, offset=0, data=None):
    if bytes is not None:
      super(self.__class__, self).__init__(bytes, offset)
      data = codec.MACRO_INITIATOR_CLAUSE_BODY_TIME_TYPE.decode(bytes, 1+offset)
    else:
      data = dict(data)
      super(self.__class__, self).__init__(data=data)
      if "time" not in data:
        raise UnsuitableDataException()
      time = data.get("time")
      if time.lower() == "sunrise":
        data["is_variable"] = 1
        data["sunrise"] = 1
      elif time.lower() == "sunset":
        data["is_variable"] = 1
        data["sunset"] = 1
      else:
        (data["double_hour"], data["min"]) = utils.timespec_to_x10_time(time)
      data = codec.MACRO_INITIATOR_CLAUSE_BODY_TIME_TYPE.createDataMap(data)

    vars(self).update(data)
    self.codelength = codec.MACRO_INITIATOR_CLAUSE_HEADER.codelength + codec.MACRO_INITIATOR_CLAUSE_BODY_TIME_TYPE.codelength
Exemplo n.º 3
0
 def setTimes(key):
   timeSpec = data.get("%(key)s_time" % locals())
   # TODO: test null start/stop times
   if timeSpec is not None:
     data["%(key)s_double_hour" % locals()], data["%(key)s_min" % locals()] = utils.timespec_to_x10_time(timeSpec, True)