Exemplo n.º 1
0
        private async Task Run()
        {
            //ListAvailiblePorts();

            var spf        = new SerialPortFactory();
            var serialPort = spf.Create("COM3", baudRate: 115200);

            var of = new ObservableFactory();
            var linesObservable = of.GetLinesObservable(serialPort);

            linesObservable.Subscribe(Console.WriteLine);

            var sw = Stopwatch.StartNew();

            while (sw.Elapsed.TotalMinutes < 1 &&
                   !serialPort.IsOpen)
            {
                try
                {
                    serialPort.Open();
                }
                catch (IOException IoException) when(IoException.Message.EndsWith("does not exist."))
                {
                    //we ignore this error and try again
                }
                await Task.Delay(TimeSpan.FromMilliseconds(300));
            }

            await linesObservable.ToTask();
        }
Exemplo n.º 2
0
        public void GetBinaryGenericMetaData()
        {
            var    serializer = new JsonSerializer();
            string eventName  = "File";

            byte[] message            = new byte[] { 1, 2, 3 };
            var    metaData           = new List <KeyValue>();
            string serializedMetaData = serializer.Serialize(metaData);
            Action <object, string> onMetaSerialized = (cSharpObj, json) => {
                Assert.Equal(serializedMetaData, json);
                Assert.True(cSharpObj is List <KeyValue>);
            };
            var metaSerializer = new SerializationMock(onMetaSerialized);

            ConnectionMock connection = new ConnectionMock();
            var            factory    = new ObservableFactory(connection, metaSerializer);
            // Sending generic T
            var observable = factory.GetBinary <List <KeyValue> >(eventName, metaSerializer);

            observable.Subscribe(msg => {
                Assert.Equal(message, msg.Data);
                Assert.Equal(metaData, msg.MetaData);
            });


            var serverEvent = connection.ServerEvents[eventName] as Action <string, byte[]>;

            Assert.NotNull(serverEvent);
            serverEvent(serializedMetaData, message);
        }
        //public IObservable<Tuple<KeyValuePair<DateTime, double>[], IEnumerable<KeyValuePair<DateTime, Tuple<double, double>[]>>>> LastPredictions { get; }



        public PredictionService2(IObservable <KeyValuePair <DateTime, double> > series, IScheduler scheduler)
        {
            List <KeyValuePair <DateTime, double> > lst = new List <KeyValuePair <DateTime, double> >();

            series.SubscribeOn(scheduler).Subscribe(_ => lst.Add(_), () => Console.WriteLine("finished"));


            var y = ObservableFactory.Build(() => Helper.Trim(lst), TimeSpan.FromSeconds(1), scheduler)
                    .Where(_ =>
                           _ != null).Distinct()
                    .TakeUntil(series.Delay(TimeSpan.FromSeconds(0)).GetAwaiter());

            Predictions = Filter.Optimisation.BGWorker.GetOptimisedGPPredictions(y, 1) /*.Take(TimeSpan.FromSeconds(15))*/;
        }
        public void GetSerializedGenericMetaData()
        {
            string eventName = "Person";
            Person message   = new Person()
            {
                Name = "Alice", Age = 27
            };
            var metaData = new List <KeyValue>();

            var    serializer         = new JsonSerializer();
            string serializedMetaData = serializer.Serialize(metaData);
            string serializedData     = serializer.Serialize(message);

            int serializationCounter = 0;

            Action <string, object> onDeserialized = (json, cSharpObj) => {
                if (cSharpObj is Person)
                {
                    Assert.Equal(serializedData, json);
                }
                if (cSharpObj is List <KeyValue> )
                {
                    Assert.Equal(serializedMetaData, json);
                }
                Assert.True(cSharpObj is List <KeyValue> || cSharpObj is Person);

                serializationCounter++;
            };
            var customSerializer = new SerializationMock(onDeserialized);

            ConnectionMock connection = new ConnectionMock();
            var            factory    = new ObservableFactory(connection, serializer);
            // Sending generic MetaData
            var observable = factory.GetSerialized <Person, List <KeyValue> >(eventName, customSerializer);

            observable.Subscribe(msg => {
                Assert.Equal(message.Name, msg.Data.Name);
                Assert.Equal(message.Age, msg.Data.Age);
                Assert.Equal(metaData, msg.MetaData);
            });


            var serverEvent = connection.ServerEvents[eventName] as Action <string, string>;

            Assert.NotNull(serverEvent);
            serverEvent(serializedMetaData, serializedData);

            Assert.Equal(2, serializationCounter);
        }
        //public IObservable<Tuple<KeyValuePair<DateTime, double>[], IEnumerable<KeyValuePair<DateTime, Tuple<double, double>[]>>>> LastPredictions { get; }



        public PredictionService4(IObservable <KeyValuePair <DateTime, Tuple <double, double> > > series, IScheduler scheduler)
        {
            List <KeyValuePair <DateTime, Tuple <double, double> > > lst = new List <KeyValuePair <DateTime, Tuple <double, double> > >();

            series.SubscribeOn(scheduler).Subscribe(_ => lst.Add(_), () => Console.WriteLine("finished"));


            var y = ObservableFactory.Build(() => Helper.Trim(lst), TimeSpan.FromSeconds(3), scheduler)
                    .Where(_ =>
                           _ != null);
            //.TakeUntil(series.Delay(TimeSpan.FromSeconds(0)).GetAwaiter());

            var prs1 = Filter.Optimisation.BGWorker.GetOptimisedKFPredictions(y.Select(_ => _.Select(_d => new KeyValuePair <DateTime, double>(_d.Key, _d.Value.Item1)).ToArray()), 5).Select(_ => _.Output); /*.Take(TimeSpan.FromSeconds(15))*/;

            var prs2 = Filter.Optimisation.BGWorker.GetOptimisedKFPredictions(y.Select(_ => _.Select(_d => new KeyValuePair <DateTime, double>(_d.Key, _d.Value.Item2)).ToArray()), 5).Select(_ => _.Output);

            Predictions = prs1.Zip(prs2, (c, d) => c.Zip(d, (e, f) => new KeyValuePair <DateTime, Tuple <double, double>[]>(f.Key, Combine(e.Value, f.Value))));
        }
Exemplo n.º 6
0
        public void GetStringGenericMetaData()
        {
            var    serializer         = new JsonSerializer();
            string eventName          = "Chat";
            string message            = "Hola";
            var    metaData           = new List <KeyValue>();
            string serializedMetaData = serializer.Serialize(metaData);

            ConnectionMock connection = new ConnectionMock();
            var            factory    = new ObservableFactory(connection, serializer);
            // Sending generic T
            var observable = factory.GetString <List <KeyValue> >(eventName, serializer);

            observable.Subscribe(msg => {
                Assert.Equal(message, msg.Data);
                Assert.Equal(metaData, msg.MetaData);
            });


            var serverEvent = connection.ServerEvents[eventName] as Action <string, string>;

            Assert.NotNull(serverEvent);
            serverEvent(serializedMetaData, message);
        }