Skip to main content

MachineService (gRPC)

Generated content. This page is produced by cargo run --bin gen_docs (src-tauri/src/bin/gen_docs/) reading proto/maslow/v1/*.proto's compiled FileDescriptorSet, via prost-reflect, re-run on every docs-site build. Do not hand-edit it: fix the generator or the source it reads instead.

The machine is modeled as a singleton resource ("machines/default"): there is one physical machine per connection, so no List/Create/Delete methods. Operations that act on it (jog, home, e-stop, ...) are AIP-136 custom methods rather than forced into Create/Update/Delete semantics.

Full name: maslow.v1.MachineService

Methods​

GetMachineStatus​

GetActionPolicy​

GetSnapshot​

Connect​

Disconnect​

Jog​

Home​

Unlock​

Hold​

Resume​

Zero​

Retract​

Extend​

TakeSlack​

Comply​

Calibrate​

Stop​

EStop​

SendLine​

SendRealtime​

WriteSetting​

SaveConfig​

PingMachine​

GetFirmwareVersion​

WatchMachineEvents​

Types​

Every message and enum reachable from this service's requests and responses, including shared types defined in common.proto.

ActionPolicy​

Which machine actions are currently allowed, reconciled from FluidNC state, Maslow calibration state, and whether a job is streaming.

FieldTypeDescription
jogbool
homebool
unlockbool
zerobool
runbool
holdbool
resumebool
resetbool
retractbool
extendbool
take_slackbool
calibratebool
complybool
stopbool
estopbool

AnchorParams​

The reduced 5-parameter anchor estimate the solver optimises over. BL is fixed at the origin and BR's Y is fixed at 0, so they are not parameters.

FieldTypeDescription
tl_xdouble
tl_ydouble
tr_xdouble
tr_ydouble
br_xdouble

Anchors​

Frame anchor coordinates (mm), as stored in the firmware config.

FieldTypeDescription
tl_xfloat
tl_yfloat
tr_xfloat
tr_yfloat
bl_xfloat
bl_yfloat
br_xfloat
br_yfloat
validboolTrue when the geometry is non-degenerate and passes the firmware's own basic sanity checks, i.e. the anchors are usable as a frame definition.
calibratedboolTrue when the anchors are valid AND differ from the firmware's compiled defaults, i.e. a calibration actually ran and overwrote them.

CalibrateRequest​

No fields.

CalibrateResponse​

No fields.

ComplyRequest​

No fields.

ComplyResponse​

No fields.

ConfigEntry​

One editable leaf of the FluidNC config tree. path is the /-joined key path a write expects (e.g. "axes/x/steps_per_mm", "Maslow_Scale_X"); the resource name for Get/List is "configEntries/{path}".

FieldTypeDescription
pathstring
valuestring
kindConfigKind

ConfigEntryList​

proto3 cannot use repeated directly inside a oneof field, so a dump's entries are wrapped in this single-field message instead.

FieldTypeDescription
entriesrepeated ConfigEntry

ConfigKind​

Best-effort value type, letting a caller pick an appropriate input widget or parser.

ValueNumberDescription
CONFIG_KIND_UNSPECIFIED0
CONFIG_KIND_BOOL1
CONFIG_KIND_INT2
CONFIG_KIND_FLOAT3
CONFIG_KIND_TEXT4

ConnectRequest​

FieldTypeDescription
hoststring

ConnectResponse​

No fields.

DisconnectRequest​

No fields.

DisconnectResponse​

No fields.

Discord​

A calibration state report that contradicted the expected transition graph (either suppressed as a straggler, or accepted as the machine prevailing over our tracked state).

FieldTypeDescription
kindstring"straggler" (suppressed) or "accepted" (state updated to match).
fromint32
toint32
from_labelstring
to_labelstring

EStopRequest​

No fields.

EStopResponse​

No fields.

ExtendRequest​

No fields.

ExtendResponse​

No fields.

FirmwareFit​

Fitness numbers the firmware itself logs after a recompute, used as a comparison point against the client-side solve.

FieldTypeDescription
rmsdouble
max_residualdouble
per_anchorrepeated double
convergedbool

GetActionPolicyRequest​

FieldTypeDescription
namestring

GetFirmwareVersionRequest​

FieldTypeDescription
hoststring

GetFirmwareVersionResponse​

FieldTypeDescription
versionstring(part of oneof _version)

GetMachineStatusRequest​

FieldTypeDescription
namestring"machines/default"

GetSnapshotRequest​

FieldTypeDescription
namestring

HoldRequest​

No fields.

HoldResponse​

No fields.

HomeRequest​

No fields.

HomeResponse​

No fields.

JogRequest​

Structured jog request, translated into the appropriate firmware jog command. Distances in mm, relative to the current position.

FieldTypeDescription
dxdouble
dydouble
dzdouble
feeddouble

JogResponse​

No fields.

MachineEvent​

One update from the machine, mirroring one of the existing Tauri events 1:1. WatchMachineEvents streams these; JobProgress is deliberately not included here (see job.proto's WatchJobProgress) so a telemetry-only consumer is not forced to also receive high-frequency job progress.

FieldTypeDescription
ws_stateWsState(part of oneof payload)
ws_errorstring(part of oneof payload)
grbl_linestring(part of oneof payload)
statusMachineStatus(part of oneof payload)
ws_controlstring(part of oneof payload)
action_policyActionPolicy(part of oneof payload)
anchorsAnchors(part of oneof payload)
maslow_infoMaslowInfo(part of oneof payload)
maslow_stateStatePolicy(part of oneof payload)
waypointWaypoint(part of oneof payload)
discordDiscord(part of oneof payload)
cal_measurementsMeasurementList(part of oneof payload)
cal_firmware_fitFirmwareFit(part of oneof payload)
cal_firmware_anchorsAnchorParams(part of oneof payload)
cal_completebool(part of oneof payload)
config_dumpConfigEntryList(part of oneof payload)
config_dump_errorstring(part of oneof payload)

MachineStatus​

A parsed GRBL/FluidNC realtime status report ("<...>").

FieldTypeDescription
statestringe.g. "Idle", "Run", "Hold", "Alarm", "Jog", "Home".
substateint32(part of oneof _substate)
mposrepeated floatMachine position (absolute). Axis count varies; Maslow uses X,Y,Z.
wposrepeated floatWork position (machine position minus work offset).
wcorepeated floatWork coordinate offset, when reported.
feedfloat
spindlefloat
buffer_blocksint32Planner buffer blocks / RX serial bytes free. (part of oneof _buffer_blocks)
buffer_bytesint32(part of oneof _buffer_bytes)
ovrepeated int32Feed / rapid / spindle overrides in percent.

MaslowInfo​

Maslow belt-tension / homed telemetry ("$Maslow/getInfo").

FieldTypeDescription
homedbool
calibration_in_progressbool
tlfloatBelt lengths (mm) for each arm. Unset when the firmware reported a NaN/Inf reading for that arm. (part of oneof _tl)
trfloat(part of oneof _tr)
brfloat(part of oneof _br)
blfloat(part of oneof _bl)
etlfloatBelt position errors (mm) for each arm. Unset when the firmware reported a NaN/Inf reading for that arm. (part of oneof _etl)
etrfloat(part of oneof _etr)
ebrfloat(part of oneof _ebr)
eblfloat(part of oneof _ebl)
extendedbool

Measurement​

One belt-length measurement at a calibration waypoint (mm, XY plane).

FieldTypeDescription
tldouble
trdouble
bldouble
brdouble

MeasurementList​

Wrapper for the same reason as ConfigEntryList above.

FieldTypeDescription
measurementsrepeated Measurement

PingMachineRequest​

FieldTypeDescription
hoststring

PingMachineResponse​

FieldTypeDescription
reachablebool
statusuint32
infostring

ResumeRequest​

No fields.

ResumeResponse​

No fields.

RetractRequest​

No fields.

RetractResponse​

No fields.

SaveConfigRequest​

No fields.

SaveConfigResponse​

No fields.

SendLineRequest​

FieldTypeDescription
linestring

SendLineResponse​

No fields.

SendRealtimeRequest​

FieldTypeDescription
byteuint32

SendRealtimeResponse​

No fields.

Snapshot​

Aggregate of the machine's current known state in one round trip, mainly for a caller (an LLM tool call, in particular) that wants full context without issuing several requests. Any field may be unset if that piece of telemetry has not been observed yet on the current connection.

FieldTypeDescription
ws_stateWsState
statusMachineStatus(part of oneof _status)
action_policyActionPolicy(part of oneof _action_policy)
maslow_infoMaslowInfo(part of oneof _maslow_info)
maslow_stateStatePolicy(part of oneof _maslow_state)
anchorsAnchors(part of oneof _anchors)
config_entriesrepeated ConfigEntry

StatePolicy​

The Maslow calibration state machine's current label and busy flag for the observed state. The set of allowed action ids behind this state is not exposed here; callers should use ActionPolicy, the already-reconciled allow-list (FluidNC state + calibration state + job state combined).

FieldTypeDescription
codeint32
labelstring
busyboolTrue while the machine is actively performing an operation (transitional state).

StopRequest​

No fields.

StopResponse​

No fields.

TakeSlackRequest​

No fields.

TakeSlackResponse​

No fields.

UnlockRequest​

No fields.

UnlockResponse​

No fields.

WatchMachineEventsRequest​

FieldTypeDescription
namestring

Waypoint​

A calibration grid waypoint reported by the firmware.

FieldTypeDescription
nint32
xfloat
yfloat

WriteSettingRequest​

FieldTypeDescription
pathstring
valuestring

WriteSettingResponse​

No fields.

WsState​

Connection state of the live WebSocket to the machine. Only the states the connection loop actually reports today; nothing currently reports a transient "connecting" state.

ValueNumberDescription
WS_STATE_UNSPECIFIED0
DISCONNECTED1
CONNECTED2

ZeroRequest​

FieldTypeDescription
axesrepeated stringAxis letters to zero, e.g. ["X", "Y"]. Empty means all axes.

ZeroResponse​

No fields.