public static int SceneSelect(object[] l, GetPoint getPoint, SetPoint setPoint, Event e, int psel, GUIStyle butStyle) { for (int i = 0; i < l.Length; i++) { Vector3 p = getPoint(l[i]); Vector2 p2 = HandleUtility.WorldToGUIPoint(p); if (e.type == EventType.mouseDown && e.button == 0) { float d = Vector3.Distance(p2, e.mousePosition); if (d < 15) { psel = i; } } if (psel == i) { Vector3 p0 = Handles.PositionHandle(p, Quaternion.identity); if ((p0 - p).magnitude > 1e-3) { setPoint(p0, i); } Handles.BeginGUI(); if (GUI.Button(new Rect(p2.x + 10, p2.y + 10, 20, 20), "X", butStyle)) { psel = -1; } Handles.EndGUI(); } } return(psel); }
/// <summary> /// FileVersion.Current - 28 bytes /// </summary> /// <returns></returns> public byte[] ToBytes() { var bytes = new List <byte>(); Input.FileVersion = FileVersion; SetPoint.FileVersion = FileVersion; switch (FileVersion) { case FileVersion.Current: bytes.AddRange(Input.ToBytes()); bytes.AddRange(InputValue.ToBytes()); bytes.AddRange(Value.ToBytes()); bytes.AddRange(SetPoint.ToBytes()); bytes.AddRange(SetPointValue.ToBytes()); bytes.Add((byte)Unit); bytes.Add((byte)AutoManual); bytes.Add((byte)Action); bytes.Add((byte)Periodicity); bytes.Add((byte)IsSample); bytes.Add((byte)PropHigh); bytes.Add((byte)Proportional); bytes.Add((byte)Reset); bytes.Add((byte)Bias); bytes.Add(Convert.ToByte(Rate * 100.0)); break; default: throw new FileVersionNotImplementedException(FileVersion); } CheckSize(bytes.Count, GetSize(FileVersion)); return(bytes.ToArray()); }
public void InitializesToZero() { var setPoint = new SetPoint(0, 0.001m); Assert.That(setPoint.Target, Is.EqualTo(0)); Assert.That(setPoint.Value, Is.EqualTo(0)); }
public override string ToString() { return(base.ToString() + ",\r\n" + " \"CurrentFrequency\" : " + CurrentFrequency.ToString() + ",\r\n" + " \"SetPoint\" : " + SetPoint.ToString() + ",\r\n" + " \"Error\" : " + Error.ToString() + ",\r\n" + " \"ProportionalTerm\" : " + ProportionalTerm.ToString() + ",\r\n" + " \"IntegralTerm\" : " + IntegralTerm.ToString() + ",\r\n" + " \"VoltageOut\" : " + VoltageOut.ToString()); }
public async Task <APIMessage> ModifySetPoint(double newTempValue, double?duration) { var setpoint = new SetPoint(newTempValue, duration ?? 4); var response = await _client.PostAsJsonAsync <SetPoint>(_client.BaseAddress + "setpoint/add", setpoint); var msg = await response.Content.ReadFromJsonAsync <APIResponse>(); var payload = JsonConvert.DeserializeObject <APIMessage>(msg.payload); return(payload); }
/// <summary> /// Method for getting the contents of all the memory banks /// </summary> /// <returns>an array of SetPoint Objects that contains the Voltage and Current as deciman values</returns> public SetPoint[] GetMemoryBanks() { var responce = SendCommand("GETM"); var seperatedResponce = responce.Split(new char[] { '\r' }, 9); SetPoint[] banks = new SetPoint[9]; if (seperatedResponce.Count() != 9) { throw new Exception();//todo fix } for (int i = 0; i < 9; i++) { banks[i] = new SetPoint(seperatedResponce[i].Trim()); } return(banks); }
bool EnviarPreAdvice() { TransDepotProxy proxy = new TransDepotProxy(); RequestPreAdvice request = new RequestPreAdvice(); request.YardCode = ConfigurationManager.AppSettings["DepSanAgustin"].ToString(); request.ActionType = "P"; request.OperationTypeMovementCode = ""; request.VoyageStopExternalCode = txtOrdenServicio.Text.Trim(); request.VesselIMO = ""; request.VoyageNumber = ""; request.OceanCarrier = OceanCarrier; if (OperationType != null) { if (OperationType.Equals("E")) { request.ReferenceType = ConfigurationManager.AppSettings["ReferenceTypeBK"].ToString(); } else { request.ReferenceType = ConfigurationManager.AppSettings["ReferenceTypeBL"].ToString(); } } request.OperationType = OperationType; request.ReferenceNumber = ReferenceNumber; request.PlaceOfReceipt = PlaceOfReceipt; request.PortOfLoading = PortOfLoading; request.PortOfDischarge = PortOfDischarge; request.PlaceOfDelivery = PlaceOfDelivery; request.CustomerERPCode = CustomerERPCode; request.ShipmentType = ""; request.Equipments.Add(new PreAdviceEquipment() { EquipmentNumber = EquipmentNumber, EquipmentTypeSizeISOCode = EquipmentTypeSizeISOCode, IsEmpty = (IsEmpty.Equals("S")) ? true : false, IsHazardous = (IsHazardous.Equals("S")) ? true : false, RequiresReview = false, SetPoint = (SetPoint.Trim() != "") ? Convert.ToDouble(SetPoint) : 0.0, SetPointUnitOfMeasure = SetPointUnitOfMeasure, Ventilation = 0.0, RelativeHumidityLevel = 0.0, O2Level = 0.0, CO2Level = 0.0, RequiresPlug = (RequiresPlug.Equals("S")) ? true : false, Technology = "" }); ResponsePreAdvice resp = new ResponsePreAdvice(); resp = proxy.PreAdvice(request); if (!resp.isValid) { List <string> listaDestinatarios = new List <string>(); List <string> listaCopia = new List <string>(); List <string> listaCopiaOculta = new List <string>(); string destinatarios = ConfigurationManager.AppSettings["Destinatarios"].ToString(); if (destinatarios != "" && destinatarios.Contains(";")) { var correosDestino = destinatarios.Split(';'); foreach (string item in correosDestino) { listaDestinatarios.Add(item); } } else { listaDestinatarios.Add(destinatarios); } string copia = ConfigurationManager.AppSettings["ConCopia"].ToString(); if (copia != "" && copia.Contains(";")) { var correosCopia = copia.Split(';'); foreach (string item in correosCopia) { listaCopia.Add(item); } } else { listaCopia.Add(copia); } string copiaOculta = ConfigurationManager.AppSettings["CopiaOculta"].ToString(); if (copiaOculta != "" && copiaOculta.Contains(";")) { var correosCopiaOculta = copiaOculta.Split(';'); foreach (string item in correosCopiaOculta) { listaCopiaOculta.Add(item); } } else { listaCopiaOculta.Add(copiaOculta); } new ManejadorCorreos().EnviarCorreo(ConfigurationManager.AppSettings["AsuntoCorreoError"].ToString(), resp.messages[0].message, listaDestinatarios, listaCopia, listaCopiaOculta); } return(true); }
public void Start(int index) { Stop(); if (SetPoint == null) { throw new ArgumentNullException(nameof(SetPoint)); } capture = Capture.New(index); capture.FrameReady += Capture_FrameReady; capture.Start(); tokenSource = new CancellationTokenSource(); CancellationToken tk = tokenSource.Token; recThread = new Task(() => { while (!tk.IsCancellationRequested) { if (IsPaused) { Core.Sleep(1); continue; } Random rnd = new Random(); Point pt = new Point(rnd.NextDouble(0, ScreenSize.Width), rnd.NextDouble(0, ScreenSize.Height)); SetPoint.Invoke(this, new EyeGazePointArg(pt, Scalar.BgrRed, 700)); Core.Sleep(700); if (tk.IsCancellationRequested) { return; } SetPoint.Invoke(this, new EyeGazePointArg(pt, Scalar.BgrYellow, 500)); Core.Sleep(500); if (tk.IsCancellationRequested) { return; } SetPoint.Invoke(this, new EyeGazePointArg(pt, Scalar.BgrGreen, 100)); while (mat == null) { Core.Sleep(1); if (tk.IsCancellationRequested) { return; } } lock (matLocker) { if (mat != null && !mat.IsEmpty) { if (!IsPaused) { FileNode node = Parent.GetFile($"{captureCount},{Math.Round(pt.X)},{Math.Round(pt.Y)}.jpg"); Core.Cv.ImgWrite(node, mat, 95); captureCount++; if (captureCount > 1 && captureCount % 20 == 0) { rnd = new Random(); } Captured?.Invoke(this, pt); Logger.Log($"ImageCaptured. [{pt.ToString()}]"); } } else { Logger.Error(this, "frame is nulled or empty"); } } Core.Sleep(100); } }, tk); IsRecording = true; recThread.Start(); }
public void PaintGraph(SetPoint set1, SetPoint set2, double sigma1X, double sigma1Y, double mu1X, double mu1Y, double mu2X, double mu2Y, double sigma2X, double sigma2Y, int n1, int n2) { var xCen = 0.0; var yCen = 0.0; var setP1 = set1.get_list_point(); var setP2 = set2.get_list_point(); var xyzDataSeries3D1 = new XyzDataSeries3D <double>(); var xyzDataSeries3D2 = new XyzDataSeries3D <double>(); var ro1 = MathTpr.CalculationOfCorrelationCoefficient(setP1, mu1X, mu1Y, sigma1X, sigma1X); var ro2 = MathTpr.CalculationOfCorrelationCoefficient(setP2, mu2X, mu2Y, sigma2X, sigma2X); foreach (var item in setP1) { var x = item.X; var z = item.Y; item.Z = MathTpr.func_Gauss_XY(item.X, item.Y, sigma1X, sigma1Y, mu1X, mu1Y, ro1); var y = 0; xyzDataSeries3D1.Append(x, y, z); } foreach (var item in setP2) { var x = item.X; var z = item.Y; item.Z = MathTpr.func_Gauss_XY(item.X, item.Y, sigma2X, sigma2Y, mu2X, mu2Y, ro2); var y = 0; xyzDataSeries3D2.Append(x, y, z); } xyzDataSeries3D1.SeriesName = "S1"; xyzDataSeries3D2.SeriesName = "S2"; // построение плотностей проекций множеств S1 и S2 // данные полученные из практически заданных СВ величин var averageX1 = set1.calculate_Average_Value_x(); var averageY1 = set1.calculate_Average_Value_y(); var averageX2 = set2.calculate_Average_Value_x(); var averageY2 = set2.calculate_Average_Value_y(); // построение плотности проекции f(x/S1) var dispersionX1 = MathTpr.DispersionX(setP1, averageX1); var sigmaX1 = Math.Sqrt(dispersionX1); var xyzDataSeries3D3 = MathTpr.f_x_Si(averageX1, sigmaX1, n1, MainWindow.fXS1); xyzDataSeries3D3.SeriesName = "f(x/S1)"; // построение плотности проекции f(x/S2) var dispersionX2 = MathTpr.DispersionX(setP2, averageX2); var sigmaX2 = Math.Sqrt(dispersionX2); var xyzDataSeries3D4 = MathTpr.f_x_Si(averageX2, sigmaX2, n2, MainWindow.fXS2); xyzDataSeries3D4.SeriesName = "f(x/S2)"; // построение плотности проекции f(y/S1) var dispersionY1 = MathTpr.DispersionY(setP1, averageY1); var sigmaY1 = Math.Sqrt(dispersionY1); var xyzDataSeries3D5 = MathTpr.f_y_Si(averageY1, sigmaY1, n1, MainWindow.fYS1); xyzDataSeries3D5.SeriesName = "f(y/S1)"; // построение плотности проекции f(y/S2) var dispersionY2 = MathTpr.DispersionY(setP2, averageY2); var sigmaY2 = Math.Sqrt(dispersionY2); var xyzDataSeries3D6 = MathTpr.f_y_Si(averageY2, sigmaY2, n2, MainWindow.fYS2); xyzDataSeries3D6.SeriesName = "f(y/S2)"; // нахождение центра между образами xCen = Math.Abs(mu1X - mu2X) / 2; yCen = Math.Abs(mu1Y - mu2Y) / 2; /* Вычисление расстояния до центра от одного из образов, т.к. это центр – следовательно * расстояние от первого и второго образа одинаково. Берем данные первого образа.*/ var distance = Math.Sqrt(Math.Pow(xCen - mu1X, 2) + Math.Pow(yCen - mu1Y, 2)); // определяем, что это расстояние больше чем среднеквадратическое отклонение любого образа // если меньше, то берем значение большего среднеквадратического отклонения if (sigma1X > distance) { distance = sigma1X; } if (sigma1Y > distance) { distance = sigma1Y; } if (sigma2X > distance) { distance = sigma2X; } if (sigma2Y > distance) { distance = sigma2Y; } // данное значение нам необходимо для построения поверхности определённого размера // чтобы её отображение на диаграмме было корректным и без смещения относительно других объектов // данное значение было определено эмпирическим путем var meshDataSeries1 = MathTpr.ConstructionSurfaceDistribution(xCen, yCen, distance, sigma1X, sigma1Y, mu1X, mu1Y, ro1); meshDataSeries1.SeriesName = "f(x,y/S1)"; var meshDataSeries2 = MathTpr.ConstructionSurfaceDistribution(xCen, yCen, distance, sigma2X, sigma2Y, mu2X, mu2Y, ro2); meshDataSeries2.SeriesName = "f(x,y/S2)"; ScatterSeries3D_1.DataSeries = xyzDataSeries3D1; ScatterSeries3D_2.DataSeries = xyzDataSeries3D2; PointLineSeries3D.DataSeries = xyzDataSeries3D3; PointLineSeries3D_1.DataSeries = xyzDataSeries3D4; PointLineSeries3D_2.DataSeries = xyzDataSeries3D5; PointLineSeries3D_3.DataSeries = xyzDataSeries3D6; surfaceMeshRenderableSeries.DataSeries = meshDataSeries1; surfaceMeshRenderableSeries_2.DataSeries = meshDataSeries2; }