Example #1
0
 //创建区域
 public static void Creat_Area_6(byte AreaType, ushort x, ushort y, ushort w, ushort h, ushort areaID)
 {
     bxdualsdk.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;
     bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.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 = IntPtr.Zero;
     aheader.stSoundData   = stSoundData;
     int err = bxdualsdk.bxDual_program_addArea_G6(areaID, ref aheader);              //添加图文区域
     //Console.WriteLine("program_AddArea:" + err);
 }
Example #2
0
        /// <summary>
        /// BX-6代控制卡发送节目时间
        /// </summary>
        public static void Send_program_time_6()
        {
            //指定IP ping控制卡获取控制卡数据,屏参相关参数已知的情况可省略该步骤
            bxdualsdk.Ping_data data = new bxdualsdk.Ping_data();
            int err = bxdualsdk.bxDual_cmd_tcpPing(Program.ip, Program.port, ref data);

            //显示屏屏基色
            byte cmb_ping_Color = 1;

            if (data.Color == 1)
            {
                cmb_ping_Color = 1;
            }
            else if (data.Color == 3)
            {
                cmb_ping_Color = 2;
            }
            else if (data.Color == 7)
            {
                cmb_ping_Color = 3;
            }
            else
            {
                cmb_ping_Color = 4;
            }

            //第一步.设置屏幕参数相关  发送节目必要接口,发送动态区可忽略
            err = bxdualsdk.bxDual_program_setScreenParams_G56((bxdualsdk.E_ScreenColor_G56)cmb_ping_Color, data.ControllerType, bxdualsdk.E_DoubleColorPixel_G56.eDOUBLE_COLOR_PIXTYPE_1);
            Console.WriteLine("bxDual_program_setScreenParams_G56:" + err);

            //第二步,创建节目,设置节目属性
            bxdualsdk.EQprogramHeader_G6 header;
            header.FileType             = 0x00;
            header.ProgramID            = 0;
            header.ProgramStyle         = 0x00;
            header.ProgramPriority      = 0x00;
            header.ProgramPlayTimes     = 1;
            header.ProgramTimeSpan      = 0;
            header.SpecialFlag          = 0;
            header.CommExtendParaLen    = 0x00;
            header.ScheduNum            = 0;
            header.LoopValue            = 0;
            header.Intergrate           = 0x00;
            header.TimeAttributeNum     = 0x00;
            header.TimeAttribute0Offset = 0x0000;
            header.ProgramWeek          = 0xff;
            header.ProgramLifeSpan_sy   = 0xffff;
            header.ProgramLifeSpan_sm   = 0x03;
            header.ProgramLifeSpan_sd   = 0x14;
            header.ProgramLifeSpan_ey   = 0xffff;
            header.ProgramLifeSpan_em   = 0x03;
            header.ProgramLifeSpan_ed   = 0x14;
            header.PlayPeriodGrpNum     = 0;
            err = bxdualsdk.bxDual_program_addProgram_G6(ref header);
            Console.WriteLine("bxDual_program_addProgram_G6:" + err);

            //第三步,创建显示分区,设置区域显示位置,示例创建一个区域编号为0,区域大小64*32的时间分区
            bxdualsdk.EQareaHeader_G6 aheader;
            aheader.AreaType       = 2;
            aheader.AreaX          = 0;
            aheader.AreaY          = 0;
            aheader.AreaWidth      = 80;
            aheader.AreaHeight     = 32;
            aheader.BackGroundFlag = 0x00;
            aheader.Transparency   = 101;
            aheader.AreaEqual      = 0x00;
            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.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 = IntPtr.Zero;
            aheader.stSoundData   = stSoundData;
            err = bxdualsdk.bxDual_program_addArea_G6(0, ref aheader);
            Console.WriteLine("bxDual_program_addArea_G6:" + err);
            //区域添加边框
            if (true)
            {
                bxdualsdk.EQscreenframeHeader_G6 sfheader;
                sfheader.FrameDispStype     = 0x01; //边框显示方式0x00 –闪烁 0x01 –顺时针转动 0x02 –逆时针转动 0x03 –闪烁加顺时针转动 0x04 –闪烁加逆时针转动 0x05 –红绿交替闪烁 0x06 –红绿交替转动 0x07 –静止打出
                sfheader.FrameDispSpeed     = 0x10; //边框显示速度
                sfheader.FrameMoveStep      = 0x01; //边框移动步长,单位为点,此参 数范围为 1~16
                sfheader.FrameUnitLength    = 2;    //边框组元长度
                sfheader.FrameUnitWidth     = 2;    //边框组元宽度
                sfheader.FrameDirectDispBit = 0;    //上下左右边框显示标志位,目前只支持6QX-M卡
                byte[] img = Encoding.Default.GetBytes("E:\\黄10.png");
                bxdualsdk.bxDual_program_picturesAreaAddFrame_G6(0, ref sfheader, img);
            }

            //第四步,添加时间显示内容
            bxdualsdk.EQtimeAreaData_G56 timeData2;
            timeData2.linestyle     = bxdualsdk.E_arrMode.eSINGLELINE;
            timeData2.color         = (uint)bxdualsdk.E_Color_G56.eRED;
            timeData2.fontName      = "宋体";
            timeData2.fontSize      = 12;
            timeData2.fontBold      = 1;
            timeData2.fontItalic    = 0;
            timeData2.fontUnderline = 0;
            timeData2.fontAlign     = 0; //0--左对齐,1-居中,2-右对齐
            timeData2.date_enable   = 1;
            timeData2.datestyle     = bxdualsdk.E_DateStyle.eYYYY_MM_DD_CHS;
            timeData2.time_enable   = 0;
            timeData2.timestyle     = bxdualsdk.E_TimeStyle.eHH_MM_SS_COLON;
            timeData2.week_enable   = 0;
            timeData2.weekstyle     = bxdualsdk.E_WeekStyle.eMonday_CHS;
            err = bxdualsdk.bxDual_program_timeAreaAddContent_G6(0, ref timeData2);
            Console.WriteLine("bxDual_program_timeAreaAddContent_G6:" + err);

            //第五步,发送节目到显示屏
            bxdualsdk.EQprogram_G6 program = new bxdualsdk.EQprogram_G6();
            err = bxdualsdk.bxDual_program_IntegrateProgramFile_G6(ref program);
            Console.WriteLine("bxDual_program_IntegrateProgramFile_G6:" + err);
            err = bxdualsdk.bxDual_program_deleteProgram_G6();
            Console.WriteLine("bxDual_program_deleteProgram_G6:" + err);

            if (true)//网口
            {
                err = bxdualsdk.bxDual_cmd_ofsStartFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsEndFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsEndFileTransf:" + err);
            }
            else//串口
            {
                err = bxdualsdk.bxDual_cmd_uart_ofsStartFileTransf(Program.com, Program.baudRate);
                Console.WriteLine("bxDual_cmd_uart_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsEndFileTransf(Program.com, Program.baudRate);
            }

            err = bxdualsdk.bxDual_program_freeBuffer_G6(ref program);
            Console.WriteLine("bxDual_program_freeBuffer_G6:" + err);
        }
Example #3
0
        /// <summary>
        /// 一次向一个动态区发送/更新多条信息(文字或图片)及语音
        /// </summary>
        public static void dynamicArea_pages_1()
        {
            int    err         = 0;
            byte   DisplayMode = 2;
            byte   Speed       = 1;
            ushort StayTime    = 100;
            byte   RepeatTime  = 0;

            bxdualsdk.E_arrMode arrMode = 0;
            ushort fontSize             = 10;
            uint   color      = 1;
            byte   fontBold   = 0;
            byte   fontItalic = 0;

            bxdualsdk.E_txtDirection tdirection = 0;
            ushort txtSpace = 0;
            byte   Valign   = 1;
            byte   Halign   = 1;

            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.EQSound_6G();
            stSoundData.SoundFlag            = 0;
            stSoundData.SoundPerson          = 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;

            bxdualsdk.BxAreaFrmae_Dynamic_G6 Frame;
            bxdualsdk.EQscreenframeHeader_G6 oFrame;                              //暂时不支持
            Frame.AreaFFlag           = 0;
            oFrame.FrameDispStype     = 0x03;                                     //边框显示方式0x00 –闪烁 0x01 –顺时针转动 0x02 –逆时针转动 0x03 –闪烁加顺时针转动 0x04 –闪烁加逆时针转动 0x05 –红绿交替闪烁 0x06 –红绿交替转动 0x07 –静止打出
            oFrame.FrameDispSpeed     = 0x10;                                     //边框显示速度
            oFrame.FrameMoveStep      = 0x01;                                     //边框移动步长,单位为点,此参 数范围为 1~16
            oFrame.FrameUnitLength    = 2;                                        //边框组元长度
            oFrame.FrameUnitWidth     = 2;                                        //边框组元宽度
            oFrame.FrameDirectDispBit = 0;                                        //上下左右边框显示标志位,目前只支持6QX-M卡
            Frame.oAreaFrame          = oFrame;
            Frame.pStrFramePathFile   = Encoding.Default.GetBytes("F:\\黄10.png"); //Class1.BytesToIntptr(Encoding.Default.GetBytes("F:\\黄10.png"));

            bxdualsdk.DynamicAreaBaseInfo_5G pheader = new bxdualsdk.DynamicAreaBaseInfo_5G();
            pheader.nType            = 0x01;
            pheader.DisplayMode      = DisplayMode;
            pheader.ClearMode        = 0x01;
            pheader.Speed            = Speed;
            pheader.StayTime         = StayTime;
            pheader.RepeatTime       = RepeatTime;
            pheader.oFont.arrMode    = arrMode;
            pheader.oFont.fontSize   = fontSize;
            pheader.oFont.color      = color;
            pheader.oFont.fontBold   = fontBold;
            pheader.oFont.fontItalic = fontItalic;
            pheader.oFont.tdirection = tdirection;
            pheader.oFont.txtSpace   = txtSpace;
            pheader.oFont.Valign     = Valign;
            pheader.oFont.Halign     = Halign;
            byte[] Font = Encoding.GetEncoding("GBK").GetBytes("宋体");
            pheader.fontName = Marshal.AllocHGlobal(Font.Length);
            Marshal.Copy(Font, 0, pheader.fontName, Font.Length);
            byte[] str = Encoding.GetEncoding("GBK").GetBytes("111111\0");
            pheader.strAreaTxtContent = Marshal.AllocHGlobal(str.Length);
            Marshal.Copy(str, 0, pheader.strAreaTxtContent, str.Length);
            byte[] img = Encoding.GetEncoding("GBK").GetBytes("123.png\0");
            pheader.filePath = Marshal.AllocHGlobal(img.Length);
            Marshal.Copy(img, 0, pheader.filePath, img.Length);
            bxdualsdk.DynamicAreaBaseInfo_5G pheader1 = new bxdualsdk.DynamicAreaBaseInfo_5G();
            pheader1.nType            = 0x02;
            pheader1.DisplayMode      = DisplayMode;
            pheader1.ClearMode        = 0x01;
            pheader1.Speed            = Speed;
            pheader1.StayTime         = StayTime;
            pheader1.RepeatTime       = RepeatTime;
            pheader1.oFont.arrMode    = arrMode;
            pheader1.oFont.fontSize   = fontSize;
            pheader1.oFont.color      = color;
            pheader1.oFont.fontBold   = fontBold;
            pheader1.oFont.fontItalic = fontItalic;
            pheader1.oFont.tdirection = tdirection;
            pheader1.oFont.txtSpace   = txtSpace;
            pheader1.oFont.Valign     = Valign;
            pheader1.oFont.Halign     = Halign;
            pheader.fontName          = Marshal.AllocHGlobal(Font.Length);
            Marshal.Copy(Font, 0, pheader.fontName, Font.Length);
            byte[] str1 = Encoding.GetEncoding("GBK").GetBytes("111111\0");
            pheader.strAreaTxtContent = Marshal.AllocHGlobal(str1.Length);
            Marshal.Copy(str1, 0, pheader.strAreaTxtContent, str1.Length);
            byte[] img1 = Encoding.GetEncoding("GBK").GetBytes("123.png\0");
            pheader.filePath = Marshal.AllocHGlobal(img1.Length);
            Marshal.Copy(img1, 0, pheader.filePath, img1.Length);
            bxdualsdk.DynamicAreaBaseInfo_5G[] Params = new bxdualsdk.DynamicAreaBaseInfo_5G[2];
            Params[0] = pheader;
            Params[1] = pheader1;
            //网口
            if (true)
            {
                err = bxdualsdk.bxDual_dynamicArea_AddAreaInfos_6G_V2(Program.ip, Program.port, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_THREE, AreaId, RunMode, Timeout, RelateAllPro,
                                                                      RelateProNum, RelateProSerial, ImmePlay, AreaX, AreaY, Width, Height, Frame, 1, Params, ref stSoundData);//(byte)Params.Length
            }
            //串口
            if (false)
            {
                bxdualsdk.EQareaframeHeader Frame1 = new bxdualsdk.EQareaframeHeader();
                Frame1.AreaFFlag      = 0;
                Frame1.AreaFDispStyle = 0x03;
                Frame1.AreaFDispSpeed = 0x10;
                Frame1.AreaFMoveStep  = 0x01;
                Frame1.AreaFWidth     = 2;
                Frame1.AreaFBackup    = 0;
                err = bxdualsdk.bxDual_dynamicArea_AddAreaInfos_6G_V2_Serial(Program.com, Program.baudRate, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, AreaId, RunMode, Timeout, RelateAllPro,
                                                                             RelateProNum, RelateProSerial, ImmePlay, AreaX, AreaY, Width, Height, Frame1, (byte)Params.Length, Params);
            }
            Console.WriteLine("bxDual_dynamicArea_AddAreaInfos_6G_V2 = " + err);
        }
Example #4
0
        /// <summary>
        /// 一次向一个动态区发送/更新多条信息(文字或图片)及语音
        /// 该接口有问题,不建议使用
        /// </summary>
        public static void dynamicArea_pages()
        {
            int    err              = 0;
            byte   DisplayMode      = 2;
            byte   Speed            = 1;
            ushort StayTime         = 100;
            byte   RepeatTime       = 0;
            ushort ValidLen         = 0;
            byte   CartoonFrameRate = 0;

            bxdualsdk.E_arrMode arrMode = 0;
            ushort fontSize             = 10;
            uint   color      = 1;
            byte   fontBold   = 0;
            byte   fontItalic = 0;

            bxdualsdk.E_txtDirection tdirection = 0;
            ushort txtSpace = 0;
            byte   Valign   = 2;
            byte   Halign   = 2;

            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.EQSound_6G();
            stSoundData.SoundFlag            = 0;
            stSoundData.SoundPerson          = 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;

            bxdualsdk.EQareaframeHeader Frame = new bxdualsdk.EQareaframeHeader();
            Frame.AreaFFlag      = 0;
            Frame.AreaFDispStyle = 0x03;
            Frame.AreaFDispSpeed = 0x10;
            Frame.AreaFMoveStep  = 0x01;
            Frame.AreaFWidth     = 2;
            Frame.AreaFBackup    = 0;
            //Frame.pStrFramePathFile = Encoding.Default.GetBytes("F:\\黄10.png");// Class1.BytesToIntptr(Encoding.Default.GetBytes("F:\\黄10.png"));

            bxdualsdk.DynamicAreaBaseInfo_5G pheader = new bxdualsdk.DynamicAreaBaseInfo_5G();
            pheader.nType            = 0x01;
            pheader.DisplayMode      = DisplayMode;
            pheader.ClearMode        = 0x01;
            pheader.Speed            = Speed;
            pheader.StayTime         = StayTime;
            pheader.RepeatTime       = RepeatTime;
            pheader.oFont.arrMode    = arrMode;
            pheader.oFont.fontSize   = fontSize;
            pheader.oFont.color      = color;
            pheader.oFont.fontBold   = fontBold;
            pheader.oFont.fontItalic = fontItalic;
            pheader.oFont.tdirection = tdirection;
            pheader.oFont.txtSpace   = txtSpace;
            pheader.oFont.Valign     = Valign;
            pheader.oFont.Halign     = Halign;
            byte[] Font = Encoding.GetEncoding("GBK").GetBytes("宋体");
            pheader.fontName = Marshal.AllocHGlobal(Font.Length);
            Marshal.Copy(Font, 0, pheader.fontName, Font.Length);
            byte[] str = Encoding.GetEncoding("GBK").GetBytes("111111\0");
            pheader.strAreaTxtContent = Marshal.AllocHGlobal(str.Length);
            Marshal.Copy(str, 0, pheader.strAreaTxtContent, str.Length);
            byte[] img = Encoding.GetEncoding("GBK").GetBytes("123.png\0");
            pheader.filePath = Marshal.AllocHGlobal(img.Length);
            Marshal.Copy(img, 0, pheader.filePath, img.Length);
            bxdualsdk.DynamicAreaBaseInfo_5G[] Params = new bxdualsdk.DynamicAreaBaseInfo_5G[1];
            Params[0] = pheader;
            //网口
            if (true)
            {
                //动态区优先播放,节目停止播放
                err = bxdualsdk.bxDual_dynamicArea_AddAreaInfos_6G(Program.ip, Program.port, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, AreaId, RunMode, Timeout, RelateAllPro,
                                                                   RelateProNum, RelateProSerial, ImmePlay, AreaX, AreaY, Width, Height, Frame, (byte)Params.Length, ref Params);
            }
            //串口
            if (false)
            {
                //动态区优先播放,节目停止播放
                err = bxdualsdk.bxDual_dynamicArea_AddAreaInfos_G6_Serial(Program.com, Program.baudRate, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, AreaId, RunMode, Timeout, RelateAllPro,
                                                                          RelateProNum, RelateProSerial, ImmePlay, AreaX, AreaY, Width, Height, Frame, (byte)Params.Length, ref Params);
            }
            Console.WriteLine("bxDual_dynamicArea_AddAreaInfos_6G_V2 = " + err);
        }
Example #5
0
        /// <summary>
        /// 同时更新多个动态区图片
        /// </summary>
        public static void dynamicArea_png_2()
        {
            bxdualsdk.EQareaHeader_G6 aheader;
            aheader.AreaType       = 0x10;
            aheader.AreaX          = 0;
            aheader.AreaY          = 0;
            aheader.AreaWidth      = 64;
            aheader.AreaHeight     = 16;
            aheader.BackGroundFlag = 0x00;
            aheader.Transparency   = 101;
            aheader.AreaEqual      = 0x00;
            bxdualsdk.EQareaHeader_G6 aheader1;
            aheader1.AreaType       = 0x10;
            aheader1.AreaX          = 0;
            aheader1.AreaY          = 16;
            aheader1.AreaWidth      = 64;
            aheader1.AreaHeight     = 16;
            aheader1.BackGroundFlag = 0x00;
            aheader1.Transparency   = 101;
            aheader1.AreaEqual      = 0x00;
            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.EQSound_6G();
            byte[] strSoundTxt = Encoding.GetEncoding("GB2312").GetBytes("插入ab34测试语音");
            stSoundData.SoundFlag            = 0x00;
            stSoundData.SoundPerson          = 0x01;
            stSoundData.SoundVolum           = 6;
            stSoundData.SoundSpeed           = 0x2;
            stSoundData.SoundDataMode        = 0x00;
            stSoundData.SoundReplayTimes     = 0x01;
            stSoundData.SoundReplayDelay     = 200;
            stSoundData.SoundReservedParaLen = 0x03;
            stSoundData.Soundnumdeal         = 0x00;
            stSoundData.Soundlanguages       = 0x00;
            stSoundData.Soundwordstyle       = 0x00;
            stSoundData.SoundDataLen         = strSoundTxt.Length;
            stSoundData.SoundData            = Class1.BytesToIntptr(strSoundTxt);

            aheader.stSoundData  = stSoundData;
            aheader1.stSoundData = stSoundData;

            bxdualsdk.EQpageHeader_G6 pheader;
            pheader.PageStyle        = 0x00;
            pheader.DisplayMode      = 4;
            pheader.ClearMode        = 0x00;
            pheader.Speed            = 5;
            pheader.StayTime         = 100;
            pheader.RepeatTime       = 1;
            pheader.ValidLen         = 0;
            pheader.CartoonFrameRate = 0x00;
            pheader.BackNotValidFlag = 0x00;
            pheader.arrMode          = bxdualsdk.E_arrMode.eMULTILINE;
            pheader.fontSize         = 14;
            pheader.color            = (uint)0x01;
            pheader.fontBold         = 0;
            pheader.fontItalic       = 0;
            pheader.tdirection       = bxdualsdk.E_txtDirection.pNORMAL;
            pheader.txtSpace         = 0;
            pheader.Valign           = 1;
            pheader.Halign           = 1;
            bxdualsdk.EQpageHeader_G6 pheader1;
            pheader1.PageStyle        = 0x00;
            pheader1.DisplayMode      = 0x03;
            pheader1.ClearMode        = 0x01;
            pheader1.Speed            = 15;
            pheader1.StayTime         = 500;
            pheader1.RepeatTime       = 1;
            pheader1.ValidLen         = 0;
            pheader1.CartoonFrameRate = 0x00;
            pheader1.BackNotValidFlag = 0x00;
            pheader1.arrMode          = bxdualsdk.E_arrMode.eSINGLELINE;
            pheader1.fontSize         = 18;
            pheader1.color            = (uint)0x01;
            pheader1.fontBold         = 0;
            pheader1.fontItalic       = 0;
            pheader1.tdirection       = bxdualsdk.E_txtDirection.pNORMAL;
            pheader1.txtSpace         = 0;
            pheader1.Valign           = 1;
            pheader1.Halign           = 0;
            bxdualsdk.DynamicAreaParams[] Params = new bxdualsdk.DynamicAreaParams[2];
            Params[0].uAreaId        = 0;
            Params[0].oAreaHeader_G6 = aheader;
            Params[0].stPageHeader   = pheader;
            byte[] Font = Encoding.GetEncoding("GBK").GetBytes("宋体");
            Params[0].fontName = Marshal.AllocHGlobal(Font.Length);
            Marshal.Copy(Font, 0, Params[0].fontName, Font.Length);
            byte[] img = Encoding.GetEncoding("GBK").GetBytes("123.png\0");
            Params[0].strAreaTxtContent = Marshal.AllocHGlobal(img.Length);
            Marshal.Copy(img, 0, Params[0].strAreaTxtContent, img.Length);
            Params[1].uAreaId        = 1;
            Params[1].oAreaHeader_G6 = aheader1;
            Params[1].stPageHeader   = pheader1;
            Params[1].fontName       = Marshal.AllocHGlobal(Font.Length);
            Marshal.Copy(Font, 0, Params[1].fontName, Font.Length);
            byte[] img1 = Encoding.GetEncoding("GBK").GetBytes("1.png\0");
            Params[1].strAreaTxtContent = Marshal.AllocHGlobal(img1.Length);
            Marshal.Copy(img1, 0, Params[1].strAreaTxtContent, img1.Length);
            //网口
            if (true)
            {
                //动态区优先播放,节目停止播放
                err = bxdualsdk.bxDual_dynamicAreaS_AddAreaPic_6G(Program.ip, Program.port, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, (byte)Params.Length, Params);
                //是否关联节目
                //err = bxdualsdk.bxDual_dynamicAreaS_AddAreaPic_WithProgram_6G(Program.ip, Program.port, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE,
                //(byte)Params.Length, Params, RelateProNum, RelateProSerial);
            }
            //串口
            if (false)
            {
                //动态区优先播放,节目停止播放
                err = bxdualsdk.bxDual_dynamicAreaS_AddAreaPic_6G_Serial(Program.com, Program.baudRate, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, (byte)Params.Length, Params);
                //是否关联节目
                //err = bxdualsdk.bxDual_dynamicAreaS_AddAreaPic_WithProgram_6G_Serial(Program.com, Program.baudRate, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE,
                //(byte)Params.Length, Params, RelateProNum, RelateProSerial);
            }
            Console.WriteLine("bxDual_dynamicArea_AddAreaTxtDetails_6G:" + err);
        }
Example #6
0
        /// <summary>
        /// 单区域多文本,能设置特效,可选择是否和节目内容一起播放【一起播放时动态区和节目区域不能有重叠】
        /// </summary>
        public static void dynamicArea_str_4()
        {
            bxdualsdk.EQareaHeader_G6 aheader;
            aheader.AreaType       = 0x10;
            aheader.AreaX          = AreaX;
            aheader.AreaY          = AreaY;
            aheader.AreaWidth      = Width;
            aheader.AreaHeight     = Height;
            aheader.BackGroundFlag = 0x00;
            aheader.Transparency   = 101;
            aheader.AreaEqual      = 0x00;
            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.EQSound_6G();
            byte[] strSoundTxt = Encoding.GetEncoding("GB2312").GetBytes("插入ab34测试语音");
            stSoundData.SoundFlag            = 0x00;
            stSoundData.SoundPerson          = 0x01;
            stSoundData.SoundVolum           = 6;
            stSoundData.SoundSpeed           = 0x2;
            stSoundData.SoundDataMode        = 0x00;
            stSoundData.SoundReplayTimes     = 0x01;
            stSoundData.SoundReplayDelay     = 200;
            stSoundData.SoundReservedParaLen = 0x03;
            stSoundData.Soundnumdeal         = 0x00;
            stSoundData.Soundlanguages       = 0x00;
            stSoundData.Soundwordstyle       = 0x00;
            stSoundData.SoundDataLen         = strSoundTxt.Length;
            stSoundData.SoundData            = Class1.BytesToIntptr(strSoundTxt);
            aheader.stSoundData = stSoundData;

            bxdualsdk.EQpageHeader_G6 pheader;
            pheader.PageStyle        = 0x00;
            pheader.DisplayMode      = 4;
            pheader.ClearMode        = 0x00;
            pheader.Speed            = 15;
            pheader.StayTime         = 0;
            pheader.RepeatTime       = 1;
            pheader.ValidLen         = 0;
            pheader.CartoonFrameRate = 0x00;
            pheader.BackNotValidFlag = 0x00;
            pheader.arrMode          = bxdualsdk.E_arrMode.eSINGLELINE;
            pheader.fontSize         = 12;
            pheader.color            = (uint)0x01;
            pheader.fontBold         = 0;
            pheader.fontItalic       = 0;
            pheader.tdirection       = bxdualsdk.E_txtDirection.pNORMAL;
            pheader.txtSpace         = 0;
            pheader.Valign           = 1;
            pheader.Halign           = 1;
            byte[] Font = Encoding.GetEncoding("GBK").GetBytes("宋体");
            fontName = Marshal.AllocHGlobal(Font.Length);
            Marshal.Copy(Font, 0, fontName, Font.Length);
            byte[] str = Encoding.GetEncoding("GBK").GetBytes("111111\0");
            strAreaTxtContent = Marshal.AllocHGlobal(str.Length);
            Marshal.Copy(str, 0, strAreaTxtContent, str.Length);
            //网口
            if (true)
            {
                //动态区优先播放,节目停止播放
                err = bxdualsdk.bxDual_dynamicArea_AddAreaTxtDetails_6G(Program.ip, Program.port, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, AreaId,
                                                                        ref aheader, ref pheader, fontName, strAreaTxtContent);
                //是否关联节目
                //err = bxdualsdk.bxDual_dynamicArea_AddAreaTxtDetails_WithProgram_6G(Program.ip, Program.port, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, AreaId,
                //ref aheader, ref pheader, fontName, strAreaTxtContent, RelateProNum, RelateProSerial);
            }
            //串口
            if (false)
            {
                //动态区优先播放,节目停止播放
                err = bxdualsdk.bxDual_dynamicArea_AddAreaTxtDetails_6G_Serial(Program.com, Program.baudRate, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, AreaId,
                                                                               ref aheader, ref pheader, fontName, strAreaTxtContent);
                //是否关联节目
                //err = bxdualsdk.bxDual_dynamicArea_AddAreaTxtDetails_WithProgram_6G_Serial(Program.com, Program.baudRate, bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_DOUBLE, AreaId,
                //ref aheader, ref pheader, fontName, strAreaTxtContent, RelateProNum, RelateProSerial);
            }
            Console.WriteLine("bxDual_dynamicArea_AddAreaTxtDetails_6G:" + err);
        }
Example #7
0
        /// <summary>
        /// BX-6代控制卡发送节目多区域
        /// </summary>
        public static void Send_program_areas_6()
        {
            //指定IP ping控制卡获取控制卡数据,屏参相关参数已知的情况可省略该步骤
            bxdualsdk.Ping_data data = new bxdualsdk.Ping_data();
            int err = bxdualsdk.bxDual_cmd_tcpPing(Program.ip, Program.port, ref data);

            //显示屏屏基色
            byte cmb_ping_Color = 1;

            if (data.Color == 1)
            {
                cmb_ping_Color = 1;
            }
            else if (data.Color == 3)
            {
                cmb_ping_Color = 2;
            }
            else if (data.Color == 7)
            {
                cmb_ping_Color = 3;
            }
            else
            {
                cmb_ping_Color = 4;
            }

            //设置屏幕参数相关  发送节目必要接口,发送动态区可忽略
            err = bxdualsdk.bxDual_program_setScreenParams_G56((bxdualsdk.E_ScreenColor_G56)cmb_ping_Color, data.ControllerType, bxdualsdk.E_DoubleColorPixel_G56.eDOUBLE_COLOR_PIXTYPE_1);
            Console.WriteLine("bxDual_program_setScreenParams_G56:" + err);

            //创建节目,设置节目属性
            bxdualsdk.EQprogramHeader_G6 header;
            header.FileType             = 0x00;
            header.ProgramID            = 0;
            header.ProgramStyle         = 0x00;
            header.ProgramPriority      = 0x00;
            header.ProgramPlayTimes     = 1;
            header.ProgramTimeSpan      = 0;
            header.SpecialFlag          = 0;
            header.CommExtendParaLen    = 0x00;
            header.ScheduNum            = 0;
            header.LoopValue            = 0;
            header.Intergrate           = 0x00;
            header.TimeAttributeNum     = 0x00;
            header.TimeAttribute0Offset = 0x0000;
            header.ProgramWeek          = 0xff;
            header.ProgramLifeSpan_sy   = 0xffff;
            header.ProgramLifeSpan_sm   = 0x03;
            header.ProgramLifeSpan_sd   = 0x14;
            header.ProgramLifeSpan_ey   = 0xffff;
            header.ProgramLifeSpan_em   = 0x03;
            header.ProgramLifeSpan_ed   = 0x14;
            header.PlayPeriodGrpNum     = 0;
            err = bxdualsdk.bxDual_program_addProgram_G6(ref header);
            Console.WriteLine("bxDual_program_addProgram_G6:" + err);

            //创建显示分区,设置区域显示位置,示例创建一个区域编号为0,区域大小64*32的图文分区
            bxdualsdk.EQareaHeader_G6 aheader;
            aheader.AreaType       = 0;
            aheader.AreaX          = 0;
            aheader.AreaY          = 0;
            aheader.AreaWidth      = 64;
            aheader.AreaHeight     = 16;
            aheader.BackGroundFlag = 0x00;
            aheader.Transparency   = 101;
            aheader.AreaEqual      = 0x00;
            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.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 = IntPtr.Zero;
            aheader.stSoundData   = stSoundData;
            err = bxdualsdk.bxDual_program_addArea_G6(0, ref aheader);  //添加图文区域
            Console.WriteLine("bxDual_program_addArea_G6:" + err);

            //添加显示内容,此处为图文分区0添加字符串
            byte[] str  = Encoding.GetEncoding("GBK").GetBytes("显示数据");
            byte[] font = Encoding.GetEncoding("GBK").GetBytes("宋体");
            bxdualsdk.EQpageHeader_G6 pheader;
            pheader.PageStyle        = 0x00;
            pheader.DisplayMode      = 0x04; //移动模式
            pheader.ClearMode        = 0x01;
            pheader.Speed            = 15;   //速度
            pheader.StayTime         = 0;    //停留时间
            pheader.RepeatTime       = 1;
            pheader.ValidLen         = 10;
            pheader.CartoonFrameRate = 0x00;
            pheader.BackNotValidFlag = 0x00;
            pheader.arrMode          = bxdualsdk.E_arrMode.eSINGLELINE;
            pheader.fontSize         = 10;
            pheader.color            = (uint)0x01;
            pheader.fontBold         = 0;
            pheader.fontItalic       = 0;
            pheader.tdirection       = bxdualsdk.E_txtDirection.pNORMAL;
            pheader.txtSpace         = 0;
            pheader.Valign           = 1;
            pheader.Halign           = 0;
            err = bxdualsdk.bxDual_program_picturesAreaAddTxt_G6(0, str, font, ref pheader);
            Console.WriteLine("bxDual_program_picturesAreaAddTxt_G6:" + err);

            //创建显示分区,设置区域显示位置,示例创建一个区域编号为1,区域大小64 * 32的时间分区,Y轴64,区域之间不可重叠
            bxdualsdk.EQareaHeader_G6 aheader1;
            aheader1.AreaType       = 2;
            aheader1.AreaX          = 0;
            aheader1.AreaY          = 16;
            aheader1.AreaWidth      = 64;
            aheader1.AreaHeight     = 16;
            aheader1.BackGroundFlag = 0x00;
            aheader1.Transparency   = 101;
            aheader1.AreaEqual      = 0x00;
            aheader1.stSoundData    = stSoundData;
            err = bxdualsdk.bxDual_program_addArea_G6(1, ref aheader1);
            Console.WriteLine("bxDual_program_addArea_G6:" + err);

            //添加时间区域显示内容
            bxdualsdk.EQtimeAreaData_G56 timeData2;
            timeData2.linestyle     = bxdualsdk.E_arrMode.eMULTILINE;
            timeData2.color         = (uint)bxdualsdk.E_Color_G56.eRED;
            timeData2.fontName      = "simsun";
            timeData2.fontSize      = 10;
            timeData2.fontBold      = 0;
            timeData2.fontItalic    = 0;
            timeData2.fontUnderline = 0;
            timeData2.fontAlign     = 1; //0--左对齐,1-居中,2-右对齐
            timeData2.date_enable   = 0;
            timeData2.datestyle     = bxdualsdk.E_DateStyle.eYYYY_MM_DD_MINUS;
            timeData2.time_enable   = 1;
            timeData2.timestyle     = bxdualsdk.E_TimeStyle.eHH_MM_COLON;
            timeData2.week_enable   = 0;
            timeData2.weekstyle     = bxdualsdk.E_WeekStyle.eMonday;
            err = bxdualsdk.bxDual_program_timeAreaAddContent_G6(1, ref timeData2);
            Console.WriteLine("bxDual_program_timeAreaAddContent_G6:" + err);

            //发送节目到显示屏
            bxdualsdk.EQprogram_G6 program = new bxdualsdk.EQprogram_G6();
            err = bxdualsdk.bxDual_program_IntegrateProgramFile_G6(ref program);
            Console.WriteLine("bxDual_program_IntegrateProgramFile_G6:" + err);
            err = bxdualsdk.bxDual_program_deleteProgram_G6();
            Console.WriteLine("bxDual_program_deleteProgram_G6:" + err);

            if (true)//网口
            {
                err = bxdualsdk.bxDual_cmd_ofsStartFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsEndFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsEndFileTransf:" + err);
            }
            else//串口
            {
                err = bxdualsdk.bxDual_cmd_uart_ofsStartFileTransf(Program.com, Program.baudRate);
                Console.WriteLine("bxDual_cmd_uart_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsEndFileTransf(Program.com, Program.baudRate);
            }

            err = bxdualsdk.bxDual_program_freeBuffer_G6(ref program);
            Console.WriteLine("bxDual_program_freeBuffer_G6:" + err);
        }
Example #8
0
        /// <summary>
        /// BX-6代控制卡发送节目图片
        /// </summary>
        public static void Send_program_png_6()
        {
            //指定IP ping控制卡获取控制卡数据,屏参相关参数已知的情况可省略该步骤
            bxdualsdk.Ping_data data = new bxdualsdk.Ping_data();
            int err = bxdualsdk.bxDual_cmd_tcpPing(Program.ip, Program.port, ref data);

            //显示屏屏基色
            byte cmb_ping_Color = 1;

            if (data.Color == 1)
            {
                cmb_ping_Color = 1;
            }
            else if (data.Color == 3)
            {
                cmb_ping_Color = 2;
            }
            else if (data.Color == 7)
            {
                cmb_ping_Color = 3;
            }
            else
            {
                cmb_ping_Color = 4;
            }

            //第一步.设置屏幕参数相关  发送节目必要接口,发送动态区可忽略
            err = bxdualsdk.bxDual_program_setScreenParams_G56((bxdualsdk.E_ScreenColor_G56)cmb_ping_Color, data.ControllerType, bxdualsdk.E_DoubleColorPixel_G56.eDOUBLE_COLOR_PIXTYPE_1);
            Console.WriteLine("bxDual_program_setScreenParams_G56:" + err);

            //第二步,创建节目,设置节目属性
            bxdualsdk.EQprogramHeader_G6 header;
            header.FileType             = 0x00;
            header.ProgramID            = 0;
            header.ProgramStyle         = 0x00;
            header.ProgramPriority      = 0x00;
            header.ProgramPlayTimes     = 1;
            header.ProgramTimeSpan      = 0;
            header.SpecialFlag          = 0;
            header.CommExtendParaLen    = 0x00;
            header.ScheduNum            = 0;
            header.LoopValue            = 0;
            header.Intergrate           = 0x00;
            header.TimeAttributeNum     = 0x00;
            header.TimeAttribute0Offset = 0x0000;
            header.ProgramWeek          = 0xff;
            header.ProgramLifeSpan_sy   = 0xffff;
            header.ProgramLifeSpan_sm   = 0x03;
            header.ProgramLifeSpan_sd   = 0x14;
            header.ProgramLifeSpan_ey   = 0xffff;
            header.ProgramLifeSpan_em   = 0x03;
            header.ProgramLifeSpan_ed   = 0x14;
            header.PlayPeriodGrpNum     = 0;
            err = bxdualsdk.bxDual_program_addProgram_G6(ref header);
            Console.WriteLine("bxDual_program_addProgram_G6:" + err);

            //第三步,创建显示分区,设置区域显示位置,示例创建一个区域编号为0,区域大小64*32的图文分区
            bxdualsdk.EQareaHeader_G6 aheader;
            aheader.AreaType       = 0;
            aheader.AreaX          = 0;
            aheader.AreaY          = 0;
            aheader.AreaWidth      = data.ScreenWidth;
            aheader.AreaHeight     = data.ScreenHeight;
            aheader.BackGroundFlag = 0x00;
            aheader.Transparency   = 101;
            aheader.AreaEqual      = 0x00;
            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.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 = IntPtr.Zero;
            aheader.stSoundData   = stSoundData;
            err = bxdualsdk.bxDual_program_addArea_G6(0, ref aheader);
            Console.WriteLine("bxDual_program_addArea_G6:" + err);

            //第四步,添加显示内容,此处为图文分区0添加图片,该步骤可多次调用,添加多张图片,每张图片用不同的编号
            byte[] img = Encoding.GetEncoding("GBK").GetBytes("Led3.png");
            bxdualsdk.EQpageHeader_G6 pheader;
            pheader.PageStyle        = 0x00;
            pheader.DisplayMode      = 0x01; //移动模式
            pheader.ClearMode        = 0x01;
            pheader.Speed            = 15;   //速度
            pheader.StayTime         = 0;    //停留时间
            pheader.RepeatTime       = 1;
            pheader.ValidLen         = 0;
            pheader.CartoonFrameRate = 0x00;
            pheader.BackNotValidFlag = 0x00;
            pheader.arrMode          = bxdualsdk.E_arrMode.eSINGLELINE;
            pheader.fontSize         = 10;
            pheader.color            = (uint)0x01;
            pheader.fontBold         = 0;
            pheader.fontItalic       = 0;
            pheader.tdirection       = bxdualsdk.E_txtDirection.pNORMAL;
            pheader.txtSpace         = 0;
            pheader.Valign           = 1;
            pheader.Halign           = 0;
            err = bxdualsdk.bxDual_program_pictureAreaAddPic_G6(0, 0, ref pheader, img);
            Console.WriteLine("bxDual_program_pictureAreaAddPic_G6:" + err);

            //第五步,发送节目到显示屏
            bxdualsdk.EQprogram_G6 program = new bxdualsdk.EQprogram_G6();
            err = bxdualsdk.bxDual_program_IntegrateProgramFile_G6(ref program);
            Console.WriteLine("bxDual_program_IntegrateProgramFile_G6:" + err);
            err = bxdualsdk.bxDual_program_deleteProgram_G6();
            Console.WriteLine("bxDual_program_deleteProgram_G6:" + err);

            if (true)//网口
            {
                err = bxdualsdk.bxDual_cmd_ofsStartFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsEndFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsEndFileTransf:" + err);
            }
            else//串口
            {
                err = bxdualsdk.bxDual_cmd_uart_ofsStartFileTransf(Program.com, Program.baudRate);
                Console.WriteLine("bxDual_cmd_uart_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsEndFileTransf(Program.com, Program.baudRate);
            }

            err = bxdualsdk.bxDual_program_freeBuffer_G6(ref program);
            Console.WriteLine("bxDual_program_freeBuffer_G6:" + err);
        }
Example #9
0
        /// <summary>
        /// BX-6代控制卡发送节目文本
        /// </summary>
        public static void Send_program_txt_6()
        {
            //指定IP ping控制卡获取控制卡数据,屏参相关参数已知的情况可省略该步骤
            bxdualsdk.Ping_data data = new bxdualsdk.Ping_data();
            int err = 0;

            if (true)
            {
                err = bxdualsdk.bxDual_cmd_tcpPing(Program.ip, Program.port, ref data);
            }
            else
            {
                err = bxdualsdk.bxDual_cmd_uart_searchController(ref data, Program.com);
            }
            Console.WriteLine("ControllerType:0x" + data.ControllerType.ToString("X2"));
            Console.WriteLine("FirmwareVersion:V" + System.Text.Encoding.Default.GetString(data.FirmwareVersion));
            Console.WriteLine("ipAdder:" + System.Text.Encoding.Default.GetString(data.ipAdder));
            Console.WriteLine("ScreenWidth:" + data.ScreenWidth.ToString());
            Console.WriteLine("ScreenHeight:" + data.ScreenHeight.ToString());
            Console.WriteLine("cmb_ping_Color:" + data.Color.ToString());
            Console.WriteLine("\r\n");

            //显示屏屏基色
            byte cmb_ping_Color = 1;

            if (data.Color == 1)
            {
                cmb_ping_Color = 1;
            }
            else if (data.Color == 3)
            {
                cmb_ping_Color = 2;
            }
            else if (data.Color == 7)
            {
                cmb_ping_Color = 3;
            }
            else
            {
                cmb_ping_Color = 4;
            }

            //第一步.设置屏幕参数相关  发送节目必要接口,发送动态区可忽略
            err = bxdualsdk.bxDual_program_setScreenParams_G56((bxdualsdk.E_ScreenColor_G56)cmb_ping_Color, data.ControllerType, bxdualsdk.E_DoubleColorPixel_G56.eDOUBLE_COLOR_PIXTYPE_1);
            Console.WriteLine("bxDual_program_setScreenParams_G56:" + err);

            //第二步,创建节目,设置节目属性
            bxdualsdk.EQprogramHeader_G6 header;
            header.FileType             = 0x00;
            header.ProgramID            = 0;
            header.ProgramStyle         = 0x00;
            header.ProgramPriority      = 0x00;
            header.ProgramPlayTimes     = 1;
            header.ProgramTimeSpan      = 0;
            header.SpecialFlag          = 0;
            header.CommExtendParaLen    = 0x00;
            header.ScheduNum            = 0;
            header.LoopValue            = 0;
            header.Intergrate           = 0x00;
            header.TimeAttributeNum     = 0x00;
            header.TimeAttribute0Offset = 0x0000;
            header.ProgramWeek          = 0xff;
            header.ProgramLifeSpan_sy   = 0xffff;
            header.ProgramLifeSpan_sm   = 0x03;
            header.ProgramLifeSpan_sd   = 0x14;
            header.ProgramLifeSpan_ey   = 0xffff;
            header.ProgramLifeSpan_em   = 0x03;
            header.ProgramLifeSpan_ed   = 0x14;
            header.PlayPeriodGrpNum     = 0;
            err = bxdualsdk.bxDual_program_addProgram_G6(ref header);
            Console.WriteLine("bxDual_program_addProgram_G6:" + err);
            //节目添加播放时段,目前仅支持一组时间,多组不支持
            if (false)
            {
                bxdualsdk.EQprogrampTime_G56 Time;
                Time.StartHour   = 0x17;
                Time.StartMinute = 0x29;
                Time.StartSecond = 0x00;
                Time.EndHour     = 0x17;
                Time.EndMinute   = 0x30;
                Time.EndSecond   = 0x00;

                bxdualsdk.EQprogramppGrp_G56 headerGrp;
                headerGrp.playTimeGrpNum = 1;
                headerGrp.timeGrp0       = Time;
                headerGrp.timeGrp1       = Time;
                headerGrp.timeGrp2       = Time;
                headerGrp.timeGrp3       = Time;
                headerGrp.timeGrp4       = Time;
                headerGrp.timeGrp5       = Time;
                headerGrp.timeGrp6       = Time;
                headerGrp.timeGrp7       = Time;
                err = bxdualsdk.bxDual_program_addPlayPeriodGrp_G6(ref headerGrp);
                Console.WriteLine("program_addPlayPeriodGrp:" + err);
            }
            //节目添加边框
            if (false)
            {
                bxdualsdk.EQscreenframeHeader_G6 sfheader;
                sfheader.FrameDispStype     = 0x01; //边框显示方式
                sfheader.FrameDispSpeed     = 0x10; //边框显示速度
                sfheader.FrameMoveStep      = 0x01; //边框移动步长
                sfheader.FrameUnitLength    = 2;    //边框组元长度
                sfheader.FrameUnitWidth     = 2;    //边框组元宽度
                sfheader.FrameDirectDispBit = 0;    //上下左右边框显示标志位,目前只支持6QX-M卡
                byte[] img = Encoding.Default.GetBytes("F:\\黄10.png");
                bxdualsdk.bxDual_program_addFrame_G6(ref sfheader, img);
            }

            //第三步,创建显示分区,设置区域显示位置,示例创建一个区域编号为0,区域大小64*32的图文分区
            bxdualsdk.EQareaHeader_G6 aheader;
            aheader.AreaType       = 0;
            aheader.AreaX          = 0;
            aheader.AreaY          = 0;
            aheader.AreaWidth      = data.ScreenWidth;
            aheader.AreaHeight     = data.ScreenHeight;
            aheader.BackGroundFlag = 0x00;
            aheader.Transparency   = 101;
            aheader.AreaEqual      = 0x00;
            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.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 = IntPtr.Zero;
            aheader.stSoundData   = stSoundData;
            err = bxdualsdk.bxDual_program_addArea_G6(0, ref aheader);  //添加图文区域
            Console.WriteLine("bxDual_program_addArea_G6:" + err);
            //区域添加边框
            if (false)
            {
                bxdualsdk.EQscreenframeHeader_G6 sfheader;
                sfheader.FrameDispStype     = 0x01; //边框显示方式0x00 –闪烁 0x01 –顺时针转动 0x02 –逆时针转动 0x03 –闪烁加顺时针转动 0x04 –闪烁加逆时针转动 0x05 –红绿交替闪烁 0x06 –红绿交替转动 0x07 –静止打出
                sfheader.FrameDispSpeed     = 0x10; //边框显示速度
                sfheader.FrameMoveStep      = 0x01; //边框移动步长,单位为点,此参 数范围为 1~16
                sfheader.FrameUnitLength    = 2;    //边框组元长度
                sfheader.FrameUnitWidth     = 2;    //边框组元宽度
                sfheader.FrameDirectDispBit = 0;    //上下左右边框显示标志位,目前只支持6QX-M卡
                byte[] img = Encoding.Default.GetBytes("E:\\黄10.png");
                bxdualsdk.bxDual_program_picturesAreaAddFrame_G6(0, ref sfheader, img);
            }

            //第四步,添加显示内容,此处为图文分区0添加字符串
            byte[] str  = Encoding.GetEncoding("GBK").GetBytes("\\FKB00خۇش كەپسىز");
            byte[] font = Encoding.GetEncoding("GBK").GetBytes("宋体");
            bxdualsdk.EQpageHeader_G6 pheader;
            pheader.PageStyle        = 0x00;
            pheader.DisplayMode      = 0x04; //移动模式
            pheader.ClearMode        = 0x01;
            pheader.Speed            = 2;    //速度
            pheader.StayTime         = 100;  //停留时间
            pheader.RepeatTime       = 1;
            pheader.ValidLen         = 0;
            pheader.CartoonFrameRate = 0x00;
            pheader.BackNotValidFlag = 0x00;
            pheader.arrMode          = bxdualsdk.E_arrMode.eSINGLELINE;
            pheader.fontSize         = 20;
            pheader.color            = (uint)0x01;
            pheader.fontBold         = 0;
            pheader.fontItalic       = 0;
            pheader.tdirection       = bxdualsdk.E_txtDirection.pNORMAL;
            pheader.txtSpace         = 0;
            pheader.Valign           = 1;
            pheader.Halign           = 0;
            err = bxdualsdk.bxDual_program_picturesAreaAddTxt_G6(0, str, font, ref pheader);
            Console.WriteLine("bxDual_program_picturesAreaAddTxt_G6:" + err);

            //添加语音,该功能仅部分控制卡支持,一个节目只能在一个图文区添加语音播报
            if (false)
            {
                byte[] soundstr = Encoding.GetEncoding("gb2312").GetBytes("请张三到1号窗口取药");
                bxdualsdk.EQPicAreaSoundHeader_G6 psoundheader;
                psoundheader.SoundPerson          = 3;
                psoundheader.SoundVolum           = 5;
                psoundheader.SoundSpeed           = 5;
                psoundheader.SoundDataMode        = 0;
                psoundheader.SoundReplayTimes     = 0;
                psoundheader.SoundReplayDelay     = 1000;
                psoundheader.SoundReservedParaLen = 3;
                psoundheader.Soundnumdeal         = 1;
                psoundheader.Soundlanguages       = 1;
                psoundheader.Soundwordstyle       = 1;
                err = bxdualsdk.bxDual_program_pictureAreaEnableSound_G6(0, psoundheader, soundstr);
                Console.WriteLine("program_pictureAreaEnableSound_G6:" + err);
            }

            //第五步,发送节目到显示屏
            bxdualsdk.EQprogram_G6 program = new bxdualsdk.EQprogram_G6();
            err = bxdualsdk.bxDual_program_IntegrateProgramFile_G6(ref program);
            Console.WriteLine("bxDual_program_IntegrateProgramFile_G6:" + err);
            err = bxdualsdk.bxDual_program_deleteProgram_G6();
            Console.WriteLine("bxDual_program_deleteProgram_G6:" + err);

            if (true)//网口
            {
                err = bxdualsdk.bxDual_cmd_ofsStartFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsEndFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsEndFileTransf:" + err);
            }
            else//串口
            {
                err = bxdualsdk.bxDual_cmd_uart_ofsStartFileTransf(Program.com, Program.baudRate);
                Console.WriteLine("bxDual_cmd_uart_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsEndFileTransf(Program.com, Program.baudRate);
            }

            err = bxdualsdk.bxDual_program_freeBuffer_G6(ref program);
            Console.WriteLine("bxDual_program_freeBuffer_G6:" + err);
        }
Example #10
0
        /// <summary>
        /// BX-6代控制卡发送节目表盘
        /// </summary>
        public static void Send_program_clock_6()
        {
            //指定IP ping控制卡获取控制卡数据,屏参相关参数已知的情况可省略该步骤
            bxdualsdk.Ping_data data = new bxdualsdk.Ping_data();
            int err = bxdualsdk.bxDual_cmd_tcpPing(Program.ip, Program.port, ref data);

            //显示屏屏基色
            byte cmb_ping_Color = 1;

            if (data.Color == 1)
            {
                cmb_ping_Color = 1;
            }
            else if (data.Color == 3)
            {
                cmb_ping_Color = 2;
            }
            else if (data.Color == 7)
            {
                cmb_ping_Color = 3;
            }
            else
            {
                cmb_ping_Color = 4;
            }

            //第一步.设置屏幕参数相关  发送节目必要接口,发送动态区可忽略
            err = bxdualsdk.bxDual_program_setScreenParams_G56((bxdualsdk.E_ScreenColor_G56)cmb_ping_Color, data.ControllerType, bxdualsdk.E_DoubleColorPixel_G56.eDOUBLE_COLOR_PIXTYPE_1);
            Console.WriteLine("bxDual_program_setScreenParams_G56:" + err);

            //第二步,创建节目,设置节目属性
            bxdualsdk.EQprogramHeader_G6 header;
            header.FileType             = 0x00;
            header.ProgramID            = 0;
            header.ProgramStyle         = 0x00;
            header.ProgramPriority      = 0x00;
            header.ProgramPlayTimes     = 1;
            header.ProgramTimeSpan      = 0;
            header.SpecialFlag          = 0;
            header.CommExtendParaLen    = 0x00;
            header.ScheduNum            = 0;
            header.LoopValue            = 0;
            header.Intergrate           = 0x00;
            header.TimeAttributeNum     = 0x00;
            header.TimeAttribute0Offset = 0x0000;
            header.ProgramWeek          = 0xff;
            header.ProgramLifeSpan_sy   = 0xffff;
            header.ProgramLifeSpan_sm   = 0x03;
            header.ProgramLifeSpan_sd   = 0x14;
            header.ProgramLifeSpan_ey   = 0xffff;
            header.ProgramLifeSpan_em   = 0x03;
            header.ProgramLifeSpan_ed   = 0x14;
            header.PlayPeriodGrpNum     = 0;
            err = bxdualsdk.bxDual_program_addProgram_G6(ref header);
            Console.WriteLine("bxDual_program_addProgram_G6:" + err);

            //第三步,创建显示分区,设置区域显示位置,示例创建一个区域编号为0,区域大小64*32的时间分区
            bxdualsdk.EQareaHeader_G6 aheader;
            aheader.AreaType       = 2;
            aheader.AreaX          = 0;
            aheader.AreaY          = 0;
            aheader.AreaWidth      = 64;
            aheader.AreaHeight     = 32;
            aheader.BackGroundFlag = 0x00;
            aheader.Transparency   = 101;
            aheader.AreaEqual      = 0x00;
            bxdualsdk.EQSound_6G stSoundData = new bxdualsdk.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 = IntPtr.Zero;
            aheader.stSoundData   = stSoundData;
            err = bxdualsdk.bxDual_program_addArea_G6(0, ref aheader);
            Console.WriteLine("bxDual_program_addArea_G6:" + err);

            //第四步,添加表盘显示内容
            bxdualsdk.EQAnalogClockHeader_G56 acheader;
            acheader.OrignPointX   = 32;
            acheader.OrignPointY   = 16;
            acheader.UnitMode      = 0x00;
            acheader.HourHandWidth = 0x02;
            acheader.HourHandLen   = 0x08;
            acheader.HourHandColor = 0x01;
            acheader.MinHandWidth  = 0x02;
            acheader.MinHandLen    = 0x0b;
            acheader.MinHandColor  = 0x01;
            acheader.SecHandWidth  = 0x02;
            acheader.SecHandLen    = 0x0d;
            acheader.SecHandColor  = 0x01;
            bxdualsdk.ClockColor_G56 ClockColor;
            ClockColor.Color369 = 0xff0000;
            ClockColor.ColorDot = 0xff0000;
            ClockColor.ColorBG  = 0xff0000;
            err = bxdualsdk.bxDual_program_timeAreaAddAnalogClock_G6(0, ref acheader, bxdualsdk.E_ClockStyle.eCIRCLE, ref ClockColor);
            Console.WriteLine("bxDual_program_timeAreaAddAnalogClock_G6:" + err);
            byte[] img = Encoding.Default.GetBytes("time.png");
            //添加表盘图片
            //err = bxdualsdk.bxDual_program_timeAreaChangeDialPic_G6(areaID, img);
            //删除表盘图片
            //err = bxdualsdk.bxDual_program_timeAreaRemoveDialPic_G6(areaID);
            //修改表盘样式
            //err = bxdualsdk.bxDual_program_timeAreaChangeAnalogClock_G6(areaID, ref acheader, bxdualsdk.E_ClockStyle.eCIRCLE, ref ClockColor);

            //第五步,发送节目到显示屏
            bxdualsdk.EQprogram_G6 program = new bxdualsdk.EQprogram_G6();
            err = bxdualsdk.bxDual_program_IntegrateProgramFile_G6(ref program);
            Console.WriteLine("bxDual_program_IntegrateProgramFile_G6:" + err);
            err = bxdualsdk.bxDual_program_deleteProgram_G6();
            Console.WriteLine("bxDual_program_deleteProgram_G6:" + err);

            if (true)//网口
            {
                err = bxdualsdk.bxDual_cmd_ofsStartFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsWriteFile(Program.ip, Program.port, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_ofsEndFileTransf(Program.ip, Program.port);
                Console.WriteLine("bxDual_cmd_ofsEndFileTransf:" + err);
            }
            else//串口
            {
                err = bxdualsdk.bxDual_cmd_uart_ofsStartFileTransf(Program.com, Program.baudRate);
                Console.WriteLine("bxDual_cmd_uart_ofsStartFileTransf:" + err);

                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsWriteFile(Program.com, Program.baudRate, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
                Console.WriteLine("bxDual_cmd_uart_ofsWriteFile:" + err);
                err = bxdualsdk.bxDual_cmd_uart_ofsEndFileTransf(Program.com, Program.baudRate);
            }

            err = bxdualsdk.bxDual_program_freeBuffer_G6(ref program);
            Console.WriteLine("bxDual_program_freeBuffer_G6:" + err);
        }