Ejemplo n.º 1
0
 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());
        }
Ejemplo n.º 3
0
        public void InitializesToZero()
        {
            var setPoint = new SetPoint(0, 0.001m);

            Assert.That(setPoint.Target, Is.EqualTo(0));
            Assert.That(setPoint.Value, Is.EqualTo(0));
        }
Ejemplo n.º 4
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());
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 8
0
        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();
        }
Ejemplo n.º 9
0
        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;
        }