Ejemplo n.º 1
0
        private async Task <IoTConnectionQueue> Initialize(IotConnection connection, KinectDataHandler kinectDataHandler)
        {
            queue = new ConcurrentQueue <Body[]>();

            thread = new Thread(async() =>
            {
                while (!threadStop)
                {
                    while (!this.queue.IsEmpty)
                    {
                        var bodies = default(Body[]);
                        this.queue.TryDequeue(out bodies);

                        var packet_id = IncrementAndGetPacket();
                        var resJson   = kinectDataHandler.ParseBodiesJson(bodies, packet_id);

                        if (resJson.ToString() != JsonAdapterKinect.EMPTY)
                        {
                            try
                            {
                                var result = connection.Publish(JsonProperties.EVENT, JsonProperties.FORMAT_JSON, resJson);
                                if (result == null)
                                {
                                    System.Diagnostics.Debug.Print("Error en la publicación " + resJson);
                                }
                            }
                            catch (Exception ee)
                            {
                                System.Diagnostics.Debug.Print("Error: " + ee.Message);
                            }
                            finally
                            {
                                if (packet_id % 100 == 0)
                                {
                                    System.Diagnostics.Debug.Print("Packet id: " + packet_id);
                                }
                            }
                        }
                        else
                        {
                            this.DecrementPacket();
                        }
                    }

                    await Task.Delay(50);
                }
            });

            thread.Start();

            await Task.Delay(1);

            return(this);
        }
Ejemplo n.º 2
0
 public static async Task <IoTConnectionQueue> Create(IotConnection connection, KinectDataHandler kinectDataHandler)
 {
     return(await new IoTConnectionQueue().Initialize(connection, kinectDataHandler));
 }