Пример #1
0
        public void make(ref PageArrayBin pageArrayBin, ref SVSerialize serialize)
        {
            UInt32 pageCount   = pageArrayBin.pageCount;
            UInt32 analogCount = pageArrayBin.pageArray[pageCount].analog_num++;

            if (pageArrayBin.pageArray[pageCount].m_analog == null)
            {
                pageArrayBin.pageArray[pageCount].m_analog = new AnalogBin[SVLimit.PAGE_ANA_MAXNUM];
            }

            AnalogBin analogBin = pageArrayBin.pageArray[pageCount].m_analog[analogCount];

            analogBin.id      = ID;
            analogBin.rect.sX = (UInt16)Rect.X;
            analogBin.rect.sY = (UInt16)Rect.Y;
            analogBin.rect.eX = (UInt16)(Rect.Width + analogBin.rect.sX);
            analogBin.rect.eY = (UInt16)(Rect.Height + analogBin.rect.sY);

            analogBin.normalClr      = (UInt32)NormalColor.ToArgb();
            analogBin.normalBgClr    = (UInt32)NormalBgColor.ToArgb();
            analogBin.overMaxClr     = (UInt32)OverMaxColor.ToArgb();
            analogBin.overMinClr     = (UInt32)OverMinColor.ToArgb();
            analogBin.overMaxBgClr   = (UInt32)OverMaxBgColor.ToArgb();
            analogBin.overMinBgClr   = (UInt32)OverMinBgColor.ToArgb();
            analogBin.vinfoInvalid   = (UInt32)ExceptionColor.ToArgb();
            analogBin.vinfoInvalidBg = (UInt32)ExceptionBgColor.ToArgb();

            analogBin.vMax = Max;
            analogBin.vMin = Min;

            analogBin.font        = (Byte)_font.Size;
            analogBin.nDecimalNum = DecNum;
            analogBin.enExponent  = _isExponent ? (Byte)1 : (Byte)0;

            ///根据名称来获取地址
            var varInstance = SVVaribleType.instance();

            analogBin.addrOffset = varInstance.strToAddress(Variable.VarName, Variable.VarBlockType);
            analogBin.varType    = (Byte)varInstance.strToType(Variable.VarName, Variable.VarBlockType);

            pageArrayBin.pageArray[pageCount].m_analog[analogCount] = analogBin;
        }
Пример #2
0
        /// <summary>
        /// 生成下装文件
        /// </summary>
        /// <param oldName="pageArrayBin">下装配置文件</param>
        /// <param oldName="serialize">序列化对象</param>
        public void make(ref PageArrayBin pageArrayBin, ref SVSerialize serialize)
        {
            UInt32 pageCount   = pageArrayBin.pageCount;
            UInt32 binaryCount = pageArrayBin.pageArray[pageCount].binaryNum++;

            if (pageArrayBin.pageArray[pageCount].m_binary == null)
            {
                pageArrayBin.pageArray[pageCount].m_binary = new BinaryBin[SVLimit.PAGE_BOOL_MAXNUM];
            }

            BinaryBin binaryBin = pageArrayBin.pageArray[pageCount].m_binary[binaryCount];

            binaryBin.id      = ID;
            binaryBin.rect.sX = (UInt16)Rect.X;
            binaryBin.rect.sY = (UInt16)Rect.Y;
            binaryBin.rect.eX = (UInt16)(Rect.Width + binaryBin.rect.sX);
            binaryBin.rect.eY = (UInt16)(Rect.Height + binaryBin.rect.sY);

            binaryBin.font = (Byte)_font.Size;
            binaryBin.type = _type;

            ///存放字符串相关的属性和文本信息
            if (_type == 0)
            {
                binaryBin.trueClr        = (UInt32)TrueColor.ToArgb();
                binaryBin.trueBgClr      = (UInt32)TrueBgColor.ToArgb();
                binaryBin.falseClr       = (UInt32)FalseColor.ToArgb();
                binaryBin.falseBgClr     = (UInt32)FalseBgColor.ToArgb();
                binaryBin.vinfoInvalid   = (UInt32)ExceptionColor.ToArgb();
                binaryBin.vinfoInvalidBg = (UInt32)ExceptionBgColor.ToArgb();

                binaryBin.trueText = new Byte[SVLimit.BINARY_MAX_LEN];
                if (CustomTrueText != null)
                {
                    copyDestByteArray(Encoding.Unicode.GetBytes(CustomTrueText), binaryBin.trueText);
                }

                binaryBin.falseText = new Byte[SVLimit.BINARY_MAX_LEN];
                if (CustomFlaseText != null)
                {
                    copyDestByteArray(Encoding.Unicode.GetBytes(CustomFlaseText), binaryBin.falseText);
                }
            }
            else ///存放与背景图片有关的信息
            {
                ///为真的图片地址
                var trueAddress = this.TruePicture.bitmap8Data(Rect.Width, Rect.Height);
                if (trueAddress != null)
                {
                    binaryBin.trueClr = (UInt32)serialize.ToArray().Length;
                    serialize.pack(trueAddress);
                }

                ///为假的图片地址
                var falseAddress = this.FlasePicture.bitmap8Data(Rect.Width, Rect.Height);
                if (falseAddress != null)
                {
                    binaryBin.falseClr = (UInt32)serialize.ToArray().Length;
                    serialize.pack(falseAddress);
                }

                ///异常的图片地址
                var exAddress = this.ExPicture.bitmap8Data(Rect.Width, Rect.Height);
                if (exAddress != null)
                {
                    binaryBin.vinfoInvalid = (UInt32)serialize.ToArray().Length;
                    serialize.pack(exAddress);
                }
            }

            ///根据名称来获取地址
            var varInstance = SVVaribleType.instance();

            binaryBin.addrOffset = varInstance.strToAddress(_var.VarName, _var.VarBlockType);
            binaryBin.varType    = (Byte)varInstance.strToType(_var.VarName, _var.VarBlockType);

            pageArrayBin.pageArray[pageCount].m_binary[binaryCount] = binaryBin;
        }