This commit is contained in:
张开科 2025-04-30 16:51:23 +08:00
commit 5875595331
8 changed files with 104 additions and 15 deletions

View File

@ -373,7 +373,10 @@ gcode:
[gcode_macro T0]
gcode:
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor|default("") == ""
else True if not printer[client.filament_sensor].enabled
else printer[client.filament_sensor].filament_detected|default(False) %}
{% set printing = printer.print_stats.state == "printing" %}
{% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135
@ -400,7 +403,10 @@ gcode:
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set x_offset = x_offset - 59 %}
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor1|default("") == ""
else True if not printer[client.filament_sensor1].enabled
else printer[client.filament_sensor1].filament_detected|default(False) %}
{% set printing = (printer.print_stats.state == "printing") %}
{% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135

View File

@ -305,7 +305,10 @@ gcode:
[gcode_macro T0]
gcode:
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor|default("") == ""
else True if not printer[client.filament_sensor].enabled
else printer[client.filament_sensor].filament_detected|default(False) %}
{% set printing = printer.print_stats.state == "printing" %}
{% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135
@ -332,7 +335,10 @@ gcode:
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set x_offset = x_offset - 59 %}
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor1|default("") == ""
else True if not printer[client.filament_sensor1].enabled
else printer[client.filament_sensor1].filament_detected|default(False) %}
{% set printing = (printer.print_stats.state == "printing") %}
{% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135

View File

@ -373,7 +373,10 @@ gcode:
[gcode_macro T0]
gcode:
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor|default("") == ""
else True if not printer[client.filament_sensor].enabled
else printer[client.filament_sensor].filament_detected|default(False) %}
{% set printing = printer.print_stats.state == "printing" %}
{% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135
@ -400,7 +403,10 @@ gcode:
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set x_offset = x_offset - 59 %}
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor1|default("") == ""
else True if not printer[client.filament_sensor1].enabled
else printer[client.filament_sensor1].filament_detected|default(False) %}
{% set printing = (printer.print_stats.state == "printing") %}
{% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135

View File

@ -306,7 +306,10 @@ gcode:
[gcode_macro T0]
gcode:
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor|default("") == ""
else True if not printer[client.filament_sensor].enabled
else printer[client.filament_sensor].filament_detected|default(False) %}
{% set printing = printer.print_stats.state == "printing" %}
{% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135
@ -332,8 +335,11 @@ gcode:
{% set x_offset = sv.nozzle_x_offset_val|default(0)|float %}
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set x_offset = x_offset - 59 %}
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
{% set x_offset = x_offset - 59 %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor1|default("") == ""
else True if not printer[client.filament_sensor1].enabled
else printer[client.filament_sensor1].filament_detected|default(False) %}
{% set printing = (printer.print_stats.state == "printing") %}
{% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135

View File

@ -49,7 +49,7 @@ square_corner_velocity: 5.0
speed: 100
horizontal_move_z: 7
mesh_min: 34.6,17.4
mesh_max: 420, 300
mesh_max: 420, 290
probe_count: 5,4
mesh_pps: 2,2
fade_end: 5
@ -66,7 +66,7 @@ full_steps_per_rotation: 200
endstop_pin: ^PC10
position_min: -20
position_endstop: -20
position_max: 475
position_max: 400
homing_speed: 100
homing_retract_dist: 10
step_pulse_duration:0.0000025
@ -447,7 +447,10 @@ gcode:
[gcode_macro T0]
gcode:
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor|default("") == ""
else True if not printer[client.filament_sensor].enabled
else printer[client.filament_sensor].filament_detected|default(False) %}
{% set printing = printer.print_stats.state == "printing" %}
{% if filament_insert or printing == False %}
{% if "x" not in printer.toolhead.homed_axes %}
@ -495,7 +498,10 @@ gcode:
{% set y_offset = svv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = svv.nozzle_z_offset_val|default(0)|float %}
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor1|default("") == ""
else True if not printer[client.filament_sensor1].enabled
else printer[client.filament_sensor1].filament_detected|default(False) %}
{% set printing = (printer.print_stats.state == "printing") %}
{% if filament_insert or printing == False %}
{% if "x" not in printer.toolhead.homed_axes %}

View File

@ -560,6 +560,7 @@ class MCU:
self._baud = 0
self._canbus_iface = None
canbus_uuid = config.get('canbus_uuid', None)
self.min_firmware_version = config.get('min_firmware_version', '1.0.0')
if canbus_uuid is not None:
self._serialport = canbus_uuid
self._canbus_iface = config.get('canbus_interface', 'can0')
@ -822,6 +823,7 @@ class MCU:
self._get_status_info['mcu_version'] = version
self._get_status_info['mcu_build_versions'] = build_versions
self._get_status_info['mcu_constants'] = msgparser.get_constants()
self._get_status_info['min_firmware_version'] = self.min_firmware_version
self.register_response(self._handle_shutdown, 'shutdown')
self.register_response(self._handle_shutdown, 'is_shutdown')
self.register_response(self._handle_mcu_stats, 'stats')

View File

@ -201,6 +201,15 @@ config CANBUS_FILTER
bool
default y if CANSERIAL
menu "CAN bus UUID"
depends on CANBUS && LOW_LEVEL_OPTIONS
config CAN_UUID_USE_CHIPID
bool "CAN bus UUID Hash from CHIPID" if HAVE_CHIPID
config CAN_UUID_CUSTOM
string "CAN bus UUID Hash" if !CAN_UUID_USE_CHIPID
default "000000000010"
endmenu
# Support setting gpio state at startup
config INITIAL_PINS
string "GPIO pins to set at micro-controller startup"

View File

@ -345,11 +345,59 @@ command_get_canbus_id(uint32_t *args)
}
DECL_COMMAND_FLAGS(command_get_canbus_id, HF_IN_SHUTDOWN, "get_canbus_id");
int
hex_char_to_decimal(char c) {
if (c >= '0' && c <= '9') {
return c - '0';
} else if (c >= 'A' && c <= 'F') {
return c - 'A' + 10;
} else if (c >= 'a' && c <= 'f') {
return c - 'a' + 10;
}
return 0;
}
uint64_t
hex_to_decimal(const char *hex_num) {
uint64_t decimal_num = 0;
int len = strlen(hex_num);
uint64_t power = 1;
for (int i = len - 1; i >= 0; i--) {
int digit = hex_char_to_decimal(hex_num[i]);
decimal_num += (uint64_t)digit * power;
power *= 16;
}
return decimal_num;
}
void
reverse_hex_string(char *hex_str) {
int len = strlen(hex_str);
if (len % 2 != 0) {
return;
}
for (int i = 0; i < len / 2; i += 2) {
char temp1 = hex_str[i];
char temp2 = hex_str[i + 1];
hex_str[i] = hex_str[len - i - 2];
hex_str[i + 1] = hex_str[len - i - 1];
hex_str[len - i - 2] = temp1;
hex_str[len - i - 1] = temp2;
}
}
void
canserial_set_uuid(uint8_t *raw_uuid, uint32_t raw_uuid_len)
{
uint64_t hash = fasthash64(raw_uuid, raw_uuid_len, 0xA16231A7);
memcpy(CanData.uuid, &hash, sizeof(CanData.uuid));
if (CONFIG_CAN_UUID_USE_CHIPID){
uint64_t hash = fasthash64(raw_uuid, raw_uuid_len, 0xA16231A7);
memcpy(CanData.uuid, &hash, sizeof(CanData.uuid));
}else{
char uuid_str[32];
strcpy(uuid_str, CONFIG_CAN_UUID_CUSTOM);
reverse_hex_string(uuid_str);
uint64_t config_uuid = hex_to_decimal(uuid_str);
memcpy(CanData.uuid, &config_uuid, sizeof(CanData.uuid));
}
canserial_notify_rx();
}