public void DisplayBuild()
        {
            mLEDDisplays = new LBSoft.IndustrialCtrls.Leds.LB7SegmentDisplay[2, 4];

            int iSegmentIDX;

            for (iSegmentIDX = 0; iSegmentIDX < 4; iSegmentIDX++)
            {
                mLEDDisplays[0, iSegmentIDX] = new LBSoft.IndustrialCtrls.Leds.LB7SegmentDisplay();
                mLEDDisplays[1, iSegmentIDX] = new LBSoft.IndustrialCtrls.Leds.LB7SegmentDisplay();

                mLEDDisplays[0, iSegmentIDX].Text      = "0";
                mLEDDisplays[0, iSegmentIDX].Left      = 80 + 20 * iSegmentIDX;
                mLEDDisplays[0, iSegmentIDX].Top       = 0;
                mLEDDisplays[0, iSegmentIDX].Width     = 20;
                mLEDDisplays[0, iSegmentIDX].Height    = 40;
                mLEDDisplays[0, iSegmentIDX].BackColor = Color.FromArgb(255, 32, 32, 32);
                mLEDDisplays[0, iSegmentIDX].ForeColor = Color.OrangeRed;

                mLEDDisplays[1, iSegmentIDX].Text      = "0";
                mLEDDisplays[1, iSegmentIDX].Left      = 240 + 20 * iSegmentIDX;
                mLEDDisplays[1, iSegmentIDX].Top       = 0;
                mLEDDisplays[1, iSegmentIDX].Width     = 20;
                mLEDDisplays[1, iSegmentIDX].Height    = 40;
                mLEDDisplays[1, iSegmentIDX].BackColor = Color.FromArgb(255, 32, 32, 32);
                mLEDDisplays[1, iSegmentIDX].ForeColor = Color.OrangeRed;

                this.Controls.Add(mLEDDisplays[0, iSegmentIDX]);
                this.Controls.Add(mLEDDisplays[1, iSegmentIDX]);
            }


            mLEDLabels              = new Label[2];
            mLEDLabels[0]           = new Label();
            mLEDLabels[0].Width     = 80;
            mLEDLabels[0].Left      = 0;
            mLEDLabels[0].BackColor = Color.FromArgb(255, 32, 32, 32);
            mLEDLabels[0].ForeColor = Color.OrangeRed;
            mLEDLabels[0].Font      = new Font(mLEDLabels[0].Font.FontFamily, 10);
            mLEDLabels[0].TextAlign = ContentAlignment.TopRight;

            mLEDLabels[1]           = new Label();
            mLEDLabels[1].Width     = 80;
            mLEDLabels[1].Left      = 160;
            mLEDLabels[1].BackColor = Color.FromArgb(255, 32, 32, 32);
            mLEDLabels[1].ForeColor = Color.OrangeRed;
            mLEDLabels[1].Font      = new Font(mLEDLabels[0].Font.FontFamily, 10);
            mLEDLabels[1].TextAlign = ContentAlignment.TopRight;

            this.Controls.Add(mLEDLabels[0]);
            this.Controls.Add(mLEDLabels[1]);
        }
        public void SetWindowView(bool boSetup)
        {
            int iMeasureIDX = 0;
            int iElementIDX;
            int iVerticalElementCount = 0;
            int iMaxSegments          = 0;
            tstActiveMeasureIndices stActiveMeasureIndices;

            mboSuspendUpdates = true;
            RemoveControls();

            maclsWindowElement = new tclsWindowElement[Program.mAPP_clsXMLConfig.mailstWindowLists[miFormIDX].Count];

            Program.mAPP_clsXMLConfig.mailstWindowLists[miFormIDX].CopyTo(maclsWindowElement, 0);

            mlstSegCount.Clear();
            mlstPreDPCount.Clear();


            /* Count number of elements assigned to this window */
            for (iElementIDX = 0; iElementIDX < maclsWindowElement.Length; iElementIDX++)
            {
                if (0 == String.Compare(maclsWindowElement[iElementIDX].szElementType, "measure"))
                {
                    if (-1 != tclsASAM.iGetAvailableMeasIndex(maclsWindowElement[iElementIDX].szA2LName))
                    {
                        if (true == boSetup)
                        {
                            stActiveMeasureIndices = tclsASAM.stTryAddActiveMeas(maclsWindowElement[iElementIDX].szA2LName, miFormIDX);
                            maastActiveMeasureIndices[miFormIDX, iMeasureIDX].iMeasureQueue    = stActiveMeasureIndices.iMeasureQueue;
                            maastActiveMeasureIndices[miFormIDX, iMeasureIDX].iMeasureQueueIDX = stActiveMeasureIndices.iMeasureQueueIDX;
                            maaiMeasCompuMethodIndices[miFormIDX, iMeasureIDX] = tclsASAM.iGetCompuMethodIndexFromMeas(maclsWindowElement[iElementIDX].szA2LName, miFormIDX);
                        }

                        int iCompuMethodIDX = tclsASAM.iGetCompuMethodIndexFromMeas(maclsWindowElement[iElementIDX].szA2LName, miFormIDX);
                        int iSegments       = tclsASAM.milstCompuMethodList[iCompuMethodIDX].iPostDPCount + tclsASAM.milstCompuMethodList[iCompuMethodIDX].iPreDPCount;
                        iMaxSegments = iMaxSegments < iSegments ? iSegments : iMaxSegments;
                        mlstSegCount.Add(iSegments);
                        mlstPreDPCount.Add(tclsASAM.milstCompuMethodList[iCompuMethodIDX].iPreDPCount);
                        iMeasureIDX++;
                    }
                    else
                    {
                        Program.vNotifyProgramEvent(tenProgramEvent.enProgramError, 0, "Layout measure element " +
                                                    maclsWindowElement[iElementIDX].szA2LName + " not found in ASAM database, this element will not be shown");
                    }
                }
            }

            maaclsDigitalMeter = new LBSoft.IndustrialCtrls.Leds.LB7SegmentDisplay[iMeasureIDX, iMaxSegments];
            maclsMeasureLabel  = new Label[iMeasureIDX];

            iMeasureIDX = 0;

            /* Loop through and create visual controls required */
            for (iElementIDX = 0; iElementIDX < maclsWindowElement.Length; iElementIDX++)
            {
                if (0 == String.Compare(maclsWindowElement[iElementIDX].szElementType, "measure"))
                {
                    int iSegmentIDX;

                    if (-1 != tclsASAM.iGetAvailableMeasIndex(maclsWindowElement[iElementIDX].szA2LName))
                    {
                        for (iSegmentIDX = 0; iSegmentIDX < mlstSegCount[iMeasureIDX]; iSegmentIDX++)
                        {
                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX] = new LBSoft.IndustrialCtrls.Leds.LB7SegmentDisplay();

                            if ((iSegmentIDX == (mlstPreDPCount[iMeasureIDX] - 1)) &&
                                (mlstPreDPCount[iMeasureIDX] != mlstSegCount[iMeasureIDX]))
                            {
                                maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].ShowDP = true;
                            }

                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].Text      = iSegmentIDX.ToString();
                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].Left      = 100 + 25 * iSegmentIDX;
                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].Top       = 40 + 25 * iMeasureIDX;
                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].Width     = 70;
                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].BackColor = Color.FromArgb(255, 255, 255, 200);
                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].BackColor = Color.FromArgb(255, 32, 32, 32);
                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].ForeColor = Color.OrangeRed;
                            this.Controls.Add(maaclsDigitalMeter[iMeasureIDX, iSegmentIDX]);
                        }

                        maclsMeasureLabel[iMeasureIDX]           = new Label();
                        maclsMeasureLabel[iMeasureIDX].AutoSize  = false;
                        maclsMeasureLabel[iMeasureIDX].TextAlign = ContentAlignment.MiddleRight;
                        maclsMeasureLabel[iMeasureIDX].Text      = maclsWindowElement[iElementIDX].szLabel;
                        maclsMeasureLabel[iMeasureIDX].Left      = 20;
                        maclsMeasureLabel[iMeasureIDX].Top       = 40 + 25 * iMeasureIDX;
                        maclsMeasureLabel[iMeasureIDX].Width     = 120;
                        maclsMeasureLabel[iMeasureIDX].BackColor = Color.FromArgb(255, 32, 32, 32);
                        maclsMeasureLabel[iMeasureIDX].ForeColor = Color.OrangeRed;
                        this.Controls.Add(maclsMeasureLabel[iMeasureIDX]);

                        iMeasureIDX++;
                    }
                }

                if (0 == String.Compare(maclsWindowElement[iElementIDX].szElementType, "window"))
                {
                    this.Text = ConstantData.APPCONFIG.szAppName + ":" + maclsWindowElement[iElementIDX].szLabel;
                }
            }


            iVerticalElementCount = iMeasureIDX;

            if (this.Height < 80 + 25 * iVerticalElementCount)
            {
                this.Height = 80 + 25 * iVerticalElementCount;
            }

            if ((true == boSetup) && (0 < iMeasureIDX))
            {
                tclsASAM.vCalcDDDIAndSetRate(miFormIDX, 500);
            }
            //else
            //{
            this.OnResize(EventArgs.Empty);
            //}

            mboSuspendUpdates = false;
        }
예제 #3
0
        public void SetWindowView(bool boSetup)
        {
            int iMeasureIDX = 0;
            int iElementIDX;
            int iVerticalElementCount = 0;
            int iMaxSegments          = 0;
            tstActiveMeasureIndices stActiveMeasureIndices;

            mboSuspendUpdates  = true;
            maclsWindowElement = new tclsWindowElement[Program.mAPP_clsXMLConfig.mailstWindowLists[miFormIDX].Count];

            Program.mAPP_clsXMLConfig.mailstWindowLists[miFormIDX].CopyTo(maclsWindowElement, 0);

            mlstSegCount.Clear();
            mlstPreDPCount.Clear();

            /* Count number of elements assigned to this window */
            for (iElementIDX = 0; iElementIDX < maclsWindowElement.Length; iElementIDX++)
            {
                if (0 == String.Compare(maclsWindowElement[iElementIDX].szElementType, "measure"))
                {
                    if (true == boSetup)
                    {
                        stActiveMeasureIndices = tclsASAM.stTryAddActiveMeas(maclsWindowElement[iElementIDX].szA2LName, miFormIDX);
                        maastActiveMeasureIndices[miFormIDX, iMeasureIDX].iMeasureQueue    = stActiveMeasureIndices.iMeasureQueue;
                        maastActiveMeasureIndices[miFormIDX, iMeasureIDX].iMeasureQueueIDX = stActiveMeasureIndices.iMeasureQueueIDX;
                        maaiMeasCompuMethodIndices[miFormIDX, iMeasureIDX] = tclsASAM.iGetCompuMethodIndexFromMeas(maclsWindowElement[iElementIDX].szA2LName, miFormIDX);
                    }

                    int iCompuMethodIDX = tclsASAM.iGetCompuMethodIndexFromMeas(maclsWindowElement[iElementIDX].szA2LName, miFormIDX);
                    int iSegments       = tclsASAM.milstCompuMethodList[iCompuMethodIDX].iPostDPCount + tclsASAM.milstCompuMethodList[iCompuMethodIDX].iPreDPCount;
                    iMaxSegments = iMaxSegments < iSegments ? iSegments : iMaxSegments;
                    mlstSegCount.Add(iSegments);
                    mlstPreDPCount.Add(tclsASAM.milstCompuMethodList[iCompuMethodIDX].iPreDPCount);
                    iMeasureIDX++;
                }
            }

            maaclsDigitalMeter = new LBSoft.IndustrialCtrls.Leds.LB7SegmentDisplay[iMeasureIDX, iMaxSegments];
            maclsMeasureLabel  = new Label[iMeasureIDX];

            iMeasureIDX = 0;

            /* Loop through and create visual controls required */
            for (iElementIDX = 0; iElementIDX < maclsWindowElement.Length; iElementIDX++)
            {
                if (0 == String.Compare(maclsWindowElement[iElementIDX].szElementType, "measure"))
                {
                    int iSegmentIDX;

                    for (iSegmentIDX = 0; iSegmentIDX < mlstSegCount[iMeasureIDX]; iSegmentIDX++)
                    {
                        maaclsDigitalMeter[iMeasureIDX, iSegmentIDX] = new LBSoft.IndustrialCtrls.Leds.LB7SegmentDisplay();

                        if ((iSegmentIDX == (mlstPreDPCount[iMeasureIDX] - 1)) &&
                            (mlstPreDPCount[iMeasureIDX] != mlstSegCount[iMeasureIDX]))
                        {
                            maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].ShowDP = true;
                        }

                        maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].Text      = iSegmentIDX.ToString();
                        maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].Left      = 550 + 50 * iSegmentIDX;
                        maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].Top       = 40 + 65 * iMeasureIDX;
                        maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].Width     = 50;
                        maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].BackColor = Color.FromArgb(255, 255, 255, 200);
                        maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].BackColor = Color.FromArgb(255, 32, 32, 32);
                        maaclsDigitalMeter[iMeasureIDX, iSegmentIDX].ForeColor = Color.OrangeRed;
                        this.Controls.Add(maaclsDigitalMeter[iMeasureIDX, iSegmentIDX]);
                    }

                    maclsMeasureLabel[iMeasureIDX]           = new Label();
                    maclsMeasureLabel[iMeasureIDX].AutoSize  = false;
                    maclsMeasureLabel[iMeasureIDX].TextAlign = ContentAlignment.MiddleRight;
                    maclsMeasureLabel[iMeasureIDX].Text      = maclsWindowElement[iElementIDX].szLabel;
                    maclsMeasureLabel[iMeasureIDX].Left      = 330;
                    maclsMeasureLabel[iMeasureIDX].Top       = 40 + 65 * iMeasureIDX;
                    maclsMeasureLabel[iMeasureIDX].Width     = 220;
                    maclsMeasureLabel[iMeasureIDX].Height    = 50;
                    maclsMeasureLabel[iMeasureIDX].BackColor = Color.FromArgb(255, 32, 32, 32);
                    maclsMeasureLabel[iMeasureIDX].ForeColor = Color.OrangeRed;
                    maclsMeasureLabel[iMeasureIDX].Font      = new Font("Arial", 18, FontStyle.Regular);
                    this.Controls.Add(maclsMeasureLabel[iMeasureIDX]);

                    iMeasureIDX++;
                }

                if (0 == String.Compare(maclsWindowElement[iElementIDX].szElementType, "window"))
                {
                    this.Text = ConstantData.APPCONFIG.szAppName + ":" + maclsWindowElement[iElementIDX].szLabel;
                }

                if (true == boSetup)
                {
                    SetDSGGraphic(0);
                }
            }


            iVerticalElementCount = iMeasureIDX;

            if (this.Height < 80 + 25 * iVerticalElementCount)
            {
                this.Height = 80 + 25 * iVerticalElementCount;
            }

            if ((true == boSetup) && (0 < iMeasureIDX))
            {
                tclsASAM.vCalcDDDIAndSetRate(miFormIDX, 500);
            }

            mboSuspendUpdates = false;
        }