49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
(function(){
|
|
|
|
Vue.component('sdo-panel',{
|
|
props: {
|
|
subscribed: {
|
|
type: Array,
|
|
required: true,
|
|
default: []
|
|
},
|
|
},
|
|
computed: {
|
|
},
|
|
data: function(){
|
|
return {}
|
|
},
|
|
methods: {
|
|
promptNewValue: function(slave, index, subindex, datatype, initialValue){
|
|
console.log(index, subindex, datatype, initialValue);
|
|
let newValue = window.prompt(`new value for ${slave}:${index.toString(16)}.${subindex}`, initialValue);
|
|
console.log(newValue);
|
|
if (newValue)
|
|
{
|
|
this.$emit("write", { Slave: slave, Index: index, SubIndex: subindex, Value: newValue});
|
|
}
|
|
}
|
|
},
|
|
template: `
|
|
<div class="panel">
|
|
<h2>SDO Panel</h2>
|
|
<article v-for="sdo,key in subscribed">
|
|
<h2>{{sdo.Index.toString(16).toUpperCase()}} {{ sdo.Name }} ({{ sdo.DataType}} / M:{{ sdo.MaxSubIndex }})</h2>
|
|
<ul>
|
|
<fieldset
|
|
v-for="sdovalue in sdo.Values"
|
|
>
|
|
<span>.{{sdovalue.SubIndex}} {{ sdovalue.Name }} ({{ sdovalue.DataType}})</span>
|
|
<div
|
|
class="value"
|
|
@dblclick="promptNewValue(sdo.SlaveId, sdo.Index, sdovalue.SubIndex, sdovalue.DataType, sdovalue.Value);"
|
|
>{{ sdovalue.Value }}</div>
|
|
</fieldset>
|
|
</ul>
|
|
</article>
|
|
</div>
|
|
`,
|
|
});
|
|
|
|
|
|
})(); |