mqtt

package
v0.1.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Print   MessageType = "print"
	System              = "system"
	Pushing             = "pushing"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client represents the MQTT client.

func NewClient

func NewClient(config *ClientConfig) *Client

NewClient initializes a new MQTT client.

func (*Client) Connect

func (c *Client) Connect() error

Connect establishes a connection to the MQTT broker.

func (*Client) Data

func (c *Client) Data() Message

Data retrieves the latest data and triggers an update if stale.

func (*Client) Disconnect

func (c *Client) Disconnect()

Disconnect gracefully closes the connection.

func (*Client) Publish

func (c *Client) Publish(command *Command) error

Publish sends a command message to the MQTT broker.

type ClientConfig

type ClientConfig struct {
	Host       string
	Port       int
	Serial     string
	Username   string
	AccessCode string
	Timeout    time.Duration
}

ClientConfig holds the configuration details for the MQTT client.

type Command

type Command struct {
	Type MessageType
	// contains filtered or unexported fields
}

func NewCommand

func NewCommand(msgType MessageType) *Command

func (*Command) AddCommandField

func (c *Command) AddCommandField(value interface{}) *Command

AddCommandField adds a field with key "command" and the given value.

func (*Command) AddField

func (c *Command) AddField(key string, value interface{}) *Command

AddField adds a field with the given key and value.

func (*Command) AddIdField

func (c *Command) AddIdField(id string) *Command

func (*Command) AddParamField

func (c *Command) AddParamField(value interface{}) *Command

AddParamField adds a field with key "param" and the given value.

func (*Command) JSON

func (c *Command) JSON() (string, error)

JSON returns the command as a JSON string.

type Message

type Message struct {
	Print struct {
		Ams struct {
			Ams []struct {
				Humidity string `json:"humidity"`
				ID       string `json:"id"`
				Temp     string `json:"temp"`
				Tray     []struct {
					ID            string   `json:"id"`
					BedTemp       string   `json:"bed_temp,omitempty"`
					BedTempType   string   `json:"bed_temp_type,omitempty"`
					Cols          []string `json:"cols,omitempty"`
					DryingTemp    string   `json:"drying_temp,omitempty"`
					DryingTime    string   `json:"drying_time,omitempty"`
					NozzleTempMax string   `json:"nozzle_temp_max,omitempty"`
					NozzleTempMin string   `json:"nozzle_temp_min,omitempty"`
					Remain        int      `json:"remain,omitempty"`
					TagUID        string   `json:"tag_uid,omitempty"`
					TrayColor     string   `json:"tray_color,omitempty"`
					TrayDiameter  string   `json:"tray_diameter,omitempty"`
					TrayIDName    string   `json:"tray_id_name,omitempty"`
					TrayInfoIdx   string   `json:"tray_info_idx,omitempty"`
					TraySubBrands string   `json:"tray_sub_brands,omitempty"`
					TrayType      string   `json:"tray_type,omitempty"`
					TrayUUID      string   `json:"tray_uuid,omitempty"`
					TrayWeight    string   `json:"tray_weight,omitempty"`
					XcamInfo      string   `json:"xcam_info,omitempty"`
				} `json:"tray"`
			} `json:"ams"`
			AmsExistBits     string `json:"ams_exist_bits"`
			InsertFlag       bool   `json:"insert_flag"`
			PowerOnFlag      bool   `json:"power_on_flag"`
			TrayExistBits    string `json:"tray_exist_bits"`
			TrayIsBblBits    string `json:"tray_is_bbl_bits"`
			TrayNow          string `json:"tray_now"`
			TrayReadDoneBits string `json:"tray_read_done_bits"`
			TrayReadingBits  string `json:"tray_reading_bits"`
			TrayTar          string `json:"tray_tar"`
			Version          int    `json:"version"`
		} `json:"ams"`
		AmsRfidStatus           int     `json:"ams_rfid_status"`
		AmsStatus               int     `json:"ams_status"`
		AuxPartFan              bool    `json:"aux_part_fan"`
		BedTargetTemper         float64 `json:"bed_target_temper"`
		BedTemper               float64 `json:"bed_temper"`
		BigFan1Speed            string  `json:"big_fan1_speed"`
		BigFan2Speed            string  `json:"big_fan2_speed"`
		ChamberTemper           float64 `json:"chamber_temper"`
		Command                 string  `json:"command"`
		CoolingFanSpeed         string  `json:"cooling_fan_speed"`
		FailReason              string  `json:"fail_reason"`
		FanGear                 int     `json:"fan_gear"`
		FilamBak                []any   `json:"filam_bak"`
		ForceUpgrade            bool    `json:"force_upgrade"`
		GcodeFile               string  `json:"gcode_file"`
		GcodeFilePreparePercent string  `json:"gcode_file_prepare_percent"`
		GcodeStartTime          string  `json:"gcode_start_time"`
		GcodeState              string  `json:"gcode_state"`
		HeatbreakFanSpeed       string  `json:"heatbreak_fan_speed"`
		Hms                     []any   `json:"hms"`
		HomeFlag                int     `json:"home_flag"`
		HwSwitchState           int     `json:"hw_switch_state"`
		Ipcam                   struct {
			IpcamDev    string `json:"ipcam_dev"`
			IpcamRecord string `json:"ipcam_record"`
			Resolution  string `json:"resolution"`
			Timelapse   string `json:"timelapse"`
		} `json:"ipcam"`
		LayerNum     int    `json:"layer_num"`
		Lifecycle    string `json:"lifecycle"`
		LightsReport []struct {
			Mode string `json:"mode"`
			Node string `json:"node"`
		} `json:"lights_report"`
		Maintain            int     `json:"maintain"`
		McPercent           int     `json:"mc_percent"`
		McPrintErrorCode    string  `json:"mc_print_error_code"`
		McPrintStage        string  `json:"mc_print_stage"`
		McPrintSubStage     int     `json:"mc_print_sub_stage"`
		McRemainingTime     int     `json:"mc_remaining_time"`
		MessProductionState string  `json:"mess_production_state"`
		NozzleDiameter      string  `json:"nozzle_diameter"`
		NozzleTargetTemper  float64 `json:"nozzle_target_temper"`
		NozzleTemper        float64 `json:"nozzle_temper"`
		Online              struct {
			Ahb     bool `json:"ahb"`
			Rfid    bool `json:"rfid"`
			Version int  `json:"version"`
		} `json:"online"`
		PrintError       int    `json:"print_error"`
		PrintGcodeAction int    `json:"print_gcode_action"`
		PrintRealAction  int    `json:"print_real_action"`
		PrintType        string `json:"print_type"`
		ProfileID        string `json:"profile_id"`
		ProjectID        string `json:"project_id"`
		QueueNumber      int    `json:"queue_number"`
		Sdcard           bool   `json:"sdcard"`
		SequenceID       string `json:"sequence_id"`
		SpdLvl           int    `json:"spd_lvl"`
		SpdMag           int    `json:"spd_mag"`
		Stg              []any  `json:"stg"`
		StgCur           int    `json:"stg_cur"`
		SubtaskID        string `json:"subtask_id"`
		SubtaskName      string `json:"subtask_name"`
		TaskID           string `json:"task_id"`
		TotalLayerNum    int    `json:"total_layer_num"`
		UpgradeState     struct {
			AhbNewVersionNumber string `json:"ahb_new_version_number"`
			AmsNewVersionNumber string `json:"ams_new_version_number"`
			ConsistencyRequest  bool   `json:"consistency_request"`
			DisState            int    `json:"dis_state"`
			ErrCode             int    `json:"err_code"`
			ForceUpgrade        bool   `json:"force_upgrade"`
			Message             string `json:"message"`
			Module              string `json:"module"`
			NewVersionState     int    `json:"new_version_state"`
			OtaNewVersionNumber string `json:"ota_new_version_number"`
			Progress            string `json:"progress"`
			SequenceID          int    `json:"sequence_id"`
			Status              string `json:"status"`
		} `json:"upgrade_state"`
		Upload struct {
			FileSize      int    `json:"file_size"`
			FinishSize    int    `json:"finish_size"`
			Message       string `json:"message"`
			OssURL        string `json:"oss_url"`
			Progress      int    `json:"progress"`
			SequenceID    string `json:"sequence_id"`
			Speed         int    `json:"speed"`
			Status        string `json:"status"`
			TaskID        string `json:"task_id"`
			TimeRemaining int    `json:"time_remaining"`
			TroubleID     string `json:"trouble_id"`
		} `json:"upload"`
		VtTray struct {
			BedTemp       string   `json:"bed_temp"`
			BedTempType   string   `json:"bed_temp_type"`
			Cols          []string `json:"cols"`
			DryingTemp    string   `json:"drying_temp"`
			DryingTime    string   `json:"drying_time"`
			ID            string   `json:"id"`
			NozzleTempMax string   `json:"nozzle_temp_max"`
			NozzleTempMin string   `json:"nozzle_temp_min"`
			Remain        int      `json:"remain"`
			TagUID        string   `json:"tag_uid"`
			TrayColor     string   `json:"tray_color"`
			TrayDiameter  string   `json:"tray_diameter"`
			TrayIDName    string   `json:"tray_id_name"`
			TrayInfoIdx   string   `json:"tray_info_idx"`
			TraySubBrands string   `json:"tray_sub_brands"`
			TrayType      string   `json:"tray_type"`
			TrayUUID      string   `json:"tray_uuid"`
			TrayWeight    string   `json:"tray_weight"`
			XcamInfo      string   `json:"xcam_info"`
		} `json:"vt_tray"`
		WifiSignal string `json:"wifi_signal"`
		Xcam       struct {
			AllowSkipParts           bool   `json:"allow_skip_parts"`
			BuildplateMarkerDetector bool   `json:"buildplate_marker_detector"`
			FirstLayerInspector      bool   `json:"first_layer_inspector"`
			HaltPrintSensitivity     string `json:"halt_print_sensitivity"`
			PrintHalt                bool   `json:"print_halt"`
			PrintingMonitor          bool   `json:"printing_monitor"`
			SpaghettiDetector        bool   `json:"spaghetti_detector"`
		} `json:"xcam"`
		XcamStatus string `json:"xcam_status"`
	} `json:"print"`
}

type MessageType

type MessageType string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL