Ejemplo n.º 1
0
        static public void ProcessStream(byte[] dataStream, byte streamType)
        {
            if (dataStream[3] == HOST_STREAM_RESP_OK)
            {
                if (streamType == HOST_STREAM_CONNECT_REQ)
                {
                    hostState = HostState.CONNECTED;
                }
                else if (streamType == HOST_STREAM_SPEED_REQ)
                {
                    Robot.motorCurrentSpeedPPS[Robot.MOTOR_LEFT] =
                        StreamBuilder.GetInt(dataStream, 4, StreamBuilder.BuilderType.INT32_BYTE);
                    Robot.motorTargetSpeedPPS[Robot.MOTOR_LEFT] =
                        StreamBuilder.GetInt(dataStream, 8, StreamBuilder.BuilderType.INT32_BYTE);
                    Robot.motorCurrentSpeedPPS[Robot.MOTOR_RIGHT] =
                        StreamBuilder.GetInt(dataStream, 12, StreamBuilder.BuilderType.INT32_BYTE);
                    Robot.motorTargetSpeedPPS[Robot.MOTOR_RIGHT] =
                        StreamBuilder.GetInt(dataStream, 16, StreamBuilder.BuilderType.INT32_BYTE);
                    Robot.displacementX =
                        StreamBuilder.GetFloat(dataStream, 20, StreamBuilder.BuilderType.FLOAT_BYTE_Q8);
                    Robot.displacementY =
                        StreamBuilder.GetFloat(dataStream, 24, StreamBuilder.BuilderType.FLOAT_BYTE_Q8);
                    Robot.displacementYaw =
                        StreamBuilder.GetFloat(dataStream, 28, StreamBuilder.BuilderType.FLOAT_BYTE_Q8);
                }
                else if (streamType == HOST_STREAM_SERVO_REQ)
                {
                    for (UInt16 i = 0; i < Robot.SERVO_NUMBER; i++)
                    {
                        Robot.servoData[i] =
                            (int)StreamBuilder.GetUnsignedInt(dataStream, (UInt16)(i + 4), StreamBuilder.BuilderType.BYTE);
                    }
                }
                else if (streamType == HOST_STREAM_BATTERY_REQ)
                {
                    Robot.batteryState =
                        (int)StreamBuilder.GetUnsignedInt(dataStream, 4, StreamBuilder.BuilderType.BYTE);
                    Robot.batteryVoltage =
                        StreamBuilder.GetUnsignedFloat(dataStream, 5, StreamBuilder.BuilderType.FLOAT_BYTE_Q16);
                    Robot.batteryPercent =
                        (int)StreamBuilder.GetUnsignedInt(dataStream, 9, StreamBuilder.BuilderType.BYTE);
                }
                else if (streamType == HOST_STREAM_SLAMCORE_STATE_REQ)
                {
                    Robot.slamcoreState =
                        (int)StreamBuilder.GetUnsignedInt(dataStream, 4, StreamBuilder.BuilderType.BYTE);
                }
                else if (streamType == HOST_STREAM_SONAR_REQ)
                {
                    for (int i = 0; i < Robot.SONAR_NUMBER; i++)
                    {
                        Robot.sonarData[i] =
                            (int)StreamBuilder.GetUnsignedInt(dataStream, (UInt16)(i * 4 + 4), StreamBuilder.BuilderType.INT32_BYTE);
                    }
                }

                DataUpdateEvent?.Invoke();
            }
        }
Ejemplo n.º 2
0
        public override void UpdateEvent(object sender, DataEvent e)
        {
            // values from _mTokenBuffer as an array:

            this._dataStrArr = new string[e.strArgs.Length];

            this._dataReceived = true;

            DataUpdateEvent?.Invoke(this, e);

            // Do something with the data, like in the class WTXModbus.cs
        }
Ejemplo n.º 3
0
        public bool isEmpty()
        {
            var subscribers = DataUpdateEvent.GetInvocationList();

            if (subscribers.Length == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// 成功后请求接口
        /// </summary>
        /// <param name="model"></param>
        public void SuccessParseData(AlipayModel model)
        {
            /*判断数据库不存在,是新的数据就执行新数据事件*/
            if (!sqldb.IsExist("ecpay_transfer", new KeyValuePair <string, string>("order_id", model.Order_id)))
            {
                String vfit = HttpHelper.MD5PHP(model.Order_id + "|" + model.Order_time + "|" + this.PostKey).ToUpper();
                //签名,订单号,交易备注,订单时间,对方,客服id,钱,交易状态
                String data = String.Format(Ecpay.Common.HttpConfigLang.Alipay_Interface_Postdata_String, vfit, model.Order_id, model.Trade_name, model.Order_time, model.Order_name, model.Order_name, model.Money, model.Trade_state);

                HttpItem httpitemInter = new HttpItem()
                {
                    ContentType = Common.HttpConfigLang.ContentType_Post_Setting_String,
                    Method      = "Post",
                    URL         = this.InterUrl,
                    Encoding    = Encoding.UTF8,
                    Postdata    = data,
                };
                HttpResult httpres = httpInter.GetHtml(httpitemInter);
                /*请求成功!*/
                if (httpres.StatusCode == HttpStatusCode.OK)
                {
                    model.Is_http_request = true;
                    if (httpres.Html.Length > 200)
                    {
                        model.Http_notify = httpres.Html.Substring(0, 190);
                    }
                    else
                    {
                        model.Http_notify = httpres.Html;
                    }
                }
                /*解析json*/
                Dictionary <String, String> dic = new Dictionary <string, string>();
                dic.Add("order_id", model.Order_id);
                dic.Add("order_name", model.Order_name);
                dic.Add("order_time", model.Order_time);
                dic.Add("trade_name", model.Trade_name);
                dic.Add("order_type", model.Order_type);
                dic.Add("money", model.Money);
                dic.Add("trade_state", model.Trade_state);
                dic.Add("http_notify", model.Http_notify);
                dic.Add("is_http_request", model.Is_http_request.ToString());
                if (sqldb.Insert("ecpay_transfer", dic))
                {
                    DataUpdateEvent.Invoke(null, null);
                }
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// InstrumentCatalogSubscription InstrumentsUpdated event.
        /// </summary>
        private void InstrumentsUpdated(object sender, InstrumentCatalogUpdatedEventArgs e)
        {
            InstrumentCatalogSubscription instrumentCatalogSubscription = sender as InstrumentCatalogSubscription;

            if (instrumentCatalogSubscription?.Instruments?.Values != null)
            {
                foreach (Instrument instru in instrumentCatalogSubscription.Instruments.Values)
                {
                    if (!_availableInstrumentDico.ContainsKey(instru.Key.SeriesKey))
                    {
                        _availableInstrumentDico.Add(instru.Key.SeriesKey, instru);
                        InstrumentDetails instruDetails = instru.InstrumentDetails;
                        DataUpdateEvent?.Invoke(this, instruDetails.Key.SeriesKey, instruDetails.ExpirationDate.ToDateTime(), instruDetails.StrikePrice, instruDetails.OptionType.ToString().ToUpper(), instruDetails.Name, instru.Product.Type.Name, instru.Product.Name);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public void Execute()
        {
            CreateDiscretePartition();
            DataUpdateEvent?.Invoke(this, new AlgorithmRunDataUpdateEventArgs
            {
                ClustersUsersCount = _clustersUsersCount
            });
            var qqPlusAnterior = 0.0;

            do
            {
                qqPlusAnterior = CalculateQQplus();
                bool dirty;
                do
                {
                    dirty = false;
                    foreach (var vertex in _vertices)
                    {
                        var oldClusterId = vertex.ClusterId;
                        vertex.ClusterId = FindNeighborClusterMaximizingQQplusGain(vertex, ref qqPlusAnterior, ref dirty);
                        if (vertex.ClusterId == oldClusterId)
                        {
                            continue;
                        }
                        _clustersUsersCount[oldClusterId]--;
                        _clustersUsersCount[vertex.ClusterId]++;
                        DataUpdateEvent?.Invoke(this, new AlgorithmRunDataUpdateEventArgs
                        {
                            ClustersUsersCount = _clustersUsersCount
                        });
                    }
                } while (dirty);
            } while (CalculateQQplus() > qqPlusAnterior);

            ILouvainExecutionResult = new Partition(_graph);
        }
        public MainViewModelTests()
        {
            _eventAggregatorMock       = new Mock <IEventAggregator>();
            _messageDialogServicesMock = new Mock <IMessageService>();
            _dataServicesMock          = new Mock <IFileService>();
            _updateDataMock            = new Mock <IUpdateService>();
            _simulateDataMock          = new Mock <ISimulateService>();
            _dictionaryServiceMock     = new Mock <IDictionariesService>();

            _dataUpdateEvent  = new DataUpdateEvent();
            _progressBarEvent = new ProgressBarEvent();
            _loadDataEvent    = new LoadDataEvent();

            _eventAggregatorMock.Setup(ea => ea.GetEvent <DataUpdateEvent>())
            .Returns(_dataUpdateEvent);
            _eventAggregatorMock.Setup(ea => ea.GetEvent <ProgressBarEvent>())
            .Returns(_progressBarEvent);
            _eventAggregatorMock.Setup(ea => ea.GetEvent <LoadDataEvent>())
            .Returns(_loadDataEvent);

            //moq setup
            _dataServicesMock.Setup(ds => ds.GetAllHorsesAsync())
            .ReturnsAsync(_horses);

            _dataServicesMock.Setup(ds => ds.GetAllJockeysAsync())
            .ReturnsAsync(_jockeys);

            _dataServicesMock.Setup(ds => ds.GetAllRacesAsync())
            .ReturnsAsync(_races);

            _simulateDataMock.Setup(ds => ds.SimulateResultsAsync(It.IsAny <int>(),
                                                                  It.IsAny <int>(),
                                                                  It.IsAny <List <RaceDetails> >(),
                                                                  It.IsAny <List <LoadedHorse> >(),
                                                                  It.IsAny <List <LoadedJockey> >(),
                                                                  It.IsAny <RaceModel>()))
            .ReturnsAsync(_racesSimulated);

            _updateDataMock.Setup(ud => ud.GetParsedHorseData(It.IsAny <HorseDataWrapper>(),
                                                              It.IsAny <DateTime>(),
                                                              It.IsAny <List <LoadedHorse> >(),
                                                              It.IsAny <List <LoadedJockey> >(),
                                                              It.IsAny <RaceModel>()))
            .Returns(_horsePicked);

            _updateDataMock.Setup(ud => ud.UpdateDataAsync(It.IsAny <List <LoadedJockey> >(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()))
            .ReturnsAsync(_jockeysSimulated);
            _updateDataMock.Setup(ud => ud.UpdateDataAsync(It.IsAny <List <LoadedHorse> >(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()))
            .ReturnsAsync(_horsesSimulated);
            _updateDataMock.Setup(ud => ud.UpdateDataAsync(It.IsAny <List <RaceDetails> >(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()))
            .ReturnsAsync(_racesSimulated);

            _viewModel = new MainViewModel(_dataServicesMock.Object,
                                           _messageDialogServicesMock.Object,
                                           _updateDataMock.Object,
                                           _simulateDataMock.Object,
                                           _eventAggregatorMock.Object,
                                           _dictionaryServiceMock.Object);

            SetupRaceModelData();
        }
Ejemplo n.º 8
0
 public void TriggerDataUpdateEvent(List <DataSet> dataSets)
 {
     DataUpdateEvent?.Invoke(this, new DataUpdateEventArgs(dataSets));
 }