valetudo-map-parser 0.1.9b23__tar.gz → 0.1.9b24__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/PKG-INFO +1 -1
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/config/auto_crop.py +12 -29
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/config/shared.py +22 -1
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/config/types.py +2 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/hypfer_handler.py +13 -5
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/rand25_handler.py +13 -4
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/pyproject.toml +1 -1
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/LICENSE +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/NOTICE.txt +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/README.md +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/__init__.py +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/config/__init__.py +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/config/colors.py +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/config/drawable.py +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/config/rand25_parser.py +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/config/utils.py +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/hypfer_draw.py +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/map_data.py +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/py.typed +0 -0
- {valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/reimg_draw.py +0 -0
@@ -28,9 +28,6 @@ class AutoCrop:
|
|
28
28
|
def __init__(self, image_handler):
|
29
29
|
self.imh = image_handler
|
30
30
|
self.file_name = self.imh.file_name
|
31
|
-
# self.path_to_data = self.hass.config.path(
|
32
|
-
# STORAGE_DIR, CAMERA_STORAGE, f"auto_crop_{self.file_name}.json"
|
33
|
-
# )
|
34
31
|
|
35
32
|
def check_trim(
|
36
33
|
self, trimmed_height, trimmed_width, margin_size, image_array, file_name, rotate
|
@@ -71,19 +68,18 @@ class AutoCrop:
|
|
71
68
|
)
|
72
69
|
return trimmed_width, trimmed_height
|
73
70
|
|
74
|
-
async def _async_auto_crop_data(self): # , tdata=None
|
71
|
+
async def _async_auto_crop_data(self, tdata=None): # , tdata=None
|
75
72
|
"""Load the auto crop data from the Camera config."""
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
# return trims_data
|
73
|
+
if not self.imh.auto_crop:
|
74
|
+
trims_data = TrimCropData.from_dict(dict(tdata)).to_list()
|
75
|
+
(
|
76
|
+
self.imh.trim_left,
|
77
|
+
self.imh.trim_up,
|
78
|
+
self.imh.trim_right,
|
79
|
+
self.imh.trim_down,
|
80
|
+
) = trims_data
|
81
|
+
self._calculate_trimmed_dimensions()
|
82
|
+
return trims_data
|
87
83
|
return None
|
88
84
|
|
89
85
|
def auto_crop_offset(self):
|
@@ -97,26 +93,13 @@ class AutoCrop:
|
|
97
93
|
async def _init_auto_crop(self):
|
98
94
|
"""Initialize the auto crop data."""
|
99
95
|
if not self.imh.auto_crop and self.imh.shared.vacuum_state == "docked":
|
100
|
-
self.imh.auto_crop = await self._async_auto_crop_data()
|
96
|
+
self.imh.auto_crop = await self._async_auto_crop_data(self.imh.shared.trims)
|
101
97
|
if self.imh.auto_crop:
|
102
98
|
self.auto_crop_offset()
|
103
99
|
else:
|
104
100
|
self.imh.max_frames = 5
|
105
101
|
return self.imh.auto_crop
|
106
102
|
|
107
|
-
# async def _async_save_auto_crop_data(self):
|
108
|
-
# """Save the auto crop data to the disk."""
|
109
|
-
# try:
|
110
|
-
# if not os.path.exists(self.path_to_data):
|
111
|
-
# data = TrimCropData(
|
112
|
-
# self.imh.trim_left,
|
113
|
-
# self.imh.trim_up,
|
114
|
-
# self.imh.trim_right,
|
115
|
-
# self.imh.trim_down,
|
116
|
-
# ).to_dict()
|
117
|
-
# except Exception as e:
|
118
|
-
# _LOGGER.error(f"Failed to save trim data due to an error: {e}")
|
119
|
-
|
120
103
|
async def async_image_margins(
|
121
104
|
self, image_array: NumpyArray, detect_colour: Color
|
122
105
|
) -> tuple[int, int, int, int]:
|
@@ -112,6 +112,14 @@ class CameraShared:
|
|
112
112
|
}
|
113
113
|
self.skip_room_ids: List[str] = []
|
114
114
|
|
115
|
+
def get_trims_dictionary(self):
|
116
|
+
return {
|
117
|
+
"trim_left": self.trims.get(TrimsData.TRIM_LEFT, 0),
|
118
|
+
"trim_up": self.trims.get(TrimsData.TRIM_UP, 0),
|
119
|
+
"trim_right": self.trims.get(TrimsData.TRIM_RIGHT, 0),
|
120
|
+
"trim_down": self.trims.get(TrimsData.TRIM_DOWN, 0),
|
121
|
+
}
|
122
|
+
|
115
123
|
def update_user_colors(self, user_colors):
|
116
124
|
"""Update the user colors."""
|
117
125
|
self.user_colors = user_colors
|
@@ -228,11 +236,24 @@ class CameraSharedManager:
|
|
228
236
|
instance.vacuum_status_position = device_info.get(
|
229
237
|
CONF_VAC_STAT_POS, DEFAULT_VALUES["vac_status_position"]
|
230
238
|
)
|
231
|
-
|
232
239
|
# If enable_snapshots, check for png in www.
|
233
240
|
instance.enable_snapshots = device_info.get(
|
234
241
|
CONF_SNAPSHOTS_ENABLE, DEFAULT_VALUES["enable_www_snapshots"]
|
235
242
|
)
|
243
|
+
instance.trims = {
|
244
|
+
TrimsData.TRIM_LEFT: device_info.get(
|
245
|
+
"trims_data", DEFAULT_VALUES["trims_data"]
|
246
|
+
).get("trim_left", 0),
|
247
|
+
TrimsData.TRIM_UP: device_info.get(
|
248
|
+
"trims_data", DEFAULT_VALUES["trims_data"]
|
249
|
+
).get("trim_up", 0),
|
250
|
+
TrimsData.TRIM_RIGHT: device_info.get(
|
251
|
+
"trims_data", DEFAULT_VALUES["trims_data"]
|
252
|
+
).get("trim_right", 0),
|
253
|
+
TrimsData.TRIM_DOWN: device_info.get(
|
254
|
+
"trims_data", DEFAULT_VALUES["trims_data"]
|
255
|
+
).get("trim_down", 0),
|
256
|
+
}
|
236
257
|
|
237
258
|
except TypeError as ex:
|
238
259
|
_LOGGER.error("Shared data can't be initialized due to a TypeError! %s", ex)
|
@@ -285,6 +285,7 @@ DEFAULT_VALUES = {
|
|
285
285
|
"vac_status_position": True,
|
286
286
|
"get_svg_file": False,
|
287
287
|
"save_trims": True,
|
288
|
+
"trims_data": {"trim_left": 0, "trim_up": 0, "trim_right": 0, "trim_down": 0},
|
288
289
|
"enable_www_snapshots": False,
|
289
290
|
"color_charger": [255, 128, 0],
|
290
291
|
"color_move": [238, 247, 255],
|
@@ -346,6 +347,7 @@ KEYS_TO_UPDATE = [
|
|
346
347
|
"offset_bottom",
|
347
348
|
"offset_left",
|
348
349
|
"offset_right",
|
350
|
+
"trims_data",
|
349
351
|
"auto_zoom",
|
350
352
|
"zoom_lock_ratio",
|
351
353
|
"show_vac_status",
|
@@ -15,7 +15,7 @@ from PIL import Image
|
|
15
15
|
from .config.auto_crop import AutoCrop
|
16
16
|
from .config.drawable import Drawable
|
17
17
|
from .config.shared import CameraShared
|
18
|
-
from .config.types import COLORS, CalibrationPoints, Colors, RoomsProperties
|
18
|
+
from .config.types import COLORS, CalibrationPoints, Colors, RoomsProperties, TrimsData
|
19
19
|
from .config.utils import BaseHandler, prepare_resize_params
|
20
20
|
from .hypfer_draw import ImageDraw as ImDraw
|
21
21
|
from .map_data import ImageData
|
@@ -42,10 +42,18 @@ class HypferMapImageHandler(BaseHandler):
|
|
42
42
|
self.img_base_layer = None # numpy array store the map base layer.
|
43
43
|
self.active_zones = None # vacuum active zones.
|
44
44
|
self.svg_wait = False # SVG image creation wait.
|
45
|
-
self.
|
46
|
-
|
47
|
-
|
48
|
-
self.
|
45
|
+
self.trim_up = self.shared.trims.get(
|
46
|
+
TrimsData.TRIM_UP, 0
|
47
|
+
) # memory stored trims calculated once.
|
48
|
+
self.trim_down = self.shared.trims.get(
|
49
|
+
TrimsData.TRIM_DOWN, 0
|
50
|
+
) # memory stored trims calculated once.
|
51
|
+
self.trim_left = self.shared.trims.get(
|
52
|
+
TrimsData.TRIM_LEFT, 0
|
53
|
+
) # memory stored trims calculated once.
|
54
|
+
self.trim_right = self.shared.trims.get(
|
55
|
+
TrimsData.TRIM_RIGHT, 0
|
56
|
+
) # memory stored trims calculated once.
|
49
57
|
self.offset_top = self.shared.offset_top # offset top
|
50
58
|
self.offset_bottom = self.shared.offset_down # offset bottom
|
51
59
|
self.offset_left = self.shared.offset_left # offset left
|
@@ -23,6 +23,7 @@ from .config.types import (
|
|
23
23
|
PilPNG,
|
24
24
|
RobotPosition,
|
25
25
|
RoomsProperties,
|
26
|
+
TrimsData,
|
26
27
|
)
|
27
28
|
from .config.utils import BaseHandler, prepare_resize_params
|
28
29
|
from .map_data import RandImageData
|
@@ -52,10 +53,18 @@ class ReImageHandler(BaseHandler):
|
|
52
53
|
self.room_propriety = None # Room propriety data
|
53
54
|
self.shared = camera_shared # Shared data
|
54
55
|
self.active_zones = None # Active zones
|
55
|
-
self.
|
56
|
-
|
57
|
-
|
58
|
-
self.
|
56
|
+
self.trim_up = self.shared.trims.get(
|
57
|
+
TrimsData.TRIM_UP, 0
|
58
|
+
) # memory stored trims calculated once.
|
59
|
+
self.trim_down = self.shared.trims.get(
|
60
|
+
TrimsData.TRIM_DOWN, 0
|
61
|
+
) # memory stored trims calculated once.
|
62
|
+
self.trim_left = self.shared.trims.get(
|
63
|
+
TrimsData.TRIM_LEFT, 0
|
64
|
+
) # memory stored trims calculated once.
|
65
|
+
self.trim_right = self.shared.trims.get(
|
66
|
+
TrimsData.TRIM_RIGHT, 0
|
67
|
+
) # memory stored trims calculated once.
|
59
68
|
self.file_name = self.shared.file_name # File name
|
60
69
|
self.offset_top = self.shared.offset_top # offset top
|
61
70
|
self.offset_bottom = self.shared.offset_down # offset bottom
|
File without changes
|
File without changes
|
File without changes
|
{valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/hypfer_draw.py
RENAMED
File without changes
|
{valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/map_data.py
RENAMED
File without changes
|
{valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/py.typed
RENAMED
File without changes
|
{valetudo_map_parser-0.1.9b23 → valetudo_map_parser-0.1.9b24}/SCR/valetudo_map_parser/reimg_draw.py
RENAMED
File without changes
|