private EdgeData prepareData()
        {
            Random random = new Random();

            EdgeData data = new EdgeData();

            //gloublev++;

            for (int j = 1; j <= numATagCount.Value; j++)
            {
                // simulation data
                int indexData, indexQCODE;
                indexData  = gloublev;
                indexQCODE = gloublev % 3;

                JObject jObj = new JObject(
                    new JProperty("0", indexData),
                    new JProperty("1", indexQCODE));

                EdgeData.Tag aTag = new EdgeData.Tag()
                {
                    DeviceId = textBoxGroupId.Text,
                    TagName  = "ATag" + j,
                    Value    = jObj
                };
                data.TagList.Add(aTag);
            }
            for (int j = 1; j <= numDTagCount.Value; j++)
            {
                EdgeData.Tag dTag = new EdgeData.Tag()
                {
                    DeviceId = textBoxGroupId.Text,
                    TagName  = "DTag" + j,
                    Value    = j % 2
                };
                data.TagList.Add(dTag);
            }
            for (int j = 1; j <= numTTagCount.Value; j++)
            {
                EdgeData.Tag tTag = new EdgeData.Tag()
                {
                    DeviceId = textBoxGroupId.Text,
                    TagName  = "TTag" + j,
                    Value    = "TEST " + j.ToString()
                };
                data.TagList.Add(tTag);
            }

            data.Timestamp = DateTime.Now;
            return(data);
        }
        private void _edgeAgent_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            switch (e.Type)
            {
            case MessageType.WriteValue:
                WriteValueCommand wvcMsg = ( WriteValueCommand )e.Message;
                foreach (var device in wvcMsg.DeviceList)
                {
                    Console.WriteLine("DeviceId: {0}", device.Id);
                    foreach (var tag in device.TagList)
                    {
                        Console.WriteLine("TagName: {0}, Value: {1}", tag.Name, tag.Value.ToString());
                        if (device.Id == "Device1" && tag.Name == "DTag1")
                        {
                            if (this.txtDTag1Value.InvokeRequired)
                            {
                                BeginInvoke((MethodInvoker) delegate()
                                {
                                    txtDTag1Value.Text = tag.Value.ToString();
                                });
                            }
                            // resend the new value to cloud
                            EdgeData     data = new EdgeData();
                            EdgeData.Tag dTag = new EdgeData.Tag()
                            {
                                DeviceId = "Device1",
                                TagName  = "DTag1",
                                Value    = tag.Value
                            };
                            data.TagList.Add(dTag);
                            data.Timestamp = DateTime.Now;
                            bool result = _edgeAgent.SendData(data).Result;
                        }
                    }
                }
                break;

            /*case MessageType.WriteConfig:
             *  break;*/
            case MessageType.ConfigAck:
                ConfigAck cfgAckMsg = ( ConfigAck )e.Message;
                MessageBox.Show(string.Format("Upload Config Result: {0}", cfgAckMsg.Result.ToString()));
                break;
            }
        }
        private EdgeData prepareData()
        {
            Random random = new Random(Guid.NewGuid().GetHashCode());

            EdgeData data = new EdgeData();

            for (int i = 1; i <= numDeviceCount.Value; i++)
            {
                for (int j = 1; j <= numATagCount.Value; j++)
                {
                    EdgeData.Tag aTag = new EdgeData.Tag()
                    {
                        DeviceId = "Device" + i,
                        TagName  = "ATag" + j,
                        Value    = random.Next(100)
                    };
                    data.TagList.Add(aTag);
                }
                for (int j = 1; j <= numDTagCount.Value; j++)
                {
                    EdgeData.Tag dTag = new EdgeData.Tag()
                    {
                        DeviceId = "Device" + i,
                        TagName  = "DTag" + j,
                        Value    = j % 2
                    };
                    data.TagList.Add(dTag);
                }
                for (int j = 1; j <= numTTagCount.Value; j++)
                {
                    EdgeData.Tag tTag = new EdgeData.Tag()
                    {
                        DeviceId = "Device" + i,
                        TagName  = "TTag" + j,
                        Value    = "TEST " + j.ToString()
                    };
                    data.TagList.Add(tTag);
                }
            }
            data.Timestamp = DateTime.Now;

            return(data);
        }