from flickerstrip_py.pattern import PatternMeta class MemoryUsage: def __init__(self, used, free, total): self.used = used self.free = free self.total = total def to_json(self): return { "used": self.used, "free": self.free, "total": self.total } @classmethod def from_json(cls, json): return cls(json["used"], json["free"], json["total"]) class Status: def __init__( self, ap, name, group, firmware, power, mac, selectedPattern, brightness, length, start, end, fade, isReversed, cycle, uptime, memory, patterns ): self.ap = ap self.name = name self.group = group self.firmware = firmware self.power = power self.mac = mac self.selectedPattern = selectedPattern self.brightness = brightness self.length = length self.start = start self.end = end self.fade = fade self.isReversed = isReversed self.cycle = cycle self.uptime = uptime self.memory = memory self.patterns = patterns def to_json(self): return { "ap": self.ap, "name": self.name, "group": self.group, "firmware": self.firmware, "power": 1 if self.power else 0, "mac": self.mac, "selectedPattern": self.selectedPattern, "brightness": self.brightness, "length": self.length, "start": self.start, "end": self.end, "fade": self.fade, "reversed": 1 if self.isReversed else 0, "cycle": self.cycle, "uptime": self.uptime, "memory": self.memory.to_json(), "patterns": [p.to_json() for p in self.patterns] } @classmethod def from_json(cls, json): return cls( json["ap"], json["name"], json["group"], json["firmware"], json["power"] == 1, json["mac"], json["selectedPattern"], json["brightness"], json["length"], json["start"], json["end"], json["fade"], json["reversed"] == 1, json["cycle"], json["uptime"], MemoryUsage.from_json(json["memory"]), [PatternMeta.from_json(p) for p in json["patterns"]] )