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

{{{



799
800
801
802
803
804
805
806
807
808
809
# File 'ext/opcua/server/server.c', line 799

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

{{{



819
820
821
822
823
824
825
826
827
828
829
830
831
832
# File 'ext/opcua/server/server.c', line 819

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

{{{



848
849
850
851
852
853
# File 'ext/opcua/server/server.c', line 848

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

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

#debug=(val) ⇒ Object

{{{



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

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

{{{



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

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

{{{



867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
# File 'ext/opcua/server/server.c', line 867

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

{{{



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

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

{{{



838
839
840
841
842
# File 'ext/opcua/server/server.c', line 838

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

{{{



810
811
812
813
814
815
816
817
818
# File 'ext/opcua/server/server.c', line 810

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

{{{



833
834
835
836
837
# File 'ext/opcua/server/server.c', line 833

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