Example #1
0
 void Awake()
 {
     if (_instance == null)
     {
         _instance = this;
     }
 }
Example #2
0
    public void spentFuel()     //PlanetManage, StarNavigation, ButtonController(TransSceneToMain)에서 씬전환시 호출함
    {
        SelectDB.Instance().table  = "userTable";
        SelectDB.Instance().column = "cFood, shipNum";
        SelectDB.Instance().where = " ";
        SelectDB.Instance().Select(2);

        SelectDB.Instance().food = SelectDB.Instance().food - GameManager.Instance().spentFuel;

        UpdateDB.Instance().table     = "userTable";
        UpdateDB.Instance().setColumn = "\"cFood\" = " + SelectDB.Instance().food.ToString();
        UpdateDB.Instance().where = " ";
        UpdateDB.Instance().UpdateData();
    }
Example #3
0
        private void mainFrame_Load(object sender, EventArgs e)
        {
            this.tsslStaartTime.Text = "系统开始时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            //if (thSplash != null)
            //{
            //    thSplash.Abort();
            //    thSplash = null;
            //}
            UpdateDB db = new UpdateDB();

            db.Updateed += new EventHandler((s2, e2) => { tsslAppVer.Text = s2.ToString(); });
            db.Update();
            tsslAppVer.Text = "I-SOFT 版本 " + db.AppVer.ToString();
        }
        public static void Configure(CommandLineApplication config)
        {
            config.Description = "Backfill repository information for packages in the Gallery";

            CommandOption lastCreateTimeOption = config.Option("-l | --lastcreatetime", "The latest creation time of package we should check", CommandOptionType.SingleValue);
            CommandOption collectData          = config.Option("-c | --collect", "Collect Repository metadata and save in file", CommandOptionType.NoValue);
            CommandOption updateDB             = config.Option("-u | --update", "Update DB with Repository metadata", CommandOptionType.NoValue);
            CommandOption fileName             = config.Option("-f | --file", "File to use", CommandOptionType.SingleValue);

            config.HelpOption("-? | -h | --help");
            config.OnExecute(async() =>
            {
                var builder = new ContainerBuilder();
                builder.RegisterAssemblyModules(typeof(DefaultDependenciesModule).Assembly);
                var container = builder.Build();

                var connectionString    = container.Resolve <IAppConfiguration>().SqlConnectionString;
                var serviceDiscoveryUri = container.Resolve <IAppConfiguration>().ServiceDiscoveryUri;

                if (collectData.HasValue())
                {
                    DateTime lastCreateTime = DateTime.MaxValue;

                    if (lastCreateTimeOption.HasValue() && !DateTime.TryParse(lastCreateTimeOption.Value(), out lastCreateTime))
                    {
                        Console.WriteLine($"Last create time is not valid. Got: {lastCreateTimeOption.Value()}");
                        return(1);
                    }

                    CollectRepositoryMetadata.Run(connectionString, serviceDiscoveryUri, lastCreateTime).GetAwaiter().GetResult();
                }

                if (updateDB.HasValue())
                {
                    if (fileName.HasValue())
                    {
                        await UpdateDB.Run(fileName.Value(), connectionString);
                    }
                    else
                    {
                        await UpdateDB.Run(connectionString);
                    }
                }

                return(0);
            });
        }
Example #5
0
    // 메인화면

    // 탐사화면 1: 미탐사행성, 2: 별
    public void explore(int type)
    {
        Time.timeScale = 1;
        //관리중인 오브젝트 개수 체크
        //SelectDB.Instance().table = "managePlanetTable";
        //SelectDB.Instance().column = "Count(*)";
        //SelectDB.Instance().Select(0);

        //SelectDB.Instance().table = "zodiacTable";
        //SelectDB.Instance().column = "Count(*)";
        //SelectDB.Instance().where = "WHERE open = 1 AND  find = 1 AND active = 0";

        if (type == 1)
        {
            Debug.Log("행성을 탐사합니다!");
            //Vector3 spawnPoint = GameManager.Instance().planetSpawnPoint;

            //충돌한 물음표 행성 비활성화
            GameManager.Instance().tempPlanet.SetActive(false);

            //행성 생성
            Debug.Log("<b>SpawnPoint!!</b> " + GameManager.Instance().planetSpawnPoint);
            PlanetManager script = GameObject.Find("PlanetManager").GetComponent <PlanetManager>();
            script.planetChange(GameManager.Instance().planetSpawnPoint);

            //탐사 UI 비활성화
            GameManager.Instance().exploreUi.SetActive(false);
            //Scene 전환(PlanetManager : 260 에서 동작함)
        }
        else if (type == 2)
        {
            UpdateDB.Instance().table     = "zodiacTable";
            UpdateDB.Instance().setColumn = "\"open\" = 1, \"find\" = 1 ";
            UpdateDB.Instance().where = "WHERE \"rowid\" = " + SelectDB.Instance().starRowid;
            UpdateDB.Instance().UpdateData();

            GameObject.Find("OBJ").GetComponent <OBJScript>().rowid = SelectDB.Instance().starRowid;
            DontDestroyOnLoad(GameObject.Find("OBJ"));
            SoundManager.Instance().nextSceneName = "Star";
            SceneManager.LoadScene("loading");
        }
    }
Example #6
0
        private void sendSocket()//通过socket发送
        {
            string ASTMMessage = string.Empty;
            string receiveString;
            byte   receiveByte;
            string EndJudge = string.Empty;//字段检查

            while (!ProcessASTMCancel.IsCancellationRequested)
            {
                if (astmManager.IsASTMAvailable)
                {
                    #region 向ASTM发送样本测试结果
                    Statusbar.SBar.SoftStatus = GlobalVariable.miniBusy; // mini mode
                    ASTMMessage = astmManager.GetASTMMessage();          //先把要发送的数据取出来
                    if (!GlobalVariable.IsOneWay)
                    {
                        #region 双向通信
                        Connect.sendSocketByte(ASTM_Commands.ENQ);//先发送ENQ
                        receiveByte = Connect.receiveSocketByet();
                        if (receiveByte == ASTM_Commands.ENQ)
                        {
                            //此时双方都在发送ENQ命令争夺主模式,遵循仪器优先原则
                            Connect.sendSocketByte(ASTM_Commands.NAK); //发送NAK表示不接受LIS的主模式
                            receiveByte = Connect.receiveSocketByet(); //等待LIS发送ACK
                        }
                        if (receiveByte == ASTM_Commands.ACK)
                        {
                            //LIS应答ACK
                            //此时仪器为主模式,仪器是从模式
                            if (Connect.sendSocket(ASTMMessage))
                            {
                                ++Statusbar.SBar.SendNum;
                                receiveByte = Connect.receiveSocketByet();//等待LIS发送应答ACK
                                if (receiveByte == ASTM_Commands.ACK)
                                {
                                    //如果应答ACK,则表示接受成功
                                    //发送结束标识符EOT
                                    Connect.sendSocketByte(ASTM_Commands.EOT);
                                    ProcessASTMMessage.Invoke(astmManager.GetASTMSample_ID() + "Lis服务器接收成功\r\n", "LIS"); //发送成功

                                    Statusbar.SBar.SoftStatus = GlobalVariable.miniWaiting;                              // mini mode
                                    Statusbar.SBar.SampleId   = astmManager.GetASTMSample_ID();                          // mini mode

                                    ++Statusbar.SBar.ReplyNum;
                                    UpdateDB.Invoke(astmManager.GetASTMSample_ID(), astmManager.GetASTMItem(), astmManager.GetASTMDevice(), astmManager.GetASTMSample_SendTime());//回调
                                }
                                else
                                {
                                    Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                    ProcessASTMMessage.Invoke(astmManager.GetASTMSample_ID() + "Lis服务器发送失败\r\n", "LIS");
                                }
                            }
                            else
                            {
                                Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                ProcessASTMMessage.Invoke(astmManager.GetASTMSample_ID() + "Lis服务器发送失败\r\n", "LIS");
                            }
                        }
                        else
                        {
                            //LIS没有应答ACK,LIS连接错误
                            Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                            ProcessASTMMessage.Invoke(astmManager.GetASTMSample_ID() + "Lis服务器连接错误\r\n", "LIS");
                        }
                        #endregion
                    }
                    else
                    {
                        #region 单向通信
                        if (Connect.sendSocket(ASTMMessage))
                        {
                            ++Statusbar.SBar.SendNum;
                            ProcessASTMMessage.Invoke(astmManager.GetASTMSample_ID() + "Lis服务器发送成功\r\n", "LIS");                                                           //发送成功

                            Statusbar.SBar.SoftStatus = GlobalVariable.miniWaiting;                                                                                        // mini mode
                            Statusbar.SBar.SampleId   = astmManager.GetASTMSample_ID();                                                                                    // mini mode

                            UpdateDB.Invoke(astmManager.GetASTMSample_ID(), astmManager.GetASTMItem(), astmManager.GetASTMDevice(), astmManager.GetASTMSample_SendTime()); //回调
                        }
                        else
                        {
                            Statusbar.SBar.SoftStatus = GlobalVariable.miniError;                                // mini mode
                            ProcessASTMMessage.Invoke(astmManager.GetASTMSample_ID() + "Lis服务器发送失败\r\n", "LIS"); //发送成功
                        }
                        #endregion
                    }
                    astmManager.RemoveASTM();//无论如何,最后都在队列删除掉这条数据
                    #endregion
                }
                else if (astmManager.IsASTMRequestSampleDataAvailable)
                {
                    #region 向ASTM请求样本信息

                    Connect.sendSocketByte(ASTM_Commands.ENQ);//先发送ENQ
                    receiveByte = Connect.receiveSocketByet();
                    if (receiveByte == ASTM_Commands.ENQ)
                    {
                        //此时双方都在发送ENQ命令争夺主模式,遵循仪器优先原则
                        Connect.sendSocketByte(ASTM_Commands.NAK);           //发送NAK表示不接受LIS的主模式
                        receiveByte = Connect.receiveSocketByet();           //等待LIS发送ACK

                        Statusbar.SBar.SoftStatus = GlobalVariable.miniBusy; // mini mode
                    }
                    if (receiveByte == ASTM_Commands.ACK)
                    {
                        //LIS应答ACK
                        //此时仪器为主模式,仪器是从模式
                        ASTMMessage = astmManager.GetASTMRequestSampleDataMessage();
                        Connect.sendSocket(ASTMMessage);
                        ++Statusbar.SBar.SendNum;
                        receiveByte = Connect.receiveSocketByet();//等待LIS发送应答ACK
                        if (receiveByte == ASTM_Commands.ACK)
                        {
                            //如果应答ACK,则表示接受成功
                            //发送结束标识符EOT
                            Connect.sendSocketByte(ASTM_Commands.EOT);
                            //此时进入中立模式
                            receiveByte = Connect.receiveSocketByet();//测试等待接收LIS发回来样本信息
                            if (receiveByte == ASTM_Commands.ENQ)
                            {
                                //应答ACK
                                Connect.sendSocketByte(ASTM_Commands.ACK);
                                //LIS开始为主模式,仪器为从模式
                                receiveString = Connect.receiveSocket();//接收样本申请信息
                                //接收到样本消息后,应答ACK
                                Connect.sendSocketByte(ASTM_Commands.ACK);
                                //然后等待LIS发送EOT结束命令
                                receiveByte = Connect.receiveSocketByet();
                                if (receiveByte == ASTM_Commands.EOT)
                                {
                                    //样本查询和下载结束
                                    //此时来验证是否有相应的样本信息
                                    ASTM_Parser         parser  = new ASTM_Parser();
                                    List <ASTM_Message> message = new List <ASTM_Message>();
                                    try
                                    {
                                        parser.parse(receiveString, ref message);
                                        EndJudge = message[0].terminatorRecords[0].f_terminatorcode;//检查L字段
                                    }
                                    catch
                                    {
                                        //解析出现异常
                                        ProcessASTMMessage.Invoke(astmManager.GetASTMRequestSampleDataSample_ID() + "Lis服务器申请样本异常\r\n", "LIS");
                                        Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                    }

                                    if (EndJudge == "I")
                                    {
                                        //LIS无相应样本信息
                                        ProcessASTMMessage.Invoke(astmManager.GetASTMRequestSampleDataSample_ID() + "Lis服务器无相关样本信息\r\n", "LIS");
                                        Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                    }
                                    else if (EndJudge == "N")
                                    {
                                        //LIS内有相应样本信息
                                        ASTMManager.ASTMPatientInfo pi = ASTM_ParesrPatientInfo(receiveString);

                                        if (pi.SampleInfo.Count >= 1)
                                        {
                                            Statusbar.SBar.SampleId = pi.SampleInfo[0].SampleID; // mini mode
                                        }
                                        Statusbar.SBar.SoftStatus = GlobalVariable.miniWaiting;  // mini mode

                                        RequestSampleData.BeginInvoke(pi, null, null);
                                        //委托出去
                                    }
                                    else
                                    {
                                        //LIS 异常
                                        Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                        ProcessASTMMessage.Invoke(astmManager.GetASTMRequestSampleDataSample_ID() + "Lis服务器申请样本异常\r\n", "LIS");
                                    }
                                }
                            }
                        }
                    }
                    astmManager.RemoveASTMRequestSampleData();

                    #endregion
                }
                else
                {
                    #region LIS主动发送样本信息

                    //astmManager.ASTMSignal.Reset();
                    //持续监听LIS服务器
                    //LIS为主模式 仪器为从模式
                    receiveString = Connect.receiveSocket();
                    //接收到样本消息后,应答ACK
                    Connect.sendSocketByte(ASTM_Commands.ACK);
                    if (receiveString.Length > 10 && receiveString.IndexOf("H") != -1)
                    {
                        Statusbar.SBar.SoftStatus = GlobalVariable.miniBusy;// mini mode

                        //传回来标准消息
                        //然后等待LIS发送EOT结束命令
                        receiveByte = Connect.receiveSocketByet();
                        if (receiveByte == ASTM_Commands.EOT)
                        {
                            //样本查询和下载结束
                            //此时来验证是否有相应的样本信息
                            ASTM_Parser         parser  = new ASTM_Parser();
                            List <ASTM_Message> message = new List <ASTM_Message>();
                            try
                            {
                                parser.parse(receiveString, ref message);
                                EndJudge = message[0].patientRecords[0].orderRecords[0].f_report_type;//检查O字段的第26字段
                            }
                            catch
                            {
                                //解析出现异常
                                Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                ProcessASTMMessage.Invoke(astmManager.GetASTMRequestSampleDataSample_ID() + "Lis服务器主动发送样本信息异常\r\n", "LIS");
                            }
                            if (EndJudge == "O")
                            {
                                //LIS内有相应样本信息
                                ASTMManager.ASTMPatientInfo pi = ASTM_ParesrPatientInfo(receiveString);

                                if (pi.SampleInfo.Count >= 1)
                                {
                                    Statusbar.SBar.SampleId = pi.SampleInfo[0].SampleID; // mini mode
                                }
                                Statusbar.SBar.SoftStatus = GlobalVariable.miniWaiting;  // mini mode

                                RequestSampleData.BeginInvoke(pi, null, null);           //委托出去
                            }
                            else
                            {
                                //LIS 异常
                                Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                ProcessASTMMessage.Invoke(astmManager.GetASTMRequestSampleDataSample_ID() + "Lis服务器主动发送样本信息异常\r\n", "LIS");
                            }
                        }
                    }
                    #endregion
                }
            }
        }
Example #7
0
 protected void lnkUpdate_Click(object sender, EventArgs e)
 {
     SqlConnection cn = new SqlConnection(SqlDataSource1.ConnectionString);
     UpdateDB upd = new UpdateDB(@"C:\PaoloMisson\aawork\GestionaleAssistenza\Src\GAT2\Update\", ref cn);
     upd.Update();
 }
Example #8
0
        /// <summary>
        /// Implement the "Harvest PublicationList" button
        /// </summary>
        private void HarvestPublications_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(DSN.Text))
            {
                MessageBox.Show("Please specify a valid ODBC data source that points to a MySQL 5.5 server", "Unable to Initialize Database", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (!SetApiKeyFromFormField())
            {
                return;
            }

            // If the harvester was previously interrupted or there were errors,
            // give an extra warning to the user.
            bool TablesCreated;
            int  NumPeople;
            int  NumHarvestedPeople;
            int  NumPublications;
            int  NumErrors;

            try
            {
                if ((UpdateDB == null) || (UpdateDB.DSN != DSN.Text))
                {
                    UpdateDB = new Database(DSN.Text);
                }
                UpdateDB.GetStatus(out TablesCreated, out NumPeople, out NumHarvestedPeople, out NumPublications, out NumErrors);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Unable to initialize database '" + DSN.Text + "': " + ex.Message, "Error Initializing Database", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                SetGUIEnabled(true);
                return;
            }
            DialogResult Result;

            if (NumErrors > 0)
            {
                Result = MessageBox.Show("WARNING: Some people from a previous harvest were not processed because they generated errors. If you start a new harvest, the results of the previous one will be discarded. Are you sure you want to continue?",
                                         "Discard results of the previous harvest?", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                if (Result == DialogResult.Cancel)
                {
                    return;
                }
            }
            else if ((NumHarvestedPeople > 0) && (NumHarvestedPeople < NumPeople))
            {
                Result = MessageBox.Show("WARNING: A previous harvest was interrupted. If you start a new harvest, the results of the previous one will be discarded. Are you sure you want to continue?",
                                         "Discard results of the previous harvest?", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                if (Result == DialogResult.Cancel)
                {
                    return;
                }
            }


            if (!ReadyForHarvest("Reset database and get new publications?"))
            {
                return;
            }

            this.Cursor = Cursors.WaitCursor;
            SetGUIEnabled(false);
            Processing       = true;
            InterruptClicked = false;

            Harvest(PeopleFile.Text, PublicationTypeFile.Text, false);

            Processing = false;
            SetGUIEnabled(true);
            this.Cursor = Cursors.Default;

            AddLogEntry("Done.");
        }
Example #9
0
        private void sendSocket()
        {
            string     HL7Message = string.Empty;
            string     receiveString;
            PipeParser parser;
            IMessage   m;
            int        SendNum = 0;

            log.Info("HL7 send socket start.");
            while (!ProcessHL7Cancel.IsCancellationRequested && GlobalVariable.IsSocketRun)
            {
                if (hl7Manager.IsHL7Available)
                {
                    #region 向HL7发送样本测试结果
                    if (SendNum == GlobalVariable.ReSendNum)
                    {
                        //连续发送失败超过规定次数,不再发送
                        hl7Manager.RemoveHL7();//移除队列中开始处的HL7
                        SendNum = 0;
                        continue;
                    }
                    Statusbar.SBar.SoftStatus = GlobalVariable.miniBusy;// mini mode
                    try
                    {
                        HL7Message = hl7Manager.GetHL7Message();
                        Connect.sendSocket(HL7Message);
                        log.Info("HL7 send" + hl7Manager.GetHL7Sample_ID());
                        if (SendNum == 0)
                        {
                            ++Statusbar.SBar.SendNum;
                        }
                        ++SendNum;
                    }
                    catch
                    {
                        Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                        ProcessHL7Message.Invoke(hl7Manager.GetHL7Sample_ID() + "Lis服务器发送失败\r\n请重新打开软件\r\n", "LIS");
                        break;
                    }
                    if (!GlobalVariable.IsOneWay)//双向
                    {
                        receiveString = Connect.receiveSocket();
                        if (receiveString.Substring(0, 3) == "MSH")//相当于一个判断
                        {
                            parser = new PipeParser();
                            m      = parser.Parse(receiveString);
                            ACK ack = m as ACK;
                            if (ack.MSA.AcknowledgementCode.Value == "AA")
                            {
                                ProcessHL7Message.Invoke(hl7Manager.GetHL7Sample_ID() + "Lis服务器接收成功\r\n", "LIS");
                                log.Info("LIS receive success" + hl7Manager.GetHL7Sample_ID());
                                Statusbar.SBar.SoftStatus = GlobalVariable.miniWaiting;   // mini mode
                                Statusbar.SBar.SampleId   = hl7Manager.GetHL7Sample_ID(); //mini mode
                                ++Statusbar.SBar.ReplyNum;
                                SendNum = 0;
                                UpdateDB.Invoke(hl7Manager.GetHL7Sample_ID(), hl7Manager.GetHL7Item(), hl7Manager.GetHL7Device(), hl7Manager.GetHL7Sample_SendTime());
                                hl7Manager.RemoveHL7();//移除队列中开始处的HL7
                            }
                            else
                            {
                                Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                ProcessHL7Message.Invoke(hl7Manager.GetHL7Sample_ID() + "Lis服务器第" + SendNum.ToString() + "次接收失败\r\n", "LIS");
                                log.Info("LIS " + SendNum + " receive fail");
                            }
                        }
                        else
                        {
                            //接收异常
                            Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                            ProcessHL7Message.Invoke(hl7Manager.GetHL7Sample_ID() + "Lis服务器第" + SendNum.ToString() + "次接收失败\r\n", "LIS");
                            log.Info("LIS " + SendNum + " receive fail");
                        }
                    }
                    else//单向
                    {
                        Statusbar.SBar.SoftStatus = GlobalVariable.miniWaiting;// mini mode
                        Statusbar.SBar.SampleId   = hl7Manager.GetHL7Sample_ID();//mini mode

                        ProcessHL7Message.Invoke(hl7Manager.GetHL7Sample_ID() + "Lis服务器发送成功\r\n", "LIS");
                        log.Info("LIS receive success" + hl7Manager.GetHL7Sample_ID());
                        UpdateDB.Invoke(hl7Manager.GetHL7Sample_ID(), hl7Manager.GetHL7Item(), hl7Manager.GetHL7Device(), hl7Manager.GetHL7Sample_SendTime()); //直接回调
                        hl7Manager.RemoveHL7();                                                                                                                //移除队列中开始处的HL7
                    }
                    #endregion
                }
                else if (hl7Manager.IsHL7RequestSampleDataAvailable)
                {
                    #region 向LIS请求样本信息
                    Statusbar.SBar.SoftStatus = GlobalVariable.miniBusy;// mini mode
                    string HL7Apply;
                    //申请信息发送
                    try
                    {
                        HL7Apply = hl7Manager.GetHL7RequestSampleDataMessage();
                        Connect.sendSocket(HL7Apply);
                        ++Statusbar.SBar.SendNum;
                    }
                    catch
                    {
                        Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                        ProcessHL7Message.Invoke(hl7Manager.GetHL7Sample_ID() + "Lis服务器发送失败\r\n请重新打开软件\r\n", "LIS");
                        break;
                    }
                    receiveString = Connect.receiveSocket();
                    if (receiveString.Substring(0, 3) == "MSH")
                    {
                        //传回为标准消息
                        parser = new PipeParser();
                        m      = parser.Parse(receiveString);
                        QCK_Q02 qck = m as QCK_Q02;
                        if (qck.QAK.QueryResponseStatus.Value == "OK")//代表有样本数据
                        {
                            string receiveStringDSR;
                            int    DSRIndex = receiveString.IndexOf("DSR");
                            if (DSRIndex == -1)                             //如果刚才接收过来的没有DSR数据
                            {
                                receiveStringDSR = Connect.receiveSocket(); //重新来接受DSR数据
                            }
                            else
                            {
                                receiveStringDSR = receiveString.Substring(DSRIndex);//截取后面一部分得为DSR数据
                            }
                            //解析DSR
                            //解析完DSR数据就要回复ACKQ03消息,此时设备信息传出去
                            PipeParser parserDSR = new PipeParser();
                            IMessage   mDSR      = parserDSR.Parse(receiveStringDSR);
                            DSR_Q03    dsr       = mDSR as DSR_Q03;
                            if (dsr.QAK.QueryResponseStatus.Value == "OK") //相当于再做了一层判断
                            {
                                HL7Manager.HL7SampleInfo hl7info = HL7_ParserSampleInfo(receiveStringDSR);
                                //接收成功后就要发送应答信号
                                RequestSampleData.BeginInvoke(hl7info, null, null);
                                Connect.sendSocket(CreatACKQ03(dsr.MSH.ReceivingFacility.NamespaceID.Value));
                                Statusbar.SBar.SoftStatus = GlobalVariable.miniWaiting;                    // mini mode
                                Statusbar.SBar.SampleId   = hl7Manager.GetHL7RequestSampleDataSample_ID(); //mini mode
                                ProcessHL7Message.Invoke(hl7Manager.GetHL7RequestSampleDataSample_ID() + "LIS服务器申请样本成功\r\n", "LIS");
                                log.Info("Lis request sample success " + hl7Manager.GetHL7RequestSampleDataSample_ID());
                            }
                            else
                            {
                                Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                                ProcessHL7Message.Invoke(hl7Manager.GetHL7RequestSampleDataSample_ID() + "LIS服务器申请样本异常\r\n", "LIS");
                                log.Info("Lis request sample fail " + hl7Manager.GetHL7RequestSampleDataSample_ID());
                            }
                        }
                        else if (qck.QAK.QueryResponseStatus.Value == "NF")//代表没有样本数据
                        {
                            //此时不再回复消息
                            //结束
                            Statusbar.SBar.SoftStatus = GlobalVariable.miniError;// mini mode
                            ProcessHL7Message.Invoke(hl7Manager.GetHL7RequestSampleDataSample_ID() + "LIS服务器无相关样本信息\r\n", "LIS");
                            log.Info("Lis no request sample " + hl7Manager.GetHL7RequestSampleDataSample_ID());
                        }
                    }
                    #endregion
                    hl7Manager.RemoveHL7RequestSampleData();//移除掉队列中的申请信息
                }
                else
                {
                    #region LIS主动发送样本信息
                    //hl7Manager.HL7Signal.Reset();
                    //持续监听LIS服务器
                    receiveString = Connect.receiveSocket();
                    if (receiveString.Length > 10 && receiveString.Substring(0, 3) == "MSH")
                    {
                        //传回来为标准信息
                        hl7Manager.AddHL7ApplySample(receiveString); //扔给队列交给线程处理
                        hl7Manager.HL7ApplySampleSignal.Set();       //唤醒线程
                    }
                    #endregion
                }
            }
        }
Example #10
0
 void Awake()
 {
     if (_instance == null)
         _instance = this;
 }
Example #11
0
        private void mainFrame_FormClosing(object sender, FormClosingEventArgs e)
        {
            UpdateDB db = new UpdateDB();

            db.BackupDB();
        }
Example #12
0
    public void planetChange(Vector3 spawnPoint)
    {
        int    rand         = GameObject.Find("PlanetManager").gameObject.GetComponent <RandPlanet>().PlanetCreate();
        float  tempDistance = 500;      // 별자리 거리 임시 값
        int    nearStar     = 0;        // 가장 가까운 별자리 카운트 값
        string tempName;
        int    tempsize;
        int    tempcolor;
        int    tempmFood;
        int    tempmTitanium;
        int    tempLepersec;
        float  tempX;
        float  tempY;
        float  tempZ;
        int    tempmat;

        // 행성 오브젝트 생성 및 배치
        GameObject obj = Instantiate(GameObject.Find("PlanetManager").gameObject.GetComponent <RandPlanet>().D_PlanetList[rand]);

        obj.transform.position = spawnPoint;

        // 행성 이름 생성 <형용사(사이즈별)> + <행성 색깔> + <별자리이름> 조합
        // 가까운 별자리 찾기
        for (int i = 1; i <= 12; i++)
        {
            string starName     = "Center_" + i;
            float  starDistance = Vector3.Distance(obj.transform.position, GameObject.Find(starName).transform.position);

            Debug.Log(starName + "\t" + starDistance);
            if (tempDistance > starDistance)
            {
                tempDistance = starDistance;
                nearStar     = i;
            }
        }
        Debug.Log("제일 가까운 거리!" + tempDistance + "\t" + nearStar);
        tempName = GameObject.Find("PlanetManager").gameObject.GetComponent <RandPlanet>().PlanetNameCreate() + " " + GameObject.Find("PlanetManager").gameObject.GetComponent <RandPlanet>().zName[nearStar - 1];
        obj.name = tempName;

        tempsize      = GameObject.Find("PlanetManager").gameObject.GetComponent <RandPlanet>().sizeT;
        tempcolor     = GameObject.Find("PlanetManager").gameObject.GetComponent <RandPlanet>().colorT;
        tempmFood     = UnityEngine.Random.Range(tempsize * tempsize * 100, tempsize * 5 * 100) + 1500;
        tempmTitanium = UnityEngine.Random.Range(tempsize * tempsize * 100, tempsize * 5 * 100) + 2500;
        tempLepersec  = tempsize;
        tempX         = spawnPoint.x;
        tempY         = spawnPoint.y;
        tempZ         = spawnPoint.z;
        tempmat       = GameObject.Find("PlanetManager").gameObject.GetComponent <RandPlanet>().matT;

        UpdateDB.Instance().table     = "managePlanetTable";
        UpdateDB.Instance().setColumn = " \"User\" = 0 ";
        UpdateDB.Instance().where = " WHERE \"User\"= 1";
        UpdateDB.Instance().UpdateData();

        //초기 행성생성시 데이터 초기화 및 DB INSERT (Table Column 순서 수정필요함)
        InsertDB.Instance().table  = "managePlanetTable";
        InsertDB.Instance().column = "name,size,color,mFood,mTitanium,le_persec,locationX,locationY,locationZ,mat,lFood,lTitanium,User";
        InsertDB.Instance().values = "\"" + tempName + "\"," +  //name      행성이름
                                     tempsize + "," +           //size      행성크기
                                     tempcolor + "," +          //color     행성색상
                                     tempmFood + "," +          //mFood     식량 부존량
                                     tempmTitanium + "," +      //mTitanium 티타늄 부존량
                                     tempLepersec + "," +       //le_persec 초당 빛생산량
                                     tempX + "," +              //locationX 좌표X
                                     tempY + "," +              //locationY 좌표Y
                                     tempZ + "," +              //locationZ 좌표Z
                                     tempmat + "," +            //material  행성 스타일
                                     tempmFood + "," +          //lFood     식량 잔존량
                                     tempmTitanium + "," +      //lTitanium 티타늄 잔존량
                                     "1";
        InsertDB.Instance().Insert();
        SoundManager.Instance().bgmType = 1;
        GameObject.Find("Nav").gameObject.GetComponent <StarNavigation>().spentFuel();  //연료 소모 DB반영
        GameObject.Find("GameManager").gameObject.GetComponent <ButtonController>().TransSceneToPlanet();
    }