Class: OPCUA::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/opcua/server.rb,
ext/opcua/server/server.c

Defined Under Namespace

Classes: Node, ObjectMethodNode, ObjectNode, ObjectReferenceNode, ObjectVarNode, ReferenceSubNode, ReferenceTopNode, TypeSubNode, TypeTopNode

Instance Method Summary collapse

Constructor Details

#initializeObject

{{{



832
833
834
835
836
837
838
839
840
841
842
# File 'ext/opcua/server/server.c', line 832

static VALUE server_init(VALUE self) { //{{{
  server_struct *pss;

  Data_Get_Struct(self, server_struct, pss);

  UA_StatusCode retval = UA_Server_run_startup(pss->master);
  if (retval != UA_STATUSCODE_GOOD)
    rb_raise(rb_eRuntimeError, "Server could not be started.");

  return self;
}

Instance Method Details

#active_namespaceObject

{{{



917
918
919
920
921
# File 'ext/opcua/server/server.c', line 917

static VALUE server_active_namespace(VALUE self) { //{{{
  server_struct *pss;
  Data_Get_Struct(self, server_struct, pss);
  return UINT2NUM(pss->default_ns);
}

#active_namespace=(val) ⇒ Object

{{{



922
923
924
925
926
927
928
929
930
931
# File 'ext/opcua/server/server.c', line 922

static VALUE server_active_namespace_set(VALUE self, VALUE val) { //{{{
  server_struct *pss;
  Data_Get_Struct(self, server_struct, pss);

  if (NIL_P(val) || TYPE(val) != T_FIXNUM)
    rb_raise(rb_eTypeError, "namespace is not an integer");

  pss->default_ns = NUM2UINT(val);
  return self;
}

#add_namespace(name) ⇒ Object

{{{



852
853
854
855
856
857
858
859
860
861
862
863
864
865
# File 'ext/opcua/server/server.c', line 852

static VALUE server_add_namespace(VALUE self, VALUE name) { //{{{
  server_struct *pss;

  Data_Get_Struct(self, server_struct, pss);

  VALUE str;
  str = rb_obj_as_string(name);
  if (NIL_P(str) || TYPE(str) != T_STRING)
    rb_raise(rb_eTypeError, "cannot convert obj to string");
  char *nstr = (char *)StringValuePtr(str);

  pss->default_ns = UA_Server_addNamespace(pss->master, nstr);
  return INT2NUM(pss->default_ns);
}

#debugObject

{{{



881
882
883
884
885
886
# File 'ext/opcua/server/server.c', line 881

static VALUE server_debug(VALUE self) { //{{{
  server_struct *pss;
  Data_Get_Struct(self, server_struct, pss);

  return (pss->debug) ? Qtrue : Qfalse;
}

#debug=(val) ⇒ Object

{{{



887
888
889
890
891
892
893
894
895
896
897
898
899
# File 'ext/opcua/server/server.c', line 887

static VALUE server_debug_set(VALUE self, VALUE val) { //{{{
  server_struct *pss;
  Data_Get_Struct(self, server_struct, pss);

  if (val == Qtrue) {
    pss->config->logger = UA_Log_Stdout_;
    pss->debug = Qtrue;
  } else {
    pss->config->logger = UA_Log_None_;
    pss->debug = Qfalse;
  }
  return self;
}

#get(*args) ⇒ Object

{{{



654
655
656
657
658
659
660
661
662
# File 'ext/opcua/server/server.c', line 654

def get(*a)
  if a.length == 1 && a[0].to_s =~ /ns=(\d+);i=(.*)/
    get_base $1.to_i, $2.to_i
  elsif a.length == 1 && a[0].to_s =~ /ns=(\d+);s=(.*)/
    get_base $1.to_i, $2
  else
    get_base *a
  end
end

#get_baseObject



10
# File 'lib/opcua/server.rb', line 10

alias_method :get_base, :get

#namespacesObject

{{{



900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
# File 'ext/opcua/server/server.c', line 900

static VALUE server_namespaces(VALUE self) { //{{{
  server_struct *pss;
  Data_Get_Struct(self, server_struct, pss);

  UA_Variant value;
  UA_Variant_init(&value);
  UA_StatusCode retval = UA_Server_readValue(pss->master, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_NAMESPACEARRAY), &value);

  VALUE ret = Qnil;
  if (retval == UA_STATUSCODE_GOOD) {
    ret = extract_value(value);
  }

  UA_Variant_clear(&value);
  RB_OBJ_FREEZE(ret);
  return rb_ary_entry(ret,0);
}

#objectsObject

{{{



876
877
878
879
880
# File 'ext/opcua/server/server.c', line 876

static VALUE server_objects(VALUE self) { //{{{
  server_struct *pss;
  Data_Get_Struct(self, server_struct, pss);
  return node_wrap(cObjectNode, node_alloc(pss, UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER)));
}

#referencesObject

{{{



871
872
873
874
875
# File 'ext/opcua/server/server.c', line 871

static VALUE server_references(VALUE self) { //{{{
  server_struct *pss;
  Data_Get_Struct(self, server_struct, pss);
  return node_wrap(cReferenceTopNode, node_alloc(pss, UA_NODEID_NUMERIC(0, UA_NS0ID_NONHIERARCHICALREFERENCES)));
}

#runObject

{{{



843
844
845
846
847
848
849
850
851
# File 'ext/opcua/server/server.c', line 843

static VALUE server_run(VALUE self) { //{{{
  server_struct *pss;

  Data_Get_Struct(self, server_struct, pss);

  UA_UInt16 timeout = UA_Server_run_iterate(pss->master, false);

  return rb_float_new(timeout/1000.0);
}

#typesObject

{{{



866
867
868
869
870
# File 'ext/opcua/server/server.c', line 866

static VALUE server_types(VALUE self) { //{{{
  server_struct *pss;
  Data_Get_Struct(self, server_struct, pss);
  return node_wrap(cTypeTopNode, node_alloc(pss, UA_NODEID_NUMERIC(0, UA_NS0ID_BASEOBJECTTYPE)));
}