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
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
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)