Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Net;
- using System.Linq;
- using System.Text;
- using System.Net.Sockets;
- using System.Timers;
- namespace ArtNet.ArtNet
- {
- class ArtNetNode
- {
- private IPAddress Address; // Адрес, куда отправляем
- private IPEndPoint BroadcastEndPoint;
- private UdpClient udpClient; // Сетевой интерфейс
- private int Port;
- // Таймеры
- private Timer dmxTimer;
- // Пакеты ArtNet
- private ArtDMX DMX = new ArtDMX();
- public ArtNetNode()
- {
- Port = 0x1936;
- // 2.255.255.255
- Address = new IPAddress(0xffffff02);
- BroadcastEndPoint = new IPEndPoint(Address, Port);
- // Стандартный порт ArtNet 6454
- InitNode(Port);
- // DMX
- dmxTimer = new Timer(1000 / 44); // 44 Гц
- dmxTimer.Elapsed += new ElapsedEventHandler(dmxtimer_Elapsed);
- }
- public void Start()
- {
- dmxTimer.Enabled = true;
- dmxTimer.Start();
- }
- public void Stop()
- {
- dmxTimer.Enabled = false;
- dmxTimer.Stop();
- }
- private void InitNode(int Port)
- {
- udpClient = new UdpClient(Port);
- udpClient.EnableBroadcast = true;
- udpClient.Client.SendTimeout = 100;
- udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
- }
- private void dmxtimer_Elapsed(object sender, ElapsedEventArgs e)
- {
- byte[] Packet = DMX.GetPacket();
- DMX[238]++;
- udpClient.Send(Packet, DMX.Length, BroadcastEndPoint);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement