Ejemplo n.º 1
0
        // **********************************************************************

        public MainForm()
        {
            InitializeComponent();

            server = new XlDdeServer(service);

            // Создадим и зарегистрируем обработчики передаваемых Квиком данных
            // для каждого нашего DDE канала.
            tradesChannel = new TradesChannel();
            quotesChannel = new QuotesChannel();

            tradesChannel.ConversationAdded   += TradesConversationsChanged;
            tradesChannel.ConversationRemoved += TradesConversationsChanged;

            quotesChannel.ConversationAdded   += QuotesConversationsChanged;
            quotesChannel.ConversationRemoved += QuotesConversationsChanged;

            server.AddChannel(tradesChannel);
            server.AddChannel(quotesChannel);

            // Зарегистрируем сам DDE сервер.
            server.Register();

            // Таймер
            updater          = new Timer();
            updater.Interval = 100; // мс, этим значением не стоит злоупотреблять.
            // если нужна большая скорость обновления, то минимально разумное
            // значение - 15 мс. Меньше не имеет смысла, как с технической точки
            // зрения, так и с физиологической для человека.

            updater.Tick += new EventHandler(UpdaterTick);
            updater.Start();
        }
        // **********************************************************************

        void DisposeServer()
        {
            if (server != null)
            {
                try
                {
                    server.Disconnect();
                    server.Dispose();
                }
                catch (Exception e)
                {
                    if (errorHandler != null)
                    {
                        errorHandler.Invoke("Ошибка удаления сервера DDE: " + e.Message);
                    }
                }

                server = null;

                stockActive  = false;
                ticksActive  = false;
                tradesActive = false;
                tradesActive = false;
            }
        }
Ejemplo n.º 3
0
        public DDEinfrastructure(RepositiryClasses _repoInf)
        {
            // server
            server = new XlDdeServer(service);

            server.AddChannel(curtabTopic, (CurrentTableChannel)_repoInf.GetReference("CurrentTableChannel"));
            server.AddChannel(allTradesTopic, (AllTradesChannel)_repoInf.GetReference("AllTradesChannel"));

            server.Register(); // Зарегистрируем сам DDE сервер
        }
Ejemplo n.º 4
0
        // Constructor
        public DDEinfrastructure()
        {
            server_AllTrades = new XlDdeServer(SERVICE_ALLTRADES);
            allTradesChannel = new AllTradesChannel();
            server_AllTrades.AddChannel(allTradesTopic, allTradesChannel);
            server_AllTrades.Register();

            server_CurTable     = new XlDdeServer(SERVICE_CURRENTTABLE);
            currentTableChannel = new CurrentTableChannelMulti();
            server_CurTable.AddChannel(curtabTopic, currentTableChannel);
            server_CurTable.Register();
        }
Ejemplo n.º 5
0
 static void Main(string[] args)
 {
     using (XlDdeServer server = new XlDdeServer("Ticks2"))
     {
         Console.BufferWidth = 150;
         server.AddChannel(new DataReception("Si", 60, EventSignal, 35000, 3600, 8000, 6000, 1200));
         server.AddChannel(new DataReception("BR", 60, EventSignal, 25000, 4000, 9200, 5000, 1900));
         server.AddChannel(new DataReception("GOLD", 60, EventSignal, 1950, 1000, 1200, 1000, 200));
         server.Register();
         Console.WriteLine("DDE server ready. Press Enter to exit.DDE server ready.\n\n");
         Console.ReadLine();
     }
 }
        // **********************************************************************

        void CreateServer()
        {
            if (server == null)
            {
                try
                {
                    server = new XlDdeServer(service);
                    server.Register();
                }
                catch (Exception e)
                {
                    if (errorHandler != null)
                    {
                        errorHandler.Invoke("Ошибка создания сервера DDE: " + e.Message);
                    }
                }
            }
        }
Ejemplo n.º 7
0
        // **********************************************************************
        // *                             EntryPoint                             *
        // **********************************************************************

        static void Main()
        {
            using (XlDdeServer server = new XlDdeServer(service))
            {
                // Создадим и зарегистрируем обработчики передаваемых Квиком данных
                // для каждого нашего DDE канала.
                server.AddChannel(new TradesChannel());
                server.AddChannel(new QuotesChannel());

                // Зарегистрируем сам DDE сервер.
                server.Register();

                // Теперь DDE сервер готов к работе и каждый раз при поступлении
                // данных он будет передавать их методу ProcessTable() в
                // соответствующем каналу экземпляре класса.

                Console.WriteLine("DDE server ready. Press Enter to exit.\n\n");
                Console.ReadLine();
            }
        }