From 1c9bff704a0b0c10dde966d76dbc745c2591aaa5 Mon Sep 17 00:00:00 2001 From: 0xEmm Date: Thu, 31 Oct 2024 17:25:45 +0100 Subject: [PATCH] added pages and most of projector control to UI --- frontend/vju_display/src/App.vue | 30 +++-- frontend/vju_display/src/MainPage.vue | 3 + frontend/vju_display/src/Platno.vue | 116 ++++++++++++++++++++ frontend/vju_display/src/ProjManualPage.vue | 35 ++++++ frontend/vju_display/src/Projektor.vue | 44 +++++--- 5 files changed, 201 insertions(+), 27 deletions(-) create mode 100644 frontend/vju_display/src/MainPage.vue create mode 100644 frontend/vju_display/src/Platno.vue create mode 100644 frontend/vju_display/src/ProjManualPage.vue diff --git a/frontend/vju_display/src/App.vue b/frontend/vju_display/src/App.vue index 1a8df93..3f311ca 100644 --- a/frontend/vju_display/src/App.vue +++ b/frontend/vju_display/src/App.vue @@ -4,11 +4,17 @@ import {ref, onMounted } from 'vue' //import { $mqtt } from 'vue-paho-mqtt' import Projektor from './Projektor.vue' - +import Platno from './Platno.vue' +import MainPage from './MainPage.vue'; +import ProjManualPage from './ProjManualPage.vue'; const _p1_room = ref('p1') -const _glavni_position = ref('glavni') -const _stranski_position = ref('stranski') + + +const pageNum = ref(0) // TODO spremen na 0 + + + diff --git a/frontend/vju_display/src/MainPage.vue b/frontend/vju_display/src/MainPage.vue new file mode 100644 index 0000000..24033d6 --- /dev/null +++ b/frontend/vju_display/src/MainPage.vue @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/vju_display/src/Platno.vue b/frontend/vju_display/src/Platno.vue new file mode 100644 index 0000000..72d0c81 --- /dev/null +++ b/frontend/vju_display/src/Platno.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/frontend/vju_display/src/ProjManualPage.vue b/frontend/vju_display/src/ProjManualPage.vue new file mode 100644 index 0000000..03f1e1d --- /dev/null +++ b/frontend/vju_display/src/ProjManualPage.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/frontend/vju_display/src/Projektor.vue b/frontend/vju_display/src/Projektor.vue index ecfea77..f92c5c9 100644 --- a/frontend/vju_display/src/Projektor.vue +++ b/frontend/vju_display/src/Projektor.vue @@ -5,14 +5,14 @@ import {ref, onMounted, reactive } from 'vue' import { $mqtt } from 'vue-paho-mqtt' const props = defineProps({ - room: '', - position: '' + room: String, + position: String }) const topicstrs = [ //TODO everything else - props.room + '/projektorji/' + props.position + '/status/power', - props.room + '/projektorji/' + props.position + '/status/shutter', - props.room + '/projektorji/' + props.position + '/status/freeze', + props.room + '/projectors/' + props.position + '/status/power', + props.room + '/projectors/' + props.position + '/status/shutter', + props.room + '/projectors/' + props.position + '/status/freeze', ] const subscriptions = @@ -24,7 +24,7 @@ topicstrs.map(topic => { }) }) -function handleIncomingMQTT(topic, msg) { +function handleIncomingMQTT(topic: string, msg: string) { console.log('Received on', topic, 'with message', msg) if (topic.includes('status')) { //console.log(topic.split('/')) @@ -33,7 +33,7 @@ function handleIncomingMQTT(topic, msg) { } } -function handleProjectorStatus(typ, msg) { +function handleProjectorStatus(typ: string, msg: string) { console.log('handling status') //console.log(projStatus) if (typ == 'power') {projStatus.power = msg == '1'} @@ -47,16 +47,16 @@ onMounted(() => { }) -function publishMQTTMsg(topic, msg) { +function publishMQTTMsg(topic: string, msg: string) { //msg = msg.toString() - console.log('Sending to [', topic, '] with message [', (msg ? 'ON' : 'OFF'), ']') - $mqtt.publish(topic, (msg ? 'ON' : 'OFF'), 'Qr') + console.log('Sending to [', topic, '] with message [', msg, ']') + $mqtt.publish(topic, msg, 'Qr') //todo refactor to 1 or 0 maybe console.log('sent') } -const publishPrefix = ref(props.room + '/projektorji/' + props.position + '/ukaz/') +const publishPrefix = ref(props.room + '/projectors/' + props.position + '/command/') //TODO organize better, binds, etc. @@ -72,16 +72,26 @@ const projStatus = reactive({
+

barko {{ props.position }}

+
+
Power: {{ (projStatus.power ? "ON" : "OFF") }}
+ @click="publishMQTTMsg(publishPrefix + 'power', (!projStatus.power ? '1' : '0'))"> + Turn power {{ projStatus.power ? 'OFF' : 'ON' }} +
+
+
Shutter: {{ (projStatus.shutter ? "ON" : "OFF") }}
+ @click="publishMQTTMsg(publishPrefix + 'shutter', (!projStatus.shutter ? '1' : '0'))"> + Turn shutter {{ projStatus.shutter ? 'OFF' : 'ON' }} +
+
+
Freeze image: {{ (projStatus.freeze ? "ON" : "OFF") }}
+ @click="publishMQTTMsg(publishPrefix + 'freeze', (!projStatus.freeze ? '1' : '0'))"> + Turn freeze {{ projStatus.freeze ? 'OFF' : 'ON' }} +