177177 </div >
178178 <mmu-filament-status />
179179 <template v-if =" showClogDetection " >
180- <mmu-clog-meter
181- v-if =" hasEncoder"
182- width =" 40%"
183- />
184- <div class =" text--disabled" >
185- {{ $t('app.mmu.label.clog_detection') }}
180+ <div class =" text-center" >
181+ <mmu-clog-meter
182+ v-if =" hasEncoder"
183+ width =" 40%"
184+ />
185+ <mmu-flowguard-meter
186+ v-if =" hasSyncFeedback"
187+ width =" 40%"
188+ />
189+ <div class =" text--disabled body-1" >
190+ {{ $t('app.mmu.label.clog_tangle_detection') }}
191+ </div >
186192 </div >
187193 </template >
188194 </v-col >
@@ -261,6 +267,7 @@ import MmuTtgMap from '@/components/widgets/mmu/MmuTtgMap.vue'
261267import MmuControls from ' @/components/widgets/mmu/MmuControls.vue'
262268import MmuGateSummary from ' @/components/widgets/mmu/MmuGateSummary.vue'
263269import MmuClogMeter from ' @/components/widgets/mmu/MmuClogMeter.vue'
270+ import MmuFlowguardMeter from ' @/components/widgets/mmu/MmuFlowguardMeter.vue'
264271import MmuSettings from ' @/components/widgets/mmu/MmuSettings.vue'
265272import MmuRecoverStateDialog from ' @/components/widgets/mmu/MmuRecoverStateDialog.vue'
266273import MmuEditGateMapDialog from ' @/components/widgets/mmu/MmuEditGateMapDialog.vue'
@@ -274,6 +281,7 @@ import MmuMaintenanceDialog from '@/components/widgets/mmu/MmuMaintenanceDialog.
274281 MmuControls ,
275282 MmuGateSummary ,
276283 MmuClogMeter ,
284+ MmuFlowguardMeter ,
277285 MmuSettings ,
278286 MmuRecoverStateDialog ,
279287 MmuEditGateMapDialog ,
@@ -299,7 +307,7 @@ export default class MmuCard extends Mixins(StateMixin, MmuMixin) {
299307 }
300308
301309 get showClogDetection (): boolean {
302- return this .hasEncoder && this .$typedState .config .uiSettings .mmu .showClogDetection
310+ return ( this .hasEncoder || this . hasSyncFeedback ) && this .$typedState .config .uiSettings .mmu .showClogDetection
303311 }
304312
305313 get showTtgMap (): boolean {
@@ -344,6 +352,26 @@ export default class MmuCard extends Mixins(StateMixin, MmuMixin) {
344352 show: true ,
345353 })
346354 }
355+
356+ get hasSyncFeedback (): boolean {
357+ return this .hasFilamentCompressionSensor || this .hasFilamentTensionSensor || this .hasFilamentProportionalSensor
358+ }
359+
360+ get hasFilamentProportionalSensor (): boolean {
361+ return this .hasSensor (' filament_proportional' )
362+ }
363+
364+ get hasFilamentCompressionSensor (): boolean {
365+ return this .hasSensor (' filament_compression' )
366+ }
367+
368+ get hasFilamentTensionSensor (): boolean {
369+ return this .hasSensor (' filament_tension' )
370+ }
371+
372+ private hasSensor (sensorName : string ): boolean {
373+ return sensorName in this .sensors
374+ }
347375}
348376 </script >
349377
0 commit comments