Ejemplo n.º 1
0
 private void FigureConfigMatrixScalar(int xc, int xr, string xName, string yName)
 {
     FigureProtocol.FigureConfig figureConfig = new FigureProtocol.FigureConfig()
     {
         FigureId     = publisher.Id,
         Title        = varName,
         RowsCount    = xc,
         ColumnsCount = xr
     };
     publisher.Send(FigureProtocol.FigureConfigLabel, figureConfig);
     for (int i = 0; i < xr; i++)
     {
         for (int j = 0; j < xc; j++)
         {
             string observationName = $"{xName}({i}-{j})";
             FigureProtocol.PlotConfig plotConfig = new FigureProtocol.PlotConfig()
             {
                 FigureId = publisher.Id,
                 RowNO    = i,
                 ColumnNO = j,
                 XLabel   = observationName,
                 YLabel   = yName
             };
             publisher.Send(FigureProtocol.PlotConfigLabel, plotConfig);
             FigureProtocol.Curve curve = new FigureProtocol.Curve()
             {
                 FigureId    = publisher.Id,
                 CurveHandle = i * xc + j,
                 RowNO       = i,
                 ColumnNO    = j
             };
             publisher.Send(FigureProtocol.CurveLabel, curve);
         }
     }
 }
Ejemplo n.º 2
0
 private void FigureConfigDoubleScalar(string xName, string yName)
 {
     FigureProtocol.FigureConfig figureConfig = new FigureProtocol.FigureConfig()
     {
         FigureId     = publisher.Id,
         Title        = varName,
         RowsCount    = 1,
         ColumnsCount = 1
     };
     publisher.Send(FigureProtocol.FigureConfigLabel, figureConfig);
     FigureProtocol.PlotConfig plotConfig = new FigureProtocol.PlotConfig()
     {
         FigureId = publisher.Id,
         RowNO    = 0,
         ColumnNO = 0,
         XLabel   = xName,
         YLabel   = yName
     };
     publisher.Send(FigureProtocol.PlotConfigLabel, plotConfig);
     FigureProtocol.Curve curve = new FigureProtocol.Curve()
     {
         FigureId    = publisher.Id,
         CurveHandle = 0,
         RowNO       = 0,
         ColumnNO    = 0
     };
     publisher.Send(FigureProtocol.CurveLabel, curve);
 }
Ejemplo n.º 3
0
        protected override bool Receive(FigureProtocol.Curve curve)
        {
            if (!Figures.ContainsKey(curve.FigureId))
            {
                return(false);
            }
            Figure figure = Figures[curve.FigureId];
            Curve  cv     = new Curve();

            figure.Curves[curve.CurveHandle] = cv;
            cv.ColNO = curve.ColumnNO;
            cv.RowNO = curve.RowNO;
            return(true);
        }
Ejemplo n.º 4
0
        protected override bool Receive(FigureProtocol.Curve curve)
        {
            if (!base.Receive(curve))
            {
                return(false);
            }
            Figure figure  = Figures[curve.FigureId];
            string curveID = $"{curve.FigureId}_{curve.CurveHandle}";

            switch (figure.AxesShape)
            {
            case AxesShapeType.Scalar:
                Execute($@"
cv{curveID}, = ax{curve.FigureId}.plot([], [])
xdata{curveID} = cv{curveID}.get_xdata()
ydata{curveID} = cv{curveID}.get_ydata()
ax{curve.FigureId}.grid()
");
                break;

            case AxesShapeType.Vector:
                int index = curve.RowNO > curve.ColumnNO ? curve.RowNO : curve.ColumnNO;
                Execute($@"
cv{curveID} = ax{curve.FigureId}[{index}].plot([], [])
xdata{curveID} = cv{curveID}.get_xdata()
ydata{curveID} = cv{curveID}.get_ydata()
ax{curve.FigureId}[{index}].grid()
");
                break;

            case AxesShapeType.Matrix:
                Execute($@"
cv{curveID} = ax{curve.FigureId}[{curve.RowNO}, {curve.ColumnNO}].plot([], [])
xdata{curveID} = cv{curveID}.get_xdata()
ydata{curveID} = cv{curveID}.get_ydata()
ax{curve.FigureId}[{curve.RowNO}, {curve.ColumnNO}].grid()
");
                break;
            }
            return(true);
        }
Ejemplo n.º 5
0
 private void FigureConfigVVectorHVector(int xr, int yc, string xName, string yName)
 {
     FigureProtocol.FigureConfig figureConfig = new FigureProtocol.FigureConfig()
     {
         FigureId     = publisher.Id,
         Title        = varName,
         RowsCount    = yc,
         ColumnsCount = xr
     };
     publisher.Send(FigureProtocol.FigureConfigLabel, figureConfig);
     for (int i = 0; i < yc; i++)
     {
         string observationName = $"{yName}({i})";
     }
     for (int i = 0; i < xr; i++)
     {
         string observationName = $"{xName}({i})";
         for (int j = 0; j < yc; j++)
         {
             FigureProtocol.PlotConfig plotConfig = new FigureProtocol.PlotConfig()
             {
                 FigureId = publisher.Id,
                 RowNO    = i,
                 ColumnNO = j,
                 XLabel   = observationName,
                 YLabel   = yHandle.space[j].Name
             };
             publisher.Send(FigureProtocol.PlotConfigLabel, plotConfig);
             FigureProtocol.Curve curve = new FigureProtocol.Curve()
             {
                 FigureId    = publisher.Id,
                 CurveHandle = i * yc + j,
                 RowNO       = i,
                 ColumnNO    = j
             };
             publisher.Send(FigureProtocol.CurveLabel, curve);
         }
     }
 }
Ejemplo n.º 6
0
 protected virtual bool Receive(FigureProtocol.Curve curve)
 {
     return(false);
 }
Ejemplo n.º 7
0
        public override void Check()
        {
            int rowNo = InPortList[0].RowNo;
            int colNo = InPortList[0].ColNo;

            FigureProtocol.FigureConfig figureConfig = new FigureProtocol.FigureConfig()
            {
                FigureId     = publisher.Id,
                Title        = varName,
                RowsCount    = rowNo == 0 ? 1 : rowNo,
                ColumnsCount = colNo == 0 ? 1 : colNo
            };
            publisher.Send(FigureProtocol.FigureConfigLabel, figureConfig);
            handle = Observation.CreateObservation(varName, rowNo, colNo);
            if (rowNo > 0 && colNo > 0)
            {
                for (int i = 0; i < rowNo; i++)
                {
                    for (int j = 0; j < colNo; j++)
                    {
                        string observationName = $"{varName}({i}-{j})";
                        FigureProtocol.PlotConfig plotConfig = new FigureProtocol.PlotConfig()
                        {
                            FigureId = publisher.Id,
                            RowNO    = i,
                            ColumnNO = j,
                            XLabel   = "time/s",
                            YLabel   = observationName
                        };
                        publisher.Send(FigureProtocol.PlotConfigLabel, plotConfig);
                        FigureProtocol.Curve curve = new FigureProtocol.Curve()
                        {
                            FigureId    = publisher.Id,
                            CurveHandle = i * colNo + j,
                            RowNO       = i,
                            ColumnNO    = j
                        };
                        publisher.Send(FigureProtocol.CurveLabel, curve);
                    }
                }
            }
            else
            {
                FigureProtocol.PlotConfig plotConfig = new FigureProtocol.PlotConfig()
                {
                    FigureId = publisher.Id,
                    RowNO    = 0,
                    ColumnNO = 0,
                    XLabel   = "time/s",
                    YLabel   = varName
                };
                publisher.Send(FigureProtocol.PlotConfigLabel, plotConfig);
                FigureProtocol.Curve curve = new FigureProtocol.Curve()
                {
                    FigureId    = publisher.Id,
                    CurveHandle = 0,
                    RowNO       = 0,
                    ColumnNO    = 0
                };
                publisher.Send(FigureProtocol.CurveLabel, curve);
            }
            FigureProtocol.ShowCommand showCommand = new FigureProtocol.ShowCommand()
            {
                FigureId = publisher.Id
            };
            publisher.Send(FigureProtocol.ShowCommandLabel, showCommand);
        }