//创建区域 public static int Creat_Area(byte AreaType, ushort x, ushort y, ushort w, ushort h, ushort areaID) { bx_sdk_dual.EQareaHeader_G6 aheader; aheader.AreaType = AreaType; aheader.AreaX = x; aheader.AreaY = y; aheader.AreaWidth = w; aheader.AreaHeight = h; aheader.BackGroundFlag = 0x00; aheader.Transparency = 101; aheader.AreaEqual = 0x00; bx_sdk_dual.EQSound_6G stSoundData = new bx_sdk_dual.EQSound_6G(); stSoundData.SoundFlag = 0; stSoundData.SoundVolum = 0; stSoundData.SoundSpeed = 0; stSoundData.SoundDataMode = 0; stSoundData.SoundReplayTimes = 0; stSoundData.SoundReplayDelay = 0; stSoundData.SoundReservedParaLen = 0; stSoundData.Soundnumdeal = 0; stSoundData.Soundlanguages = 0; stSoundData.Soundwordstyle = 0; stSoundData.SoundDataLen = 0; stSoundData.SoundData = IntPtr.Zero; aheader.stSoundData = stSoundData; int err = bx_sdk_dual.bxDual_program_addArea_G6(areaID, ref aheader); //添加图文区域 return(err); }
/// <summary> /// 创建区域 /// </summary> /// <param name="AreaType">区域类型</param> /// <param name="x">左上角x坐标</param> /// <param name="y">左上角y坐标</param> /// <param name="w">宽度</param> /// <param name="h">高度</param> /// <param name="areaID">区域ID</param> public void Creat_Area(byte AreaType, ushort x, ushort y, ushort w, ushort h, ushort areaID) { bx_sdk_dual.EQareaHeader_G6 aheader; aheader.AreaType = AreaType; aheader.AreaX = x; aheader.AreaY = y; aheader.AreaWidth = w; aheader.AreaHeight = h; aheader.BackGroundFlag = 0x00; aheader.Transparency = 101; aheader.AreaEqual = 0x00; bx_sdk_dual.EQSound_6G stSoundData = new bx_sdk_dual.EQSound_6G(); stSoundData.SoundFlag = 0; stSoundData.SoundVolum = 0; stSoundData.SoundSpeed = 0; stSoundData.SoundDataMode = 0; stSoundData.SoundReplayTimes = 0; stSoundData.SoundReplayDelay = 0; stSoundData.SoundReservedParaLen = 0; stSoundData.Soundnumdeal = 0; stSoundData.Soundlanguages = 0; stSoundData.Soundwordstyle = 0; stSoundData.SoundDataLen = 0; byte[] t = new byte[1]; t[0] = 0; stSoundData.SoundData = t; aheader.stSoundData = stSoundData; IntPtr bb = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(bx_sdk_dual.EQareaHeader_G6))); Marshal.StructureToPtr(aheader, bb, false); err = bx_sdk_dual.program_addArea_G6(areaID, bb); //添加图文区域 if (Event_Log != null) { Event_Log($"创建图文区域,代码:{err}"); } }
//更新动态区图片 public static int dynamicAreaimg_6(byte[] ipAdder, ushort port, byte ScreenColor, byte uAreaId, ushort x, ushort y, ushort w, ushort h, byte DisplayMode, byte Speed, ushort StayTime, byte RepeatTime, ushort ValidLen, byte CartoonFrameRate, bx_sdk_dual.E_arrMode arrMode, ushort fontSize, uint color, byte fontBold, byte fontItalic, bx_sdk_dual.E_txtDirection tdirection, ushort txtSpace, byte Valign, byte Halign, string fontName, string strAreaTxtContent, byte PlayImmediately, ushort RelateProNum, ushort[] RelateProSerial, bx_sdk_dual.EQSound_6G stSoundData) { int err = 0; bx_sdk_dual.EQareaHeader_G6 aheader; aheader.AreaType = 0x10; aheader.AreaX = x; aheader.AreaY = y; aheader.AreaWidth = w; aheader.AreaHeight = h; aheader.BackGroundFlag = 0x00; aheader.Transparency = 101; aheader.AreaEqual = 0x00; aheader.stSoundData = stSoundData; bx_sdk_dual.EQpageHeader_G6 pheader; pheader.PageStyle = 0x00; pheader.PageStyle = 0x00; pheader.DisplayMode = DisplayMode; pheader.ClearMode = 0x01; pheader.Speed = Speed; pheader.StayTime = StayTime; pheader.RepeatTime = RepeatTime; pheader.ValidLen = ValidLen; pheader.CartoonFrameRate = CartoonFrameRate; pheader.BackNotValidFlag = 0; pheader.arrMode = arrMode; pheader.fontSize = fontSize; pheader.color = color; pheader.fontBold = fontBold; pheader.fontItalic = fontItalic; pheader.tdirection = tdirection; pheader.txtSpace = txtSpace; pheader.Valign = Valign; pheader.Halign = Halign; bx_sdk_dual.DynamicAreaParams[] Params = new bx_sdk_dual.DynamicAreaParams[1]; Params[0].uAreaId = uAreaId; Params[0].oAreaHeader_G6 = aheader; Params[0].stPageHeader = pheader; byte[] Font = Encoding.GetEncoding("GBK").GetBytes(fontName); Params[0].fontName = Calculation.BytesToIntptr(Font); byte[] str = Encoding.GetEncoding("GBK").GetBytes(strAreaTxtContent); Params[0].strAreaTxtContent = Calculation.BytesToIntptr(str); if (PlayImmediately == 1) { err = bx_sdk_dual.bxDual_dynamicAreaS_AddAreaPic_6G(ipAdder, port, (bx_sdk_dual.E_ScreenColor_G56)ScreenColor, (byte)Params.Length, Params); } else { err = bx_sdk_dual.bxDual_dynamicAreaS_AddAreaPic_WithProgram_6G(ipAdder, port, (bx_sdk_dual.E_ScreenColor_G56)ScreenColor, (byte)Params.Length, Params, RelateProNum, RelateProSerial); } return(err); }