public string TaskCreate(ulong SequenceId, Packs Package, CONST.LaunchMode LaunchMode, TaskFileDescription[] InputFiles, TaskFileDescription[] OutputFiles, string[] ParamKeys, string[] ParamValues) { lock (_taskServiceLock) { Task task = new Task(SequenceId, Package, LaunchMode, InputFiles, OutputFiles); if (ParamKeys != null && ParamKeys.Length > 0) { if (ParamKeys.Length != ParamValues.Length) throw new Exception("Param keys and values lengths must be equal!"); int length = ParamKeys.Length; for (int i = 0; i < length; i++) task.Params[ParamKeys[i]] = ParamValues[i]; } Log.Debug(String.Format( "Цепочка {0}: создана задача {1}", SequenceId, task.TaskId )); task.Save(); return task.TaskId; } }
public Exp TranslateFieldVar(Exp var, int num) { Expr addr = var.UnEx(); Expr offset = new CONST(num * Frame.WordSize()); return(new Ex(new MEM(new BINOP(BINOP.Op.Plus, addr, offset)))); }
//_________________________________________________________________________ // { 0xcd, 0xcc, 0xf6, 0x42 }; //, 0x11,0, 1, 0, 2, 0, 10, 0, 15, 0, 1, 0 };// { 0x0, 0x0, 0, 0x1}; // { 0x30, 0x31, 0x2f, 0x30, 0x31, 0x2f, 0x31, 0x39, 0x37, 0x30, 0x00, 0x30, 0x3a, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x00 };//{, 0x00, 0x00, 0xe4, 0x43 }; //0x00, 0x80, 0xa0, 0x43 private void BWritePar_Click(object sender, EventArgs e) { CBDataSave(); CBDataWriteParSave(); CBParameterNameSave(); Properties.Settings.Default.Save(); int iID = int.Parse(TBIDwritePar.Text); string sParams = "[\"" + CONST.ПАРАМЕТРЫ.DeviceName.ToString() + "\":\"" + CBDeviceWr.Text + "\"," + CONST.ПАРАМЕТРЫ.Data.ToString() + "\":\"" + CBData.Text + "\"," + CONST.ПАРАМЕТРЫ.ParameterType.ToString() + "\":\"" + CBTypeData.Text + "\"," + CONST.ПАРАМЕТРЫ.ParameterName.ToString() + "\":\"" + CBParameterName.Text + "\"," + CONST.ПАРАМЕТРЫ.RequestName.ToString() + "\":\"MT16\"," + CONST.ПАРАМЕТРЫ.INorOUT.ToString() + "\":\"out" + "\"," + CONST.ПАРАМЕТРЫ.RequestType.ToString() + "\":\"" + CONST.RequestType.Single.ToString() + "\"," + CONST.ПАРАМЕТРЫ.TimeRequest.ToString() + "\":\"" + NTimeResp.Text + "\"]"; string[] asaDataWritePar = CBDataWritePar.Text.Split(' '); int iSizeData = CONST.SizeTypeData((TYPE)Enum.Parse(typeof(TYPE), CBTypeData.Text)); if (iSizeData != asaDataWritePar.Length) { MessageBox.Show(string.Format("Длина данных [{0}] не равна размеру типа [{1}]", iSizeData, asaDataWritePar.Length)); return; } byte[] btaDataWritePar = new byte[iSizeData]; int i = 0; foreach (var item in asaDataWritePar) { btaDataWritePar[i++] = byte.Parse(item); } DRV.WriteValue(iID, sParams, btaDataWritePar); }
//_________________________________________________________________________ byte[] StrToTypeThenBytes(string asVal, string asTypeVal, EReverce Reverce, int iRow) { try { TYPE TheType = (TYPE)Enum.Parse(typeof(TYPE), GVDataWr.Rows[iRow].Cells[(int)Params.Typ].Value.ToString()); dynamic oVal = Global.StrToType(asVal, TheType); if (oVal.GetType().ToString().Equals("System.String")) { return(new byte[1]); } if (Reverce == EReverce.Обратная) { byte[] btaRev = BitConverter.GetBytes(oVal); return(btaRev.Reverse().ToArray()); } if (Reverce == EReverce.Обратная_по_2_байта) { int iTypeSize = CONST.SizeTypeData(TheType); byte[] btRet = new byte[iTypeSize]; Global.AppendTwoBytesRev(BitConverter.GetBytes(oVal), 0, btRet, 0, iTypeSize); return(btRet); } return(BitConverter.GetBytes(oVal)); } catch (Exception exc) { MessageBox.Show(string.Format("Значение параметра [{0}] не соответствует типу [{1}].{2}", asVal, asTypeVal, exc.StackTrace)); return(null); } }
// Use this for initialization void Start() { if (GetComponent <NetworkIdentity>().isServer) { IniFile ini = new IniFile("Assets\\Scripts\\FahrradCom.EXE.ini"); string ip1 = ini.IniReadValue("TCP", "IP"); avr = new AVR_NetClient(ini.IniReadValue("TCP", "IP"), Int32.Parse(ini.IniReadValue("TCP", "Port")), Int32.Parse(ini.IniReadValue("TCP", "BufferSize"))); Debug.Log("avr" + avr); speed = new Speed(Int32.Parse(ini.IniReadValue("Speed", "SensorCount")), Int32.Parse(ini.IniReadValue("Speed", "SpeedSample")), Double.Parse(ini.IniReadValue("Speed", "WheelLine"))); //Debug.Log (ini.IniReadValue ("Speed", "SensorCount") + ini.IniReadValue ("Speed", "SpeedSample") + ini.IniReadValue ("Speed", "WheelLine")); // Winkel Angle angle = new Angle(Int32.Parse(ini.IniReadValue("Angle", "SensorMinValue")), Int32.Parse(ini.IniReadValue("Angle", "SensorMaxValue")), Int32.Parse(ini.IniReadValue("Angle", "SensorRange")), ini.IniReadValue("Angle", "SwitchDirection") == "0" ? true : false); // Daten zum lesen via TCP - die werden immer abgefragt NetData rd = new NetData(); // Zum Beispiel: rd.addData(CONST.getANGLE()); //Winkel rd.addData(CONST.getSPEED()); //Geschwindigkeit // rd.addData(CONST.getSTATE()); //Status // Zuordnung der Datensets für die Kommunikation mit AVR avr.setDataToRead(rd); /* Ein Thread für die Kommunikation. * Ist wichtig vor allem für die Geschwindigkeitsberechnung. * Der SpeedSensor liefert eigentlich nur FALSE, wenn die MetallStücke am Rad (9 Stück) * vorbei "fahren" und TRUE wenn "die Luft rein ist". Die Abstände sind gleich (?), * deswegen auf Grund bekantes Radumfangs, auch die Teilstrecken (zwischen 2 Metallstücken) * einfach zu berechnen. * Für die Geschwindigkeit fehlt nun nur die Zeit. Die bekommt man, in dem man die Zeituterschiede * in Millisekunden zwischen 2 SpeedSensor-Aktivierungen ablesen kann. Je genauer desto besser. */ tavr = new Thread(avr.startThread); tavr.Start(); // Thread zum Lesen von Daten von AVR trd = new Test_ReadData(speed, angle, rd, Int32.Parse(ini.IniReadValue("Speed", "SpeedResetAfter"))); ttrd = new Thread(trd.StartThread); ttrd.Start(); } }
Temp.Temp TranslateExpr(CONST expr) { if (expr.Value == 0) { return(MipsFrame.Reg[0]); } Temp.Temp result = new Temp.Temp(); InstrList.Add(new MoveInt(result, expr.Value)); return(result); }
public Exp TranslateSubscriptVar(Exp var, Exp index) { Expr array_addr = var.UnEx(); Expr array_offset; if (index.UnEx() is CONST) { array_offset = new CONST(((CONST)index.UnEx()).Value * Frame.WordSize()); } else { array_offset = new BINOP(BINOP.Op.Times, index.UnEx(), new CONST(Frame.WordSize())); } return(new Ex(new MEM(new BINOP(BINOP.Op.Plus, array_addr, array_offset)))); }
/// <summary> /// Helper to compile some code with a standard application surrounding /// </summary> /// <param name="operations"></param> /// <param name="expectedErrors"></param> /// <returns></returns> public static Module CompileSingleStatement(string operations, params string[] expectedErrors) { return(CompileString( @$ " MODULE test; CONST true_ = TRUE; false_ = FALSE; VAR a,b,c,d,e,f,g,h,x,y,z: BOOLEAN; i, j, k, l: INTEGER; r, s, t: REAL; BEGIN {operations} END test.", expectedErrors)); }
public async void success() { BGMPlayer.PlayButton8(); LevelSucceedDialog lsd = new LevelSucceedDialog(); APPDATA.app_data.HAVEDONE = Math.Max(APPDATA.app_data.HAVEDONE, localLevel.ID); var ach = APPDATA.app_data.ACHIEVEMENT; APPDATA.app_data.setAchievement(); for (int i = 0; i < 6; i++) { if (ach[i] == '0' && APPDATA.app_data.ACHIEVEMENT[i] == '1') { CONST.ShowToastNotification("Square150x150Logo.scale-200.png", AppResources.GetString("isunlock"), NotificationAudioNames.Default); } } var res = await lsd.ShowAsync(); if (res.ToString() == "Primary") { //APPDATA.app_data.MoveTo(AppPage.GamePage,localLevel); } else { if (localLevel.ID % 9 == 0) { APPDATA.app_data.MoveTo(AppPage.SelectChapterPage); var c = SelectGame.localChapter; if (c.ID >= APPDATA.app_data.Chapters.Count) { return; } APPDATA.app_data.Chapters[c.ID].unlocked = 1; return; } var levels = Level.getLevels(SelectGame.localChapter.ID); foreach (var l in levels) { if (l.ID == localLevel.ID + 1) { APPDATA.app_data.MoveTo(AppPage.GamePage, l); } } } }
/// <summary> /// 移动MAINGRID /// </summary> /// <param name="direction"> /// 0上 1下 2左 3右 /// </param> public void GridMove(Direction direction) { double from, to; double w, h; w = Window.Current.Bounds.Width; h = Window.Current.Bounds.Height; switch ((int)direction) { case 0: from = -h; to = 0; break; case 1: from = 0; to = -h; break; case 2: from = -w; to = 0; break; case 3: from = 0; to = -w; break; default: from = 0; to = 0; break; } CONST.GridMove(MAINGRID, direction, from, to); }
public void StartThread() { stopThread = false; bool sensor = false; bool allowSpeedReset = true; DateTime dt = DateTime.Now; long resetSpeedStart = dt.Ticks; int val; double currWinkel; double lastWinkel = -1000.0; Debug.Log("WORKER INSIDE"); while (!stopThread) { // **************************************** // Winkel //***************************************** angle.setValue(rnd.getValue(CONST.getANGLE())); currWinkel = angle.getAngle(); if (currWinkel != lastWinkel) { // um die Ausgabe der kleinsten Winkeländerungen zu vermeiden, // darf der Winkelunterschied nicht in Bereich <-1,1> liegen if (!inRange(currWinkel - lastWinkel, -1, 1)) { AngleForMono = currWinkel; //Debug.Log("Winkel \n"+ currWinkel.ToString()); lastWinkel = currWinkel; } } // **************************************** // Geschwindigkeit //***************************************** if (rnd.getValue(CONST.getSPEED()).Length > 0) { val = Int32.Parse(rnd.getValue(CONST.getSPEED())); // Debug.Log("string: " + rnd.getValue(CONST.getSPEED()) + " parsed: " + val); if (val < this.fGrenze && sensor == false) { sensor = true; speed.setSensorTime(rnd.getDate(CONST.getSPEED())); speedForMono = speed.getSpeed(); //Debug.Log("Speed m/s " + speedForMono.ToString()); resetSpeedStart = rnd.getDate(CONST.getSPEED()); allowSpeedReset = true; } if (val > this.fGrenze && sensor == true) { sensor = false; resetSpeedStart = rnd.getDate(CONST.getSPEED()); allowSpeedReset = true; } //Es kann passieren, dass das Rad sich nicht bewegt, aber auf Grund //gespeicherten Daten Geschwindichkeit > 0 ist. //Wenn solcher Zustand länger als 2 Sek. dauert, wird die //Geschwindigkeit genullt. if (rnd.getDate(CONST.getSPEED()) - resetSpeedStart > this.fSpeedResetTime && allowSpeedReset) { //speed.resetSpeed(); resetSpeedStart = rnd.getDate(CONST.getSPEED()); allowSpeedReset = false; //Debug.Log("Speed m/s\n" + speed.getSpeed().ToString()); } } } }
public Exp TranslateSubscriptVar(Exp var, Exp index) { Expr array_addr = var.UnEx(); Expr array_offset; if (index.UnEx() is CONST) array_offset = new CONST(((CONST)index.UnEx()).Value * Frame.WordSize()); else array_offset = new BINOP(BINOP.Op.Times, index.UnEx(), new CONST(Frame.WordSize())); return new Ex(new MEM(new BINOP(BINOP.Op.Plus, array_addr, array_offset))); }
public Exp TranslateFieldVar(Exp var, int num) { Expr addr = var.UnEx(); Expr offset = new CONST(num * Frame.WordSize()); return new Ex(new MEM(new BINOP(BINOP.Op.Plus, addr, offset))); }
Temp.Temp TranslateExpr(CONST expr) { if (expr.Value == 0) return MipsFrame.Reg[0]; Temp.Temp result = new Temp.Temp(); InstrList.Add(new MoveInt(result, expr.Value)); return result; }
void PrintExp(CONST e, int d) { Indent(d); Say("CONST "); Say(e.Value.ToString()); }
public double EstimateTime(Packs Package, CONST.LaunchMode LaunchMode, TaskFileDescription[] InputFiles, TaskFileDescription[] OutputFiles, string[] ParamKeys, string[] ParamValues) { string taskId = TaskCreate(0, Package, LaunchMode, InputFiles, OutputFiles, ParamKeys, ParamValues); return TaskEstimateTime(taskId); }
private void ImportDictionary() { var view = new TaskInfoDialog(); var result = DialogHost.Show(view, "RootDialog"); TaskInfoDialogViewModel taskInfoDialog = TaskInfoDialogViewModel.getInstance(); TaskMessage taskMessage = new TaskMessage(); taskMessage.Title = "执行导入字典目录任务"; taskMessage.Progress = 0.0; taskInfoDialog.Messages.Add(taskMessage); Task task = new Task(() => { App.Current.Dispatcher.Invoke((Action)(() => { taskMessage.DetailMessages.Add("开始导入。。"); })); // 导入BDCS_CONSTCLS BaseDal <CONSTCLS> baseDal = new BaseDal <CONSTCLS>(); StreamReader sr = new StreamReader(@"C:\Users\Administrator\Desktop\BDCS_CONSTCLS 1.txt", Encoding.Default); String line; int index = 0; while ((line = sr.ReadLine()) != null) { string[] s = line.Split(','); CONSTCLS c = new CONSTCLS(); c.MBBSM = int.Parse(s[0].Trim()); c.CONSTSLSID = int.Parse(s[1].Trim()); c.CONSTCLSNAME = s[2].Trim(); c.CONSTCLSTYPE = s[3].Trim(); c.BZ = s[4].Trim(); baseDal.Add(c); index++; double per = index / 79.0 * 100; taskMessage.Progress = per; App.Current.Dispatcher.Invoke((Action)(() => { taskMessage.DetailMessages.Add("字典目录表:进度" + per.ToString("#0.#0") + "%"); })); } index = 0; taskMessage.Progress = 0.0; BaseDal <CONST> baseDal2 = new BaseDal <CONST>(); StreamReader sr2 = new StreamReader(@"C:\Users\Administrator\Desktop\BDCS_CONST 1.txt", Encoding.Default); String line2; while ((line2 = sr2.ReadLine()) != null) { string[] s = line2.Split(','); CONST c = new CONST(); c.MBBSM = int.Parse(s[0].Trim()); c.CONSTSLSID = int.Parse(s[1].Trim()); c.CONSTVALUE = s[2].Trim(); c.CONSTTRANS = s[3].Trim(); if (s[4].Trim() != "") { c.PARENTNODE = int.Parse(s[4].Trim()); } else { c.PARENTNODE = null; } if (s[5].Trim() != "") { c.CONSTORDER = int.Parse(s[5].Trim()); } else { c.CONSTORDER = null; } c.BZ = s[6].Trim(); c.CREATETIME = null; c.MODIFYTIME = null; c.REPORTVALUE = s[9].Trim(); c.GJCONSTTRANS = s[10].Trim(); c.SFSY = s[11].Trim(); c.GJVALUE = s[12].Trim(); baseDal2.Add(c); index++; double per = index / 1918.0 * 100; taskMessage.Progress = per; App.Current.Dispatcher.Invoke((Action)(() => { taskMessage.DetailMessages.Add("字典表:进度" + per.ToString("#0.#0") + "%"); })); } }); task.Start(); task.ContinueWith(t => { ThreadPool.QueueUserWorkItem(delegate { SynchronizationContext.SetSynchronizationContext(new System.Windows.Threading.DispatcherSynchronizationContext(System.Windows.Application.Current.Dispatcher)); SynchronizationContext.Current.Post(pl => { taskMessage.DetailMessages.Add("导入完成。"); }, null); }); }); }