示例#1
0
 /// <summary>
 /// Raises the DMX data packet recieved event.
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="newPacket">The new packet.</param>
 protected virtual void RaiseNewPacket(IPEndPoint source, StreamingAcnDmxPacket newPacket)
 {
     if (NewPacket != null)
     {
         NewPacket(this, new NewPacketEventArgs <StreamingAcnDmxPacket>(source, newPacket));
     }
 }
示例#2
0
        void socket_NewPacket(object sender, NewPacketEventArgs <StreamingAcnDmxPacket> e)
        {
            StreamingAcnDmxPacket dmxPacket = e.Packet as StreamingAcnDmxPacket;

            if (dmxPacket != null)
            {
                DecodeDmxData(dmxPacket);
            }
        }
示例#3
0
        void socket_NewPacket(object sender, NewPacketEventArgs <StreamingAcnDmxPacket> e)
        {
            StreamingAcnDmxPacket dmxPacket = e.Packet as StreamingAcnDmxPacket;

            if (dmxPacket != null)
            {
                receiveData.DmxData = dmxPacket.Dmx.Data;
            }
        }
示例#4
0
        public void ProcessPacket(IPEndPoint source, AcnRootLayer header, AcnBinaryReader data)
        {
            StreamingAcnDmxPacket newPacket = AcnPacket.ReadPacket(header, data) as StreamingAcnDmxPacket;

            if (newPacket != null)
            {
                RaiseNewPacket(source, newPacket);
            }
        }
示例#5
0
        void socket_NewPacket(object sender, NewPacketEventArgs<StreamingAcnDmxPacket> e)
        {
            bool isLocked = false;

            StreamingAcnDmxPacket dmxPacket = e.Packet as StreamingAcnDmxPacket;
            if (dmxPacket != null)
            {
                recieveData.DmxData = dmxPacket.Dmx.Data;
                isLocked = (lockAddress != 0 && lockAddress == dmxPacket.Framing.SyncPacketAddress);
            }

            Locked = isLocked;
        }
示例#6
0
        void socket_NewPacket(object sender, NewPacketEventArgs <StreamingAcnDmxPacket> e)
        {
            StreamingAcnDmxPacket dmxPacket = e.Packet as StreamingAcnDmxPacket;

            if (example != null)
            {
                example.UpdateData(dmxPacket.Framing.Universe - 1, dmxPacket.Dmx.Data);

                if (dmxPacket.Framing.SyncPacketAddress == 0)
                {
                    example.Draw(TimeSpan.FromMilliseconds(10));
                }
            }
        }
示例#7
0
        /// <summary>
        /// Sends a DMX frame over streaming ACN.
        /// </summary>
        /// <param name="universe">The streaming ACN universe between 1 and 3000.</param>
        /// <param name="startCode"></param>
        /// <param name="dmxData">The DMX data including the start code.</param>
        /// <param name="priority">The sACN priority for the DMX data.</param>
        public void SendDmx(int universe, byte startCode, byte[] dmxData, byte priority)
        {
            IncrementSequenceNumber(universe);

            StreamingAcnDmxPacket packet = new StreamingAcnDmxPacket();

            packet.Framing.SourceName     = SourceName;
            packet.Framing.Universe       = (short)universe;
            packet.Framing.Priority       = priority;
            packet.Framing.SequenceNumber = (byte)GetSequenceNumber(universe);
            packet.Dmx.StartCode          = startCode;
            packet.Dmx.Data = dmxData;

            SendPacket(packet, UnicastDestination ?? GetUniverseEndPoint(universe));
        }
示例#8
0
        /// <summary>
        /// Sends a DMX frame over streaming ACN.
        /// </summary>
        /// <param name="universe">The streaming ACN universe between 1 and 3000.</param>
        /// <param name="startCode"></param>
        /// <param name="dmxData">The DMX data including the start code.</param>
        /// <param name="priority">The sACN priority for the DMX data.</param>
        public void SendDmx(int universe, byte startCode, byte[] dmxData, byte priority)
        {
            IncrementSequenceNumber(universe);

            StreamingAcnDmxPacket packet = new StreamingAcnDmxPacket();

            if (OverrideRootLayer)
            {
                packet.Root = GetRootLayer();
            }
            packet.Framing.SourceName        = SourceName;
            packet.Framing.SyncPacketAddress = (short)SynchronizationAddress;
            packet.Framing.Universe          = (short)universe;
            packet.Framing.Priority          = priority;
            packet.Framing.SequenceNumber    = (byte)GetSequenceNumber(universe);
            packet.Dmx.StartCode             = startCode;
            packet.Dmx.Data = dmxData;

            SendPacket(packet, GetUniverseEndPoint(universe));
        }
示例#9
0
        /// <summary>
        /// Start the E.131 Lisener.
        /// </summary>
        void DecodeDmxData(StreamingAcnDmxPacket data)
        {
            int incomingUniverse = data.Framing.Universe;

            int startUniverse  = _startUniverse;
            int universeOffset = incomingUniverse - startUniverse;

            int tempUniversSize = _universeSize;

            if (_universeSize > data.Dmx.Data.Length)
            {
                MethodInvoker action5 = delegate
                {
                    listBox1.Items.Add("UniverseSize is larger than Incoming Data Size");
                };
                listBox1.BeginInvoke(action5);
                //listBox1.Items.Add("UniverseSize is larger than Incoming Data Size");
                tempUniversSize = data.Dmx.Data.Length - 1;
            }

            int offset = universeOffset * tempUniversSize;

            if (offset < 0 || _channelData.Length < (offset + tempUniversSize))
            {
                return;
            }

            //based on universe store data to channel data array
            for (int i = 0; i < tempUniversSize; i++)
            {
                _channelData[i + offset] = data.Dmx.Data[i + 1];
            }

            if (_endUniverse == incomingUniverse)
            {
                OutputToPanel();
            }
        }
示例#10
0
文件: AcnHandler.cs 项目: Farrser/ACN
 void socket_NewPacket(object sender, NewPacketEventArgs <StreamingAcnDmxPacket> e)
 {
     StreamingAcnDmxPacket dmxPacket = e.Packet as StreamingAcnDmxPacket;
 }