#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/Utils/BBLPrinterAgent.hpp>
Public Member Functions | |
| BBLPrinterAgent () | |
| ~BBLPrinterAgent () override | |
| void | set_cloud_agent (std::shared_ptr< ICloudServiceAgent > cloud) override |
| int | send_message (std::string dev_id, std::string json_str, int qos, int flag) override |
| int | command_ams_refresh_rfid (std::string dev_id, int ams_id, int slot_id, int sequence_id, bool lan_mode) override |
| int | command_ams_calibrate (std::string dev_id, int ams_id, int sequence_id, bool lan_mode) override |
| int | command_ams_select_tray (std::string dev_id, std::string tray_id, int sequence_id, bool lan_mode) override |
| int | command_axis_control (std::string dev_id, std::string axis, double unit, double input_val, int speed, bool is_core_xy, bool supports_mqtt_axis_control, int sequence_id, bool lan_mode) override |
| std::string | default_lan_username () const override |
| int | connect_printer (const PrinterConnectionParams ¶ms) override |
| int | disconnect_printer () override |
| int | send_message_to_printer (std::string dev_id, std::string json_str, int qos, int flag) override |
| int | check_cert () override |
| void | install_device_cert (std::string dev_id, bool lan_only) override |
| bool | start_discovery (bool start, bool sending) override |
| int | ping_bind (std::string ping_code) override |
| int | bind_detect (std::string dev_ip, std::string sec_link, detectResult &detect) override |
| int | bind (std::string dev_ip, std::string dev_id, std::string dev_model, std::string sec_link, std::string timezone, bool improved, OnUpdateStatusFn update_fn) override |
| int | unbind (std::string dev_id) override |
| int | request_bind_ticket (std::string *ticket) override |
| int | get_hms_snapshot (std::string dev_id, std::string file_name, std::function< void(std::string, int)> callback) override |
| int | set_server_callback (OnServerErrFn fn) override |
| std::string | get_user_selected_machine () override |
| int | set_user_selected_machine (std::string dev_id) override |
| int | start_subscribe (std::string module) override |
| int | stop_subscribe (std::string module) override |
| int | add_subscribe (std::vector< std::string > dev_list) override |
| int | del_subscribe (std::vector< std::string > dev_list) override |
| AgentInfo | get_agent_info () override |
| int | start_print (PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn) override |
| int | start_local_print_with_record (PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn) override |
| int | start_send_gcode_to_sdcard (PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn) override |
| int | start_local_print (PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn) override |
| int | start_sdcard_print (PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn) override |
| int | set_on_ssdp_msg_fn (OnMsgArrivedFn fn) override |
| int | set_on_printer_connected_fn (OnPrinterConnectedFn fn) override |
| int | set_on_subscribe_failure_fn (GetSubscribeFailureFn fn) override |
| int | set_on_message_fn (OnMessageFn fn) override |
| int | set_on_user_message_fn (OnMessageFn fn) override |
| int | set_on_local_connect_fn (OnLocalConnectedFn fn) override |
| int | set_on_local_message_fn (OnMessageFn fn) override |
| int | set_queue_on_main_fn (QueueOnMainFn fn) override |
| FilamentSyncMode | get_filament_sync_mode () const override |
| std::string | to_orca_filament_id (const std::string &printer_filament_id) const override |
| std::string | from_orca_filament_id (const std::string &orca_filament_id) const override |
| virtual int | command_start_camera (std::string) |
| virtual int | command_xyz_abs (std::string dev_id, int sequence_id, bool lan_mode) |
| virtual int | command_auto_leveling (std::string dev_id, int sequence_id, bool lan_mode) |
| virtual int | command_go_home (std::string dev_id, bool is_printing, bool supports_mqtt_homing, int sequence_id, bool lan_mode) |
| virtual int | command_set_bed (std::string dev_id, int temp, bool supports_mqtt_bed_ctrl, int sequence_id, bool lan_mode) |
| virtual int | command_set_nozzle (std::string dev_id, int temp, int sequence_id, bool lan_mode) |
| virtual CameraStreamMode | get_camera_stream_mode () const |
| virtual bool | fetch_filament_info (std::string dev_id, FilamentSyncMode sync_mode=FilamentSyncMode::pull) |
| virtual std::string | get_camera_url () const |
Static Public Member Functions | |
| static AgentInfo | get_agent_info_static () |
| static std::string | bambu_filament_id (const std::string &orca_filament_id) |
| static std::string | to_orca_payload (std::string json_text) |
| static std::string | from_orca_payload (std::string json_text) |
Private Member Functions | |
| int | publish (const std::string &dev_id, const nlohmann::json &j, bool lan_mode) |
| int | publish_command_json (std::string dev_id, const nlohmann::json &j, bool lan_mode) |
BBLPrinterAgent - BBL DLL wrapper implementation of IPrinterAgent.
Delegates all printer operations to the proprietary BBL network DLL through function pointers obtained from BBLNetworkPlugin singleton.
|
default |
|
overridedefault |
|
overridevirtual |
Subscribe to push streams for specific device identifiers.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
static |
References Slic3r::anonymous_namespace{BBLPrinterAgent.cpp}::BambuFilamentIdMap::to_bambu.
Referenced by from_orca_filament_id(), and Slic3r::FilamentColorCodeQuery::GetFilaInfoMap().
|
overridevirtual |
Execute the multi-stage printer binding workflow.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::Current, Slic3r::BBLNetworkPlugin::instance(), Slic3r::Legacy, and Slic3r::V0203.
|
overridevirtual |
Perform binding detection/handshake on a LAN printer.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Validate current user certificates for the printer.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Reimplemented from Slic3r::IPrinterAgent.
References publish().
|
overridevirtual |
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::MachineObject::m_sequence_id, and publish().
|
overridevirtual |
Reimplemented from Slic3r::IPrinterAgent.
References publish().
|
inlinevirtualinherited |
Reimplemented in Slic3r::PyPrinterAgentPluginCapabilityTrampoline.
References publish_command_json().
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
overridevirtual |
Reimplemented from Slic3r::IPrinterAgent.
References publish().
|
inlinevirtualinherited |
Reimplemented in Slic3r::PyPrinterAgentPluginCapabilityTrampoline.
References publish_command_json().
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
inlinevirtualinherited |
Reimplemented in Slic3r::PyPrinterAgentPluginCapabilityTrampoline.
References publish_command_json().
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
inlinevirtualinherited |
Reimplemented in Slic3r::PyPrinterAgentPluginCapabilityTrampoline.
References publish_command_json().
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
inlinevirtualinherited |
Reimplemented in Slic3r::PyPrinterAgentPluginCapabilityTrampoline.
References ORCA_NETWORK_ERR_CMD_NOT_SUPPORTED.
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
inlinevirtualinherited |
Reimplemented in Slic3r::PyPrinterAgentPluginCapabilityTrampoline.
References publish_command_json().
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
overridevirtual |
Establish a direct LAN connection to a printer.
Implements Slic3r::IPrinterAgent.
References Slic3r::PrinterConnectionParams::dev_id, Slic3r::PrinterConnectionParams::host, Slic3r::BBLNetworkPlugin::instance(), Slic3r::PrinterConnectionParams::password, and Slic3r::PrinterConnectionParams::username.
|
inlineoverridevirtual |
Default LAN account username for this agent's protocol, if it has a fixed one. Returns an empty string if the agent has no fixed default (e.g. caller must supply one).
Reimplemented from Slic3r::IPrinterAgent.
|
overridevirtual |
Remove device-level subscriptions.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Tear down the active LAN printer connection.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
inlinevirtualinherited |
Refresh filament info from the printer synchronously. Should only be called when get_filament_sync_mode() returns FilamentSyncMode::pull. Populates the MachineObject's DevFilaSystem with fetched filament data.
Reimplemented in Slic3r::CrealityPrintAgent, Slic3r::MoonrakerPrinterAgent, Slic3r::PyPrinterAgentPluginCapabilityTrampoline, Slic3r::QidiPrinterAgent, and Slic3r::SnapmakerPrinterAgent.
References Slic3r::pull.
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
overridevirtual |
Reimplemented from Slic3r::IPrinterAgent.
References bambu_filament_id().
Referenced by Slic3r::CLI::run().
|
static |
Referenced by Slic3r::anonymous_namespace{BBLPrinterAgent.cpp}::dispatch_start(), send_message(), and send_message_to_printer().
|
inlineoverridevirtual |
Get agent information.
Implements Slic3r::IPrinterAgent.
References get_agent_info_static().
|
static |
Get agent information.
References Slic3r::BBL_PRINTER_AGENT_ID.
Referenced by get_agent_info(), and Slic3r::NetworkAgentFactory::register_all_agents().
|
inlinevirtualinherited |
Get the camera stream mode for this agent. This value can be deterministic and derived at runtime if the printer supports multiple camera stream modes. E.g. LAN => HTTP/HTTPS/RTSP, Cloud => WebRTC.
Reimplemented in Slic3r::PyPrinterAgentPluginCapabilityTrampoline.
References Slic3r::none.
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
inlinevirtualinherited |
Get the current camera stream URL for this agent's active machine. Only meaningful when get_camera_stream_mode() returns an HTTP, HTTPS, or RTSP mode.
Reimplemented in Slic3r::PyPrinterAgentPluginCapabilityTrampoline.
Referenced by Slic3r::PrinterAgentPluginCapability::RegisterBindings().
|
overridevirtual |
Get the filament synchronization mode for this agent.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::subscription.
|
overridevirtual |
Fetch the cloud snapshot image captured at a print failure. Returns 0 if the request was dispatched; the image body arrives via callback(body, http_status).
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Return the currently selected printer ID.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Install or refresh device certificate for LAN TLS.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Ping the binding endpoint to check printer readiness.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
private |
References send_message(), and send_message_to_printer().
Referenced by command_ams_calibrate(), command_ams_refresh_rfid(), command_ams_select_tray(), and command_axis_control().
|
inlineprivateinherited |
References send_message(), and send_message_to_printer().
Referenced by command_auto_leveling(), command_axis_control(), command_go_home(), command_set_bed(), command_set_nozzle(), and command_xyz_abs().
|
overridevirtual |
Request a one-time bind ticket from the server.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Publish a JSON command to a printer through cloud relay.
Implements Slic3r::IPrinterAgent.
References Slic3r::Current, from_orca_payload(), Slic3r::BBLNetworkPlugin::instance(), Slic3r::Legacy, and Slic3r::V0203.
Referenced by publish().
|
overridevirtual |
Send a JSON command to a LAN printer (bypassing cloud).
Implements Slic3r::IPrinterAgent.
References Slic3r::Current, from_orca_payload(), Slic3r::BBLNetworkPlugin::instance(), Slic3r::Legacy, and Slic3r::V0203.
Referenced by publish().
|
overridevirtual |
Set the cloud agent used for token access. Must be called before any cloud-relay operations.
Implements Slic3r::IPrinterAgent.
|
overridevirtual |
Register LAN connection status callback.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Register LAN message callback.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Register cloud device message callback.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Register printer MQTT connection callback.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Register SSDP discovery callback.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Register subscription failure callback.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Register user-scoped message callback.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Provide main thread queue callback.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Register callback for fatal HTTP errors.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Update the selected cloud machine preference.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Start or stop SSDP discovery.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Start a LAN-only print.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Start a local print with cloud record.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Start a fully managed cloud print.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Start a print from printer's SD card.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Upload gcode to printer's SD card without starting.
Implements Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().
|
overridevirtual |
Subscribe to a logical module (for example app- or tunnel-scoped streams).
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance(), and Slic3r::module().
|
overridevirtual |
Stop listening to a formerly subscribed module.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance(), and Slic3r::module().
|
overridevirtual |
Translate one filament id across the printer boundary.
Orca content-addresses every system filament; a printer, its AMS and its vendor cloud know only that vendor's own catalog ids. An agent whose printers already speak Orca's ids leaves them alone, and so does an id with no mapping.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::anonymous_namespace{BBLPrinterAgent.cpp}::BambuFilamentIdMap::to_orca.
|
static |
Referenced by Slic3r::anonymous_namespace{BBLPrinterAgent.cpp}::to_orca_messages().
|
overridevirtual |
Remove the association between account and printer.
Reimplemented from Slic3r::IPrinterAgent.
References Slic3r::BBLNetworkPlugin::instance().