示例#1
0
 private static void OnData(object sender, QMessageEvent message)
 {
     Console.WriteLine("Asynchronous message received: " + message.Message.Data);
     Console.WriteLine("message type: " + message.Message.MessageType + " size: " + message.Message.MessageSize +
                       " isCompressed: " + message.Message.Compressed + " endianess: " +
                       message.Message.Endianess);
 }
示例#2
0
 private static void OnData(object sender, QMessageEvent message)
 {
     Console.WriteLine("Asynchronous message received.");
     Console.WriteLine("message type: " + message.Message.MessageType + " size: " + message.Message.MessageSize +
                       " isCompressed: " + message.Message.Compressed + " endianess: " +
                       message.Message.Endianess);
     PrintResult(message.Message.Data);
 }
示例#3
0
        //-------------------------------------------------------------------//
        /// <summary>
        ///     Event triggered by the q process sending data
        /// </summary>
        /// <param name="sender">QConnection object delivering the data</param>
        /// <param name="args">data</param>
        private static void OnUpdate(object sender, QMessageEvent args)
        {
            var alias = GetAliasForConnection(sender as QConnection);
            {
                if (args == null || args.Message.Data == null)
                {
                    return;
                }
                var array = args.Message.Data as Array;
                if (array != null)
                {
                    var a = array;

                    if (a.Length != 3)
                    {
                        return;
                    }
                    if (!(a.GetValue(2) is QTable))
                    {
                        return;
                    }
                    try
                    {
                        var tab  = a.GetValue(1).ToString();
                        var data = a.GetValue(2) as QTable;
                        lock (LockThis)
                        {
                            //this lock is mandatory here, since we need to preserve order filling topics.
                            UpdateCache(alias, tab, data);
                        }
                    }
// ReSharper disable EmptyGeneralCatchClause
                    catch (Exception)
// ReSharper restore EmptyGeneralCatchClause
                    {
                        // Console.WriteLine(e.Message);
                    }
                }
                else
                {
                    if (args.Message.Data.GetType().ToString() == "qSharp.QConnectionException" &&
                        ((QConnectionException)args.Message.Data).Message.Equals("Cannot read data from stream"))
                    {
                        //connections[alias].connectionCell.Formula = CloseConnectionRTD(alias);
                        RtdClose(alias);
                    }
                }
            }
        }
示例#4
0
 static void OnData(object sender, QMessageEvent message)
 {
     Object data = message.Message.Data;
     if (data is Object[])
     {
         // unpack upd message
         Object[] args = ((Object[])data);
         if (args.Length == 3 && args[0].Equals("upd") && args[2] is QTable)
         {
             QTable table = (QTable)args[2];
             foreach (QTable.Row row in table)
             {
                 Console.WriteLine(row);
             }
         }
     }
 }
示例#5
0
        private static void OnData(object sender, QMessageEvent message)
        {
            var data = message.Message.Data;

            if (data is object[])
            {
                // unpack upd message
                var args = ((object[])data);
                if (args.Length == 3 && args[0].Equals("upd") && args[2] is QTable)
                {
                    var table = (QTable)args[2];
                    foreach (QTable.Row row in table)
                    {
                        Console.WriteLine(row);
                    }
                }
            }
        }
示例#6
0
        private void OnData(object sender, QMessageEvent message)
        {
            var list = message.Message.Data as object[];
            if (list != null && list.Length == 3 && list[0].Equals("upd") && list[2] is QTable)
            {
                var table = list[2] as QTable;
                var buffer = new string[table.ColumnsCount];
                object item;
                foreach (QTable.Row row in table)
                {
                    for (var i = 0; i < table.ColumnsCount; i++)
                    {
                        item = row[i];
                        buffer[i] = item != null ? item.ToString() : "";
                    }

                    AddItem(buffer);
                }
            }
        }
示例#7
0
        private void OnData(object sender, QMessageEvent message)
        {
            var list = message.Message.Data as object[];

            if (list != null && list.Length == 3 && list[0].Equals("upd") && list[2] is QTable)
            {
                var    table  = list[2] as QTable;
                var    buffer = new string[table.ColumnsCount];
                object item;
                foreach (QTable.Row row in table)
                {
                    for (var i = 0; i < table.ColumnsCount; i++)
                    {
                        item      = row[i];
                        buffer[i] = item != null?item.ToString() : "";
                    }

                    AddItem(buffer);
                }
            }
        }