예제 #1
0
        public void StartConnectEngine(EngineLogin login)
        {
            Log.Info("StartConnectEngine:" + login.EngineIp);
            //int mockCount = int.Parse(TbMockTagPowerCount0.Text);
            if (engineDa == null)
            {
                //engineDa = new PositionEngineDA("192.168.10.155", "192.168.10.19");//todo:ip写到配置文件中
                engineDa           = new PositionEngineDA(login);//todo:ip写到配置文件中
                engineDa.MockCount = MockCount;
                //engineDa.MessageReceived += EngineDa_MessageReceived;
                engineDa.MessageReceived += (obj) =>
                {
                    WriteLogLeft(GetLogText(obj));
                };
                //engineDa.PositionRecived += EngineDa_PositionRecived;
                engineDa.PositionListRecived += EngineDa_PositionListRecived;
            }
            engineDa.Start();

            if (IsWriteToDb)
            {
                InitTagPosition(MockCount);
                StartInsertPositionTimer();
            }
        }
        public bool Stop()
        {
            try
            {
                StaticEvents.DbDataChanged -= StaticEvents_DbDataChanged;
                if (engineDa != null)
                {
                    engineDa.Stop();
                    engineDa = null;
                }
                if (insertThread != null)
                {
                    try
                    {
                        insertThread.Abort();
                        insertThread = null;
                    }
                    catch (Exception ex)
                    {
                        Log.Error("PositionEngineClient.Stop1", ex);
                    }
                }

                if (LocationAlarmThread != null)
                {
                    try
                    {
                        LocationAlarmThread.Abort();
                        LocationAlarmThread = null;
                    }
                    catch (Exception ex)
                    {
                        Log.Error("PositionEngineClient.Stop2", ex);
                    }
                }

                isBusy = false;
                //Positions.Clear();
                Positions = new ConcurrentBag <Position>();
                return(true);
            }
            catch (Exception ex)
            {
                Log.Error("PositionEngineClient.Stop", ex);
                return(false);
            }
        }
        public void StartConnectEngine(EngineLogin login)
        {
            //Log.Info(LogTags.Engine,"StartConnectEngine:" + login.EngineIp);
            WriteLogLeft(GetLogText("StartConnectEngine:" + login.EngineIp));

            LocationHistoryDb db = new LocationHistoryDb();
            bool r1 = db.Database.Exists();

            WriteLogLeft(GetLogText("数据库是否存在:" + r1));
            if (r1 == false)
            {
                bool r2 = db.Database.CreateIfNotExists();
                WriteLogLeft(GetLogText("数据库创建是否成功:" + r2));
            }

            //int mockCount = int.Parse(TbMockTagPowerCount0.Text);
            if (engineDa == null)
            {
                //engineDa = new PositionEngineDA("192.168.10.155", "192.168.10.19");//todo:ip写到配置文件中
                engineDa           = new PositionEngineDA(login);//todo:ip写到配置文件中
                engineDa.MockCount = MockCount;
                //engineDa.MessageReceived += EngineDa_MessageReceived;
                engineDa.MessageReceived += (msg) =>
                {
                    psCount++;
                    string m = string.Format("{0}||{1}", psCount, msg);
                    WriteLogLeft(GetLogText(m));
                };
                //engineDa.PositionRecived += EngineDa_PositionRecived;
                engineDa.PositionListRecived += EngineDa_PositionListRecived;
            }
            engineDa.Start();

            if (IsWriteToDb)
            {
                InitTagPosition(MockCount);
                StartInsertPositionTimer();
            }
        }