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