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; }
/// <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; }