public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.Load += new System.EventHandler(this.Form1_Load);

            //
            // Create the DNSSDEventManager. You can then associate event handlers
            // with the instance that will be invoked when the event occurs
            //
            // In this example, we're associating ServiceFound, ServiceLost,
            // ServiceResolved, and OperationFailed event handlers with the
            // event manager instance.
            //
            eventManager                    =  new DNSSDEventManager();
            eventManager.ServiceFound       += new _IDNSSDEvents_ServiceFoundEventHandler(this.ServiceFound);
            eventManager.ServiceLost        += new _IDNSSDEvents_ServiceLostEventHandler(this.ServiceLost);
            eventManager.ServiceResolved    += new _IDNSSDEvents_ServiceResolvedEventHandler(this.ServiceResolved);
            eventManager.OperationFailed    += new _IDNSSDEvents_OperationFailedEventHandler(this.OperationFailed);

            service = new DNSSDService();
        }
예제 #2
0
        public SimpleChat()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            try
            {
                m_service = new DNSSDService();
            }
            catch
            {
                MessageBox.Show("Bonjour Service is not available", "Error");
                Application.Exit();
            }

            m_eventManager = new DNSSDEventManager();
            m_eventManager.ServiceRegistered   += new _IDNSSDEvents_ServiceRegisteredEventHandler(this.ServiceRegistered);
            m_eventManager.ServiceFound        += new _IDNSSDEvents_ServiceFoundEventHandler(this.ServiceFound);
            m_eventManager.ServiceLost         += new _IDNSSDEvents_ServiceLostEventHandler(this.ServiceLost);
            m_eventManager.ServiceResolved     += new _IDNSSDEvents_ServiceResolvedEventHandler(this.ServiceResolved);
            m_eventManager.QueryRecordAnswered += new _IDNSSDEvents_QueryRecordAnsweredEventHandler(this.QueryAnswered);
            m_eventManager.OperationFailed     += new _IDNSSDEvents_OperationFailedEventHandler(this.OperationFailed);

            m_readMessageCallback = new ReadMessageCallback(OnReadMessage);

            this.Load += new System.EventHandler(this.Form1_Load);

            this.AcceptButton = button1;
        }
예제 #3
0
        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.Load += new System.EventHandler(this.Form1_Load);

            //
            // Create the DNSSDEventManager. You can then associate event handlers
            // with the instance that will be invoked when the event occurs
            //
            // In this example, we're associating ServiceFound, ServiceLost,
            // ServiceResolved, and OperationFailed event handlers with the
            // event manager instance.
            //
            eventManager = new DNSSDEventManager();
            eventManager.ServiceFound    += new _IDNSSDEvents_ServiceFoundEventHandler(this.ServiceFound);
            eventManager.ServiceLost     += new _IDNSSDEvents_ServiceLostEventHandler(this.ServiceLost);
            eventManager.ServiceResolved += new _IDNSSDEvents_ServiceResolvedEventHandler(this.ServiceResolved);
            eventManager.OperationFailed += new _IDNSSDEvents_OperationFailedEventHandler(this.OperationFailed);

            service = new DNSSDService();
        }
예제 #4
0
파일: Form1.cs 프로젝트: kphannan/OpenLCB
        public Server()
        {
            InitializeComponent();

            try
            {
                m_service = new DNSSDService();
                m_eventManager = new DNSSDEventManager();
            }
            catch
            {
                MessageBox.Show("Bonjour Service is not available", "Error");
                Application.Exit();
            }

            CheckForIllegalCrossThreadCalls = false;
            StartGetNodeNumber();

            // create the async listening sockets
            for (int i = 0; i < MAXCONNECTIONS; i++)
                connections[i] = new Connection();
            IPEndPoint ep = new IPEndPoint(IPAddress.Any, 0);
            listenSocket.Bind(ep);
            listenSocket.Listen(100);
            listenSocket.BeginAccept(new AsyncCallback(Acceptcallback), 0);
            ep = ((IPEndPoint)listenSocket.LocalEndPoint);
            m_registrar = m_service.Register(0, 0, System.Environment.UserName, "_withrottle._tcp", null, null, (ushort)ep.Port, null, null);
            log("WiThrottle Port " + ep.Port.ToString());
        }
예제 #5
0
파일: Form1.cs 프로젝트: kphannan/OpenLCB
 public Throttle()
 {
     InitializeComponent();
     try
     {
         m_service = new DNSSDService();
         m_eventManager = new DNSSDEventManager();
     }
     catch
     {
         MessageBox.Show("Bonjour Service is not available", "Error");
         Application.Exit();
     }
     StartGetNodeNumber();
 }
예제 #6
0
        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.Load += new System.EventHandler(this.Form1_Load);

            eventManager = new DNSSDEventManager();
            eventManager.ServiceFound    += new _IDNSSDEvents_ServiceFoundEventHandler(this.ServiceFound);
            eventManager.ServiceLost     += new _IDNSSDEvents_ServiceLostEventHandler(this.ServiceLost);
            eventManager.ServiceResolved += new _IDNSSDEvents_ServiceResolvedEventHandler(this.ServiceResolved);
            eventManager.OperationFailed += new _IDNSSDEvents_OperationFailedEventHandler(this.OperationFailed);

            service = new DNSSDService();
        }
        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.Load += new System.EventHandler(this.Form1_Load);

            eventManager                    =  new DNSSDEventManager();
            eventManager.ServiceFound       += new _IDNSSDEvents_ServiceFoundEventHandler(this.ServiceFound);
            eventManager.ServiceLost        += new _IDNSSDEvents_ServiceLostEventHandler(this.ServiceLost);
            eventManager.ServiceResolved    += new _IDNSSDEvents_ServiceResolvedEventHandler(this.ServiceResolved);
            eventManager.OperationFailed    += new _IDNSSDEvents_OperationFailedEventHandler(this.OperationFailed);

            service = new DNSSDService();
        }
예제 #8
0
파일: Form1.cs 프로젝트: kphannan/OpenLCB
 public Form1()
 {
     InitializeComponent();
     CheckForIllegalCrossThreadCalls = false;
     try
     {
         m_service = new DNSSDService();
         m_eventManager = new DNSSDEventManager();
     }
     catch
     {
         MessageBox.Show("Bonjour Service is not available", "Error");
         Application.Exit();
     }
     StartGetNodeNumber();
     clocktask = new Thread(clockticktask);
     clocktask.Start();
 }
예제 #9
0
파일: Form1.cs 프로젝트: kphannan/OpenLCB
        public OlcbSvr()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false;
            try
            {
                m_service = new DNSSDService();
                m_eventManager = new DNSSDEventManager();
                m_eventManager.OperationFailed += new _IDNSSDEvents_OperationFailedEventHandler(OperationFailed);
             }
            catch
            {
                log("Bonjour Service is not available");
            }

            String[] arguments = Environment.GetCommandLineArgs();
            for (int a = 1; a < arguments.Length; a++)
            {
                localhub = true;
                log("Arg " + arguments[a]);
                if (arguments[a].StartsWith("port"))
                {
                    int p = arguments[a].IndexOf('=');
                    if (p > 0)
                        port = Convert.ToInt32(arguments[a].Substring(p+1));
                }
                if (arguments[a].StartsWith("max"))
                {
                    int p = arguments[a].IndexOf('=');
                    if (p > 0)
                        MAXCONNECTIONS = Convert.ToInt32(arguments[a].Substring(p+1));
                }
            }

            if (!localhub)
            {
                // create the async listening sockets
                ep = new IPEndPoint(IPAddress.Any, 0);
                ServerSkt.Bind(ep);
                ServerSkt.Listen(1);
                ServerSkt.BeginAccept(new AsyncCallback(Acceptcallback), 0);
                ep = ((IPEndPoint)ServerSkt.LocalEndPoint);
                log("OpenLCB Hub start on port " + ep.Port.ToString());
                // register server with zeroconfig, (alias bonjour)
                // params (flags, interface, instancename, servicetype, domain, host, port, TXTrecord, eventmanager)
                m_registrar = m_service.Register(DNSSDFlags.kDNSSDFlagsNoAutoRename, 0, "OpenLCB Hub Service",
                    "_OpenLCB._tcp", null, null, (ushort)ep.Port, null, m_eventManager);
            }
            if (localhub)
            {
                // connect via bonjour
                StartOpenLCBConnect();

                // create the async listening sockets
                ep = new IPEndPoint(IPAddress.Loopback, port);
                ServerSkt.Bind(ep);
                ServerSkt.Listen(1);
                ServerSkt.BeginAccept(new AsyncCallback(Acceptcallback), 0);
                ep = ((IPEndPoint)ServerSkt.LocalEndPoint);
                log("OpenLCB Hub start on port " + ep.Port.ToString());
            }

            if (!localhub)
                readxmldata();

            MaxConTB.Text = MAXCONNECTIONS.ToString();
            connects = new CONNECTION[MAXCONNECTIONS];
            for (int i = 0; i < MAXCONNECTIONS; i++)
                connects[i] = new CONNECTION();

            // node number server range
            GroupBox.Items.Add("NMRA");
            GroupBox.Items.Add("MERG");
            GroupBox.Items.Add("Fremo");
            GroupBox.Items.Add("Ntrak");
            RangeFromTB.Text = servernodenumber.ToString("X12");
            SetGroup(RangeFromTB.Text);
            byte6txt.Text = Convert.ToInt32(RangeFromTB.Text.Substring(10, 2), 16).ToString();
            membertxt.Text = Convert.ToInt32(RangeFromTB.Text.Substring(4, 6), 16).ToString();

            inithub();
        }
예제 #10
0
파일: Form1.cs 프로젝트: kphannan/OpenLCB
        public ComGateway()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false;

            String[] arguments = Environment.GetCommandLineArgs();
            for (int a = 1; a < arguments.Length; a++)
            {
                localhub = true;
                log("Arg " + arguments[a]);
                if (arguments[a].StartsWith("port"))
                {
                    int p = arguments[a].IndexOf('=');
                    if (p > 0)
                        port = Convert.ToInt32(arguments[a].Substring(p + 1));
                }
            }

            if (localhub)
            {
                IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, port);
                skt.Connect(ep);
                byte[] buffer = new byte[12];
                skt.Receive(buffer);
                if ((buffer[1] << 8) + buffer[2] == NODENUMBER)
                {
                    nodenumber = ((long)buffer[3] << 40) + ((long)buffer[4] << 32) + (buffer[5] << 24)
                        + (buffer[6] << 16) + (buffer[7] << 8) + buffer[8];
                    nodenumberstr = nodenumber.ToString("X12");
                    log("OpenLCB Node Number " + nodenumberstr);
                }
                else
                {
                    log("No node number allocated.");
                    return;
                }
                serverconnected = true;
                skt.BeginReceive(inputbuffer, 0, 2000, SocketFlags.None, (AsyncCallback)InputTask, skt);
                EthernetSendHexString(INITCOMPLETE + nodenumberstr + nodenumberstr);
            }
            else
            {
                try
                {
                    m_service = new DNSSDService();
                    m_eventManager = new DNSSDEventManager();
                }
                catch
                {
                    MessageBox.Show("Bonjour Service is not available", "Error");
                    Application.Exit();
                }

                StartGetNodeNumber();
            }
        }
예제 #11
0
        public SimpleChat()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            try

            {

                m_service = new DNSSDService();

            }

            catch

            {

                MessageBox.Show("Bonjour Service is not available", "Error");

                Application.Exit();

            }

            m_eventManager = new DNSSDEventManager();

            m_eventManager.ServiceRegistered += new _IDNSSDEvents_ServiceRegisteredEventHandler(this.ServiceRegistered);

            m_eventManager.ServiceFound += new _IDNSSDEvents_ServiceFoundEventHandler(this.ServiceFound);

            m_eventManager.ServiceLost += new _IDNSSDEvents_ServiceLostEventHandler(this.ServiceLost);

            m_eventManager.ServiceResolved += new _IDNSSDEvents_ServiceResolvedEventHandler(this.ServiceResolved);

            m_eventManager.QueryRecordAnswered += new _IDNSSDEvents_QueryRecordAnsweredEventHandler(this.QueryAnswered);

            m_eventManager.OperationFailed += new _IDNSSDEvents_OperationFailedEventHandler(this.OperationFailed);

            m_readMessageCallback = new ReadMessageCallback(OnReadMessage);

            this.Load += new System.EventHandler(this.Form1_Load);

            this.AcceptButton = button1;
        }
예제 #12
0
파일: Form1.cs 프로젝트: kphannan/OpenLCB
        public Config()
        {
            InitializeComponent();
            try
            {
                m_service = new DNSSDService();
                m_eventManager = new DNSSDEventManager();
            }
            catch
            {
                MessageBox.Show("Bonjour Service is not available", "Error");
                Application.Exit();
            }

            CheckForIllegalCrossThreadCalls = false;

            for (int i = 0; i < 4; i++)
            {
                idlabels[i] = new Label();
                idlabels[i].AutoSize = true;
                idlabels[i].Size = new System.Drawing.Size(50, 13);
                idlabels[i].Location = new System.Drawing.Point(10, i * 25 + 50);
                idlabels[i].Visible = false;
                Controls.Add(idlabels[i]);
                idtextboxes[i] = new TextBox();
                idtextboxes[i].Location = new System.Drawing.Point(90, i * 25 + 50);
                idtextboxes[i].Size = new System.Drawing.Size(280, 20);
                idtextboxes[i].ReadOnly = true;
                idtextboxes[i].Visible = false;
                Controls.Add(idtextboxes[i]);
            }
            for (int i = 0; i < 10; i++)
            {
                labels[i] = new Label();
                labels[i].AutoSize = true;
                labels[i].Visible = false;
                groupBox1.Controls.Add(labels[i]);
                textboxes[i] = new TextBox();
                textboxes[i].Size = new System.Drawing.Size(160, 20);
                textboxes[i].Validating += new CancelEventHandler(this.textBox_Validating);
                textboxes[i].Visible = false;
                groupBox1.Controls.Add(textboxes[i]);
                numbers[i] = new NumericUpDown();
                numbers[i].Visible = false;
                numbers[i].ValueChanged += new EventHandler(this.numericUpDown_ValueChanged);
                groupBox1.Controls.Add(numbers[i]);
            }
            setBtns(0);

            StartGetNodeNumber();
            GetNodeNames = new Thread(GetNodeName);
            GetNodeNames.Start();
        }
예제 #13
0
        private void initialize()
        {
            try
            {
                m_service = new DNSSDService();
            }
            catch
            {
                System.Console.WriteLine("Error - Bonjour Service is not available");
            }

            m_eventManager = new DNSSDEventManager();
            m_eventManager.ServiceRegistered += new _IDNSSDEvents_ServiceRegisteredEventHandler(this.ServiceRegistered);
            m_eventManager.ServiceFound += new _IDNSSDEvents_ServiceFoundEventHandler(this.ServiceFound);
            m_eventManager.ServiceLost += new _IDNSSDEvents_ServiceLostEventHandler(this.ServiceLost);
            m_eventManager.ServiceResolved += new _IDNSSDEvents_ServiceResolvedEventHandler(this.ServiceResolved);
            m_eventManager.QueryRecordAnswered += new _IDNSSDEvents_QueryRecordAnsweredEventHandler(this.QueryAnswered);
            m_eventManager.OperationFailed += new _IDNSSDEvents_OperationFailedEventHandler(this.OperationFailed);

            this.rayTracer = new RayTracer();

            this.load();
        }