Я пытался написать как String, так и LocalizedText (два основных типа данных, используемых на сервере), я не получаю ошибок, но когда я снова читаю узел через одну секунду после вызова, ничего не изменилось (и я не вижу новые значения при использовании OPC Inspector) Моя функция writeOpcValue очень проста и основана на функциях, поставляемых с milo:
/*Writes a String to the nodeId given as parameter*/
public void writeOpcValue(OpcUaClient client, NodeId nodeId, String value, boolean logValue)
{
//client.writeValue(nodeId, DataValue.valueOnly(new Variant(value)));
VariableNode node = client.getAddressSpace().createVariableNode(nodeId);
node.writeValue(DataValue.valueOnly(new Variant(value)));
if (logValue)
logger.info("Wrote {} to nodeId {}", value, nodeId);
}
Первая строка закомментирована, потому что я пробовал оба способа, но ничего не изменилось. Когда я использую эту функцию с моим собственным демонстрационным сервером, она работает отлично, но на "настоящем" сервере это не так. Я что-то делаю не так или нужно что-то сделать на стороне сервера? Следует отметить, что у меня нет доступа к коду или пространству имен сервера, и на самом деле он даже не написан на Java, что до сих пор не вызывало никаких проблем. Может быть, эти узлы доступны только для чтения? В этом случае я ожидал бы увидеть где-нибудь исключение или ошибку.
Заранее благодарю за любую помощь