You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1722 lines
97 KiB
C#

1 year ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace LedSDKDemo_CSharp
{
public class bx_sdk_dual2
{
public enum E_ScreenColor_G56
{
eSCREEN_COLOR_SINGLE = 1, //单基色
eSCREEN_COLOR_DOUBLE, //双基色
eSCREEN_COLOR_THREE, //七彩色
eSCREEN_COLOR_FULLCOLOR, //全彩色
}
public enum E_DoubleColorPixel_G56 : int
{
eDOUBLE_COLOR_PIXTYPE_1 = 1, //双基色1G+R
eDOUBLE_COLOR_PIXTYPE_2, //双基色2R+G
}
public enum E_arrMode : int
{
eSINGLELINE, //单行
eMULTILINE, //多行
}
public enum E_DateStyle : int
{
eYYYY_MM_DD_MINUS, //YYYY-MM-DD
eYYYY_MM_DD_VIRGURE, //YYYY/MM/DD
eDD_MM_YYYY_MINUS, //DD-MM-YYYY
eDD_MM_YYYY_VIRGURE, //DD/MM/YYYY
eMM_DD_MINUS, //MM-DD
eMM_DD_VIRGURE, //MM/DD
eMM_DD_CHS, //MM月DD日
eYYYY_MM_DD_CHS, //YYYY年MM月DD日
}
public enum E_TimeStyle : int
{
eHH_MM_SS_COLON, //HH:MM:SS
eHH_MM_SS_CHS, //HH时MM分SS秒
eHH_MM_COLON, //HH:MM
eHH_MM_CHS, //HH时MM分
eAM_HH_MM, //AM HH:MM
eHH_MM_AM, //HH:MM AM
};
public enum E_WeekStyle : int
{
eMonday = 1, //Monday
eMon, //Mon.
eMonday_CHS, //星期一
}
public enum E_Color_G56
{
eBLACK, //黑色
eRED, //红色
eGREEN, //绿色
eYELLOW, //黄色
eBLUE, //蓝色
eMAGENTA, //品红/洋红
eCYAN, //青色
eWHITE, //白色
} //5代时间区只支持四种颜色
public enum E_ClockStyle
{
eLINE, //线形
eSQUARE, //方形
eCIRCLE, //圆形
};//表盘样式
public enum E_txtDirection
{
pNORMAL, //正常
pROTATERIGHT, //向右旋转
pMIRROR, //镜像
pROTATELEFT, //向左旋转
};//图文区文字方向---暂不支持
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct ConfigFile
{
public byte FileType; //文件类型
public byte[] ControllerName; // 控制器名称
ushort Address; //控制器地址
public byte Baudrate; /*
0x00
0x01 9600
0x02 57600*/
ushort ScreenWidth; //显示屏宽度
ushort ScreenHeight; // 显示屏高度
public byte Color; /* Bit0 bit1 绿 bit2
Bit 0 1 */
public byte MirrorMode; // 0x00 –无镜向 0x01 –镜向
public byte OEPol; //OE 极性0x00 OE 低有效 0x01 OE 高有效
public byte DAPol; // 数据极性, 0x00 –数据低有效, 0x01 –数据高有效
public byte RowOrder; /* 0-31
0-15
0 0
1 1
.....
16-31
0 0
1 1 */
public byte FreqPar; /*CLK
AX
0~15 16 */
public byte OEWidth; // OE 宽度
public byte OEAngle; // OE 提前角
public byte FaultProcessMode; /*
0x00
0x01 (
使)*/
public byte CommTimeoutValue; /*
2S
TCP/IP 6S
GPRS 30S*/
public byte RunningMode; /*
0x00
0x01 */
public byte LoggingMode; /*
0x00
0x01
0x02
*/
public byte GrayFlag; /*( 5Q )
0x00
0x01*/
public byte CascadeMode; /* ( 5Q )
0x00
0x01*/
public byte Default_brightness; /*AX
*/
public byte HUBConfig; /*HUB ( 6E )
0x00HUB512
0x01HUB256*/
public byte Language; /*
0x00 ----
0x01 ----
*/
public byte Backup; // 备用字节
ushort CRC16; //整个文件的 CRC16 校验
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Ping_data
{
// 控制器类型
//小端存储低位在前高位在后, 比如 0x254 反着取,低位表示系列,高位编号 [0x54, 0x02] 【系列,编号】
public ushort ControllerType;
// 固件版本号
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public byte[] FirmwareVersion;
// 控制器参数文件状态 0x00 –控制器中没有参数配置文件,以下返回的是控制器的默认参数。 此时, PC 软件应提示用户必须先加载屏参。0x01 –控制器中有参数配置文件
public byte ScreenParaStatus;
// 控制器地址
public ushort uAddress;
// 波特率
public byte Baudrate;
// 屏宽
public ushort ScreenWidth;
// 屏高
public ushort ScreenHeight;
// 显示屏颜色定义
public byte Color;
//当前亮度值 整数1-16
public byte CurrentBrigtness;
// 控制器开关机状态 0 关机 1开机
public byte CurrentOnOffStatus;
// 扫描配置编号
public ushort ScanConfNumber;
// 第一个自己一路数据代几行,其他基本用不上,如有需要可参考协议取相应的字节
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 9)]
public byte[] reversed;
// 控制器ip地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] ipAdder;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct heartbeatData
{
public string password; //密码
public string ip; //控制器IP地址
public string subNetMask; // 子网掩码
public string gate; // 网关
public short port; // 端口
public string mac; // MAC地址
public string netID; // 控制器网络ID
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct TimingOnOff
{
public byte onHour; // 开机小时
public byte onMinute; // 开机分钟
public byte offHour; // 关机小时
public byte offMinute; // 关机分钟
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct Brightness
{
/*
0x00
0x01 :
0x00
0x01 :
*/
public byte BrightnessMode;
//00:00 00:29 的亮度值, 0x00 0x0f
public byte HalfHourValue0;
public byte HalfHourValue1;
public byte HalfHourValue2;
public byte HalfHourValue3;
public byte HalfHourValue4;
public byte HalfHourValue5;
public byte HalfHourValue6;
public byte HalfHourValue7;
public byte HalfHourValue8;
public byte HalfHourValue9;
public byte HalfHourValue10;
public byte HalfHourValue11;
public byte HalfHourValue12;
public byte HalfHourValue13;
public byte HalfHourValue14;
public byte HalfHourValue15;
public byte HalfHourValue16;
public byte HalfHourValue17;
public byte HalfHourValue18;
public byte HalfHourValue19;
public byte HalfHourValue20;
public byte HalfHourValue21;
public byte HalfHourValue22;
public byte HalfHourValue23;
public byte HalfHourValue24;
public byte HalfHourValue25;
public byte HalfHourValue26;
public byte HalfHourValue27;
public byte HalfHourValue28;
public byte HalfHourValue29;
public byte HalfHourValue30;
public byte HalfHourValue31;
public byte HalfHourValue32;
public byte HalfHourValue33;
public byte HalfHourValue34;
public byte HalfHourValue35;
public byte HalfHourValue36;
public byte HalfHourValue37;
public byte HalfHourValue38;
public byte HalfHourValue39;
public byte HalfHourValue40;
public byte HalfHourValue41;
public byte HalfHourValue42;
public byte HalfHourValue43;
public byte HalfHourValue44;
public byte HalfHourValue45;
public byte HalfHourValue46;
public byte HalfHourValue47;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct ControllerStatus_G56
{
public byte onoffStatus; // 开关机状态 Bit 0 –开机/关机, 0 表示关机, 1 表示开机
public byte timingOnOff; // 定时开关机状态 0 表示无定时开关机, 1 表示有定时开关机
public byte brightnessAdjMode; //亮度模式 0x00 –手动调亮 0x01 –定时调亮 0x02 –自动调亮
public byte brightness;// 当前亮度值
short programeNumber;// 控制器上已有节目个数
public byte[] currentProgram;//当前节目名
public byte screenLockStatus;//是否屏幕锁定0 –无屏幕锁定, 1 –屏幕锁定
public byte programLockStatus; //是否节目锁定, 0 无节目锁定1 –节目锁定
public byte runningMode;//控制器运行模式
public byte RTCStatus;//RTC 状态0x00 RTC 异常 0x01 RTC 正常
short RTCYear;//年
public byte RTCMonth;//月
public byte RTCDate;//日
public byte RTCHour;//时
public byte RTCMinute;//分
public byte RTCSecond;//秒
public byte RTCWeek;//星期 1--7
public byte[] temperature1;//温度1传感器当前值
public byte[] temperature2;//温度2传感器当前值
short humidity;//湿度传感器当前值
short noise;//噪声传感器当前值
public byte switchStatus; //测试按钮状态 0 –打开 1 –闭合
public byte CustomID; //用户自定义 ID作为网络 ID 的前半部分,便于用户识别其控制卡
public byte BarCode; //条形码,作为网络 ID 的后半部分,用以实现网络 ID 的唯一性
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct TimingReset
{
public byte rstMode; //复位模式 0x00 –取消定时复位功能 0x01 –周期复位, 此时 RstInterval 字段有效 0x02 –只在指定时间复位
uint RstInterval;//复位周期, 单位: 分钟如此字段为 0 不进行复位操作
public byte rstHour1; //小时 0Xff表示此组无效 下同
public byte rstMin1;
public byte rstHour2;
public byte rstMin2;
public byte rstHour3;
public byte rstMin3;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct BattleTime
{
public short BattleRTCYear; //年
public byte BattleRTCMonth;//月
public byte BattleRTCDate;//日
public byte BattleRTCHour;//时
public byte BattleRTCMinute;//分
public byte BattleRTCSecond;//秒
public byte BattleRTCWeek;//星期
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQprogrampTime_G56
{
public byte StartHour;
public byte StartMinute;
public byte StartSecond;
public byte EndHour;
public byte EndMinute;
public byte EndSecond;
};//节目的播放时段
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQprogramppGrp_G56
{
public byte playTimeGrpNum; //播放时间有效组数 0 没有播放时段全天播放 最大值8
public EQprogrampTime_G56 timeGrp0;
public EQprogrampTime_G56 timeGrp1;
public EQprogrampTime_G56 timeGrp2;
public EQprogrampTime_G56 timeGrp3;
public EQprogrampTime_G56 timeGrp4;
public EQprogrampTime_G56 timeGrp5;
public EQprogrampTime_G56 timeGrp6;
public EQprogrampTime_G56 timeGrp7;
};//播放时段共有8组
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQprogramHeader
{
/*
0x00
LOGO:0x08
:0x02
:0x06
:0x05
: 0x07
*/
public byte FileType; //文件类型
public uint ProgramID;//节目ID
/*
Bit0
Bit1
Bit2
*/
public byte ProgramStyle;//节目类型
//注:带播放时段的节目优先级为 1不 带播放时段的节目优先级为 0
public byte ProgramPriority; //节目等级
public byte ProgramPlayTimes;//节目重播放次数
public ushort ProgramTimeSpan; //播放的方式
public byte ProgramWeek; //节目星期属性
public ushort ProgramLifeSpan_sy;//年
public byte ProgramLifeSpan_sm;//月
public byte ProgramLifeSpan_sd;//日
public ushort ProgramLifeSpan_ey;//结束年
public byte ProgramLifeSpan_em;//结束日
public byte ProgramLifeSpan_ed;//结束天
//public byte PlayPeriodGrpNum;//播放时段的组数
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQscreenframeHeader
{
public byte FrameDispFlag;
public byte FrameDispStyle;
public byte FrameDispSpeed;
public byte FrameMoveStep;
public byte FrameWidth;
public ushort FrameBackup;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQareaframeHeader
{
public byte AreaFFlag;
public byte AreaFDispStyle;
public byte AreaFDispSpeed;
public byte AreaFMoveStep;
public byte AreaFWidth;
public ushort AreaFBackup;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQareaHeader
{
/*
:0x01
0x06
:0x02
:0x00
0x09
0x05
0x03
0x08
湿0x04
*/
public byte AreaType; //区域类型
public ushort AreaX; //区域X坐标
public ushort AreaY; //区域Y坐标
public ushort AreaWidth; //区域宽
public ushort AreaHeight;//区域高
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQpageHeader
{
//请参考协议 图文字幕区数据格式
public byte PageStyle; //数据页类型
public byte DisplayMode; //显示方式 (特效)
public byte ClearMode; // 退出方式/清屏方式
public byte Speed; // 速度等级/背景速度等级
public ushort StayTime; // 停留时间, 单位为 10ms
public byte RepeatTime;//重复次数/背景拼接步长(左右拼接下为宽度, 上下拼接为高度)
public ushort ValidLen; //用法比较复杂请参考协议
public E_arrMode arrMode; //排列方式--单行多行
public ushort fontSize; //字体大小
public uint color;//字体颜色
public byte fontBold; //是否为粗体
public byte fontItalic;//是否为斜体
public E_txtDirection tdirection;//文字方向
public ushort txtSpace; //文字间隔
public byte Valign;
public byte Halign;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQprogram
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] fileName; //文件名
public byte fileType; //文件类型
public uint fileLen; //文件长度
public IntPtr fileAddre; // 文件所在的缓存地址
public uint fileCRC32; //文件CRC32校验码
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct getPageData
{
ushort allPageNub;
uint pageLen;
public byte[] fileAddre;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQunitHeader
{
ushort UnitX;
ushort UnitY;
public byte UnitType;
public byte Align;
public byte UnitColor;
public byte UnitMode;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQtimeAreaData_G56
{
public E_arrMode linestyle; //排列方式,单行还是多行
public uint color; //字体颜色
public string fontName; //字体名字
public ushort fontSize; //字体大小
public byte fontBold; //字体加粗
public byte fontItalic; //斜体
public byte fontUnderline; //字体加下划线
public byte fontAlign; //对齐方式--多行有效
public byte date_enable; //是否添加日期
public E_DateStyle datestyle; //日期格式
public byte time_enable; //是否添加时间---默认添加
public E_TimeStyle timestyle; //时间格式
public byte week_enable; //是否添加星期
public E_WeekStyle weekstyle; //星期格式
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQAnalogClockHeader_G56
{
public ushort OrignPointX; //原点横坐标
public ushort OrignPointY; //原点纵坐标
public byte UnitMode; //表针模式
public byte HourHandWidth; //时针宽度
public byte HourHandLen; //时针长度
public uint HourHandColor; //时针颜色
public byte MinHandWidth; //分针宽度
public byte MinHandLen; //分针长度
public uint MinHandColor; //分针颜色
public byte SecHandWidth; //秒针宽度
public byte SecHandLen; //秒针长度
public uint SecHandColor; //秒针颜色
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQprogramHeader_G6
{
/*
0x00
LOGO:0x08
:0x02
:0x06
:0x05
: 0x07
*/
public byte FileType; //文件类型
public uint ProgramID;//节目ID
/*
Bit0
Bit1
Bit2
*/
public byte ProgramStyle; //节目类型
//注:带播放时段的节目优先级为 1不带播放时段的节目优先级为 0
public byte ProgramPriority; //节目等级
public byte ProgramPlayTimes; //节目重播放次数
public ushort ProgramTimeSpan; //播放的方式
public byte SpecialFlag; //特殊节目标
public byte CommExtendParaLen; //扩展参数长度默认为0x00
public ushort ScheduNum; //节目调度
public ushort LoopValue; //调度规则循环次数
public byte Intergrate; //调度相关
public byte TimeAttributeNum; //时间属性组数
public ushort TimeAttribute0Offset; //第一组时间属性偏移量--目前只支持一组
public byte ProgramWeek; //节目星期属性
public ushort ProgramLifeSpan_sy; //年
public byte ProgramLifeSpan_sm; //月
public byte ProgramLifeSpan_sd; //日
public ushort ProgramLifeSpan_ey; //结束年
public byte ProgramLifeSpan_em; //结束日
public byte ProgramLifeSpan_ed; //结束天
public byte PlayPeriodGrpNum; //播放时段的组数
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQscreenframeHeader_G6
{
public byte FrameDispStype; //边框显示方式
public byte FrameDispSpeed; //边框显示速度
public byte FrameMoveStep; //边框移动步长
public byte FrameUnitLength; //边框组元长度
public byte FrameUnitWidth; //边框组元宽度
public byte FrameDirectDispBit;//上下左右边框显示标志位目前只支持6QX-M卡
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQSound_6G
{
public byte SoundFlag; //1 0x00 是否使能语音播放;0 表示不使能语音; 1 表示播放下文中 SoundData 部分内容;
//SoundData 部分内容---------------------------------------------------------------------------------------------------------------------------------------------------
public byte SoundPerson; //1 0x00 发音人 该值范围是 0 - 5共 6 种选择只有 SoundFlag是否使能语音播放为 1 时才发送该字节,否则不发送该值默认为 0
public byte SoundVolum; //1 0x05 音量该值范围是 0~10共 11 种0表示静音只有 SoundFlag是否使能语音播放为 1 时才发送该字节,否则不发送该值默认为 5
public byte SoundSpeed; //1 0x05 语速该值范围是 0~10共 11 种只有 SoundFlag是否使能语音播放为 1 时才发送该字节,否则不发送该值默认为 5
public byte SoundDataMode; //1 0x00 SoundData 的编码格式该值意义如下0x00 GB2312; 0x01 GBK; 0x02 BIG5; 0x03 UNICODE只有 SoundFlag是否使能语音播放为 1 时才发送该字节,否则不发送
public int SoundReplayTimes; // 4 0x00000000 重播次数该值为 0表示播放 1 次该值为 1表示播放 2 次
//......
//该值为 0xffffffff表示播放无限次只有 SoundFlag是否使能语播放为 1 时才发送该字节,否则不发送该值默认为 0
public int SoundReplayDelay;// 4 0x00000000 重播时间间隔该值表示两次播放语音的时间间隔,单位为 10ms只有 SoundFlag是否使能语音播放为 1 时才发送该字节,否则不发送该值默认为 0
public byte SoundReservedParaLen;// 1 0x03 语音参数保留参数长度
public byte Soundnumdeal; // 1 0 0自动判断1数字作号码处理 2数字作数值处理只有当 SoundFlag 为 1 且SoundReservedParaLen不为 0才发送此参数
public byte Soundlanguages; // 1 0 0自动判断语种1阿拉伯数字、度量单位、特殊符号等合成为中文2阿拉伯数字、度量单位、特殊符号等合成为英文只有当 SoundFlag 为 1 且 SoundReservedParaLen不为 0才发送此参数目前只支持中英文
public byte Soundwordstyle; // 1 0 0自动判断发音方式1字母发音方式2单词发音方式只有当 SoundFlag 为 1 且SoundReservedParaLen不为 0才发送此参数
public int SoundDataLen; // 4 语音数据长度; 只有 SoundFlag是否使能语音播放为 1 时才发送该字节,否则不发送
public IntPtr SoundData; // N 语音数据只有 SoundFlag是否使能语音播放为 1 时才发送该字节,否则不发送
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct ClockColor_G56
{
public uint Color369; //369点颜色
public uint ColorDot; //点颜色
public uint ColorBG; //表盘外圈颜色 模式没有圈泽此颜色无效
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQareaHeader_G6
{
public byte AreaType; //区域类型
public ushort AreaX; //区域左上角横坐标
public ushort AreaY; //区域左上角纵坐标
public ushort AreaWidth; //区域宽度
public ushort AreaHeight; //区域高度
public byte BackGroundFlag; //是否有背景
public byte Transparency; //透明度
public byte AreaEqual; //前景、背景区域大小是否相同
//语音内容
//使用语音功能时:部分卡需要配置串口为语音模式!!!
public EQSound_6G stSoundData;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQPicAreaSoundHeader_G6
{
public byte SoundPerson; //发音人范围05共6种选择
public byte SoundVolum; //音量范围010
public byte SoundSpeed; //语速范围010
public byte SoundDataMode; //语音数据的编码格式
public uint SoundReplayTimes; //重播次数
public uint SoundReplayDelay; //重播时间间隔
public byte SoundReservedParaLen; //语音参数保留参数长度默认0x03
public byte Soundnumdeal; //详情见协议
public byte Soundlanguages; //详情见协议
public byte Soundwordstyle; //详情见协议
}//图文分区播放语音
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQTimeAreaBattle_G6
{
public ushort BattleStartYear; //起始年份BCD格式下同
public byte BattleStartMonth; //起始月份
public byte BattleStartDate; //起始日期
public byte BattleStartHour; //起始小时
public byte BattleStartMinute; //起始分钟
public byte BattleStartSecond; //起始秒钟
public byte BattleStartWeek; //起始星期值
public byte StartUpMode; //启动模式
} //时间分区战斗时间
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQpageHeader_G6
{
public byte PageStyle; //数据页类型
public byte DisplayMode; //显示方式
public byte ClearMode; //退出方式/清屏方式
public byte Speed; //速度等级
public ushort StayTime; //停留时间
public byte RepeatTime; //重复次数
public ushort ValidLen; //此字段只在左移右移方式下有效
public byte CartoonFrameRate; //特技为动画方式时,该值代表其帧率
public byte BackNotValidFlag; //背景无效标志
public E_arrMode arrMode; //排列方式--单行多行
public ushort fontSize; //字体大小
public uint color; //字体颜色
public byte fontBold; //是否为粗体 0:false 1:true
public byte fontItalic; //是否为斜体
public E_txtDirection tdirection; //文字方向
public ushort txtSpace; //文字间隔
public byte Valign;
public byte Halign;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQprogram_G6
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] fileName; //节目参数文件名
public byte fileType; //文件类型
public uint fileLen; //参数文件长度
public IntPtr fileAddre; //文件所在的缓存地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] dfileName;//节目数据文件名
public byte dfileType; //节目数据文件类型
public uint dfileLen; //数据文件长度
public IntPtr dfileAddre; //数据文件缓存地址
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct GetDirBlock_G56
{
public byte fileType; //要获取的文件类型
public ushort fileNumber; //返回有多少个文件
public IntPtr dataAddre; //返回文件列表地址
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct FileAttribute_G56
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] fileName; //文件名
public byte fileType; //文件类型
public int fileLen; //文件长度
public int fileCRC; //文件CRC校验
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQdynamicHeader
{
public byte RunMode;
ushort Timeout;
public byte ImmePlay;
public byte AreaType;
ushort AreaX;
ushort AreaY;
ushort AreaWidth;
ushort AreaHeight;
}
/**************************************************************************************
***56
**************************************************************************************/
//初始化动态库
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int InitSdk();
//释放动态库
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern void ReleaseSdk();
/*! ***************************************************************
* cmd_udpPing
* retData Ping_data
* 0
* UDP ping
*
* 使
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_udpPing(byte[] retData); //UDP ping命令并返回IP地址
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_tcpPing(byte[] ip, ushort port, ref Ping_data retData);
/*! ***************************************************************
* program_setScreenParams_G56
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_setScreenParams_G56(E_ScreenColor_G56 color, ushort ControllerType, E_DoubleColorPixel_G56 doubleColor); //设置屏相关属性
/*! ***************************************************************
* cmd_ofsWriteFile
* ipIP port
* fileName
* fileType
* fileLen
* fileAddre
* overwrite 1 0 1
* 0
*
* OFS
* 便
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_ofsWriteFile(byte[] ip, ushort port, byte[] fileName, byte fileType, uint fileLen, byte overwrite, IntPtr fileAddre);
/*! ***************************************************************
* cmd_ofsStartFileTransf
* ipIP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_ofsStartFileTransf(byte[] ip, ushort port);
/*! ***************************************************************
* cmd_ofsEndFileTransf
* ipIP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_ofsEndFileTransf(byte[] ip, ushort port);
/*! ***************************************************************
* cmd_ofsReedDirBlock
* ipIP port
* dirBlock: GetDirBlock_G56
* 0
*
*
* 使
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_ofsReedDirBlock(byte[] ip, ushort port, byte[] dirBlock);
/*! ***************************************************************
* cmd_getFileAttr
*
* dirBlock:
* number:
* fileAttr FileAttribute_G56
* 0
*
*
* numberfileAttr.fileName 0
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_getFileAttr(byte[] dirBlock, int number, byte[] fileAttr);
/*! ***************************************************************
* cmd_ofsDeleteFormatFile
* ipIP port
* fileNub:
* fileName
* 0
*
*
* fileName4 fileNubNNfileName fileName = fileName4byte*N
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_ofsDeleteFormatFile(byte[] ip, ushort port, short fileNub, string fileName);
/*! ***************************************************************
* cmd_uart_searchController
* retData Ping_data
* 0
*
*
* 960057600
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_uart_searchController(byte[] retData, byte[] uartPort);
/*! ***************************************************************
* cmd_uart_ofsStartFileTransf
* uartPort baudRate
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_uart_ofsStartFileTransf(byte[] uartPort, byte baudRate);
/*! ***************************************************************
* cmd_uart_ofsWriteFile
* uartPort baudRate
* fileName
* fileType
* fileLen
* fileAddre
* overwrite 1 0 1
* 0
*
* OFS
* 便
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_uart_ofsWriteFile(byte[] uartPort, byte baudRate, byte[] fileName, byte fileType, uint fileLen, byte overwrite, IntPtr fileAddre);
/*! ***************************************************************
* cmd_uart_confWriteFile
* uartPort baudRate
* fileName
* fileType
* fileLen
* fileAddre
* overwrite 1 0 1
* 0
*
*
Firmware
* 便
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_uart_confWriteFile(byte[] uartPort, byte baudRate, byte[] fileName, byte fileType, uint fileLen, byte overwrite, IntPtr fileAddre);
/*! ***************************************************************
* cmd_uart_ofsEndFileTransf
* uartPort baudRate
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_uart_ofsEndFileTransf(byte[] uartPort, byte baudRate);
/**************************************************************************************
***5
**************************************************************************************/
/*! ***************************************************************
* program_addProgram
* programHEQprogramHeader
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_addProgram(IntPtr programH); //添加节目句柄
/*! ***************************************************************
* program_AddArea
*
* areaIDID
* aheaderEQareaHeader
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_AddArea(ushort areaID, IntPtr aheader);//添加区域句柄
/*! ***************************************************************
* program_picturesAreaAddTxt
* areaIDID
* str
* fontName
* pheaderEQpageHeader
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_picturesAreaAddTxt(ushort areaID, byte[] str, byte[] fontName, IntPtr pheader);//画字符到区域
/*! ***************************************************************
* program_picturesAreaAddPic
* areaIDID
* picIDID
* EQpageHeaderEQpageHeader
* picPath
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_pictureAreaAddPic(ushort areaID, ushort picID, IntPtr pheader, byte[] picPath);
/*! ***************************************************************
* program_fontPath_timeAreaAddContent()
* areaIDID
* timeData:EQtimeAreaData_G56
*
* 0
* EQtimeAreaData::fontName ==
* ios使program_timeAreaAddContent使program_fontPath_timeAreaAddContent()
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_fontPath_timeAreaAddContent(ushort areaID, IntPtr timeData);
/*! ***************************************************************
* program_timeAreaAddAnalogClock(
*
* areaIDID
* header: EQAnalogClockHeader_G56
* cStyle: E_ClockStyle
* cColor: E_Color
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_timeAreaAddAnalogClock(ushort areaID, IntPtr header, E_ClockStyle cStyle, ref ClockColor_G56 cColor);
/*! ***************************************************************
* program_IntegrateProgramFile
*
* programEQprogram
* 0
*
*
* EQprogram
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_IntegrateProgramFile(byte[] program);
/*! ***************************************************************
* program_deleteProgram
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_deleteProgram();
/**************************************************************************************
***6
**************************************************************************************/
/*! ***************************************************************
* program_addProgram_G6(
*
* EQprogramHeader_G6EQprogramHeader_G6
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_addProgram_G6(IntPtr programH);
/*! ***************************************************************
* program_addArea_G6
* areaIDID
* aheaderEQareaHeader_G6
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_addArea_G6(ushort areaID, IntPtr aheader);
/*! ***************************************************************
* program_picturesAreaAddTxt_G6
* areaIDID
* str
* fontName
* pheaderEQpageHeader_G6
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_picturesAreaAddTxt_G6(ushort areaID, byte[] str, byte[] fontName, IntPtr pheader);
/*! ***************************************************************
* program_pictureAreaAddPic_G6
* areaIDID
* picID001id
* EQpageHeader_G6EQpageHeader_G6
* picPath
* 0
*
* picIDpicID0
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_pictureAreaAddPic_G6(ushort areaID, ushort picID, IntPtr pheader, byte[] picPath);
/*! ***************************************************************
* program_fontPath_timeAreaAddContent_G6()
* areaIDID
* timeData:EQtimeAreaData_G56
*
* 0
* EQtimeAreaData::fontName ==
* ios使program_timeAreaAddContent_G6使program_fontPath_timeAreaAddContent_G6()
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_fontPath_timeAreaAddContent_G6(ushort areaID, IntPtr timeData);
/*! ***************************************************************
* program_timeAreaAddContent_G6
* areaIDID
* timeDataEQtimeAreaData_G56
*
*
* 0
* EQtimeAreaData_G56
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_timeAreaAddContent_G6(ushort areaID, IntPtr timeData);
/*! ***************************************************************
* program_timeAreaAddAnalogClock_G6(
*
* areaIDID
* header: EQAnalogClockHeader_G56
* cStyle: E_ClockStyle
* cColor: E_Color_G56使RGB888
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_timeAreaAddAnalogClock_G6(ushort areaID, IntPtr header, E_ClockStyle cStyle, ref ClockColor_G56 cColor);
/*! ***************************************************************
* program_IntegrateProgramFile_G6
*
* programEQprogram_G6
* 0
*
*
* EQprogram
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
//public static extern int program_IntegrateProgramFile_G6(byte[] program);
public static extern int program_IntegrateProgramFile_G6(ref EQprogram_G6 program);
/*! ***************************************************************
* program_deleteProgram_G6(
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_deleteProgram_G6();
/*! ***************************************************************
* program_timeAreaSetBattleTime_G6
* areaIDID
* headerEQTimeAreaBattle_G6
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_timeAreaSetBattleTime_G6(ushort areaID, IntPtr header);
/*! ***************************************************************
* program_timeAreaCancleBattleTime_G6
* areaIDID
*
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_timeAreaCancleBattleTime_G6(ushort areaID);
/*! ***************************************************************
* program_pictureAreaGetOnePage(
*
* areaIDID
* pageNum: 0
* 0
* n
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_pictureAreaGetOnePage(ushort areaID, uint pageNum, IntPtr pageData);
/*****************************以下为六代接口*******************************************/
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6LED strAreaTxtContent
pIP,nPort :IP; ;
color :LED E_ScreenColor_G56
uAreaId :; 4uAreaId0-340-3
uAreaX,uAreaY :LED/00LED
:LEDBX-6E2X80LED640016
uWidth,uHeight:
fontName :"宋体"; nFontSize:12;
strAreaTxtContent:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_AddAreaTxt_6G(byte[] ip, int port, E_ScreenColor_G56 color, byte uAreaId, ushort uAreaX, ushort uAreaY,
ushort uWidth, ushort uHeight, byte[] fontName, byte nFontSize, byte[] strAreaTxtContent);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_AddAreaTxtDetails_6G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaId,
ref EQareaHeader_G6 oAreaHeader_G6, ref EQpageHeader_G6 stPageHeader, byte[] fontName, byte[] strAreaTxtContent);
//动态区文本关联节目:
//RelateProNum = 0 时,关联所有节目,与所有节目一起播放,如果没有节目,则不播放该动态区;
// > 0 时, 指定关联节目要关联的节目ID存放在RelateProSerial[]中;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_AddAreaTxtDetails_WithProgram_6G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaId, IntPtr oAreaHeader_G6,
IntPtr stPageHeader, byte[] fontName, byte[] strAreaTxtContent, ushort RelateProNum, ushort[] RelateProSerial);
//更新动态区图片:仅显示动态区;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_AddAreaPic_6G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaId, ushort AreaX, ushort AreaY,
ushort AreaWidth, ushort AreaHeight, IntPtr pheader, byte[] picPath);
//动态区图片关联节目:
//RelateProNum = 0 时,关联所有节目,与所有节目一起播放,如果没有节目,则不播放该动态区;
// > 0 时, 指定关联节目要关联的节目ID存放在RelateProSerial[]中;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_AddAreaPic_WithProgram_6G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaId, ushort[] AreaX, ushort[] AreaY,
ushort[] AreaWidth, ushort[] AreaHeight, IntPtr pheader, byte[] picPath, ushort RelateProNum, ushort[] RelateProSerial);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicAreaS_AddAreaPic_6G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaCount, [In] DynamicAreaParams[] pParams);
//删除动态区:
//uAreaId = 0xff:删除所有区域
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_DelArea_6G(byte[] ip, int nPort, byte uAreaId);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_DelAreas_6G(byte[] ip, int nPort, byte uAreaCount, byte[] pAreaID);
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DynamicAreaParams
{
public byte uAreaId;
public EQareaHeader_G6 oAreaHeader_G6;
public EQpageHeader_G6 stPageHeader;
public IntPtr fontName;
public IntPtr strAreaTxtContent;
}
//同时更新多个动态区:仅显示动态区,不显示节目
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicAreaS_AddTxtDetails_6G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaCount, [In] DynamicAreaParams[] pParams);
//同时更新多个动态区:并与节目关联,即与节目一起显示
//RelateProNum = 0 时,关联所有节目,与所有节目一起播放,如果没有节目,则不播放该动态区;
// > 0 时, 指定关联节目要关联的节目ID存放在RelateProSerial[]中;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicAreaS_AddTxtDetails_WithProgram_6G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaCount, [In] DynamicAreaParams[] pParams, ushort RelateProNum, ushort[] RelateProSerial);
/*! ***************************************************************
* cmd_ofsReedDirBlock
* ipIP port
* dirBlock: GetDirBlock_G56
* 0
*
*
* 使
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_ofsReedDirBlock(byte[] ip, int nPort, byte[] dirBlock);
/*! ***************************************************************
* cmd_getFileAttr
*
* dirBlock:
* number:
* fileAttr FileAttribute_G56
* 0
*
*
* numberfileAttr.fileName 0
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_getFileAttr(IntPtr dirBlock, ushort number, byte[] fileAttr);
/*! ***************************************************************
* cmd_ofsDeleteFormatFile
* ipIP port
* fileNub:
* fileName
* 0
*
*
* fileName4 fileNubNNfileName fileName = fileName4byte*N
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_ofsDeleteFormatFile(byte[] ip, int port, short fileNub, byte[] fileName);
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQfontData
{
public E_arrMode arrMode; //排列方式--单行多行 E_arrMode:: eSINGLELINE, //单行 eMULTILINE, //多行
public ushort fontSize; //字体大小
public uint color;//字体颜色 E_Color_G56 此通过此枚举值可以直接配置七彩色如果大于枚举范围使用RGB888模式
public byte fontBold; //是否为粗体
public byte fontItalic;//是否为斜体
public E_txtDirection tdirection;//文字方向
public ushort txtSpace; //文字间隔
public byte Halign; //横向对齐方式0系统自适应、1左对齐、2居中、3右对齐
public byte Valign; //纵向对齐方式0系统自适应、1上对齐、2居中、3下对齐
}
//5代控制卡动态区功能开始:====================================================================================================================================================================================================================
/*
6 dynamicArea_AddAreaTxt_6G
strAreaTxtContent -
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_AddAreaWithTxt_5G(byte[] ip, int nPort, E_ScreenColor_G56 color,
byte uAreaId,
byte RunMode,
ushort Timeout,
byte RelateAllPro,
ushort RelateProNum,
ushort[] RelateProSerial,
byte ImmePlay,
ushort uAreaX, ushort uAreaY, ushort uWidth, ushort uHeight,
EQareaframeHeader oFrame,
//PageStyle begin--------
byte DisplayMode,
byte ClearMode,
byte Speed,
ushort StayTime,
byte RepeatTime,
//PageStyle End.
//显示内容和字体格式 begin---------
EQfontData oFont,
byte[] fontName,
byte[] strAreaTxtContent
//end.
);
/*
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_AddAreaWithPic_5G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaId, byte RunMode, ushort Timeout, byte RelateAllPro, ushort RelateProNum,
ushort[] RelateProSerial, byte ImmePlay, ushort uAreaX, ushort uAreaY, ushort uWidth, ushort uHeight, EQareaframeHeader oFrame, byte DisplayMode, byte ClearMode,
byte Speed, ushort StayTime, byte RepeatTime, byte[] filePath);
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DynamicAreaBaseInfo_5G
{
byte nType; // nType=1:文本; nType=2:图片;
//PageStyle begin---------------
byte DisplayMode;
byte ClearMode;
byte Speed;
ushort StayTime;
byte RepeatTime;
//PageStyle End.
//文本显示内容和字体格式 begin---------
EQfontData oFont;
byte[] fontName;
byte[] strAreaTxtContent;
//end.
//图片路径 begin---------
byte[] filePath;
//end.
}
/*
/
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_AddAreaInfos_5G(byte[] ip, int nPort, E_ScreenColor_G56 color, byte uAreaId, byte RunMode, ushort Timeout,
byte RelateAllPro, ushort RelateProNum, ushort[] RelateProSerial, byte ImmePlay, ushort uAreaX, ushort uAreaY, ushort uWidth, ushort uHeight,
EQareaframeHeader oFrame, byte nInfoCount, [In] DynamicAreaBaseInfo_5G[] pInfo);
//删除动态区:
/*
uAreaId = 0xff:
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_DelArea_5G(byte[] ip, int nPort, byte uAreaId);
/*
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int dynamicArea_DelAreaS_5G(byte[] ip, int nPort, byte uAreaCount, byte[] pAreaID);
//5代控制卡动态区功能结束:====================================================================================================================================================================================================================
/*! ***************************************************************
* program_addFrame
* EQscreenframeHeaderEQscreenframeHeader
* picPath
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_addFrame(ref EQscreenframeHeader sfHeader, byte[] picPath);
/*! ***************************************************************
* program_picturesAreaAddFrame(
* areaIDID
* EQareaframeHeaderEQareaframeHeader
* picPath:
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_picturesAreaAddFrame(ushort areaID, ref EQareaframeHeader afHeader, byte[] picPath);
/*! ***************************************************************
* program_addFrame_G6
* sfHeaderEQscreenframeHeader_G6
* picPath
* 0 -1
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_addFrame_G6(ref EQscreenframeHeader_G6 sfHeader, byte[] picPath);
/*! ***************************************************************
* cmd_setBrightness
* ipIP port brightness
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_setBrightness(byte[] ip, ushort port, ref Brightness brightness);
/*! ***************************************************************
* program_pictureAreaEnableSound_G6
* areaIDID
* sheaderEQPicAreaSoundHeader_G6
* soundData:
*
* 0
* 使
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_pictureAreaEnableSound_G6(ushort areaID, EQPicAreaSoundHeader_G6 sheader, byte[] soundData);
/*! ***************************************************************
* cmd_screenLock
* ipIP port
* nonvolatile 0x00 0x01
* lock 0x00 0x01
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_screenLock(byte[] ip, ushort port, byte nonvolatile, byte locker);
/*! ***************************************************************
* cmd_programLock
* ipIP port
* nonvolatile 0x00 0x01
* lock0x00 0x01
* name 4byte
* lockDuration: 10
* 100 1 . 0xffffffff
* 0
*
*
* 使
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_programLock(byte[] ip, ushort port, byte nonvolatile, byte locker, byte[] name, int lockDuration);
/*! ***************************************************************
* cmd_check_time
* ipIP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_check_time(byte[] ip, ushort port);
/*! ***************************************************************
* program_addPlayPeriodGrp
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_addPlayPeriodGrp(ref EQprogramppGrp_G56 header);
/*! ***************************************************************
* program_addPlayPeriodGrp
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int program_addPlayPeriodGrp_G6(ref EQprogramppGrp_G56 header);
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct NetSearchCmdRet
{
//Oint8 CmdGroup; //1 0xA4 命令组 //public byte Cmd; //1 0x83 命令编号 //public ushort Status; //2 控制器状态//public ushort Error; //2 错误状态寄存器//public ushort DataLen; // 2 0xA4 数据长度
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public byte[] Mac; //6 Mac 地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] IP; //4 控制器 IP 地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] SubNetMask; //4 子网掩码
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] Gate; //4 网关
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] Port; //2 端口
public byte IPMode; //1 1 表示 DHCP 2 表示手动设置
public byte IPStatus; //1 0 表示 IP 设置失败 1 表示 IP 设置成功
public byte ServerMode; //1 0 Bit[0]表示服务器模式是否使能1 使能0 –禁止 Bit[1]表示服务器模式1 web 模式0 –普通模式
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] ServerIPAddress;// 4 服务器 IP 地址
public ushort ServerPort; //2 服务器端口号
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public byte[] ServerAccessPassword;// 8 服务器访问密码
public ushort HeartBeatInterval;//2 20S 心跳时间间隔(单位:秒)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
public byte[] CustomID; //12 用户自定义 ID作为网络 ID 的前半部分,便于用户识别其控制卡
//Web 模式下参见下面的数据结构NetSearchCmdRet_Web 返回下述 5 项的实际值,否则不上传下述 5 项
//public byte WebUserID[128];// 128 0 WEB 平台用户 id//Oint32 GroupNum;// 4 0 屏幕组号//public byte DomainFlag;// 1 0 域名标志 0 - 无域名1—域名//public byte DomainName[128];// 128 域名名称 当 DomainFlag 为 1 时下发//public byte WebControllerName[128];// 128 LED00001 WEB 平台控制器名称
//Web 模式下返回结束 ==================================================
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] BarCode; //16 条形码,作为网络 ID 的后半部分,用以实现网络 ID 的唯一性
public ushort ControllerType; //2 其中低位字节表示设备系列,而高位字节表示设备编号,例如 BX - 6Q2 应表示为[0x66, 0x02],其它型号依此类推。
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public byte[] FirmwareVersion;// 8 Firmware 版本号
public byte ScreenParaStatus; //1 控制器参数文件状态 0x00 控制器中没有参数配置文件以下返回的是控制器的默认参数。此时PC软件应提示用户必须先加载屏参。0x01 –控制器中有参数配置文件
public ushort Address; //2 0x0001 控制器地址控制器出厂默认地址为 0x0001(0x0000 地址将保留)控制除了对发送给自身地址的数据包进行处理外,还需对广播数据包进行处理。
public byte Baudrate; //1 0x00 波特率 0x00 –保持原有波特率不变 0x01 –强制设置为 9600 0x02 –强制设置为 57600
public ushort ScreenWidth; //2 192 显示屏宽度
public ushort ScreenHeight; //2 96 显示屏高度
public byte Color; //1 0x01 对于无灰度系统,单色时返回 1双色时返回 3三色时返回 7对于有灰度系统返回 255
public byte BrightnessAdjMode;// 1 调亮模式 0x00 –手动调亮 0x01 –定时调亮 0x02 –自动调亮
public byte CurrentBrigtness; // 1 当前亮度值
public byte TimingOnOff; //1 Bit0 定时开关机状态0 表示无定时开关机1 表示有定时开关机
public byte CurrentOnOffStatus;//1 开关机状态
public ushort ScanConfNumber; //2 扫描配置编号
public byte RowsPerChanel; //1 一路数据带几行
public byte GrayFlag; //1 对于无灰度系统,返回 0对于有灰度系
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] UnitWidth; //2 最小单元宽度
public byte modeofdisp; //1 6Q 显示模式 : 0 为 888, 1 为 565其余卡为 0
public byte NetTranMode; //1 当该字节为 0 时,网口通讯使用老的模式,即 UDP 和 TCP 均根据下面的PackageMode 字节确定包长,并且 UDP通讯时将大包分为小包每发送一小包做一下延时当该字节不为 0 时,网口通讯使用新的模式,即 UDP 的包长等于UDPPackageMode * 8KBYTE且不再分为小包将整包数据丢给协议栈TCP 的包长等于 PackageMode * 16KBYTE
public byte PackageMode; //1 包模式。0 小包模式,分包 600 byte。1 大包模式,分包 16K byte。
public byte BarcodeFlag; //1 是否设置了条码 ID如果设置了该字节第 0 位为 1否则为0
public ushort ProgramNumber; //2 控制器上已有节目个数
public uint CurrentProgram; //4 当前节目名
public byte ScreenLockStatus; //1 Bit0 是否屏幕锁定1b0 无屏幕锁定1b1 –屏幕锁定
public byte ProgramLockStatus;//1 Bit0 是否节目锁定1b0 无节目锁定1b1 –节目锁定
public byte RunningMode; //1 控制器运行模式
public byte RTCStatus; //1 RTC 状态 0x00 RTC 异常 0x01 RTC 正常
public ushort RTCYear; //2 年
public byte RTCMonth; //1 月
public byte RTCDate; //1 日
public byte RTCHour; //1 小时
public byte RTCMinute; //1 分钟
public byte RTCSecond; //1 秒
public byte RTCWeek; //1 星期,范围为 1~77 表示周日
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public byte[] Temperature1; //3 温度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public byte[] Temperature2; //3 温度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] Humidity; //2 湿度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] Noise; //2 噪声传感器当前值(除以 10 为当前值)针对 BX - ZS(485) 0xffff 时无效
public byte Reserved; //1 保留字节
public byte LogoFlag; //1 0表示未设置 Logo 节目 1表示设置了 Logo 节目
public ushort PowerOnDelay; //2 0未设置开机延时 1开机延时时长
public ushort WindSpeed; //2 风速(除以 10 为当前值) 0xfffff 时无效
public ushort WindDirction; //2 风向(当前值) 0xfffff 时无效
public ushort PM2_5; //2 PM2.5 值(当前值)0xfffff 时无效
public ushort PM10; //2 PM10 值(当前值)0xfffff 时无效
public ushort ExtendParaLen; // 2 0x40 扩展参数长度
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] ControllerName; // 16 LEDCON01 控制器名称限制为 16 个字节长度(全是 0x00 表示屏参丢失,参数无效,上位机空白显示)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 44)]
public byte[] ScreenLocation; // 44 0 屏幕安装地址限制为 44 个字节长度(全是 0x00 表示屏参丢失,参数无效,上位机空白显示)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] NameLocalationCRC32;// 4 控制器和屏幕安装地址共 60 个字节的CRC32 校验值,该值是为了便于上位机区分此处 64 个字节是表示控制器名称还是用来表示控制器名称和屏幕安装地址,进而采取不同的处理策略为了保持兼容,下位机不对该值进行验证
}
/*! ********************************************************************************************************************
* cmd_tcpNetworkSearch_6G
* ipIP port;
* retData NetSearchCmdRet:
* 0
* PM2.5 NetSearchCmdRet:
* 6
***********************************************************************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_tcpNetworkSearch_6G(byte[] ip, ushort port, ref NetSearchCmdRet retData);
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct NetSearchCmdRet_Web
{
//Oint8 CmdGroup; //1 0xA4 命令组 //Oint8 Cmd; //1 0x83 命令编号 //Oint16 Status; //2 控制器状态//Oint16 Error; //2 错误状态寄存器//Oint16 DataLen; // 2 0xA4 数据长度
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public byte[] Mac; //6 Mac 地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] IP; //4 控制器 IP 地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] SubNetMask; //4 子网掩码
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] Gate; //4 网关
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] Port; //2 端口
public byte IPMode; //1 1 表示 DHCP 2 表示手动设置
public byte IPStatus; //1 0 表示 IP 设置失败 1 表示 IP 设置成功
public byte ServerMode; //1 0 Bit[0]表示服务器模式是否使能1 使能0 –禁止 Bit[1]表示服务器模式1 web 模式0 –普通模式
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] ServerIPAddress;// 4 服务器 IP 地址
public ushort ServerPort; //2 服务器端口号
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public byte[] ServerAccessPassword;// 8 服务器访问密码
public ushort HeartBeatInterval;//2 20S 心跳时间间隔(单位:秒)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
public byte[] CustomID; //12 用户自定义 ID作为网络 ID 的前半部分,便于用户识别其控制卡
//Web 模式下返回下述 5 项的实际值,否则不上传下述 5 项
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] WebUserID; // 128 0 WEB 平台用户 id
public uint GroupNum; // 4 0 屏幕组号
public byte DomainFlag; // 1 0 域名标志 0 - 无域名1—域名
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] DomainName; // 128 域名名称 当 DomainFlag 为 1 时下发
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] WebControllerName;// 128 LED00001 WEB 平台控制器名称
//Web 模式下返回下述 5 项 结束 ###################
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] BarCode; //16 条形码,作为网络 ID 的后半部分,用以实现网络 ID 的唯一性
public ushort ControllerType; //2 其中低位字节表示设备系列,而高位字节表示设备编号,例如 BX - 6Q2 应表示为[0x66, 0x02],其它型号依此类推。
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public byte[] FirmwareVersion;// 8 Firmware 版本号
public byte ScreenParaStatus; //1 控制器参数文件状态 0x00 控制器中没有参数配置文件以下返回的是控制器的默认参数。此时PC软件应提示用户必须先加载屏参。0x01 –控制器中有参数配置文件
public ushort Address; //2 0x0001 控制器地址控制器出厂默认地址为 0x0001(0x0000 地址将保留)控制除了对发送给自身地址的数据包进行处理外,还需对广播数据包进行处理。
public byte Baudrate; //1 0x00 波特率 0x00 –保持原有波特率不变 0x01 –强制设置为 9600 0x02 –强制设置为 57600
public ushort ScreenWidth; //2 192 显示屏宽度
public ushort ScreenHeight; //2 96 显示屏高度
public byte Color; //1 0x01 对于无灰度系统,单色时返回 1双色时返回 3三色时返回 7对于有灰度系统返回 255
public byte BrightnessAdjMode;//1 调亮模式 0x00 –手动调亮 0x01 –定时调亮 0x02 –自动调亮
public byte CurrentBrigtness; //1 当前亮度值
public byte TimingOnOff; //1 Bit0 定时开关机状态0 表示无定时开关机1 表示有定时开关机
public byte CurrentOnOffStatus;//1 开关机状态
public ushort ScanConfNumber; //2 扫描配置编号
public byte RowsPerChanel; //1 一路数据带几行
public byte GrayFlag; //1 对于无灰度系统,返回 0对于有灰度系
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] UnitWidth; //2 最小单元宽度
public byte modeofdisp; //1 6Q 显示模式 : 0 为 888, 1 为 565其余卡为 0
public byte NetTranMode; //1 当该字节为 0 时,网口通讯使用老的模式,即 UDP 和 TCP 均根据下面的PackageMode 字节确定包长,并且 UDP通讯时将大包分为小包每发送一小包做一下延时当该字节不为 0 时,网口通讯使用新的模式,即 UDP 的包长等于UDPPackageMode * 8KBYTE且不再分为小包将整包数据丢给协议栈TCP 的包长等于 PackageMode * 16KBYTE
public byte PackageMode; //1 包模式。0 小包模式,分包 600 byte。1 大包模式,分包 16K byte。
public byte BarcodeFlag; //1 是否设置了条码 ID如果设置了该字节第 0 位为 1否则为0
public ushort ProgramNumber; //2 控制器上已有节目个数
public uint CurrentProgram; //4 当前节目名
public byte ScreenLockStatus; //1 Bit0 是否屏幕锁定1b0 无屏幕锁定1b1 –屏幕锁定
public byte ProgramLockStatus;//1 Bit0 是否节目锁定1b0 无节目锁定1b1 –节目锁定
public byte RunningMode; //1 控制器运行模式
public byte RTCStatus; //1 RTC 状态 0x00 RTC 异常 0x01 RTC 正常
public ushort RTCYear; //2 年
public byte RTCMonth; //1 月
public byte RTCDate; //1 日
public byte RTCHour; //1 小时
public byte RTCMinute; //1 分钟
public byte RTCSecond; //1 秒
public byte RTCWeek; //1 星期,范围为 1~77 表示周日
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public byte[] Temperature1; //3 温度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public byte[] Temperature2; //3 温度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] Humidity; //2 湿度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] Noise; //2 噪声传感器当前值(除以 10 为当前值)针对 BX - ZS(485) 0xffff 时无效
public byte Reserved; //1 保留字节
public byte LogoFlag; //1 0表示未设置 Logo 节目 1表示设置了 Logo 节目
public ushort PowerOnDelay; //2 0未设置开机延时 1开机延时时长
public ushort WindSpeed; //2 风速(除以 10 为当前值) 0xfffff 时无效
public ushort WindDirction; //2 风向(当前值) 0xfffff 时无效
public ushort PM2_5; //2 PM2.5 值(当前值)0xfffff 时无效
public ushort PM10; //2 PM10 值(当前值)0xfffff 时无效
public ushort ExtendParaLen; // 2 0x40 扩展参数长度
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] ControllerName; // 16 LEDCON01 控制器名称限制为 16 个字节长度(全是 0x00 表示屏参丢失,参数无效,上位机空白显示)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 44)]
public byte[] ScreenLocation; // 44 0 屏幕安装地址限制为 44 个字节长度(全是 0x00 表示屏参丢失,参数无效,上位机空白显示)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] NameLocalationCRC32;// 4 控制器和屏幕安装地址共 60 个字节的CRC32 校验值,该值是为了便于上位机区分此处 64 个字节是表示控制器名称还是用来表示控制器名称和屏幕安装地址,进而采取不同的处理策略为了保持兼容,下位机不对该值进行验证
}
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_tcpNetworkSearch_6G_Web(byte[] ip, ushort port, ref NetSearchCmdRet_Web retData);
/*! ***********************************************************************************************************************
* cmd_uart_search_Net_6G()
*
* uartPort ,"COM3"
* nBaudRateType 19600; 257600;
* retData NetSearchCmdRet:
* 0
* PM2.5 NetSearchCmdRet:
* 6
***************************************************************************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int cmd_uart_search_Net_6G(ref NetSearchCmdRet retData, byte[] uartPort, byte nBaudRateType);
}
}