Server回调信息模型中变量不成功的问题

我发现客户端里(我使用的UAExpert),节点id是session id,随机生成的,我在信息模型里定义的是node id(1,2226),导致我在Server里通过node id回调变量时不成功,值没有变化。这还是我上一次提问的问题,怎么解决?

问题相关代码,请勿粘贴截图 /* Ready - ns=1;i=2226 */

static UA_StatusCode function_EliteRoboticsNS_51_begin(UA_Server server, UA_UInt16 ns) {
UA_StatusCode retVal = UA_STATUSCODE_GOOD;
UA_VariableAttributes attr = UA_VariableAttributes_default;
attr.minimumSamplingInterval = 0.000000;
attr.userAccessLevel = 1;
attr.accessLevel = 3;
/* Value rank inherited */
attr.valueRank = -1;
attr.dataType = UA_NODEID_NUMERIC(ns[0], 1);
UA_Boolean *variablenode_ns_1_i_2226_variant_DataContents = UA_Boolean_new();
if (!variablenode_ns_1_i_2226_variant_DataContents) return UA_STATUSCODE_BADOUTOFMEMORY;
UA_Boolean_init(variablenode_ns_1_i_2226_variant_DataContents);
variablenode_ns_1_i_2226_variant_DataContents = (UA_Boolean) true;
UA_Variant_setScalar(&attr.value, variablenode_ns_1_i_2226_variant_DataContents, &UA_TYPES[UA_TYPES_BOOLEAN]);
attr.displayName = UA_LOCALIZEDTEXT("", "Ready");
#ifdef UA_ENABLE_NODESET_COMPILER_DESCRIPTIONS
attr.description = UA_LOCALIZEDTEXT("", "Ready");
#endif
retVal |= UA_Server_addNode_begin(server, UA_NODECLASS_VARIABLE,
UA_NODEID_NUMERIC(ns[1], 2226),
UA_NODEID_NUMERIC(ns[1], 2224),
UA_NODEID_NUMERIC(ns[0], 47),
UA_QUALIFIEDNAME(ns[1], "Ready"),
UA_NODEID_NUMERIC(ns[0], 63),
(const UA_NodeAttributes
)&attr, &UA_TYPES[UA_TYPES_VARIABLEATTRIBUTES],NULL, NULL);
UA_Boolean_delete(variablenode_ns_1_i_2226_variant_DataContents);
retVal |= UA_Server_addReference(server, UA_NODEID_NUMERIC(ns[1], 2226), UA_NODEID_NUMERIC(ns[0], 37), UA_EXPANDEDNODEID_NUMERIC(ns[0], 78), true);
return retVal;
}
//代码来自NS.c

运行结果及报错内容

我的解答思路和尝试过的方法

我想要达到的结果