mirror of
https://github.com/RunLit/Bambu-Run.git
synced 2026-06-22 22:19:03 +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_hex = f"#{color_code}" if color_code else None
|
||||
|
||||
color_name = mqtt_color
|
||||
filament_color = match_filament_color(
|
||||
filament_type=type_val,
|
||||
filament_sub_type=sub_type,
|
||||
@@ -345,7 +344,7 @@ class Command(BaseCommand):
|
||||
if self.verbose:
|
||||
logger.info(f"Matched color from database: {color_name} (#{color_code})")
|
||||
else:
|
||||
color_name = mqtt_color
|
||||
color_name = color_hex or mqtt_color
|
||||
if self.verbose:
|
||||
logger.warning(
|
||||
f"No color match in database for {type_val} {sub_type} #{color_code}. "
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
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):
|
||||
"""
|
||||
@@ -12,8 +16,8 @@ def strip_color_padding(mqtt_color):
|
||||
if not mqtt_color:
|
||||
return None
|
||||
if len(mqtt_color) == 8:
|
||||
return mqtt_color[:6].upper()
|
||||
return mqtt_color[:6].upper() if len(mqtt_color) >= 6 else mqtt_color.upper()
|
||||
return mqtt_color[:MQTT_COLOR_HEX_LENGTH].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'):
|
||||
|
||||
Reference in New Issue
Block a user