2023-06-28 11:02:11 -06:00
|
|
|
from typing import Dict, Any, TYPE_CHECKING
|
|
|
|
|
|
|
|
from pyhon.parameter.program import HonParameterProgram
|
|
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
|
|
from pyhon.appliance import HonAppliance
|
|
|
|
|
|
|
|
|
2023-05-29 10:58:50 -06:00
|
|
|
class ApplianceBase:
|
2023-06-28 11:02:11 -06:00
|
|
|
def __init__(self, appliance: "HonAppliance"):
|
2023-05-29 10:58:50 -06:00
|
|
|
self.parent = appliance
|
|
|
|
|
2023-06-28 11:02:11 -06:00
|
|
|
def attributes(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
2023-05-29 10:58:50 -06:00
|
|
|
program_name = "No Program"
|
2023-06-12 16:12:29 -06:00
|
|
|
if program := int(str(data.get("parameters", {}).get("prCode", "0"))):
|
2023-06-08 11:50:56 -06:00
|
|
|
if start_cmd := self.parent.settings.get("startProgram.program"):
|
2023-06-28 11:02:11 -06:00
|
|
|
if isinstance(start_cmd, HonParameterProgram) and (
|
|
|
|
ids := start_cmd.ids
|
|
|
|
):
|
2023-06-08 11:50:56 -06:00
|
|
|
program_name = ids.get(program, program_name)
|
2023-05-29 10:58:50 -06:00
|
|
|
data["programName"] = program_name
|
2023-06-08 11:50:56 -06:00
|
|
|
return data
|
2023-05-29 10:58:50 -06:00
|
|
|
|
2023-06-28 11:02:11 -06:00
|
|
|
def settings(self, settings: Dict[str, Any]) -> Dict[str, Any]:
|
2023-05-29 10:58:50 -06:00
|
|
|
return settings
|