コード例 #1
0
ファイル: Program.cs プロジェクト: berzins/ArtNet
        static void Main(string[] args)
        {
            Packet             artPollPacket      = new ArtPollPacket();
            ArtDmxPacket       artDmxPacket       = new ArtDmxPacket();
            ArtPollReplyPacket artPollReplyPacket = new ArtPollReplyPacket();

            byte[]        dmxData    = Enumerable.Repeat((byte)0, 512).ToArray();
            ArtNetWritter artNetOut  = new ArtNetWritter();
            ArtDispatcher dispatcher = new ArtDispatcher();

            dispatcher.AddArtDmxListener(new ArtDmxListener());
            dispatcher.AddArtPollListener(new ArtPollListener());
            dispatcher.AddArtPollReplyListener(new ArtPollReplyListener());

            ArtNetReader artNetIn = new ArtNetReader(dispatcher);

            artNetIn.Start();

            KinectSensor sensor = KinectSensor.GetDefault();

            sensor.Open();
            InfraredFrameReader reader = sensor.InfraredFrameSource.OpenReader();
            FrameDescription    fd     = sensor.InfraredFrameSource.FrameDescription;


            ArtDmxPacket[] dmx = new ArtDmxPacket[2];
            for (int i = 0; i < dmx.Length; i++)
            {
                dmx[i]          = new ArtDmxPacket();
                dmx[i].Universe = i;
                dmx[i].DmxData  = dmxData;
            }

            while (true)
            {
                string str   = Console.ReadLine();
                var    value = Int32.Parse(str);
                if (value >= 0 && value <= 255)
                {
                    dmxData = Enumerable.Repeat((byte)value, 512).ToArray();
                }
                artDmxPacket.DmxData = dmxData;
                artNetOut.SetPacket(new ArtDmxPacket());
                artNetOut.Write();
            }
        }
コード例 #2
0
        private void ProcessPollReply(ArtPollReplyPacket packet, IPEndPoint endPoint)
        {
            //Does device support RDM?
            if ((packet.Status & PollReplyStatus.RdmCapable) > 0)
            {
                //if (NewDeviceFound != null)
                //    NewDeviceFound(this, new DeviceFoundEventArgs(id, endPoint.Address));

                //Request RDM Table of Devices

                //Find out which universes the device supports.
                List <byte> universes = new List <byte>();
                for (int n = 0; n < 4; n++)
                {
                    if ((packet.PortTypes[n] & 0x80) > 0)
                    {
                        universes.Add(packet.SwOut[n]);
                    }
                }

                //Request TOD for each input universe.
                SendTodRequest(endPoint.Address, universes);
            }
        }