Skip to content

Commit

Permalink
better toolhead alerts
Browse files Browse the repository at this point in the history
  • Loading branch information
HelgeKeck committed Aug 7, 2024
1 parent 6c85591 commit e7168f4
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 78 deletions.
89 changes: 22 additions & 67 deletions src/components/widgets/toolhead/ToolChangeCommands.vue
Original file line number Diff line number Diff line change
Expand Up @@ -48,79 +48,37 @@
</app-btn-group>
</v-col>
<v-col
cols="12"
v-if="hasToolheadAlerts"
class="pa-0 ma-0"
>
<v-list
v-for="(macro, index) in toolChangeCommands"
:key="`toolheadWarning-${index}`"
dense
nav
class="pa-0 ma-0"
class="pa-0 ma-0 mb-2"
>
<v-list-item
v-if="macro.message && (macro.message.type === 'warning' || macro.message.type === 'error' || macro.message.type === 'info')"
v-if="macro.alert && (macro.alert.type === 'warning' || macro.alert.type === 'error' || macro.alert.type === 'info' || macro.alert.type === 'success')"
:key="`toolheadWarning-${index}`"
:value="macro"
:class="macro.message.type == 'error' ? 'pa-0 mx-2 error' : macro.message.type == 'warning' ? 'pa-0 mx-2 warning' : 'pa-0 mx-2 info'"
@click="messageAction(macro)"
class="pa-0 my-0 mx-2"
@click="alertAction(macro)"
>
<v-list-item-icon
class="ml-2 mr-3"
<v-list-item-content
class="pa-0"
>
<v-icon
v-if="macro.message.type == 'error'"
class="mt-1"
color="white"
>
$error
</v-icon>
<v-icon
v-if="macro.message.type == 'warning'"
class="mt-1"
color="white"
>
$warning
</v-icon>
<v-icon
v-if="macro.message.type == 'info'"
class="mt-1"
color="white"
>
$alertCircle
</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-row
<v-alert
text
dense
:icon="`$${macro.alert.type}`"
:type="macro.alert.type"
class="mb-0"
>
<v-col
class="me-auto my-0 mt-2"
cols="auto"
>
<span
style="font-size: 14px"
>
{{ macro.name.toUpperCase() }}: {{ macro.message.message }}
</span>
</v-col>
<v-col
cols="auto"
class="mr-2"
>
<app-btn
icon
small
color="white"
class="ml-2"
@click.prevent.stop="messageCancel(macro)"
>
<v-icon small>
$close
</v-icon>
</app-btn>
</v-col>
</v-row>
<div class="mb-0">
{{ macro.name.toUpperCase() }} {{ macro.alert.text }}
</div>
</v-alert>
</v-list-item-content>
</v-list-item>
</v-list>
Expand Down Expand Up @@ -164,15 +122,15 @@ export default class ToolChangeCommands extends Mixins(ToolheadMixin, StateMixin
return false
}
messageAction (macro: ToolChangeCommand) {
if (macro.message?.action) {
this.messageCancel(macro)
this.sendGcode(macro.message?.action)
alertAction (macro: ToolChangeCommand) {
this.alertCancel(macro)
if (macro.alert?.action) {
this.sendGcode(macro.alert?.action)
}
}
messageCancel (macro: ToolChangeCommand) {
this.sendGcode(`SET_GCODE_VARIABLE MACRO=${macro.name} VARIABLE=message VALUE="''"`)
alertCancel (macro: ToolChangeCommand) {
this.sendGcode(`SET_GCODE_VARIABLE MACRO=${macro.name} VARIABLE=alert VALUE="''"`)
}
}
</script>
Expand All @@ -198,7 +156,4 @@ export default class ToolChangeCommands extends Mixins(ToolheadMixin, StateMixin
}
}
.v-list-item>>> .v-list-item__content {
padding: 0 !important;
}
</style>
31 changes: 20 additions & 11 deletions src/mixins/toolhead.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ export type ToolChangeCommand = {
remap?: number,
join?: number,
runout_sensor?: string
message?: ToolChangeMessage
alert?: ToolHeadAlert
}

export type ToolChangeMessage = {
export type ToolHeadAlert = {
type: string,
message: string,
text: string,
action: string,
}

Expand Down Expand Up @@ -256,6 +256,15 @@ export default class ToolheadMixin extends Vue {
return false
}

get hasToolheadAlerts (): boolean {
for (const txMacro of this.toolChangeCommands) {
if (txMacro.alert && txMacro.alert.toString().length > 0) {
return true
}
}
return false
}

get toolChangeCommands (): ToolChangeCommand[] {
const availableCommands = this.$store.getters['printer/getAvailableCommands'] as GcodeCommands

Expand All @@ -268,14 +277,14 @@ export default class ToolheadMixin extends Vue {
: this.$t('app.tool.tooltip.select_tool', { tool: command.substring(1) })

const macro = this.$store.getters['macros/getMacroByName'](command.toLowerCase())
const message: ToolChangeMessage = { type: '', message: '', action: '' }
if (macro?.variables?.message) {
const alert: ToolHeadAlert = { type: '', text: '', action: '' }
if (macro?.variables?.alert) {
try {
const split = macro?.variables?.message.split('|')
message.type = split[0]
message.message = split[1]
message.action = split[2]
console.error(macro?.variables?.message)
const split = macro?.variables?.alert.split('|')
alert.type = split[0]
alert.text = split[1]
alert.action = split[2]
console.error(macro?.variables?.alert)
} catch {
console.error('error')
}
Expand All @@ -291,7 +300,7 @@ export default class ToolheadMixin extends Vue {
remap: macro?.variables?.remap,
join: macro?.variables?.join,
runout_sensor: macro?.variables?.runout_sensor,
message: message ?? undefined
alert: alert ?? undefined
} satisfies ToolChangeCommand
})
.sort((a, b) => {
Expand Down

0 comments on commit e7168f4

Please sign in to comment.