14:25, EEST
June 21, 2016
Dear all,
I am using the Prosys library for quit some time now with great satisfaction. Recently I switched to using LiveData (Android architecture components) to use viewmodels and separate business logic from UI. It appears that if I call the “viewmodel.setVariable()” from within the onDataChange (MonitoredDataItemListener) the viewmodel.setVariable() is called but the change in value is never observed. Some code to explain:
public class OpcUaViewModel extends ViewModel {
private MutableLiveData integratorOutput;
public MutableLiveData getIntegratorOutput() {
if (integratorOutput == null) {
integratorOutput = new MutableLiveData();
setIntegratorOutput(0.0);
}
return integratorOutput;
}
public void setIntegratorOutput(Double d){
integratorOutput.setValue(d);
}
}
This OpcUaViewModel object is declared in OnCreate as
OpcUaViewModel viewModel = ViewModelProviders.of(this).get(OpcUaViewModel.class);
Then in onDataChange(MonitoredDataItem monitoredDataItem, DataValue dataValue, final DataValue dataValue1) the following is called:
viewModel.setIntegratorOutput(dataValue1.getValue().doubleValue());
Hope somebody can point me in the right direction on this!
Carsten
15:02, EEST
April 3, 2012
Hi,
I have one idea, but that’s about it. I would consult the documentation of LiveData.
Generally all UI toolkits are single-threaded and all updates must be done in the context of a “Platform” Thread.
The onDataChange is called on the PublishTask Thread of the UaClient, therefore at some point before updating the UI typically there would be a “PlatformThread”.runLater/invokeLater etc. call.
The documentaion of the LiveData would say this (so it would seem all updated must be done in the main thread):
https://developer.android.com/topic/libraries/architecture/livedata#update_livedata_objects
“Note: You must call the setValue(T) method to update the LiveData object from the main thread. If the code is executed in a worker thread, you can use the postValue(T) method instead to update the LiveData object.”
Most Users Ever Online: 1919
Currently Online:
18 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Heikki Tahvanainen: 402
hbrackel: 144
rocket science: 88
pramanj: 86
Francesco Zambon: 83
Ibrahim: 78
Sabari: 62
kapsl: 57
gjevremovic: 49
Xavier: 43
Member Stats:
Guest Posters: 0
Members: 736
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1524
Posts: 6450
Newest Members:
kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger, howardkennerley, ThomassnismModerators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0
Administrators: admin: 1