Exemplo n.º 1
0
 public void ToString_prints_ets_like_group_address()
 {
     Assert.Equal("5/4/9", GroupAddress.FromGroups(5, 4, 9).ToString());
 }
Exemplo n.º 2
0
 public void Two_instances_of_same_address_are_equal()
 {
     Assert.Equal(GroupAddress.FromGroups(10, 5, 4), GroupAddress.FromGroups(10, 5, 4));
 }
Exemplo n.º 3
0
 public void Two_instances_of_different_addresses_are_not_equal()
 {
     Assert.NotEqual(GroupAddress.FromGroups(9, 5, 4), GroupAddress.FromGroups(10, 5, 4));
 }
Exemplo n.º 4
0
 public void Address_with_middle_group_10_cannot_be_constructed()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => GroupAddress.FromGroups(0, 10, 0));
 }
Exemplo n.º 5
0
 public void Address_with_main_group_33_cannot_be_constructed()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => GroupAddress.FromGroups(33, 0, 0));
 }
Exemplo n.º 6
0
        public void Address_12_6_129_is_ushort_address_40577()
        {
            var sut = GroupAddress.FromGroups(19, 6, 129);

            Assert.Equal(sut.AsUShort, 40577);
        }
Exemplo n.º 7
0
        public void Address_0_3_7_is_ushort_address_775()
        {
            var sut = GroupAddress.FromGroups(0, 3, 7);

            Assert.Equal(sut.AsUShort, 775);
        }
Exemplo n.º 8
0
        public static void Main(string[] args)
        {
            // Establish tunneling connection with gateway at 10.0.0.135
            _trace = new ConsoleTrace();
            var connection = new KnxConnection(new IPEndPoint(IPAddress.Parse("10.0.0.102"), 50000), new IPEndPoint(IPAddress.Parse("10.0.0.135"), 3671), _trace);


            var messageBus = new MessageBus();

            var dressingLight = new Entity(messageBus,
                                           new IntegerMessageBusAddress(123),
                                           new[] { new Switch() });

            var button = new Button(new IntegerMessageBusAddress(123));
            var dressingLightButton = new Entity(messageBus, new IntegerMessageBusAddress(456), new[] { button });

            var temperatureGauge      = new TemperatureGauge();
            var temperatureLivingRoom = new Entity(messageBus, new IntegerMessageBusAddress(1001), new[] { temperatureGauge });


            var temperatureGauge2       = new TemperatureGauge();
            var temperatureDressingRoom = new Entity(messageBus, new IntegerMessageBusAddress(1002), new[] { temperatureGauge2 });

            var radio = new Entity(messageBus, new IntegerMessageBusAddress(999), new[] { new Radio() });

            var binding = new KnxBinding(connection, messageBus, new IntegerMessageBusAddress(10000));

            binding.AddSwitch(GroupAddress.FromGroups(0, 0, 6), new IntegerMessageBusAddress(123), KnxAddressBindingTypes.Switch);
            binding.AddSwitch(GroupAddress.FromGroups(0, 4, 0), new IntegerMessageBusAddress(999), KnxAddressBindingTypes.Switch);
            binding.AddSwitch(GroupAddress.FromGroups(0, 3, 21), new IntegerMessageBusAddress(1001), KnxAddressBindingTypes.Temperature);
            binding.AddSwitch(GroupAddress.FromGroups(0, 3, 20), new IntegerMessageBusAddress(1002), KnxAddressBindingTypes.Temperature);

            var test = new Test(temperatureGauge.Temperatures, temperatureGauge2.Temperatures);

            using (RunAsp(test))
            {
                for (;;)
                {
                    var       ck        = Console.ReadKey();
                    CemiFrame cemiFrame = null;
                    if (ck.Key == ConsoleKey.R)
                    {
                        cemiFrame = new CemiFrame(CemiFrame.MessageCodes.DataRequest,
                                                  CemiFrame.Control1Flags.DoNotRepeat | CemiFrame.Control1Flags.PriorityLow |
                                                  CemiFrame.Control1Flags.StandardFrame, CemiFrame.Control2Flags.GroupAddress, IndividualAddress.FromAddressLineDevice(1, 1, 60),
                                                  GroupAddress.FromGroups(0, 0, 6), 1, (ushort)(CemiFrame.Commands.ValueRead) << 6);
                    }
                    else if (ck.Key == ConsoleKey.Escape)
                    {
                        break;
                    }
                    if (cemiFrame != null)
                    {
                        var task = connection.SendTunnelingRequest(cemiFrame);
                        task.Wait();
                        Console.WriteLine("Seq sent: " + task.Result);
                    }
                }
                Console.ReadKey();
                connection.Dispose();
            }
        }