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

{{{



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

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

#add_namespace(name) ⇒ Object

{{{



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

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 self;
}

#debugObject

{{{



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

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

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

#debug=(val) ⇒ Object

{{{



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

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

{{{



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

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

{{{



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

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

{{{



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

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

{{{



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

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

{{{



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

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)));
}