Пример #1
0
        private static void Main(string[] args)
        {
            Stopwatch          watch          = new Stopwatch();
            LinkUpUdpConnector serverToClient = new LinkUpUdpConnector(IPAddress.Parse("127.0.0.1"), IPAddress.Parse("127.0.0.1"), 1000, 2000);

            serverToClient.ReveivedPacket += ServerToClient_ReveivedPacket;

            LinkUpNode node = new LinkUpNode();

            node.Name = "root";
            node.AddSubNode(serverToClient);
            while (node.Labels.Count < 1)
            {
            }
            LinkUpPropertyLabel <int> val1 = node.Labels[0] as LinkUpPropertyLabel <int>;

            for (int i = 0; i < 100; i++)
            {
                watch.Restart();
                int value = val1.Value;
                Console.WriteLine("GET {0}: {1} in {2} µs", val1.Name, value, watch.ElapsedTicks * 1000 * 1000 / Stopwatch.Frequency);
                Console.Read();

                watch.Restart();
                val1.Value = value * i;
                Console.WriteLine("SET {0}: {1} in {2} µs", val1.Name, value * i, watch.ElapsedTicks * 1000 * 1000 / Stopwatch.Frequency);
                Console.Read();
            }
        }
Пример #2
0
        public void UpdateLinkUpBindings()
        {
            if (Node != null)
            {
                _CameraEventLabel    = Node.GetLabelByName <LinkUpEventLabel>("firefly/computer_vision/camera_event");
                _ImuEventLabel       = Node.GetLabelByName <LinkUpEventLabel>("firefly/computer_vision/imu_event");
                _CameraImuEventLabel = Node.GetLabelByName <LinkUpEventLabel>("firefly/computer_vision/camera_imu_event");

                _SlamMapEventLabel = Node.GetLabelByName <LinkUpEventLabel>("firefly/computer_vision/slam_map_event");

                _ExposureLabel = Node.GetLabelByName <LinkUpPropertyLabel <Int16> >("firefly/computer_vision/camera_exposure");

                _ReplayDataSend = Node.GetLabelByName <LinkUpFunctionLabel>("firefly/computer_vision/replay_data");

                _GetRemoteChessboardCornerLabel = Node.GetLabelByName <LinkUpFunctionLabel>("firefly/computer_vision/get_chessboard_corner");

                _UpdateSettingsLabel = Node.GetLabelByName <LinkUpFunctionLabel>("firefly/computer_vision/update_settings");

                _AccelerometerScaleLabel = Node.GetLabelByName <LinkUpPropertyLabel <Double> >("firefly/computer_vision/acc_scale");
                _GyroscopeScaleLabel     = Node.GetLabelByName <LinkUpPropertyLabel <Double> >("firefly/computer_vision/gyro_scale");
                _TemperatureScaleLabel   = Node.GetLabelByName <LinkUpPropertyLabel <Double> >("firefly/computer_vision/temp_scale");
                _TemperatureOffsetLabel  = Node.GetLabelByName <LinkUpPropertyLabel <Double> >("firefly/computer_vision/temp_offset");

                _RecordRemoteLabel = Node.GetLabelByName <LinkUpPropertyLabel <Boolean> >("firefly/computer_vision/record_remote");

                _ImuFilterALabel      = Node.GetLabelByName <LinkUpPropertyLabel_Binary>("firefly/computer_vision/imu_filter_a");
                _ImuFilterBLabel      = Node.GetLabelByName <LinkUpPropertyLabel_Binary>("firefly/computer_vision/imu_filter_b");
                _ImuDerivedEventLabel = Node.GetLabelByName <LinkUpEventLabel>("firefly/computer_vision/imu_derived_event");

                _SlamStatusEventLabel  = Node.GetLabelByName <LinkUpEventLabel>("firefly/computer_vision/slam_status_event");
                _SlamChangeStatusLabel = Node.GetLabelByName <LinkUpFunctionLabel>("firefly/computer_vision/slam_change_status");

                _SlamReproducibleExecutionLabel = Node.GetLabelByName <LinkUpPropertyLabel <Boolean> >("firefly/computer_vision/slam_reproducible_execution");

                _TCamImuLabel            = Node.GetLabelByName <LinkUpPropertyLabel_Binary>("firefly/computer_vision/calibration_T_cam_imu");
                _RAccGyroLabel           = Node.GetLabelByName <LinkUpPropertyLabel_Binary>("firefly/computer_vision/calibration_R_acc_gyro");
                _MInvGyroLabel           = Node.GetLabelByName <LinkUpPropertyLabel_Binary>("firefly/computer_vision/calibration_M_inv_gyro");
                _MInvAccLabel            = Node.GetLabelByName <LinkUpPropertyLabel_Binary>("firefly/computer_vision/calibration_M_inv_acc");
                _GyroscopeNoiseLabel     = Node.GetLabelByName <LinkUpPropertyLabel <Double> >("firefly/computer_vision/calibration_gyro_noise");
                _GyroscopeWalkLabel      = Node.GetLabelByName <LinkUpPropertyLabel <Double> >("firefly/computer_vision/calibration_gyro_walk");
                _AccelerometerNoiseLabel = Node.GetLabelByName <LinkUpPropertyLabel <Double> >("firefly/computer_vision/calibration_acc_noise");
                _AccelerometerWalkLabel  = Node.GetLabelByName <LinkUpPropertyLabel <Double> >("firefly/computer_vision/calibration_acc_walk");

                _EnableVisualInertialLabel = Node.GetLabelByName <LinkUpPropertyLabel <Boolean> >("firefly/computer_vision/slam_enable_visual_inertial");

                _ImuDerivedEventLabel.Fired += _ImuFilterEvent_Fired;

                _SlamStatusEventLabel.Fired += _SlamStatusEventLabel_Fired;

                _CameraEventLabel.Fired    += _CameraEventLabel_Fired;
                _ImuEventLabel.Fired       += _CameraEventLabel_Fired;
                _CameraImuEventLabel.Fired += _CameraEventLabel_Fired;

                _SlamMapEventLabel.Fired += _SlamMapEventLabel_Fired;

                Update();
            }
        }
Пример #3
0
        private static void Main(string[] args)
        {
            LinkUpUdpConnector clientToServer = new LinkUpUdpConnector(IPAddress.Parse("127.0.0.1"), IPAddress.Parse("127.0.0.1"), 2000, 1000);

            clientToServer.ReveivedPacket += ClientToServer_ReveivedPacket;

            LinkUpNode node = new LinkUpNode();

            node.Name            = "leaf";
            node.MasterConnector = clientToServer;
            LinkUpPropertyLabel <int> val1 = node.AddLabel <LinkUpPropertyLabel <int> >("val1");

            val1.Value = 1213;

            Console.Read();
        }
Пример #4
0
        private static void StaticTest2()
        {
            BlockingCollection <byte[]> col1 = new BlockingCollection <byte[]>();
            BlockingCollection <byte[]> col2 = new BlockingCollection <byte[]>();

            BlockingCollection <byte[]> col3 = new BlockingCollection <byte[]>();
            BlockingCollection <byte[]> col4 = new BlockingCollection <byte[]>();

            LinkUpMemoryConnector masterToSlave = new LinkUpMemoryConnector(col1, col2);
            LinkUpMemoryConnector slaveToMaster = new LinkUpMemoryConnector(col2, col1);

            LinkUpMemoryConnector masterToSuper = new LinkUpMemoryConnector(col3, col4);
            LinkUpMemoryConnector superToMaster = new LinkUpMemoryConnector(col4, col3);

            masterToSlave.ReveivedPacket += MasterToSlave_ReveivedPacket;
            slaveToMaster.ReveivedPacket += SlaveToMaster_ReveivedPacket;
            masterToSuper.ReveivedPacket += MasterToSuper_ReveivedPacket;
            superToMaster.ReveivedPacket += SuperToMaster_ReveivedPacket;

            LinkUpNode super = new LinkUpNode();

            super.AddSubNode(superToMaster);
            super.Name = "super";

            LinkUpNode master = new LinkUpNode();

            master.AddSubNode(masterToSlave);
            master.MasterConnector = masterToSuper;
            master.Name            = "master";

            LinkUpNode slave = new LinkUpNode();

            slave.MasterConnector = slaveToMaster;
            slave.Name            = "slave";

            LinkUpPropertyLabel <int> value2 = master.AddLabel <LinkUpPropertyLabel <int> >("value2");
            LinkUpPropertyLabel <int> value1 = slave.AddLabel <LinkUpPropertyLabel <int> >("value1");

            value1.Value = 10;
            value2.Value = 1011;

            Console.WriteLine("Continue after init!");
            Console.ReadLine();

            LinkUpPropertyLabel <int> value1Ref = (LinkUpPropertyLabel <int>)master.Labels.FirstOrDefault(c => c.Name == "master/slave/value1");

            Console.WriteLine("value1Ref: " + value1Ref.Value);

            value1Ref.Value = 123;
            Console.WriteLine("value1: " + value1.Value);
            value1Ref.Value = 10;
            Console.WriteLine("value1: " + value1.Value);

            LinkUpPropertyLabel <int> value1RefSuper = (LinkUpPropertyLabel <int>)super.Labels.FirstOrDefault(c => c.Name == "super/master/slave/value1");

            Console.WriteLine("value1RefSuper: " + value1RefSuper.Value);

            value1RefSuper.Value = 123;
            Console.WriteLine("value1: " + value1.Value);
            value1RefSuper.Value = 10;
            Console.WriteLine("value1: " + value1.Value);

            LinkUpPropertyLabel <int> value2RefSuper = (LinkUpPropertyLabel <int>)super.Labels.FirstOrDefault(c => c.Name == "super/master/value2");

            Console.WriteLine("value2RefSuper: " + value2RefSuper.Value);

            value2RefSuper.Value = 1245;
            Console.WriteLine("value2: " + value2.Value);
            value2RefSuper.Value = 1152;
            Console.WriteLine("value2: " + value2.Value);

            Console.WriteLine("done");
            Console.ReadLine();
        }