public void SerializeTest() { DB.Serializer serializer = new DB.Serializer(); var ctx = EntityChangeSetTests.RandomContext(); for (int i = 0; i < 100; i++) { RCS rcs = RandomOutboundRCS(ctx); SerialRCS srcs = new SerialRCS(new RCS.GenID(Int3.Zero, Int3.One, 0), rcs); string json = serializer.Serialize(srcs); SerialRCS backRCS = serializer.Deserialize <SerialRCS>(json); RCS back = backRCS.Deserialize(); Assert.AreEqual(srcs, backRCS); Assert.AreEqual(rcs, back); } for (int i = 0; i < 100; i++) { SDS sds = RandomSDS(ctx); var s = new SerialSDS(sds, Simulation.ID.XYZ); string json = serializer.Serialize(s); var reverse = serializer.Deserialize <SerialSDS>(json); Assert.AreEqual(s, reverse); SDS rev2 = reverse.Deserialize(); Assert.IsTrue(sds.ICMessagesAndEntitiesAreEqual(rev2)); } }
public static SDS GetMapping(SPWebApplication webApp) { var sds = new SDS(); if (webApp.SiteDataServers.Count < 1) { return(null); } foreach (var t in webApp.SiteDataServers) { var uriList = t.Value.ToList(); sds.Add(t.Key, uriList); } return(sds); }
public Form1() { InitializeComponent(); checkedListBox1.SetItemChecked(3, true); SDS.Select(); if (Properties.Settings.Default.sciezka_odczytu_se.Count() > 4) { sciezka_zaczytania.Text = Properties.Settings.Default.sciezka_odczytu_se; } else { sciezka_zaczytania.Text = Directory.GetCurrentDirectory() + (char)92 + "SDS"; } if (Properties.Settings.Default.sciezka_zapisu_se.Count() > 4) { sciezka_zapisu.Text = Properties.Settings.Default.sciezka_zapisu_se; } else { sciezka_zapisu.Text = Directory.GetCurrentDirectory() + (char)92 + "SDSP"; } }
private ReturnObject ReadSDS() { ReturnObject ro = new ReturnObject(); try { if (File.Exists(gameSavePath + gds.Current_Game_ID + ".save")) { string stringSDS = File.ReadAllText(gameSavePath + gds.Current_Game_ID + ".save"); SDS sds = JsonConvert.DeserializeObject <SDS>(stringSDS); gds.SDS.InventoryItems = sds.InventoryItems; gds.SDS.PlayerInfo = sds.PlayerInfo; gds.SDS.CurrentGameState = sds.CurrentGameState; sds = null; ro.Return_Status = Enums.Return_Status.OK; ro.Friendly_Message = "SDS has been loaded."; ro.Technical_Message = ro.Friendly_Message; } else { //Uh...file doesn't exist } } catch (Exception ex) { //Something went wrong with the reading of the save game file ro.Return_Status = Enums.Return_Status.Error; ro.Friendly_Message = "Unable to load the selected game."; ro.Technical_Message = "Unable to load the selected game: " + ex.Message; ro.Return_Object = null; } return(ro); }
/// <summary> /// 用SDS对象插入或更新条检测数据 /// </summary> /// <param name="SDS">SDS</param> /// <returns>int 0为失败,1为插入成功,2为更新成功</returns> public int Save_SDS(SDS SDS) { string sqli = "insert into SDS(CLID,CLPH,COLOWCLZ,COLOWXZ,HCLOWCLZ,HCLOWXZ,COHIGHCLZ,COHIGHXZ,HCHIGHCLZ,HCHIGHXZ,LAMDAHIGHCLZ,LAMDAHIGHXZ,LAMDAHIGHPD,LOWPD,HIGHPD,ZHPD,JCRQ,WD,SD,DQY,SBMC,SBXH,SBZZC,FXYXH,FXYBH,FXYZZC,ZSJXH,ZSJBH,ZSJZZC) values(@CLID,@CLPH,@COLOWCLZ,@COLOWXZ,@HCLOWCLZ,@HCLOWXZ,@COHIGHCLZ,@COHIGHXZ,@HCHIGHCLZ,@HCHIGHXZ,@LAMDAHIGHCLZ,@LAMDAHIGHXZ,@LAMDAHIGHPD,@LOWPD,@HIGHPD,@ZHPD,@JCRQ,@WD,@SD,@DQY,@SBMC,@SBXH,@SBZZC,@FXYXH,@FXYBH,@FXYZZC,@ZSJXH,@ZSJBH,@ZSJZZC)"; string sqlu = "update SDS set CLPH=@CLPH,COLOWCLZ=@COLOWCLZ,COLOWXZ=@COLOWXZ,HCLOWCLZ=@HCLOWCLZ,HCLOWXZ=@HCLOWXZ,COHIGHCLZ=@COHIGHCLZ,COHIGHXZ=@COHIGHXZ,HCHIGHCLZ=@HCHIGHCLZ,HCHIGHXZ=@HCHIGHXZ,LAMDAHIGHCLZ=@LAMDAHIGHCLZ,LAMDAHIGHXZ=@LAMDAHIGHXZ,LOWPD=@LOWPD,HIGHPD=@HIGHPD,ZHPD=@ZHPD,JCRQ=@JCRQ,WD=@WD,SD=@SD,DQY=@DQY,SBMC=@SBMC,SBXH=@SBXH,SBZZC=@SBZZC,FXYXH=@FXYXH,FXYBH=@FXYBH,FXYZZC=@FXYZZC,ZSJXH=@ZSJXH,ZSJBH=@ZSJBH,ZSJZZC=@ZSJZZC where CLID=@CLID"; SqlParameter[] spr = { new SqlParameter("@CLID", SDS.CLID), //1 new SqlParameter("@CLPH", SDS.CLPH), new SqlParameter("@COLOWCLZ", SDS.COLOWCLZ), new SqlParameter("@COLOWXZ", SDS.COLOWXZ), new SqlParameter("@HCLOWXZ", SDS.HCLOWXZ), new SqlParameter("@COHIGHCLZ", SDS.COHIGHCLZ), //6 new SqlParameter("@COHIGHXZ", SDS.COHIGHXZ), new SqlParameter("@HCHIGHCLZ", SDS.HCHIGHCLZ), new SqlParameter("@HCHIGHXZ", SDS.HCHIGHXZ), new SqlParameter("@LAMDAHIGHCLZ", SDS.LAMDAHIGHCLZ), new SqlParameter("@LAMDAHIGHXZ", SDS.LAMDAHIGHXZ), //11 new SqlParameter("@LAMDAHIGHPD", SDS.LAMDAHIGHPD), //11 new SqlParameter("@LOWPD", SDS.LOWPD), new SqlParameter("@HIGHPD", SDS.HIGHPD), //11 new SqlParameter("@ZHPD", SDS.ZHPD), new SqlParameter("@JCRQ", SDS.JCRQ), new SqlParameter("@WD", SDS.WD), new SqlParameter("@SD", SDS.SD), new SqlParameter("@DQY", SDS.DQY), //16 new SqlParameter("@SBMC", SDS.SBMC), new SqlParameter("@SBXH", SDS.SBXH), new SqlParameter("@SBZZC", SDS.SBZZC), new SqlParameter("@ZSJXH", SDS.ZSJXH), new SqlParameter("@ZSJBH", SDS.ZSJBH), //21 new SqlParameter("@ZSJZZC", SDS.ZSJZZC), new SqlParameter("@FXYXH", SDS.FXYXH), new SqlParameter("@FXYBH", SDS.FXYBH), new SqlParameter("@FXYZZC", SDS.FXYZZC) //47 }; try { if (Have_SDS(SDS.CLID)) { if (DBHelperSQL.Execute(sqlu, spr) > 0) { return(2); } else { return(0); } } else { if (DBHelperSQL.Execute(sqli, spr) > 0) { return(1); } else { return(0); } } } catch (Exception) { throw; } }
/// <summary> /// 用检测编号和次数查询一条检测数据 /// </summary> /// <param name="jcbh">检测编号</param> /// <param name="jccs">检测次数</param> /// <returns>SDS检测数据Model</returns> public SDS Get_SDS(string CLID) { DateTime a; string sql = "select * from SDS where CLID=@CLID"; SqlParameter[] spr = { new SqlParameter("@CLID", CLID) }; try { SDS SDS = new SDS(); DataTable dt = DBHelperSQL.GetDataTable(sql, CommandType.Text, spr); if (dt.Rows.Count > 0) { SDS.CLID = dt.Rows[0]["CLID"].ToString();//1 SDS.CLPH = dt.Rows[0]["CLPH"].ToString(); SDS.COLOWCLZ = dt.Rows[0]["COLOWCLZ"].ToString(); SDS.COLOWXZ = dt.Rows[0]["COLOWXZ"].ToString(); SDS.HCLOWCLZ = dt.Rows[0]["HCLOWCLZ"].ToString(); SDS.HCLOWXZ = dt.Rows[0]["HCLOWXZ"].ToString();//6 SDS.COHIGHCLZ = dt.Rows[0]["COHIGHCLZ"].ToString(); SDS.COHIGHXZ = dt.Rows[0]["COHIGHXZ"].ToString(); SDS.HCHIGHCLZ = dt.Rows[0]["HCHIGHCLZ"].ToString(); SDS.HCHIGHXZ = dt.Rows[0]["HCHIGHXZ"].ToString(); SDS.LAMDAHIGHCLZ = dt.Rows[0]["LAMDAHIGHCLZ"].ToString(); //11 SDS.LAMDAHIGHXZ = dt.Rows[0]["LAMDAHIGHXZ"].ToString(); //11 SDS.LAMDAHIGHPD = dt.Rows[0]["LAMDAHIGHPD"].ToString(); //11 SDS.LOWPD = dt.Rows[0]["LOWPD"].ToString(); //11 SDS.HIGHPD = dt.Rows[0]["HIGHPD"].ToString(); //11 SDS.COLOWPD = dt.Rows[0]["COLOWPD"].ToString(); //11 SDS.COHIGHPD = dt.Rows[0]["COHIGHPD"].ToString(); //11 SDS.HCLOWPD = dt.Rows[0]["HCLOWPD"].ToString(); //11 SDS.HCHIGHPD = dt.Rows[0]["HCHIGHPD"].ToString(); //11 SDS.ZHPD = dt.Rows[0]["ZHPD"].ToString(); DateTime.TryParse(dt.Rows[0]["JCRQ"].ToString(), out a); if (a != null) { SDS.JCRQ = a; } else { SDS.JCRQ = DateTime.Today; } SDS.WD = dt.Rows[0]["WD"].ToString(); SDS.SD = dt.Rows[0]["SD"].ToString(); SDS.DQY = dt.Rows[0]["DQY"].ToString();//16 SDS.SBMC = dt.Rows[0]["SBMC"].ToString(); SDS.SBXH = dt.Rows[0]["SBXH"].ToString(); SDS.SBZZC = dt.Rows[0]["SBZZC"].ToString(); SDS.ZSJXH = dt.Rows[0]["ZSJXH"].ToString(); SDS.ZSJBH = dt.Rows[0]["ZSJBH"].ToString();//21 SDS.ZSJZZC = dt.Rows[0]["ZSJZZC"].ToString(); SDS.FXYXH = dt.Rows[0]["FXYXH"].ToString(); SDS.FXYBH = dt.Rows[0]["FXYBH"].ToString(); SDS.FXYZZC = dt.Rows[0]["FXYZZC"].ToString(); SDS.ZSLOW = dt.Rows[0]["ZSLOW"].ToString(); SDS.ZSHIGH = dt.Rows[0]["ZSHIGH"].ToString(); SDS.CO2HIGH = dt.Rows[0]["CO2HIGH"].ToString(); SDS.O2HIGH = dt.Rows[0]["O2HIGH"].ToString(); SDS.CO2LOW = dt.Rows[0]["CO2LOW"].ToString(); SDS.O2LOW = dt.Rows[0]["O2LOW"].ToString(); if (dt.Columns.Contains("COLOWXXZ")) { SDS.COLOWXXZ = dt.Rows[0]["COLOWXXZ"].ToString(); SDS.COHIGHXXZ = dt.Rows[0]["COHIGHXXZ"].ToString(); SDS.COLOWXYZ = dt.Rows[0]["COLOWXYZ"].ToString(); SDS.COHIGHXYZ = dt.Rows[0]["COHIGHXYZ"].ToString(); SDS.CO2LOWXYZ = dt.Rows[0]["CO2LOWXYZ"].ToString(); SDS.CO2HIGHXYZ = dt.Rows[0]["CO2HIGHXYZ"].ToString(); SDS.HCLOWXYZ = dt.Rows[0]["HCLOWXYZ"].ToString(); SDS.HCHIGHXYZ = dt.Rows[0]["HCHIGHXYZ"].ToString(); } } else { SDS.CLID = "-2"; } return(SDS); } catch (Exception) { throw; } }
public SerialSDS Finish() { SDS sds = new SDS(0, pool.ToArray(), InconsistencyCoverage.NewCommon()); return(new SerialSDS(sds, sector)); }
private static void ReadResult() { bool IsSave = false; string jcff = IniHelper.ReadIni("RESULT", "JCFF", AppHelper.AppSetting.ShareFilePath + "DevResult.txt"); Live0xUtils.LogUtils.TxtLog.Append(AppHelper.LogFolder + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", string.Join(" ", File.ReadAllLines(AppHelper.AppSetting.ShareFilePath + "DevResult.txt", Encoding.GetEncoding("GB2312")))); if ("40".Equals(jcff)) { Task.Factory.StartNew(() => { Capture(JCLSH); }); Live0xUtils.LogUtils.TxtLog.Append(AppHelper.LogFolder + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", $"读取测功结果[{JCLSH}]"); YTH_CHECKDATA_ZJ zj = null; DPCG dpcg = new DPCG(); FillEntityByIni(dpcg); zj = new YTH_CHECKDATA_ZJ(); zj.GK_Judge = dpcg.GK_Judge.ChangePD(); zj.GK_DBGL = dpcg.GK_DBGL; zj.GK_EDCS = dpcg.GK_EDCS; zj.GK_JZL = dpcg.GK_JZL; zj.GK_WDCS = dpcg.GK_WDCS; zj.CSPD = dpcg._SU_Judge.ChangePD(); zj.CSZ = dpcg._SU_Speed; zj.YH_PD = dpcg.YH_PD.ChangePD(); zj.YH_SCZ = dpcg.YH_SCZ; zj.YH_SD = dpcg.YH_SD; zj.YH_JZL = dpcg.YH_JZL; zj.YH_LC = dpcg.YH_LC; zj.JCLSH = JCLSH; zj.YH_BZ = dpcg.YH_BZ; zj.YCY = YCY; hashtable.Clear(); string[] ignoreField = zj.GetType().GetProperties().Where(p => p.GetValue(zj, null) == null || string.IsNullOrEmpty(p.GetValue(zj, null).ToString())).Select(p => p.Name).ToArray(); zj.GetType().GetProperties().Where(p => p.GetValue(zj, null) != null && !string.IsNullOrEmpty(p.GetValue(zj, null).ToString())).ToList().ForEach(p => hashtable.Add($"{p.Name}", p.GetValue(zj, null))); IsSave = MssqlHelper.GetInstance().InsertOrUpdate(zj, hashtable, new string[] { "JCLSH" }, ignoreField); } else if ("15".Equals(jcff)) //双怠速 { Live0xUtils.LogUtils.TxtLog.Append(AppHelper.LogFolder + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", "读取双怠速结果"); SDS sds = new SDS(); FillEntityByIni(sds); YTH_CHECKDATA yth = new YTH_CHECKDATA(); yth.JCFFID = "15"; yth.GLKQXSXX = GlobalVar.GLKQXSXX; yth.GLKQXSSX = GlobalVar.GLKQXSSX; yth.GLKQXSJG = sds.R_H; yth.GLKQXSPD = sds.R_H_Judge.ChangePD(); yth.DDSCOXZ = sds.stdCO_L; yth.DDSCOJG = sds.CO_L; yth.DDSCOPD = sds.CO_L_Judge.ChangePD(); yth.DDSHCXZ = sds.stdHC_L;; yth.DDSHCJG = sds.HC_L; yth.DDSHCPD = sds.HC_L_Judge.ChangePD(); yth.DDSZS = sds.rev_L; yth.GDSZS = sds.rev_H; yth.GDSCOXZ = sds.stdCO_H; yth.GDSCOJG = sds.CO_H_Judge.ChangePD(); yth.GDSCOPD = sds.CO_H_Judge; yth.GDSHCXZ = sds.stdHC_H; yth.GDSHCJG = sds.HC_H; yth.GDSHCPD = sds.HC_H_Judge.ChangePD(); yth.IGHJWD = sds.OilTempAver; yth.IGHJSD = sds.humidity; yth.IGHJDQY = sds.pressure; yth.JCZT = sds.All_Judge.ChangePD(); yth.YCY = YCY; yth.JCLSH = JCLSH; yth.KSJCSJ = sds.RunStartTime; yth.JSJCSJ = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); hashtable.Clear(); string[] ignoreField = yth.GetType().GetProperties().Where(p => p.GetValue(yth, null) == null || string.IsNullOrEmpty(p.GetValue(yth, null).ToString())).Select(p => p.Name).ToArray(); yth.GetType().GetProperties().Where(p => p.GetValue(yth, null) != null && !string.IsNullOrEmpty(p.GetValue(yth, null).ToString())).ToList().ForEach(p => hashtable.Add($"{p.Name}", p.GetValue(yth, null))); IsSave = MssqlHelper.GetInstance().InsertOrUpdate(yth, hashtable, new string[] { "JCLSH" }, ignoreField); GlobalVar.GLKQXSSX = "1.05"; GlobalVar.GLKQXSXX = "0.95"; } else if ("14".Equals(jcff)) //不透光 { Live0xUtils.LogUtils.TxtLog.Append(AppHelper.LogFolder + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", "读取不透光结果"); ZYJS zyjs = new ZYJS(); FillEntityByIni(zyjs); YTH_CHECKDATA yth = new YTH_CHECKDATA(); yth.JCLSH = JCLSH; yth.YCY = YCY; yth.JCFFID = "14"; yth.BTGPFXZ = zyjs.stdVelK; yth.BTGPFJG1 = zyjs.VelK1; yth.BTGPFJG2 = zyjs.VelK2; yth.BTGPFJG3 = zyjs.VelK3; yth.BTGPFPJZ = zyjs.VelKAver; yth.BTGDSZS = zyjs.dsRev; yth.IGHJWD = zyjs.temperature; yth.IGHJSD = zyjs.humidity; yth.IGHJDQY = zyjs.pressure; yth.JCZT = zyjs.All_Judge.ChangePD(); yth.YCY = YCY; yth.JCLSH = JCLSH; yth.KSJCSJ = zyjs.RunStartTime; yth.JSJCSJ = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); hashtable.Clear(); string[] ignoreField = yth.GetType().GetProperties().Where(p => p.GetValue(yth, null) == null || string.IsNullOrEmpty(p.GetValue(yth, null).ToString())).Select(p => p.Name).ToArray(); yth.GetType().GetProperties().Where(p => p.GetValue(yth, null) != null && !string.IsNullOrEmpty(p.GetValue(yth, null).ToString())).ToList().ForEach(p => hashtable.Add($"{p.Name}", p.GetValue(yth, null))); IsSave = MssqlHelper.GetInstance().InsertOrUpdate(yth, hashtable, new string[] { "JCLSH" }, ignoreField); } else if ("28".Equals(jcff)) //VMAS { Live0xUtils.LogUtils.TxtLog.Append(AppHelper.LogFolder + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", "读取VMAS"); VMAS vmas = new VMAS(); FillEntityByIni(vmas); YTH_CHECKDATA yth = new YTH_CHECKDATA(); yth.JCFFID = "28"; if ("0".Equals(vmas.IS_HC_NOX)) { yth.HCPFXZ = vmas.stdHC; yth.HCPFJG = vmas.HC; yth.HCPFPD = vmas.HC_Judge.ChangePD(); yth.NOXPFXZ = vmas.stdNox; yth.NOXPFJG = vmas.Nox; yth.NOXPFPD = vmas.Nox_Judge.ChangePD(); } else { yth.HCPFJG = vmas.HC; yth.HCPFPD = vmas.HC_Judge.ChangePD(); yth.NOXPFJG = vmas.Nox; yth.NOXPFPD = vmas.Nox_Judge.ChangePD(); yth.HC_NOXXZ = vmas.stdHC_Nox; yth.HC_NOXJG = vmas.HC_Nox; yth.HC_NOXPD = vmas.HC_Nox_Judge.ChangePD(); } yth.JUDGETYPE = vmas.IS_HC_NOX; yth.COPFXZ = vmas.stdCO; yth.COPFJG = vmas.CO; yth.COPFPD = vmas.CO_Judge.ChangePD(); yth.IGHJWD = vmas.temperature; yth.IGHJSD = vmas.humidity; yth.IGHJDQY = vmas.pressure; yth.JCZT = vmas.All_Judge.ChangePD(); yth.YCY = YCY; yth.JCLSH = JCLSH; yth.KSJCSJ = DateTime.Now.AddMinutes(-3).ToString("yyyy-MM-dd HH:mm:ss"); yth.JSJCSJ = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); hashtable.Clear(); string[] ignoreField = yth.GetType().GetProperties().Where(p => p.GetValue(yth, null) == null || string.IsNullOrEmpty(p.GetValue(yth, null).ToString())).Select(p => p.Name).ToArray(); yth.GetType().GetProperties().Where(p => p.GetValue(yth, null) != null && !string.IsNullOrEmpty(p.GetValue(yth, null).ToString())).ToList().ForEach(p => hashtable.Add($"{p.Name}", p.GetValue(yth, null))); IsSave = MssqlHelper.GetInstance().InsertOrUpdate(yth, hashtable, new string[] { "JCLSH" }, ignoreField); } else if ("13".Equals(jcff)) //LD { Live0xUtils.LogUtils.TxtLog.Append(AppHelper.LogFolder + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", "读取LD"); LD ld = new LD(); FillEntityByIni(ld); YTH_CHECKDATA yth = new YTH_CHECKDATA(); yth.JCFFID = "13"; yth.ZDLBGLXZ = ld.stdMaxHP; yth.SCZDLBGL = ld.MaxHP; //yth.FDJEDZSSX = ld.MaxHP; //yth.FDJEDZSXX = ld.MaxHP; yth.SCFDJEDZS = ld.DSZS; yth.LDPFXZ = ld.stdVelK; yth.PFJG100 = ld.VelK100; yth.PFJG80 = ld.VelK80; yth.PFJG90 = ld.NO80; yth.LDHJWD = ld.temperature; yth.LDHJSD = ld.humidity; yth.LDHJDQY = ld.pressure; yth.JCZT = ld.All_Judge.ChangePD(); yth.YCY = YCY; yth.JCLSH = JCLSH; yth.KSJCSJ = DateTime.Now.AddMinutes(-3).ToString("yyyy-MM-dd HH:mm:ss"); yth.JSJCSJ = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); hashtable.Clear(); string[] ignoreField = yth.GetType().GetProperties().Where(p => p.GetValue(yth, null) == null || string.IsNullOrEmpty(p.GetValue(yth, null).ToString())).Select(p => p.Name).ToArray(); yth.GetType().GetProperties().Where(p => p.GetValue(yth, null) != null && !string.IsNullOrEmpty(p.GetValue(yth, null).ToString())).ToList().ForEach(p => hashtable.Add($"{p.Name}", p.GetValue(yth, null))); IsSave = MssqlHelper.GetInstance().InsertOrUpdate(yth, hashtable, new string[] { "JCLSH" }, ignoreField); } Live0xUtils.LogUtils.TxtLog.Append(AppHelper.LogFolder + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", "保存结果" + IsSave); }
private void ThreadMain() { if (lastHost.IsEmpty) { return; } Debug.Log("Sector: Thread active"); try { while (!stop) { try { Debug.Log("Attempting to connect to " + lastHost); client = new TcpClient(lastHost.Host, lastHost.Port); var stream = new LZ4.LZ4Stream(client.GetStream(), LZ4.LZ4StreamMode.Decompress); var f = new BinaryFormatter(); CSLogicProvider.AsyncFactory = ResolveProvider; Debug.Log("Sector: Connected to " + lastHost); while (client.Connected) { Debug.Log("Sector: Deserializing next object"); var obj = f.UnsafeDeserialize(stream, null); Debug.Log("Sector: Deserialized object " + obj); if (obj is ShardID) { privateID = (ShardID)obj; Debug.Log("Sector: ID updated to " + privateID); OnNewNeighbor(privateID, lastHost); } else if (obj is ObserverTimingInfo) { secondsPerTLG = (float)((ObserverTimingInfo)obj).msPerTLG / 1000f; } else if (obj is CSLogicProvider) { var prov = (CSLogicProvider)obj; TaskCompletionSource <CSLogicProvider> entry; while (!providerMap.TryGetValue(prov.AssemblyName, out entry)) { providerMap.TryAdd(prov.AssemblyName, new TaskCompletionSource <CSLogicProvider>()); } if (!entry.Task.IsCompleted) { entry.SetResult(prov); } Debug.Log("Sector: Added new provider " + prov.AssemblyName); } else if (obj is FullShardAddress) { var h = (FullShardAddress)obj; newNeighbors.Add(h); } else if (obj is SDS) { SDS sds = (SDS)obj; //Debug.Log("Sector: Got new SDS. Deserializing entities..."); foreach (var e in sds.FinalEntities) { var logic = e.MyLogic as DynamicCSLogic; if (logic != null) { try { logic.FinishLoading(e.ID, TimeSpan.FromSeconds(1)); } catch (ExecutionException ex) { Debug.LogException(ex); } } } //Debug.Log("Sector: SDS processed. Signalling change"); SDS = sds; sdsChanged = true; } } } catch (SocketException ex) { Debug.LogException(ex); } catch (IOException ex) { Debug.LogException(ex); } catch (Exception ex) { Debug.LogException(ex); Debug.Log("Weird type: " + ex.GetType()); } try { client.Close(); } catch { }; { var naddr = BaseDB.TryGetAddress(ExpectedID); if (!naddr.IsEmpty) { lastHost = naddr.ObserverAddress; } } Debug.Log("Waiting, then retrying"); Thread.Sleep(2000); } } catch (Exception ex) { Debug.LogError("Encountered terminal exception"); Debug.LogException(ex); } }
// Update is called once per frame public void Update() { { FullShardAddress t; while (newNeighbors.TryTake(out t)) { Debug.Log(name + ": received neighbor update: " + t); OnNewNeighbor(t.ShardID, t.ObserverAddress); } } if (sdsChanged) { sdsChanged = false; { var id = privateID; if (id != publicID) { Debug.Log("ID change detected: " + id); publicID = id; name = publicID.ToString(); transform.name = publicID.ToString(); onNewID?.Invoke(id); if (cube != null) { cube.transform.position = Convert(publicID.XYZ) * Scale; } } } //Debug.Log("Sector: processing change"); updateNo++; SDS source = SDS; //Debug.Log("Sector: got "+transform.childCount+" children"); LazyList <GameObject> toDestroy = new LazyList <GameObject>(); foreach (Transform child in transform) { var obj = child.gameObject; if (obj.name == "cube") { //Debug.Log("Sector: got cube"); continue; } if (obj.hideFlags == HideFlags.HideAndDontSave) { continue; } obj.hideFlags = HideFlags.HideAndDontSave; obj.GetComponent <Renderer>().enabled = false; if (!availableEntityObjects.ContainsKey(obj.name)) { availableEntityObjects.Add(obj.name, obj); } else { toDestroy.Add(obj); } } foreach (var obj in toDestroy) { if (availableEntityObjects.ContainsValue(obj)) { Debug.LogError("Object " + obj.name + " still in use"); } else { Destroy(obj); } } //Debug.Log("Sector: recovered " + availableEntityObjects.Count + " objects"); int reused = 0; foreach (var e in source.FinalEntities) { GameObject obj; var next = Convert(e.ID.Position) * Scale; Vector3 prev = next; string key = e.ID.Guid.ToString(); if (!availableEntityObjects.ContainsKey(key)) { obj = entityPrototype != null?Instantiate(entityPrototype, transform) : new GameObject(); obj.GetComponent <Renderer>().material.color = myColor; obj.transform.parent = transform; obj.name = key; } else { obj = availableEntityObjects[key]; availableEntityObjects.Remove(key); if (obj == null) { Debug.LogError("Object " + key + " is null. Bad shit will happen"); } obj.hideFlags = HideFlags.None; obj.GetComponent <Renderer>().enabled = true; prev = obj.transform.position; reused++; } var c = obj.GetComponent <EntityComponent>(); if (c == null) { c = obj.AddComponent <EntityComponent>(); } c.SetState(next - Convert(e.Velocity) * Scale, next, secondsPerTLG); obj.transform.position = next; } //Debug.Log("Sector: got " + transform.childCount + " children, reusing "+reused); } }
/// <summary> /// 用SDS对象插入或更新条检测数据 /// </summary> /// <param name="SDS">SDS</param> /// <returns>int 0为失败,1为插入成功,2为更新成功</returns> public int Save_SDS(SDS SDS) { string sqli = "insert into SDS(JYLSH,JYCS,SBRZBM,CLID,JCBGBH,CLPH,COLOWCLZ,COLOWXZ,HCLOWCLZ,HCLOWXZ,COHIGHCLZ,COHIGHXZ,HCHIGHCLZ,HCHIGHXZ,LAMDAHIGHCLZ,LAMDAHIGHXZ,LAMDAHIGHPD,LOWPD,HIGHPD,ZHPD,JCRQ,WD,SD,DQY,SBMC,SBXH,SBZZC,FXYXH,FXYBH,FXYZZC,ZSJXH,ZSJBH,ZSJZZC,COLOWPD,HCLOWPD,ZSLOW,JYWDLOW,COHIGHPD,HCHIGHPD,ZSHIGH,JYWDHIGH,SHY,SYNCHDATE,YW,GLKQXSSX,GLKQXSXX,JCKSSJ,JCJSSJ,CO2HIGH,O2HIGH,CO2LOW,O2LOW,COLOWXXZ,COHIGHXXZ,COLOWXYZ,COHIGHXYZ,CO2LOWXYZ,CO2HIGHXYZ,HCLOWXYZ,HCHIGHXYZ) values(@JYLSH,@JYCS,@SBRZBM,@CLID,@JCBGBH,@CLPH,@COLOWCLZ,@COLOWXZ,@HCLOWCLZ,@HCLOWXZ,@COHIGHCLZ,@COHIGHXZ,@HCHIGHCLZ,@HCHIGHXZ,@LAMDAHIGHCLZ,@LAMDAHIGHXZ,@LAMDAHIGHPD,@LOWPD,@HIGHPD,@ZHPD,@JCRQ,@WD,@SD,@DQY,@SBMC,@SBXH,@SBZZC,@FXYXH,@FXYBH,@FXYZZC,@ZSJXH,@ZSJBH,@ZSJZZC,@COLOWPD,@HCLOWPD,@ZSLOW,@JYWDLOW,@COHIGHPD,@HCHIGHPD,@ZSHIGH,@JYWDHIGH,@SHY,@SYNCHDATE,@YW,@GLKQXSSX,@GLKQXSXX,@JCKSSJ,@JCJSSJ,@CO2HIGH,@O2HIGH,@CO2LOW,@O2LOW,@COLOWXXZ,@COHIGHXXZ,@COLOWXYZ,@COHIGHXYZ,@CO2LOWXYZ,@CO2HIGHXYZ,@HCLOWXYZ,@HCHIGHXYZ)"; string sqlu = "update SDS set JYLSH=@JYLSH,JYCS=@JYCS,SBRZBM=@SBRZBM,CLPH=@CLPH,JCBGBH=@JCBGBH,COLOWCLZ=@COLOWCLZ,COLOWXZ=@COLOWXZ,HCLOWCLZ=@HCLOWCLZ,HCLOWXZ=@HCLOWXZ,COHIGHCLZ=@COHIGHCLZ,COHIGHXZ=@COHIGHXZ,HCHIGHCLZ=@HCHIGHCLZ,HCHIGHXZ=@HCHIGHXZ,LAMDAHIGHCLZ=@LAMDAHIGHCLZ,LAMDAHIGHXZ=@LAMDAHIGHXZ,LAMDAHIGHPD=@LAMDAHIGHPD,LOWPD=@LOWPD,HIGHPD=@HIGHPD,ZHPD=@ZHPD,JCRQ=@JCRQ,WD=@WD,SD=@SD,DQY=@DQY,SBMC=@SBMC,SBXH=@SBXH,SBZZC=@SBZZC,FXYXH=@FXYXH,FXYBH=@FXYBH,FXYZZC=@FXYZZC,ZSJXH=@ZSJXH,ZSJBH=@ZSJBH,ZSJZZC=@ZSJZZC,COLOWPD=@COLOWPD,HCLOWPD=@HCLOWPD,ZSLOW=@ZSLOW,JYWDLOW=@JYWDLOW,COHIGHPD=@COHIGHPD,HCHIGHPD=@HCHIGHPD,ZSHIGH=@ZSHIGH,JYWDHIGH=@JYWDHIGH,SHY=@SHY,SYNCHDATE=@SYNCHDATE,YW=@YW,GLKQXSSX=@GLKQXSSX,GLKQXSXX=@GLKQXSXX,JCKSSJ=@JCKSSJ,JCJSSJ=@JCJSSJ,CO2HIGH=@CO2HIGH,O2HIGH=@O2HIGH,CO2LOW=@CO2LOW,O2LOW=@O2LOW,COLOWXXZ=@COLOWXXZ,COHIGHXXZ=@COHIGHXXZ,COLOWXYZ=@COLOWXYZ,COHIGHXYZ=@COHIGHXYZ,CO2LOWXYZ=@CO2LOWXYZ,CO2HIGHXYZ=@CO2HIGHXYZ,HCLOWXYZ=@HCLOWXYZ,HCHIGHXYZ=@HCHIGHXYZ where CLID=@CLID"; SqlParameter[] spr = { new SqlParameter("@JYLSH", SDS.JYLSH), new SqlParameter("@JYCS", SDS.JYCS), new SqlParameter("@SBRZBM", SDS.SBRZBM), new SqlParameter("@CLID", SDS.CLID), //1 new SqlParameter("@JCBGBH", SDS.JCBGBH), //1 new SqlParameter("@CLPH", SDS.CLPH), new SqlParameter("@COLOWCLZ", SDS.COLOWCLZ), new SqlParameter("@COLOWXZ", SDS.COLOWXZ), new SqlParameter("@HCLOWCLZ", SDS.HCLOWCLZ), new SqlParameter("@HCLOWXZ", SDS.HCLOWXZ), new SqlParameter("@COHIGHCLZ", SDS.COHIGHCLZ), //6 new SqlParameter("@COHIGHXZ", SDS.COHIGHXZ), new SqlParameter("@HCHIGHCLZ", SDS.HCHIGHCLZ), new SqlParameter("@HCHIGHXZ", SDS.HCHIGHXZ), new SqlParameter("@LAMDAHIGHCLZ", SDS.LAMDAHIGHCLZ), new SqlParameter("@LAMDAHIGHXZ", SDS.LAMDAHIGHXZ), //11 new SqlParameter("@LAMDAHIGHPD", SDS.LAMDAHIGHPD), //11 new SqlParameter("@LOWPD", SDS.LOWPD), new SqlParameter("@HIGHPD", SDS.HIGHPD), //11 new SqlParameter("@ZHPD", SDS.ZHPD), new SqlParameter("@JCRQ", SDS.JCRQ), new SqlParameter("@WD", SDS.WD), new SqlParameter("@SD", SDS.SD), new SqlParameter("@DQY", SDS.DQY), //16 new SqlParameter("@SBMC", SDS.SBMC), new SqlParameter("@SBXH", SDS.SBXH), new SqlParameter("@SBZZC", SDS.SBZZC), new SqlParameter("@ZSJXH", SDS.ZSJXH), new SqlParameter("@ZSJBH", SDS.ZSJBH), //21 new SqlParameter("@ZSJZZC", SDS.ZSJZZC), new SqlParameter("@FXYXH", SDS.FXYXH), new SqlParameter("@FXYBH", SDS.FXYBH), new SqlParameter("@FXYZZC", SDS.FXYZZC), //47 new SqlParameter("@COLOWPD", SDS.COLOWPD), new SqlParameter("@HCLOWPD", SDS.HCLOWPD), new SqlParameter("@ZSLOW", SDS.ZSLOW), //21 new SqlParameter("@JYWDLOW", SDS.JYWDLOW), new SqlParameter("@COHIGHPD", SDS.COHIGHPD), new SqlParameter("@HCHIGHPD", SDS.HCHIGHPD), new SqlParameter("@ZSHIGH", SDS.ZSHIGH), //21 new SqlParameter("@JYWDHIGH", SDS.JYWDHIGH), new SqlParameter("@SHY", SDS.SHY), new SqlParameter("@SYNCHDATE", SDS.SYNCHDATE), new SqlParameter("@YW", SDS.YW), //21 new SqlParameter("@GLKQXSSX", SDS.GLKQXSSX), new SqlParameter("@GLKQXSXX", SDS.GLKQXSXX), new SqlParameter("@JCKSSJ", SDS.JCKSSJ), new SqlParameter("@JCJSSJ", SDS.JCJSSJ), new SqlParameter("@CO2HIGH", SDS.CO2HIGH), new SqlParameter("@O2HIGH", SDS.O2HIGH), new SqlParameter("@CO2LOW", SDS.CO2LOW), new SqlParameter("@O2LOW", SDS.O2LOW), new SqlParameter("@COLOWXXZ", SDS.COLOWXXZ), new SqlParameter("@COHIGHXXZ", SDS.COHIGHXXZ), new SqlParameter("@COLOWXYZ", SDS.COLOWXYZ), new SqlParameter("@COHIGHXYZ", SDS.COHIGHXYZ), new SqlParameter("@CO2LOWXYZ", SDS.CO2LOWXYZ), new SqlParameter("@CO2HIGHXYZ", SDS.CO2HIGHXYZ), new SqlParameter("@HCLOWXYZ", SDS.HCLOWXYZ), new SqlParameter("@HCHIGHXYZ", SDS.HCHIGHXYZ) //47 }; try { if (Have_SDS(SDS.CLID)) { if (DBHelperSQL.Execute(sqlu, spr) > 0) { return(2); } else { return(0); } } else { if (DBHelperSQL.Execute(sqli, spr) > 0) { return(1); } else { return(0); } } } catch (Exception) { throw; } }