1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/web/ synced 2025-03-09 00:00:01 +01:00

Button widget toggles input signal #218

This commit is contained in:
Sonja Happ 2020-06-02 17:16:13 +02:00
parent 11d3f11e2f
commit ce26514758
2 changed files with 20 additions and 5 deletions

View file

@ -109,7 +109,7 @@ class ICDataStore extends ReduceStore {
// update message properties
state[action.ic].input.timestamp = Date.now();
state[action.ic].input.sequence++;
state[action.ic].input.values[action.signal] = action.data;
state[action.ic].input.values[action.signal-1] = action.data;
ICDataDataManager.send(state[action.ic].input, action.ic);

View file

@ -72,8 +72,12 @@ class Widget extends React.Component {
for (let id of props.data.signalIDs){
let signal = signals.find(s => s.id === id);
let config = configs.find(m => m.id === signal.configID);
icIDs[signal.id] = config.icID;
if (signal !== undefined) {
let config = configs.find(m => m.id === signal.configID);
if (config !== undefined){
icIDs[signal.id] = config.icID;
}
}
}
return {
@ -90,10 +94,21 @@ class Widget extends React.Component {
inputDataChanged(widget, data) {
// The following assumes that a widget modifies/ uses exactly one signal
// get the signal with the selected signal ID
let signalID = widget.signalIDs[0];
let signal = this.state.signals.filter(s => s.id === signalID)
if (signal.length === 0){
console.warn("Unable to send signal for signal ID", signalID, ". Signal not found.");
return;
}
// determine ID of infrastructure component related to signal[0]
// Remark: there is only one selected signal for an input type widget
let icID = this.state.icIDs[signal[0].id];
AppDispatcher.dispatch({
type: 'icData/inputChanged',
ic: this.state.icIDs[0],
signal: this.state.signals[0].index,
ic: icID,
signal: signal[0].index,
data
});
}