Ejemplo n.º 1
0
        static void Main1(string[] args)
        {
            // use first serial port
            var portName = System.IO.Ports.SerialPort.GetPortNames().First();

            // create a channel
            var channel = new ZWaveChannel("COM5");

            // uncommment to see detailed logging
            // channel.Log = Console.Out;

            // subcribe to node events
            channel.NodeEventReceived += (sender, e) => Console.WriteLine($"Event: NodeID:{e.NodeID:D3} Command:[{e.Command}]");

            // open channel
            channel.Open();
            try
            {
                Run(channel).Wait();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"{ex}");
            }
            finally
            {
                Console.ReadLine();
                channel.Close();
            }
        }
Ejemplo n.º 2
0
 public void Open()
 {
     Channel.NodeEventReceived += Channel_NodeEventReceived;
     Channel.Error             += Channel_Error;
     Channel.Closed            += Channel_Closed;
     Channel.Open();
 }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            // use first serial port
            var portName = System.IO.Ports.SerialPort.GetPortNames().First();

            // create a channel
            var channel = new ZWaveChannel(portName);

            // uncommment to see detailed logging
            // channel.Log = Console.Out;

            // subcribe to node events
            channel.NodeEventReceived += (sender, e) => Console.WriteLine($"Event: NodeID:{e.NodeID:D3} Command:[{e.Command}]");

            // open channel
            channel.Open();
            try
            {
                Run(channel).Wait();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"{ex}");
            }
            finally
            {
                Console.ReadLine();
                channel.Close();
            }
        }
Ejemplo n.º 4
0
 public void Open()
 {
     Channel.NodeEventReceived  += Channel_NodeEventReceived;
     Channel.NodeUpdateReceived += Channel_NodeUpdateReceived;
     Channel.Error  += Channel_Error;
     Channel.Closed += Channel_Closed;
     Channel.Open();
     _isOpened = true;
 }
Ejemplo n.º 5
0
 public void Open()
 {
     Channel.NodeEventReceived          += Channel_NodeEventReceived;
     Channel.NodeUpdateReceived         += Channel_NodeUpdateReceived;
     Channel.NodesNetworkChangeOccurred += Channel_NodesNetworkChangeOccurred;
     Channel.Error  += Channel_Error;
     Channel.Closed += Channel_Closed;
     Channel.Open();
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Opens the controller
        /// </summary>
        /// <param name="softReset">True to perform a sofreset, False otherwise</param>
        /// <returns>A task that represents the asynchronous operation</returns>
        public async Task Open(bool softReset = false)
        {
            await Channel.Open(softReset);

            var getVersion = await Channel.Send <Payload>(new ControllerRequest(Function.GetVersion));

            using (var reader = new PayloadReader(getVersion))
            {
                Version = reader.ReadString();
            }

            var memoryGetId = await Channel.Send <Payload>(new ControllerRequest(Function.MemoryGetId));

            using (var reader = new PayloadReader(memoryGetId))
            {
                HomeID = reader.ReadUInt32();
                NodeID = reader.ReadByte();
            }

            var discoveryNodes = await Channel.Send <Payload>(new ControllerRequest(Function.DiscoveryNodes));

            using (var reader = new PayloadReader(discoveryNodes))
            {
                var version      = reader.ReadByte();
                var capabilities = reader.ReadByte();
                var length       = reader.ReadByte();
                var nodes        = reader.ReadBytes(length);

                var bits = new BitArray(nodes);
                for (byte i = 0; i < bits.Length; i++)
                {
                    if (bits[i])
                    {
                        var node = Factory.CreateNode((byte)(i + 1), this);

                        await node.Initialize();

                        Nodes.Add(node);
                    }
                }

                ChipType = (ZWaveChipType)reader.ReadUInt16();
            }
        }