Merge branch 'feature/elite_trigger' into feature/dpv
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
<template>
|
||||
<div class="flex px-0 mx-0 my-0 py-0">
|
||||
<va-tree-root class="flex sm12 xl12 md12 xs12 px-0 mx-0 my-0 py-0">
|
||||
<div class="flex sm12 xl12 md12 xs12 px-0 mx-0 my-0 py-0">
|
||||
<va-select
|
||||
@input="workingModeSelectChange(workingModeSelect)"
|
||||
:label="'WORKING MODE'"
|
||||
v-model="workingModeSelect"
|
||||
textBy="description"
|
||||
:options="workingModeOptions"
|
||||
style="width: 300px;"
|
||||
noClear
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div v-if="workingModeSelect != null && workingModeSelect.id == 0">
|
||||
<elite-parameter-recording-elite-a-c-c :ref="'CurrentControl'" :deviceID="deviceID" :deviceName="deviceName"/>
|
||||
</div>
|
||||
</va-tree-root>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { taskInfo } from '@/data/task/TaskInfo'
|
||||
import EliteParameterRecordingEliteACC from '../parameter/item/AnalogCurrentControl/EliteParameterRecordingEliteACC'
|
||||
|
||||
export default {
|
||||
name: 'EliteParameterRecordingEliteTrigger',
|
||||
components: {
|
||||
EliteParameterRecordingEliteACC,
|
||||
},
|
||||
props: {
|
||||
deviceID: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
deviceName: {
|
||||
type: String,
|
||||
default: 'Elite',
|
||||
},
|
||||
},
|
||||
created () {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
workingModeSelect: {
|
||||
id: -1,
|
||||
description: 'Init',
|
||||
},
|
||||
workingModeOptions: [
|
||||
{
|
||||
id: 0,
|
||||
description: 'Analog Current Control (ACC)',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
mqtt: {
|
||||
},
|
||||
methods: {
|
||||
mqttPub: function (topic, mes) {
|
||||
this.$mqtt.publish(topic, mes)
|
||||
},
|
||||
// Array[String of Parameter Nmae, Value]
|
||||
deviceParameterChange: function (e) {
|
||||
console.log('e[0],e[1]', e[0], ',', e[1])
|
||||
this.mqttPub(taskInfo.getTaskInfo().controllerID + '_user', JSON.stringify({
|
||||
header: 'device_parameter/0',
|
||||
device: taskInfo.getRawDeviceID(this.deviceID),
|
||||
parameter: e[0],
|
||||
content: e[1],
|
||||
}))
|
||||
},
|
||||
refresh () {
|
||||
this.workingModeSelect = this.workingModeOptions[taskInfo.getDeviceInfo(this.deviceID).parameterSet.MODE]
|
||||
if (this.workingModeSelect != null) {
|
||||
this.workingModeSelectChange(this.workingModeSelect)
|
||||
}
|
||||
|
||||
if (this.$refs.CurrentControl != null) {
|
||||
this.$refs.CurrentControl.refresh()
|
||||
}
|
||||
},
|
||||
workingModeSelectChange (val) {
|
||||
if (this.workingModeSelect.id === -1) {
|
||||
return false
|
||||
}
|
||||
|
||||
this.workingModeSelect = val
|
||||
|
||||
if (this.workingModeSelect.id !== taskInfo.getDeviceInfo(this.deviceID).parameterSet.MODE) {
|
||||
this.deviceParameterChange(['MODE', this.workingModeSelect.id])
|
||||
console.log(this.workingModeSelect.id, this.workingModeSelect.description)
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.refresh()
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
destroyed () {
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -1,13 +1,10 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<elite-parameter-recording v-if="eliteVer=='1'" :ref="'rec_ref_1'" :deviceID="deviceID"/>
|
||||
<!-- <elite-parameter-recording-elitezm15 :ref="'rec_ref'" :deviceID="deviceID"/> -->
|
||||
<!--<elite-parameter-recording :ref="'rec_ref'" :deviceID="deviceID"/>-->
|
||||
<elite-parameter-recording-elitezm15 v-else-if="eliteVer=='2'" :ref="'rec_ref_2'" :deviceID="deviceID"/>
|
||||
<elite-parameter-recording-elite-e-i-s v-else-if="eliteVer=='4'" :ref="'rec_ref_4'" :deviceID="deviceID"/>
|
||||
<elite-parameter-recording-elite-trigger v-else-if="eliteVer=='5'" :ref="'rec_ref_5'" :deviceID="deviceID"/>
|
||||
<elite-parameter-recording-elite-e-i-s v-else :ref="'rec_ref_4'" :deviceID="deviceID"/>
|
||||
<!--<elite-parameter-recording :ref="'rec_ref'" :deviceID="deviceID"/>-->
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -16,6 +13,7 @@
|
||||
import EliteParameterRecording from './EliteParameterRecording'
|
||||
import EliteParameterRecordingElitezm15 from './EliteParameterRecordingElitezm15'
|
||||
import EliteParameterRecordingEliteEIS from './EliteParameterRecordingEliteEIS'
|
||||
import EliteParameterRecordingEliteTrigger from './EliteParameterRecordingEliteTrigger'
|
||||
import { taskInfo } from '../../../../data/task/TaskInfo'
|
||||
|
||||
export default {
|
||||
@@ -24,6 +22,7 @@ export default {
|
||||
EliteParameterRecording,
|
||||
EliteParameterRecordingElitezm15,
|
||||
EliteParameterRecordingEliteEIS,
|
||||
EliteParameterRecordingEliteTrigger,
|
||||
},
|
||||
props: {
|
||||
deviceID: {
|
||||
@@ -53,6 +52,10 @@ export default {
|
||||
} else if (JSON.stringify(ver.slice(0, 4)) === JSON.stringify([0, 2, 1, 7])) {
|
||||
this.eliteVer = '3' // megafly
|
||||
// console.log('3:', JSON.stringify(ver.slice(0, 4)), ',', JSON.stringify([0, 2, 1, 7]))
|
||||
} else if (JSON.stringify(ver.slice(0, 4)) === JSON.stringify([0, 4, 1, 0])) {
|
||||
this.eliteVer = '4' // eis
|
||||
} else if (JSON.stringify(ver.slice(0, 4)) === JSON.stringify([0, 5, 1, 0])) {
|
||||
this.eliteVer = '5' // trigger
|
||||
} else {
|
||||
this.eliteVer = '4'
|
||||
}
|
||||
@@ -95,6 +98,13 @@ export default {
|
||||
}
|
||||
})
|
||||
break
|
||||
case '5':
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.rec_ref_5 != null) {
|
||||
this.$refs.rec_ref_5.refresh()
|
||||
}
|
||||
})
|
||||
break
|
||||
}
|
||||
// this.$nextTick(() => {
|
||||
// if (this.$refs.rec_ref != null) {
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
<template>
|
||||
<div class="row flex sm12 xl12 md12 xs12 my-0 py-0 align--center">
|
||||
<div class="flex sm3 xl3 md3 xs3 px-0 mx-0 my-0 py-0">
|
||||
<p class="display-6"> CHANNEL {{ channel }} <p/>
|
||||
</div>
|
||||
<div class="flex sm3 xl3 md3 xs3 px-0 mx-0 my-0 py-0">
|
||||
<va-input
|
||||
@mouseleave.native="itemChange(currentNumberInput)"
|
||||
@keyup.enter="itemChange(currentNumberInput)"
|
||||
@blur="itemChange(currentNumberInput)"
|
||||
v-model="currentNumberInput"
|
||||
:disabled="!channelToggle"
|
||||
class="mb-0"
|
||||
>
|
||||
<p slot="append" style="margin-right: 0;" small>
|
||||
mA
|
||||
</p>
|
||||
</va-input>
|
||||
</div>
|
||||
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0 my-0 py-0">
|
||||
<va-toggle v-model="channelToggle" style="float: right;" small @click.native="switchToggle()"/>
|
||||
</div>
|
||||
<div class="flex sm12 xl12 md12 xs12 my-1 py-1" :key="inputeKey">
|
||||
<va-slider
|
||||
@mouseup.native="itemChange(currentNumber)"
|
||||
@mouseleave.native="itemChange(currentNumber)"
|
||||
@touchend.native="itemChange(currentNumber)"
|
||||
pins
|
||||
:min="0"
|
||||
:max="200"
|
||||
value-visible
|
||||
:step="10"
|
||||
:disabled="!channelToggle"
|
||||
v-model="currentNumber"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { taskInfo } from '@/data/task/TaskInfo'
|
||||
|
||||
export default {
|
||||
name: 'ChannelBlock',
|
||||
components: {
|
||||
},
|
||||
props: {
|
||||
deviceID: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
channel: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
parameterName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
created () {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
inputeKey: 0,
|
||||
channelToggle: taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1)] === 1,
|
||||
currentNumberInput: '0',
|
||||
currentNumber: 0,
|
||||
}
|
||||
},
|
||||
mqtt: {
|
||||
},
|
||||
methods: {
|
||||
mqttPub: function (topic, mes) {
|
||||
this.$mqtt.publish(topic, mes)
|
||||
},
|
||||
itemChange (val) {
|
||||
this.currentNumberInput = parseFloat(val).toFixed(1)
|
||||
this.currentNumber = parseFloat(this.currentNumberInput)
|
||||
if (this.currentNumber !== parseFloat(taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1) + '_current']) / 250) {
|
||||
this.$emit('parameterChange', [this.parameterName + String(this.channel - 1) + '_current', String(this.currentNumberInput * 250)])
|
||||
}
|
||||
this.inputeKey++
|
||||
},
|
||||
switchToggle () {
|
||||
const serverStatus = taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1)] === 1
|
||||
if (this.channelToggle !== serverStatus) {
|
||||
this.$emit('parameterChange', [this.parameterName + String(this.channel - 1), this.channelToggle])
|
||||
}
|
||||
this.inputeKey++
|
||||
},
|
||||
refresh () {
|
||||
this.channelToggle = taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1)] === 1
|
||||
this.currentNumber = parseFloat(taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1) + '_current']) / 250
|
||||
this.currentNumberInput = String(this.currentNumber)
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.refresh()
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
destroyed () {
|
||||
},
|
||||
}
|
||||
</script>
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-for="channel in channelList" :key="channel">
|
||||
<channel-block :ref="'ChannelBlock'" :deviceID="deviceID" :channel="channel" :parameterName="'ACC_a_out'" @parameterChange="deviceParameterChange($event)"/>
|
||||
</div>
|
||||
|
||||
<va-tree-root>
|
||||
<va-tree-category
|
||||
style="font-size: 20px;"
|
||||
:label="'Advanced Setting'">
|
||||
<va-tree-node>
|
||||
<div v-for="triggerIndex in triggerList" :key="'trigger_' + triggerIndex">
|
||||
<trigger-block :ref="'TriggerBlock'" :deviceID="deviceID" :triggerIndex="triggerIndex" :parameterName="''" @parameterChange="deviceParameterChange($event)"/>
|
||||
</div>
|
||||
<div v-for="timerIndex in timerList" :key="'timer_' + timerIndex">
|
||||
<timer-block :ref="'TimerBlock'" :deviceID="deviceID" :timerIndex="timerIndex" :parameterName="''" :channelList="channelList" @parameterChange="deviceParameterChange($event)"/>
|
||||
</div>
|
||||
</va-tree-node>
|
||||
</va-tree-category>
|
||||
</va-tree-root>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { taskInfo } from '@/data/task/TaskInfo'
|
||||
import ChannelBlock from './ChannelBlock'
|
||||
import TriggerBlock from './TriggerBlock'
|
||||
import TimerBlock from './TimerBlock'
|
||||
|
||||
export default {
|
||||
name: 'EliteParameterRecordingEliteACC',
|
||||
components: {
|
||||
ChannelBlock,
|
||||
TriggerBlock,
|
||||
TimerBlock,
|
||||
},
|
||||
props: {
|
||||
deviceID: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
deviceName: {
|
||||
type: String,
|
||||
default: 'Elite',
|
||||
},
|
||||
},
|
||||
created () {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
channelList: [1, 2, 3, 4],
|
||||
triggerList: [1, 2],
|
||||
timerList: [1, 2],
|
||||
}
|
||||
},
|
||||
mqtt: {
|
||||
},
|
||||
methods: {
|
||||
mqttPub: function (topic, mes) {
|
||||
this.$mqtt.publish(topic, mes)
|
||||
},
|
||||
// Array[String of Parameter Nmae, Value]
|
||||
deviceParameterChange: function (e) {
|
||||
console.log('e[0],e[1]', e[0], ',', e[1])
|
||||
this.mqttPub(taskInfo.getTaskInfo().controllerID + '_user', JSON.stringify({
|
||||
header: 'device_parameter/0',
|
||||
device: taskInfo.getRawDeviceID(this.deviceID),
|
||||
parameter: e[0],
|
||||
content: e[1],
|
||||
}))
|
||||
},
|
||||
refresh () {
|
||||
if (this.$refs.ChannelBlock != null) {
|
||||
for (let i = 0; i < this.$refs.ChannelBlock.length; i++) {
|
||||
this.$refs.ChannelBlock[i].refresh()
|
||||
}
|
||||
}
|
||||
if (this.$refs.TriggerBlock != null) {
|
||||
for (let i = 0; i < this.$refs.TriggerBlock.length; i++) {
|
||||
this.$refs.TriggerBlock[i].refresh()
|
||||
}
|
||||
}
|
||||
if (this.$refs.TimerBlock != null) {
|
||||
for (let i = 0; i < this.$refs.TimerBlock.length; i++) {
|
||||
this.$refs.TimerBlock[i].refresh()
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
destroyed () {
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.long-list {
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,88 @@
|
||||
<template>
|
||||
<div class="row flex sm12 xl12 md12 xs12 my-0 py-0 align--center">
|
||||
<div class="flex sm3 xl3 md3 xs3 px-0 mx-0 my-0 py-0">
|
||||
<p class="display-6"> TIMER {{ timerIndex }} <p/>
|
||||
</div>
|
||||
<div class="flex sm7 xl7 md7 xs7 px-0 mx-0 my-0 py-0">
|
||||
<va-select
|
||||
v-model="selectMultipleTimer"
|
||||
textBy="name"
|
||||
:options="timerOptions"
|
||||
:disabled="!timerToggle"
|
||||
multiple
|
||||
/>
|
||||
</div>
|
||||
<div class="flex sm2 xl2 md2 xs2 px-0 mx-0 my-0 py-0">
|
||||
<va-toggle v-model="timerToggle" style="float: right;" small @click.native="switchToggle()"/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
// import { taskInfo } from '@/data/task/TaskInfo'
|
||||
|
||||
export default {
|
||||
name: 'TimerBlock',
|
||||
components: {
|
||||
},
|
||||
props: {
|
||||
deviceID: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
timerIndex: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
parameterName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
channelList: {
|
||||
type: Array,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
created () {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
inputeKey: 0,
|
||||
selectMultipleTimer: [],
|
||||
timerOptions: [],
|
||||
timerToggle: false,
|
||||
}
|
||||
},
|
||||
mqtt: {
|
||||
},
|
||||
methods: {
|
||||
mqttPub: function (topic, mes) {
|
||||
this.$mqtt.publish(topic, mes)
|
||||
},
|
||||
switchToggle () {
|
||||
// const serverStatus = taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1)] ? true : false
|
||||
// if (this.channelToggle !== serverStatus) {
|
||||
// this.$emit('parameterChange', [this.parameterName + String(this.channel - 1), this.channelToggle])
|
||||
// }
|
||||
// this.inputeKey++
|
||||
},
|
||||
refresh () {
|
||||
// this.selectMultipleTimer
|
||||
this.timerToggle = false
|
||||
// this.timerToggle = taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1) + '_current']
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.timerOptions = []
|
||||
this.channelList.forEach(channel => {
|
||||
this.timerOptions.push({ id: channel, name: 'CH' + channel })
|
||||
})
|
||||
this.refresh()
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
destroyed () {
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,90 @@
|
||||
<template>
|
||||
<div class="row flex sm12 xl12 md12 xs12 my-0 py-0 align--center">
|
||||
<div class="flex sm3 xl3 md3 xs3 px-0 mx-0 my-0 py-0">
|
||||
<p class="display-6"> TRIGGER {{ triggerIndex }} <p/>
|
||||
</div>
|
||||
<div class="flex sm8 xl8 md8 xs8 px-0 mx-0 my-0 py-0">
|
||||
<va-radio-button
|
||||
v-for="(option, index) in optionTrigger"
|
||||
:key="index"
|
||||
style="float: left;"
|
||||
v-model="selectTrigger"
|
||||
:option="optionTrigger[index]"
|
||||
:label="optionTrigger[index]"
|
||||
:disabled="!triggerToggle"
|
||||
@click.native.stop="paraSend()"
|
||||
/>
|
||||
</div>
|
||||
<div class="flex sm1 xl1 md1 xs1 px-0 mx-0 my-0 py-0">
|
||||
<va-toggle v-model="triggerToggle" style="float: right;" small @click.native="switchToggle()"/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
// import { taskInfo } from '@/data/task/TaskInfo'
|
||||
|
||||
export default {
|
||||
name: 'TriggerBlock',
|
||||
components: {
|
||||
},
|
||||
props: {
|
||||
deviceID: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
triggerIndex: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
parameterName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
created () {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
inputeKey: 0,
|
||||
selectTrigger: 'RISING',
|
||||
optionTrigger: [
|
||||
'RISING',
|
||||
'FALLING',
|
||||
],
|
||||
triggerToggle: false,
|
||||
}
|
||||
},
|
||||
mqtt: {
|
||||
},
|
||||
methods: {
|
||||
mqttPub: function (topic, mes) {
|
||||
this.$mqtt.publish(topic, mes)
|
||||
},
|
||||
switchToggle () {
|
||||
// const serverStatus = taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1)] ? true : false
|
||||
// if (this.channelToggle !== serverStatus) {
|
||||
// this.$emit('parameterChange', [this.parameterName + String(this.channel - 1), this.channelToggle])
|
||||
// }
|
||||
// this.inputeKey++
|
||||
},
|
||||
paraSend () {
|
||||
|
||||
},
|
||||
refresh () {
|
||||
this.selectTrigger = 'RISING'
|
||||
this.triggerToggle = false
|
||||
// this.selectTrigger = taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1)] ? true : false
|
||||
// this.triggerToggle = taskInfo.getDeviceInfo(this.deviceID).parameterSet[this.parameterName + String(this.channel - 1) + '_current']
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.refresh()
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
destroyed () {
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -232,6 +232,15 @@ function newParameterSet () {
|
||||
SCALE: 0,
|
||||
PPD: 0,
|
||||
RTIA: 0,
|
||||
// Elite Trigger
|
||||
ACC_a_out0: 0,
|
||||
ACC_a_out0_current: 0,
|
||||
ACC_a_out1: 0,
|
||||
ACC_a_out1_current: 0,
|
||||
ACC_a_out2: 0,
|
||||
ACC_a_out2_current: 0,
|
||||
ACC_a_out3: 0,
|
||||
ACC_a_out3_current: 0,
|
||||
// Global
|
||||
_DEVICE_ADDR_: '',
|
||||
_DEVICE_NAME_: '',
|
||||
|
||||
Reference in New Issue
Block a user