mirror of
https://github.com/RunLit/Bambu-Run.git
synced 2026-06-22 14:09:04 +01:00
added AMS hex color trimming
This commit is contained in:
@@ -332,7 +332,6 @@ class Command(BaseCommand):
|
|||||||
color_code = strip_color_padding(mqtt_color)
|
color_code = strip_color_padding(mqtt_color)
|
||||||
color_hex = f"#{color_code}" if color_code else None
|
color_hex = f"#{color_code}" if color_code else None
|
||||||
|
|
||||||
color_name = mqtt_color
|
|
||||||
filament_color = match_filament_color(
|
filament_color = match_filament_color(
|
||||||
filament_type=type_val,
|
filament_type=type_val,
|
||||||
filament_sub_type=sub_type,
|
filament_sub_type=sub_type,
|
||||||
@@ -345,7 +344,7 @@ class Command(BaseCommand):
|
|||||||
if self.verbose:
|
if self.verbose:
|
||||||
logger.info(f"Matched color from database: {color_name} (#{color_code})")
|
logger.info(f"Matched color from database: {color_name} (#{color_code})")
|
||||||
else:
|
else:
|
||||||
color_name = mqtt_color
|
color_name = color_hex or mqtt_color
|
||||||
if self.verbose:
|
if self.verbose:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f"No color match in database for {type_val} {sub_type} #{color_code}. "
|
f"No color match in database for {type_val} {sub_type} #{color_code}. "
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
Utility functions for filament color matching
|
Utility functions for filament color matching
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# BambuLab AMS reports colors as 8-char hex with an alpha channel suffix (e.g. '489FDFFF').
|
||||||
|
# The last two chars are always 'FF' (fully opaque). Only the first 6 chars are the RGB value.
|
||||||
|
MQTT_COLOR_HEX_LENGTH = 6
|
||||||
|
|
||||||
|
|
||||||
def strip_color_padding(mqtt_color):
|
def strip_color_padding(mqtt_color):
|
||||||
"""
|
"""
|
||||||
@@ -12,8 +16,8 @@ def strip_color_padding(mqtt_color):
|
|||||||
if not mqtt_color:
|
if not mqtt_color:
|
||||||
return None
|
return None
|
||||||
if len(mqtt_color) == 8:
|
if len(mqtt_color) == 8:
|
||||||
return mqtt_color[:6].upper()
|
return mqtt_color[:MQTT_COLOR_HEX_LENGTH].upper()
|
||||||
return mqtt_color[:6].upper() if len(mqtt_color) >= 6 else mqtt_color.upper()
|
return mqtt_color[:MQTT_COLOR_HEX_LENGTH].upper() if len(mqtt_color) >= MQTT_COLOR_HEX_LENGTH else mqtt_color.upper()
|
||||||
|
|
||||||
|
|
||||||
def match_filament_color(filament_type, filament_sub_type, color_code, brand='Bambu Lab'):
|
def match_filament_color(filament_type, filament_sub_type, color_code, brand='Bambu Lab'):
|
||||||
|
|||||||
Reference in New Issue
Block a user