Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions src/tag/openspool/processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ def __openspool_parse_payload(self, payload : bytes) -> GenericFilament | None:
alpha = max(0x00, min(0xFF, int(data.get('alpha', 'FF'), 16)))
color_argb = (alpha << 24) | color_hex

colors = [color_argb]
additional = data.get('additional_color_hexes') or []
if isinstance(additional, list):
for extra_hex in additional[:4]:
colors.append((alpha << 24) | self.__parse_color_hex(extra_hex))

try:
diameter_mm = float(data.get('diameter', 1.75))
except (ValueError, TypeError):
Expand Down Expand Up @@ -76,11 +82,11 @@ def __openspool_parse_payload(self, payload : bytes) -> GenericFilament | None:

return GenericFilament(
source_processor=self.name,
unique_id=GenericFilament.generate_unique_id("OpenSpool", brand, main_type, subtype, color_argb),
unique_id=GenericFilament.generate_unique_id("OpenSpool", brand, main_type, subtype, *colors),
manufacturer=brand,
type=main_type,
modifiers=[subtype] if subtype else [],
colors=[color_argb],
colors=colors,
diameter_mm=diameter_mm,
weight_grams=weight_grams,
hotend_min_temp_c=min_temp,
Expand Down
Binary file not shown.
18 changes: 18 additions & 0 deletions test/tags/OpenSpool/eSUN PLA Silk Red Blue OpenSpool.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
source_processor: OpenspoolTagProcessor
unique_id: f409ec9a27e7527e5e2e9f6e10f95c60ec79a9ecfbc4f7fc13f99fd814147953
manufacturer: eSUN
type: PLA
modifiers:
- Silk
colors:
- 0xFFFF0000
- 0xFF0000FF
diameter_mm: 1.75
weight_grams: 1000
hotend_min_temp_c: 190
hotend_max_temp_c: 230
bed_temp_c: 60.0
drying_temp_c: 50.0
drying_time_hours: 8.0
manufacturing_date: "0001-01-01"
td: 0.0