Class: OPCUA::Server::ObjectVarNode
- Defined in:
- ext/opcua/server/server.c
Instance Method Summary collapse
-
#delete! ⇒ Object
{{{.
-
#value ⇒ Object
{{{.
-
#value=(value) ⇒ Object
{{{.
Methods inherited from Node
#description, #description=, #exists?, #id, #name, #to_s
Instance Method Details
#delete! ⇒ Object
{{{
872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 |
# File 'ext/opcua/server/server.c', line 872
static VALUE node_delete(VALUE self) { //{{{
node_struct *ns;
Data_Get_Struct(self, node_struct, ns);
if (!ns->exists) rb_raise(rb_eRuntimeError, "Node does not exist anymore.");
UA_StatusCode retval = UA_Server_deleteNode(ns->master->master, ns->id, true);
if (retval == UA_STATUSCODE_GOOD) {
ns->exists = false;
return Qtrue;
}
return Qfalse;
}
|
#value ⇒ Object
{{{
853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 |
# File 'ext/opcua/server/server.c', line 853
static VALUE node_value(VALUE self) { //{{{
node_struct *ns;
Data_Get_Struct(self, node_struct, ns);
if (!ns->exists) rb_raise(rb_eRuntimeError, "Node does not exist anymore.");
UA_Variant value;
UA_Variant_init(&value);
UA_StatusCode retval = UA_Server_readValue(ns->master->master, ns->id, &value);
VALUE ret = Qnil;
if (retval == UA_STATUSCODE_GOOD) {
ret = extract_value(value);
}
UA_Variant_clear(&value);
return rb_ary_entry(ret,0);
}
|
#value=(value) ⇒ Object
{{{
833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 |
# File 'ext/opcua/server/server.c', line 833
static VALUE node_value_set(VALUE self, VALUE value) { //{{{
node_struct *ns;
Data_Get_Struct(self, node_struct, ns);
if (!ns->exists) rb_raise(rb_eRuntimeError, "Node does not exist anymore.");
UA_Variant variant;
if (value_to_variant(value,&variant,-1)) {
// printf("-----------------------------------------%ld\n",variant.arrayDimensionsSize);
if (variant.arrayDimensionsSize > 0) {
UA_Server_writeValueRank(ns->master->master, ns->id, variant.arrayDimensionsSize);
UA_Variant uaArrayDimensions;
UA_Variant_setArray(&uaArrayDimensions, variant.arrayDimensions, variant.arrayDimensionsSize, &UA_TYPES[UA_TYPES_UINT32]);
UA_Server_writeArrayDimensions(ns->master->master, ns->id, uaArrayDimensions);
}
UA_Server_writeValue(ns->master->master, ns->id, variant);
UA_Variant_deleteMembers(&variant);
}
return self;
}
|