Exemple #1
0
 public ClientContext(RobotRaconteurNode node) : base(node)
 {
     //rec_event = new AutoResetEvent(false);
     stubs = new Dictionary <string, ServiceStub>();
     DynamicServiceFactory_ = node.DynamicServiceFactory;
     UsePulledServiceTypes  = DynamicServiceFactory_ != null;
 }
Exemple #2
0
        public static com.robotraconteur.datetime.DateTimeLocal LocalNow(RobotRaconteurNode node = null, DeviceInfo info = null)
        {
            if (node == null)
            {
                node = RobotRaconteurNode.s;
            }
            var now       = node.NowUTC;
            var epoch_now = now - (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc));
            var ret       = new com.robotraconteur.datetime.DateTimeLocal();

            ret.seconds     = (long)Math.Floor(epoch_now.TotalSeconds);
            ret.nanoseconds = (int)((epoch_now - TimeSpan.FromSeconds(ret.seconds)).Ticks * ((long)1e6 / TimeSpan.TicksPerMillisecond));
            var utc_offset = TimeZoneInfo.Local.GetUtcOffset(now);

            ret.seconds += (long)utc_offset.TotalSeconds;
            var clock_info = new com.robotraconteur.datetime.ClockInfo();

            clock_info.clock_type = (int)com.robotraconteur.datetime.ClockTypeCode.default_;
            var device_uuid_bytes = info?.device?.uuid.uuid_bytes;

            clock_info.clock_uuid.uuid_bytes = device_uuid_bytes ?? new byte[16];
            ret.clock_info         = clock_info;
            ret.utc_offset_seconds = (int)utc_offset.TotalSeconds;
            ret.timezone_name      = TimeZoneInfo.Local.Id;
            return(ret);
        }
        public override MessageElementStructure PackStructure(Object s)
        {
            if (s == null)
            {
                return(null);
            }
            string objtype = s.GetType().ToString();

            if (RobotRaconteurNode.SplitQualifiedName(objtype)[0].TrimEnd(new char[] { '_' }) == "sensors.ati.mini45")
            {
                string objshort = RemovePath(objtype);
                switch (objshort)
                {
                case "FTData":
                    return(FTData_stubentry.PackStructure(s));

                default:
                    break;
                }
            }
            else
            {
                return(RobotRaconteurNode.s.PackStructure(s));
            }
            throw new Exception();
        }
        public override ServiceStub CreateStub(WrappedServiceStub innerstub)
        {
            string objecttype = innerstub.RR_objecttype.GetServiceDefinition().Name + "." + innerstub.RR_objecttype.Name;    string objshort;

            if (CompareNamespace(objecttype, out objshort))
            {
                switch (objshort)
                {
                case "baseobj":
                    return(new baseobj_stub(innerstub));

                case "subobj":
                    return(new subobj_stub(innerstub));

                default:
                    break;
                }
            }
            else
            {
                string ext_service_type = RobotRaconteurNode.SplitQualifiedName(objecttype).Item1;
                return(RobotRaconteurNode.s.GetServiceType(ext_service_type).CreateStub(innerstub));
            }
            throw new ServiceException("Could not create stub");
        }
        public override ServiceSkel CreateSkel(object obj)
        {
            string objtype = RobotRaconteurNode.GetTypeString(ServiceSkelUtil.FindParentInterface(obj.GetType()));
            string objshort;

            if (CompareNamespace(objtype, out objshort))
            {
                switch (objshort)
                {
                case "baseobj":
                    return(new baseobj_skel((baseobj)obj));

                case "subobj":
                    return(new subobj_skel((subobj)obj));

                default:
                    break;
                }
            }
            else
            {
                string ext_service_type = RobotRaconteurNode.SplitQualifiedName(objtype).Item1;
                return(RobotRaconteurNode.s.GetServiceFactory(ext_service_type).CreateSkel(obj));
            }
            throw new ServiceException("Could not create skel");
        }
        public override ServiceSkel CreateSkel(object obj)
        {
            string objtype = ServiceSkelUtil.UnfixName(ServiceSkelUtil.FindParentInterface(obj.GetType()).ToString());

            if (RobotRaconteurNode.SplitQualifiedName(objtype.ToString())[0].TrimEnd(new char[] { '_' }) == "sensors.ati.mini45")
            {
                string sobjtype = RemovePath(objtype);
                switch (sobjtype)
                {
                case "ATImini45Host":
                    return(new ATImini45Host_skel((ATImini45Host)obj));

                case "ATImini45":
                    return(new ATImini45_skel((ATImini45)obj));

                default:
                    break;
                }
            }
            else
            {
                string ext_service_type = RobotRaconteurNode.SplitQualifiedName(objtype.ToString())[0].TrimEnd(new char[] { '_' });
                return(RobotRaconteurNode.s.GetServiceFactory(ext_service_type).CreateSkel(obj));
            }
            throw new ServiceException("Could not create skel");
        }
        public override ServiceStub CreateStub(WrappedServiceStub innerstub)
        {
            string objecttype = innerstub.RR_objecttype.GetServiceDefinition().Name + "." + innerstub.RR_objecttype.Name;    if (RobotRaconteurNode.SplitQualifiedName(objecttype)[0].TrimEnd(new char[] { '_' }) == "sensors.ati.mini45")

            {
                string objshort = RemovePath(objecttype);
                switch (objshort)
                {
                case "ATImini45Host":
                    return(new ATImini45Host_stub(innerstub));

                case "ATImini45":
                    return(new ATImini45_stub(innerstub));

                default:
                    break;
                }
            }
            else
            {
                string ext_service_type = RobotRaconteurNode.SplitQualifiedName(objecttype)[0].TrimEnd(new char[] { '_' });
                return(RobotRaconteurNode.s.GetServiceType(ext_service_type).CreateStub(innerstub));
            }
            throw new ServiceException("Could not create stub");
        }
        public static SensorDataHeader FillSensorDataHeader(RobotRaconteurNode node, DeviceInfo device_info, ulong seqno)
        {
            var ret = new SensorDataHeader();

            ret.seqno = seqno;
            ret.ts    = DateTimeUtil.TimeSpec2Now(node, device_info);
            return(ret);
        }
Exemple #9
0
        public static DeviceTime FillDeviceTime(RobotRaconteurNode node, DeviceInfo device_info, ulong seqno)
        {
            var ret = new DeviceTime();

            ret.device_seqno = seqno;
            ret.device_ts    = TimeSpec2Now(node, device_info);
            ret.device_utc   = UtcNow(node, device_info);
            return(ret);
        }
Exemple #10
0
 protected Transport(RobotRaconteurNode node = null)
 {
     if (node != null)
     {
         this.node = node;
     }
     else
     {
         this.node = RobotRaconteurNode.s;
     }
 }
 public Endpoint(RobotRaconteurNode node)
 {
     if (node == null)
     {
         this.node = RobotRaconteurNode.s;
     }
     else
     {
         this.node = node;
     }
 }
Exemple #12
0
        public static com.robotraconteur.datetime.TimeSpec3 TimeSpec3Now(RobotRaconteurNode node = null)
        {
            if (node == null)
            {
                node = RobotRaconteurNode.s;
            }
            var now = node.NowTimeSpec;
            var ret = new com.robotraconteur.datetime.TimeSpec3();

            ret.microseconds = now.seconds * 1000000 + now.nanoseconds / 1000;
            return(ret);
        }
Exemple #13
0
        public ServiceFactory(RobotRaconteurNode node = null, ClientContext context = null)
        {
            if (node != null)
            {
                this.node = node;
            }
            else
            {
                this.node = RobotRaconteurNode.s;
            }

            this.context = context;
        }
        public WallTimer(int period, Action <TimerEvent> handler, bool oneshot, RobotRaconteurNode node = null)
        {
            if (node == null)
            {
                this.node = RobotRaconteurNode.s;
            }
            else
            {
                this.node = node;
            }

            this.Period  = period;
            this.handler = handler;
            this.oneshot = oneshot;
        }
        public WallRate(double frequency, RobotRaconteurNode node = null)
        {
            if (node == null)
            {
                this.node = RobotRaconteurNode.s;
            }
            else
            {
                this.node = node;
            }

            this.period = (double)(1000.0 / frequency);
            last_time   = node.UtcNow;
            start_time  = node.UtcNow;
        }
        public override RobotRaconteurException DownCastException(RobotRaconteurException rr_exp)
        {
            if (rr_exp == null)
            {
                return(rr_exp);
            }
            string rr_type = rr_exp.Error;

            if (!rr_type.Contains("."))
            {
                return(rr_exp);
            }
            string[] rr_stype = RobotRaconteurNode.SplitQualifiedName(rr_type);
            if (rr_stype[0] != "sensors.ati.mini45")
            {
                return(RobotRaconteurNode.s.DownCastException(rr_exp));
            }
            return(rr_exp);
        }
Exemple #17
0
        public static com.robotraconteur.datetime.TimeSpec2 TimeSpec2Now(RobotRaconteurNode node = null, DeviceInfo info = null)
        {
            if (node == null)
            {
                node = RobotRaconteurNode.s;
            }
            var now = node.NowTimeSpec;
            var ret = new com.robotraconteur.datetime.TimeSpec2();

            ret.seconds     = now.seconds;
            ret.nanoseconds = now.nanoseconds;
            var clock_info = new com.robotraconteur.datetime.ClockInfo();

            clock_info.clock_type = (int)com.robotraconteur.datetime.ClockTypeCode.node_default;
            var device_uuid_bytes = info?.device?.uuid.uuid_bytes;

            clock_info.clock_uuid.uuid_bytes = device_uuid_bytes ?? new byte[16];
            ret.clock_info = clock_info;
            return(ret);
        }
        public override T UnpackStructure <T>(MessageElementStructure l)
        {
            if (l == null)
            {
                return(default(T));
            }
            if (RobotRaconteurNode.SplitQualifiedName(l.Type)[0].TrimEnd(new char[] { '_' }) == "sensors.ati.mini45")
            {
                string objshort = RemovePath(l.Type);
                switch (objshort)
                {
                case "FTData":
                    return(FTData_stubentry.UnpackStructure <T>(l));

                default:
                    break;
                }
            }
            else
            {
                return(RobotRaconteurNode.s.UnpackStructure <T>(l));
            }
            throw new DataTypeException("Could not unpack structure");
        }
 public ostruct2_stub(com__robotraconteur__testing__TestService2Factory d, RobotRaconteurNode node, ClientContext context)
 {
     def = d; rr_node = node; rr_context = context;
 }
 public BrowserWebSocketTransport(RobotRaconteurNode node = null) : base(node)
 {
     DefaultReceiveTimeout = 15000;
     DefaultConnectTimeout = 2500;
     parent_adapter        = new AsyncStreamTransportParentImpl(this);
 }
Exemple #21
0
 public ClientNodeSetup(RobotRaconteurNode node, ServiceFactory[] service_types, string nodename = null, RobotRaconteurNodeSetupFlags flags = RobotRaconteurNodeSetupFlags.ClientDefault)
     : base(node, service_types, false, nodename, 0, flags)
 {
 }
Exemple #22
0
 public ClientNodeSetup(RobotRaconteurNode node, string nodename = null, RobotRaconteurNodeSetupFlags flags = RobotRaconteurNodeSetupFlags.ClientDefault)
     : base(node, null, true, nodename, 0, flags)
 {
 }
Exemple #23
0
 public ServerNodeSetup(RobotRaconteurNode node, ServiceFactory[] service_types, string nodename, ushort tcp_port, RobotRaconteurNodeSetupFlags flags = RobotRaconteurNodeSetupFlags.ServerDefault)
     : base(node, service_types, false, nodename, tcp_port, flags)
 {
 }
Exemple #24
0
 public ServerNodeSetup(RobotRaconteurNode node, string nodename, ushort tcp_port, RobotRaconteurNodeSetupFlags flags = RobotRaconteurNodeSetupFlags.ServerDefault)
     : base(node, null, true, nodename, tcp_port, flags)
 {
 }
Exemple #25
0
        public RobotRaconteurNodeSetup(RobotRaconteurNode node, ServiceFactory[] service_types, bool scan_assembly_types, string nodename, ushort tcp_port, RobotRaconteurNodeSetupFlags flags)
        {
            Node = node;

            if (flags.HasFlag(RobotRaconteurNodeSetupFlags.EnableLocalTransport))
            {
                LocalTransport = new LocalTransport(node);
                if (flags.HasFlag(RobotRaconteurNodeSetupFlags.LocalTransportStartServer))
                {
                    LocalTransport.StartServerAsNodeName(nodename);
                }
                else if (flags.HasFlag(RobotRaconteurNodeSetupFlags.LocalTransportStartClient) && !string.IsNullOrEmpty(nodename))
                {
                    LocalTransport.StartClientAsNodeName(nodename);
                }

                if (flags.HasFlag(RobotRaconteurNodeSetupFlags.EnableNodeDiscoveryListening))
                {
                    LocalTransport.EnableNodeDiscoveryListening();
                }

                node.RegisterTransport(LocalTransport);
            }

            if (flags.HasFlag(RobotRaconteurNodeSetupFlags.EnableTcpTransport))
            {
                TcpTransport = new TcpTransport(node);
                if (flags.HasFlag(RobotRaconteurNodeSetupFlags.TcpTransportStartServer))
                {
                    TcpTransport.StartServer(tcp_port);
                }

                if (flags.HasFlag(RobotRaconteurNodeSetupFlags.EnableNodeDiscoveryListening))
                {
                    TcpTransport.EnableNodeDiscoveryListening();
                }

                if (flags.HasFlag(RobotRaconteurNodeSetupFlags.EnableNodeAnnounce))
                {
                    TcpTransport.EnableNodeAnnounce();
                }

                node.RegisterTransport(TcpTransport);
            }

            if (service_types != null)
            {
                foreach (var t in service_types)
                {
                    node.RegisterServiceType(t);
                }
            }

            if (scan_assembly_types)
            {
                try
                {
                    var scanned_types = ScanAssembliesForServiceTypes();
                    foreach (var t in scanned_types)
                    {
                        node.RegisterServiceType(t);
                    }
                }
                catch (Exception e)
                {
                    Console.Error.WriteLine("warning: assembly scanning failed: " + e.Message);
                }
            }
        }
 public RobotRaconteurServiceIndexFactory(RobotRaconteurNode node = null) : base(node)
 {
     NodeInfo_stubentry    = new NodeInfo_stub(this);
     ServiceInfo_stubentry = new ServiceInfo_stub(this);
 }
 public com__robotraconteur__testing__TestService2Factory(RobotRaconteurNode node = null, ClientContext context = null) : base(node, context)
 {
     ostruct2_stubentry = new ostruct2_stub(this, this.node, this.context);
 }