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

3684 lines
204 KiB

1 year ago
using System;
using System.Runtime.InteropServices;
namespace SSWMS.Server
{
public class bxdualsdk
{
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, //双基色1:G+R
eDOUBLE_COLOR_PIXTYPE_2, //双基色2:R+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 校验
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct BXG6_Time_Counter
{
public byte UnitColor; //长度为1或4;有灰度时是4; 颜色属性;
public byte UnitMode; //1 0x00 计时模式:0x00 –正计时累加 0x01 –倒计时累加 0x02 –正计时不累加 0x03 –倒计时不累加
public ushort DestYear; //2 目标年
public byte DestMonth; //1 目标月
public byte DestDate; //1 目标日
public byte DestHour; //1 目标时
public byte DestMinute; //1 目标分
public byte DestSecond; //1 目标秒
public byte TimerFormat; //1 Bit0–天, 1 表示显示, 0表示不显示; Bit1–时; Bit2–分; Bit3–秒; Bit4–天单位,1表示显示,0不显示;Bit5–时 Bit6–分 Bit7–秒
public byte DayLen; //1 0x00 单元长度 0x00 –长度由控制器自动计算其它–固定长度
public byte HourLen; //1 0x00 同上
public byte MinuteLen; //1 0x00 同上
public byte SecondLen; //1 0x00 同上
//Ouint32 Dataoffset; //4 在数据文件中的偏移量,下面的字模数据放入数据文件中
//Ouint32 DataLen; //4 该字模数据长度
//Ouint8* FontData; //N 字模数据,具体的字模格式,请参考附录 1字模个数为 14,其顺序依次为: 0, …, 9, 天,时,分,秒
};
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct ConfigFile_G6
{
public byte FileType; //文件类型
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] ControllerName; // 控制器名称
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
byte[] ScreenAddress; //屏幕安装地址限制为 24个字节长度
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 modeofdisp; // 6Q 系列显示模式: 0为888, 1为565,对其余控制卡该字节为0
public byte TipLanguage; //0 表示上位机软件是中文版,底层固件在显示提示信息时需调用内置的中文提示信息
//1 表示上位机软件是英文版,底层固件在显示提示信息时需调用内置的英文提示信息
//255 表示上位机软件是其他语言版,底层固件在显示提示信息时需调用自定义提示信息
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
public byte[] Reserved; // 5个备用字节
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 DevideScreenMode; /* 6Q2
0*/
public byte Reserved2; //备用字节
public byte Default_brightness; /*AX
0*/
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
public byte[] Backup; // 备用值字节
public 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 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 ushort 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 的唯一性
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] 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 控制器上已有节目个数
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] CurrentProgram; //4 当前节目名
public byte ScreenLockStatus; //1 Bit0 –是否屏幕锁定,1b’0 –无屏幕锁定,1b’1 –屏幕锁定
public byte ProgramLockStatus;//1 Bit0 –是否节目锁定,1b’0 –无节目锁定,1’b1 –节目锁定
public byte RunningMode; //1 控制器运行模式
public byte RTCStatus; //1 RTC 状态 0x00 – RTC 异常 0x01 – RTC 正常
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] 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~7,7 表示周日
[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:开机延时时长
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] WindSpeed; //2 风速(除以 10 为当前值) 0xfffff 时无效
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] WindDirction; //2 风向(当前值) 0xfffff 时无效
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] PM2_5; //2 PM2.5 值(当前值)0xfffff 时无效
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] PM10; //2 PM10 值(当前值)0xfffff 时无效
//[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
//public byte[] Reserved2; //24 保留字
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 个字节是表示控制器名称还是用来表示控制器名称和屏幕安装地址,进而采取不同的处理策略为了保持兼容,下位机不对该值进行验证
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] PM100; //2 风向(当前值) 0xfffff 时无效
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] AtmosphericPressure; //2 PM2.5 值(当前值)0xfffff 时无效
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] illumination; //2 PM10 值(当前值)0xfffff 时无效
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct NetSearchCmdRet_Web
{
byte CmdGroup; //1 0xA4 命令组 //byte Cmd; //1 0x83 命令编号 //Oint16 Status; //2 控制器状态//Oint16 Error; //2 错误状态寄存器//Oint16 DataLen; // 2 0xA4 数据长度
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
byte Mac; //6 Mac 地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
byte IP; //4 控制器 IP 地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
byte SubNetMask; //4 子网掩码
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
byte Gate; //4 网关
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
byte Port; //2 端口
byte IPMode; //1 1 表示 DHCP 2 表示手动设置
byte IPStatus; //1 0 表示 IP 设置失败 1 表示 IP 设置成功
byte ServerMode; //1 0 Bit[0]表示服务器模式是否使能:1 –使能,0 –禁止 Bit[1]表示服务器模式:1 –web 模式,0 –普通模式
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
byte ServerIPAddress;// 4 服务器 IP 地址
ushort ServerPort; //2 服务器端口号
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
byte ServerAccessPassword;// 8 服务器访问密码
public ushort HeartBeatInterval;//2 20S 心跳时间间隔(单位:秒)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
byte CustomID; //12 用户自定义 ID,作为网络 ID 的前半部分,便于用户识别其控制卡
//Web 模式下返回下述 5 项的实际值,否则不上传下述 5 项
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
byte WebUserID; // 128 0 WEB 平台用户 id
public int GroupNum; // 4 0 屏幕组号
byte DomainFlag; // 1 0 域名标志 0 - 无域名,1—域名
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
byte DomainName; // 128 域名名称 当 DomainFlag 为 1 时下发
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
byte WebControllerName;// 128 LED00001 WEB 平台控制器名称
//Web 模式下返回下述 5 项 结束 ###################
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
byte BarCode; //16 条形码,作为网络 ID 的后半部分,用以实现网络 ID 的唯一性
ushort ControllerType; //2 其中低位字节表示设备系列,而高位字节表示设备编号,例如 BX - 6Q2 应表示为[0x66, 0x02],其它型号依此类推。
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
byte FirmwareVersion;// 8 Firmware 版本号
byte ScreenParaStatus; //1 控制器参数文件状态 0x00 –控制器中没有参数配置文件,以下返回的是控制器的默认参数。此时,PC软件应提示用户必须先加载屏参。0x01 –控制器中有参数配置文件
ushort Address; //2 0x0001 控制器地址控制器出厂默认地址为 0x0001(0x0000 地址将保留)控制除了对发送给自身地址的数据包进行处理外,还需对广播数据包进行处理。
byte Baudrate; //1 0x00 波特率 0x00 –保持原有波特率不变 0x01 –强制设置为 9600 0x02 –强制设置为 57600
ushort ScreenWidth; //2 192 显示屏宽度
ushort ScreenHeight; //2 96 显示屏高度
byte Color; //1 0x01 对于无灰度系统,单色时返回 1,双色时返回 3,三色时返回 7;对于有灰度系统,返回 255
byte BrightnessAdjMode;//1 调亮模式 0x00 –手动调亮 0x01 –定时调亮 0x02 –自动调亮
byte CurrentBrigtness; //1 当前亮度值
byte TimingOnOff; //1 Bit0 –定时开关机状态,0 表示无定时开关机,1 表示有定时开关机
byte CurrentOnOffStatus;//1 开关机状态
ushort ScanConfNumber; //2 扫描配置编号
byte RowsPerChanel; //1 一路数据带几行
byte GrayFlag; //1 对于无灰度系统,返回 0;对于有灰度系
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
byte UnitWidth; //2 最小单元宽度
byte modeofdisp; //1 6Q 显示模式 : 0 为 888, 1 为 565,其余卡为 0
byte NetTranMode; //1 当该字节为 0 时,网口通讯使用老的模式,即 UDP 和 TCP 均根据下面的PackageMode 字节确定包长,并且 UDP通讯时,将大包分为小包,每发送一小包做一下延时当该字节不为 0 时,网口通讯使用新的模式,即 UDP 的包长等于UDPPackageMode * 8KBYTE,且不再分为小包,将整包数据丢给协议栈TCP 的包长等于 PackageMode * 16KBYTE
byte PackageMode; //1 包模式。0 小包模式,分包 600 byte。1 大包模式,分包 16K byte。
byte BarcodeFlag; //1 是否设置了条码 ID如果设置了,该字节第 0 位为 1,否则为0
ushort ProgramNumber; //2 控制器上已有节目个数
int CurrentProgram; //4 当前节目名
byte ScreenLockStatus; //1 Bit0 –是否屏幕锁定,1b’0 –无屏幕锁定,1b’1 –屏幕锁定
byte ProgramLockStatus;//1 Bit0 –是否节目锁定,1b’0 –无节目锁定,1’b1 –节目锁定
byte RunningMode; //1 控制器运行模式
byte RTCStatus; //1 RTC 状态 0x00 – RTC 异常 0x01 – RTC 正常
ushort RTCYear; //2 年
byte RTCMonth; //1 月
byte RTCDate; //1 日
byte RTCHour; //1 小时
byte RTCMinute; //1 分钟
byte RTCSecond; //1 秒
byte RTCWeek; //1 星期,范围为 1~7,7 表示周日
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
byte Temperature1; //3 温度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
byte Temperature2; //3 温度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
byte Humidity; //2 湿度传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
byte Noise; //2 噪声传感器当前值(除以 10 为当前值)针对 BX - ZS(485) 0xffff 时无效
byte Reserved; //1 保留字节
byte LogoFlag; //1 0:表示未设置 Logo 节目 1:表示设置了 Logo 节目
ushort PowerOnDelay; //2 0:未设置开机延时 1:开机延时时长
ushort WindSpeed; //2 风速(除以 10 为当前值) 0xfffff 时无效
ushort WindDirction; //2 风向(当前值) 0xfffff 时无效
ushort PM2_5; //2 PM2.5 值(当前值)0xfffff 时无效
ushort PM10; //2 PM10 值(当前值)0xfffff 时无效
//byte Reserved2[24]; //24 保留字
ushort ExtendParaLen; // 2 0x40 扩展参数长度
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
byte ControllerName; // 16 LEDCON01 控制器名称限制为 16 个字节长度(全是 0x00 表示屏参丢失,参数无效,上位机空白显示)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 44)]
byte ScreenLocation; // 44 0 屏幕安装地址限制为 44 个字节长度(全是 0x00 表示屏参丢失,参数无效,上位机空白显示)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
byte NameLocalationCRC32;// 4 控制器和屏幕安装地址共 60 个字节的CRC32 校验值,该值是为了便于上位机区分此处 64 个字节是表示控制器名称还是用来表示控制器名称和屏幕安装地址,进而采取不同的处理策略为了保持兼容,下位机不对该值进行验证
};
[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;// 当前亮度值
public short programeNumber;// 控制器上已有节目个数
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] currentProgram;//当前节目名
public byte screenLockStatus;//是否屏幕锁定,0 –无屏幕锁定, 1 –屏幕锁定
public byte programLockStatus; //是否节目锁定, 0 –无节目锁定,1 –节目锁定
public byte runningMode;//控制器运行模式
public byte RTCStatus;//RTC 状态0x00 – RTC 异常 0x01 – RTC 正常
public short RTCYear;//年
public byte RTCMonth;//月
public byte RTCDate;//日
public byte RTCHour;//时
public byte RTCMinute;//分
public byte RTCSecond;//秒
public byte RTCWeek;//星期 1--7
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public byte[] temperature1;//温度1传感器当前值
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public byte[] temperature2;//温度2传感器当前值
public short humidity;//湿度传感器当前值
public short noise;//噪声传感器当前值
public byte switchStatus; //测试按钮状态 0 –打开 1 –闭合
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
public byte[] CustomID; //用户自定义 ID,作为网络 ID 的前半部分,便于用户识别其控制卡
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] BarCode; //条形码,作为网络 ID 的后半部分,用以实现网络 ID 的唯一性
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct TimingReset
{
public byte rstMode; //复位模式 0x00 –取消定时复位功能 0x01 –周期复位, 此时 RstInterval 字段有效 0x02 –只在指定时间复位
public 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; 0Longx01 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; //发音人,范围0~5,共6种选择
public byte SoundVolum; //音量,范围0~10
public byte SoundSpeed; //语速,范围0~10
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;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct EQSoundDepend_6G
{
public byte VoiceID; // 1 1 语音队列中每个语音的 ID,从 0 开始
public EQSound_6G stSound;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct FileCRC16_G56
{
IntPtr fileAddre; //文件地址指針
ushort fileLen; //文件长度
ushort fileCRC16; //文件CRC16校验
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct FileCRC32_G56
{
IntPtr fileAddre; //文件地址指針
ushort fileLen; //文件长度
ushort fileCRC32; //文件CRC32校验
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DynamicAreaParams
{
public byte uAreaId;
public bxdualsdk.EQareaHeader_G6 oAreaHeader_G6;
public bxdualsdk.EQpageHeader_G6 stPageHeader;
public IntPtr fontName;
public IntPtr strAreaTxtContent;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct BxAreaFrmae_Dynamic_G6
{
public byte AreaFFlag; // 1 0x00 区域边框标志位;
public EQscreenframeHeader_G6 oAreaFrame;
public byte[] pStrFramePathFile;
};
/// <summary>
/// windows平台需要初始化SDK(默认如果没有初始化会自动初始化)
/// </summary>
/// <returns></returns>
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_InitSdk();
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern void bxDual_ReleaseSdk();
/// <summary>
/// 设置目标地址,即设置屏号/设置屏地址/设置控制器的屏号
/// </summary>
/// <param name="usDstAddr">2个字节长度,默认值0xfffe 为地址通配符</param>
/// <returns></returns>
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_set_screenNum_G56(ushort usDstAddr);
/// <summary>
/// 用于设置控制各种通讯方式每一包最大长度
/// 注:5E,6E,6Q系列最大数据长途64K(建议最大不要超过63*1024) 其他系列最大长度1K(1204)
/// </summary>
/// <param name="packetLen">数据包长度</param>
/// <returns></returns>
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_set_packetLen(ushort packetLen);
/// <summary>
/// 搜索控制器命令
/// </summary>
/// <param name="retData">请参考结构体Ping_data 所有回读参数都会通过结构体回调</param>
/// <returns></returns>
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_searchController(ref Ping_data retData);
/// <summary>
/// 搜索控制器命令-串口
/// </summary>
/// <param name="retData">请参考结构体Ping_data 所有回读参数都会通过结构体回调</param>
/// <param name="uartPort">串口号</param>
/// <returns></returns>
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_searchController(ref Ping_data retData, byte[] uartPort);
/*! ***********************************************************************************************************************
* cmd_uart_search_Net_6G()
*
* uartPort ,"COM3"
* nBaudRateType 19600; 257600;
* retData NetSearchCmdRet:
* 0
* PM2.5 NetSearchCmdRet:
* 6
***************************************************************************************************************************/
/// <summary>
/// 网络搜索命令,返回:温度传感器,空气,PM2.5等信息,详见 NetSearchCmdRet:参考结构体声明中的注释;
/// 针对 6代卡 的网络搜索命令
/// </summary>
/// <param name="retData">NetSearchCmdRet:参考结构体声明中的注释;</param>
/// <param name="uartPort">串口号,如:"COM3"</param>
/// <param name="nBaudRateType">1:9600; 2:57600;</param>
/// <returns></returns>
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_search_Net_6G(ref NetSearchCmdRet retData, byte[] uartPort, ushort nBaudRateType);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_search_Net_6G_Web(ref NetSearchCmdRet_Web retData, byte[] uartPort, ushort nBaudRateType);
/*! ***************************************************************
* bxDual_cmd_uart_ofsFormat
* uartPort baudRate
* 0
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsFormat(byte[] uartPort, byte baudRate);
/*! ***************************************************************
* bxDual_cmd_uart_ofsStartFileTransf
* uartPort baudRate
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsStartFileTransf(byte[] uartPort, byte baudRate);
/*! ***************************************************************
* bxDual_cmd_uart_ofsEndFileTransf
* uartPort baudRate
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsEndFileTransf(byte[] uartPort, byte baudRate);
/*! ***************************************************************
* bxDual_cmd_uart_ofsDeleteFormatFile
* uartPort baudRate
* fileNub:
* fileName
* 0
*
*
* fileName是4个字节 fileNub值为N就要把N个fileName拼接 fileName大小 = fileName4byte*N
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsDeleteFormatFile(byte[] uartPort, byte baudRate, short fileNub, byte[] fileName);
/*! ***************************************************************
* bxDual_cmd_uart_confDeleteFormatFile
* uartPort baudRate
* fileNub:
* fileName
* 0
*
*
Firmware
* fileName是4个字节 fileNub值为N就要把N个fileName拼接 fileName大小 = fileName4byte*N
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_confDeleteFormatFile(byte[] uartPort, byte baudRate, short fileNub, byte[] fileName);
/*! ***************************************************************
* bxDual_cmd_uart_ofsGetMemoryVolume
* uartPort baudRate
* totalMemVolume
* availableMemVolume
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsGetMemoryVolume(byte[] uartPort, byte baudRate, ref int totalMemVolume, ref int availableMemVolume);
/*! ***************************************************************
* bxDual_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 bxDual_cmd_uart_ofsWriteFile(byte[] uartPort, byte baudRate, byte[] fileName, byte fileType, uint fileLen, byte overwrite, IntPtr fileAddre);
/*! ***************************************************************
* bxDual_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 bxDual_cmd_uart_confWriteFile(byte[] uartPort, byte baudRate, byte[] fileName, byte fileType, int fileLen, byte overwrite, byte[] fileAddre);
/*! ***************************************************************
* bxDual_cmd_ofsStartReedFile
* ipIP port
* fileName
* fileSize
* fileCrcCRC
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsStartReedFile(byte[] uartPort, byte baudRate, byte[] fileName, int[] fileSize, int[] fileCrc);
/*! ***************************************************************
* bxDual_cmd_uart_confStartReedFile
* uartPort baudRate
* fileName
* fileSize
* fileCrcCRC
* 0
*
*
Firmware
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_confStartReedFile(byte[] uartPort, byte baudRate, byte[] fileName, int[] fileSize, int[] fileCrc);
/*! ***************************************************************
* bxDual_cmd_uart_ofsReedFileBlock
* uartPort baudRate
* fileName
* fileAddre
* 0
*
* OFS
* fileAddre大小根据cmd_ofsStartReedFile函数回调值确定
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsReedFileBlock(byte[] uartPort, byte baudRate, byte[] fileName, byte[] fileAddre);
/*! ***************************************************************
* bxDual_cmd_uart_confReedFileBlock(
* uartPort baudRate
* fileName
* fileAddre
* 0
*
*
Firmware
* fileAddre大小根据cmd_ofsStartReedFile函数回调值确定
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_confReedFileBlock(byte[] uartPort, byte baudRate, byte[] fileName, byte[] fileAddre);
/*! ***************************************************************
* bxDual_cmd_uart_ofsReedDirBlock
* uartPort baudRate
* fileName
* fileAddre
* 0
* 使
*
* 使
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsReedDirBlock(byte[] uartPort, byte baudRate, ref GetDirBlock_G56 dirBlock);
/*! ***************************************************************
* bxDual_cmd_ofs_freeDirBlock
*
* dirBlock: 使
* 0
* cmd_ofsReedDirBlock所创建的节目列表dirBlock
*
* dirBlock dirBlock不再使用时用此函数释放文件列表
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsFreeDirBlock(ref GetDirBlock_G56 dirBlock);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_ofsGetTransStatus(byte[] uartPort, byte baudRate, byte[] r_w, byte[] fileName, int[] fileCrc, int[] fileOffset);
/*! ***************************************************************
* bxDual_cmd_uart_sendConfigFile(
* uartPort baudRate
configData ConfigFile
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_sendConfigFile(byte[] uartPort, byte baudRate, ref ConfigFile configData);
/*! ***************************************************************
* bxDual_cmd_uart_programLock
* uartPort baudRate
* 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 bxDual_cmd_uart_programLock(byte[] uartPort, byte baudRate, byte nonvolatile, byte locked, byte[] name, uint lockDuration);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_uart_programLock_6G(byte[] uartPort, byte baudRate, byte nonvolatile, byte locked, byte[] name, int lockDuration);
/*! ***************************************************************
** end **
/*! ***************************************************************/
/*! ***************************************************************
* cmd_AT_setWifiSsidPwd
* ssidWIFI ssidpwdWIFI密码
* 0
* wifi卡的 ssid pwd
*
* UDP
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_AT_setWifiSsidPwd(byte[] ssid, byte[] pwd);
/*! ***************************************************************
* cmd_AT_getWifiSsidPwd
* ssidWIFI ssidpwdWIFI密码
* 0
* WIFI卡ssid pwd
*
* UDP
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_AT_getWifiSsidPwd(byte[] ssid, byte[] pwd);
/*! ***************************************************************
** UDP通讯命令 **
/*! ***************************************************************/
/*! ***************************************************************
* cmd_udpNetworkSearch
* retData heartbeatData
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_udpNetworkSearch(ref heartbeatData retData); //网络搜索
/*! ********************************************************************************************************************
* cmd_udpNetworkSearch_6G
* retData : ; :NetSearchCmdRet
* 0 ;
* PM2.5 NetSearchCmdRet:
* 6
***********************************************************************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_udpNetworkSearch_6G(ref NetSearchCmdRet retData);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_udpNetworkSearch_6G_Web(ref NetSearchCmdRet_Web retData);
/*! ***************************************************************
* cmd_udpPing
* retData Ping_data
* 0
* UDP ping
*
* 使
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_udpPing(ref Ping_data retData); //UDP ping命令并返回IP地址
/*! ***************************************************************
* cmd_udpSetMac
* mac MAC地址
* 0
* MAC
*
* MAC地址的时候调用
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_udpSetMac(byte[] mac);
/*! ***************************************************************
* cmd_udpSetIP
*
byte mode;
0x00 PC
0x01 IPDHCP
0x02 IPStatic IP
0x03 IP
byte ip[] // 要设置的IP地址//设置IP
byte subnetMask[] ;
byte gateway[];
short port;
byte serverMode;
byte serverIP[]; IP
short serverPort;
byte password[]; 访
short heartbeat; 20
byte netID[12]; ID
* 0
* IP
*
* IP MAC地址都赋字符串 byte ip[] = "192.168.0.199" 使
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_udpSetIP(byte mode, byte[] ip, byte[] subnetMask, byte[] gateway, short port, byte serverMode, byte[] serverIP, short serverPort, byte[] password, short heartbeat, byte[] netID);// 由于传入参数到内部都需要转换没有使用结构体
/*! ***************************************************************
/**UDP CMD END**/
/*! ***************************************************************/
/*! ***************************************************************
/** TCP命令 控制器维护命令 **/
/*! ***************************************************************/
/*! ***************************************************************
* cmd_sysReset
* ip IP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_sysReset(byte[] ip, ushort port);
/*! ***************************************************************
* cmd_tcpPing
* ipIP port retDataPing_data
* 0
* TCP方式获取到控制器相关属性和IP地址
*
* UDP PING命令获取到的参数相同
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_tcpPing(byte[] ip, ushort port, ref Ping_data retData);
/*! ***************************************************************
* cmd_check_time
* ipIP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_check_time(byte[] ip, ushort port);
/*!
*
* sPortName : "\\\\.\\COM1";
* nBaudRateIndex: 1(9600); 2(57600);
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_check_time_uart(byte[] uartPort, byte baudRate);
/*! ********************************************************************************************************************
* cmd_tcpNetworkSearch_6G
* ipIP port;
* retData NetSearchCmdRet:
* 0
* PM2.5 NetSearchCmdRet:
* 6
***********************************************************************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_tcpNetworkSearch_6G(byte[] ip, ushort port, ref NetSearchCmdRet retData);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_tcpNetworkSearch_6G_Web(byte[] ip, ushort port, ref NetSearchCmdRet_Web retData);
/*! ***************************************************************
* cmd_coerceOnOff
* ipIP portonOff0x01 0x00
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_coerceOnOff(byte[] ip, ushort port, byte onOff);
/*!
*
* sPortName : "\\\\.\\COM1";
* nBaudRateIndex: 1(9600); 2(57600);
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_coerceOnOff_uart(byte[] sPortName, byte nBaudRateIndex, byte nOnOff);
/*! ***************************************************************
* cmd_timingOnOff
* ipIP portgroupNum dataTimingOnOff结构体的地址
* 0
*
*
* groupNum值是n组情况,data大小 = n * TimingOnOff
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_timingOnOff(byte[] ip, ushort port, byte groupNum, byte[] data);
/*! ***************************************************************
* cmd_cancelTimingOnOff
* ipIP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_cancelTimingOnOff(byte[] ip, ushort port);
/*! ***************************************************************
* cmd_setBrightness
* ipIP port brightness
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setBrightness(byte[] ip, ushort port, ref Brightness brightness);
/*!
*
* sPortName : "\\\\.\\COM1";
* nBaudRateIndex: 1(9600); 2(57600);
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setBrightness_uart(byte[] sPortName, byte nBaudRateIndex, ref Brightness brightness);
/*! ***************************************************************
* cmd_readControllerID
* ipIP port ControllerIDID
* 0
* ID
*
* ControllerID是8个字节 char data[8];
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_readControllerID(byte[] ip, ushort port, byte[] ControllerID);
/*! ***************************************************************
* cmd_screenLock
* ipIP port
* nonvolatile 0x00 0x01
* lock 0x00 0x01
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_screenLock(byte[] ip, ushort port, byte nonvolatile, byte locked);
/*! ***************************************************************
* 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 bxDual_cmd_programLock(byte[] ip, ushort port, byte nonvolatile, byte locked, byte[] name, uint lockDuration);
/*! ***************************************************************
* cmd_check_controllerStatus
* ipIP port controllerStatusControllerStatus_G56
* 0
*
*
* ControllerStatus_G56和协议时对应的可以参考协议的具体用法
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_check_controllerStatus(byte[] ip, ushort port, ref ControllerStatus_G56 controllerStatus);
/*! ***************************************************************
* cmd_setPassword
* ipIP port oldPassword newPassword新密码
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setPassword(byte[] ip, ushort port, byte[] oldPassword, byte[] newPassword);
/*! ***************************************************************
* cmd_deletePassword
* ipIP port password
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_deletePassword(byte[] ip, ushort port, byte[] password);
/*! ***************************************************************
* cmd_setDelayTime
* ipIP port delayTime
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setDelayTime(byte[] ip, ushort port, short delayTime);
/*! ***************************************************************
* cmd_setBtnFunc
* ipIP port btnMode 0x00 0x01 沿 0x02
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setBtnFunc(byte[] ip, ushort port, byte btnMode);
/*! ***************************************************************
* cmd_setTimingReset
* ipIP port cmdDataTimingReset
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setTimingReset(byte[] ip, ushort port, ref TimingReset cmdData);
/*! ***************************************************************
* cmd_setDispMode
* ipIP port
* dispMode BX-5E系列控制器
* Bit0 / 0 1
* Bit1使 1 使 0
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setDispMode(byte[] ip, ushort port, byte dispMode);
/*! ***************************************************************
* cmd_battieTime
* ipIP port
* mode
* 0x00:
* 0x01:
* 0x02:
* battieData BattleTime
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_battieTime(byte[] ip, ushort port, byte mode, ref BattleTime battieData);
/*! ***************************************************************
* cmd_getStopwatch
* ipIP port
* mode
* 0x00:
* 0x01:
* 0x02:
* timeValue
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_getStopwatch(byte[] ip, ushort port, byte mode, ref int timeValue);
/*! ***************************************************************
* cmd_getSensorBrightnessValue
* ipIP port
* brightnessValue
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_getSensorBrightnessValue(byte[] ip, ushort port, ref int brightnessValue);
/*! ***************************************************************
* cmd_setSpeedAdjust
* ipIP port
* speed
0.1 256
0-255 使
0
使
LED
0
0 1
0.1
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setSpeedAdjust(byte[] ip, ushort port, short speed);
/*! ***************************************************************
* cmd_setScreenAddress
* ipIP port
* address
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_setScreenAddress(byte[] ip, ushort port, short address);
/** TCP OFS_CMD**/
/*! ***************************************************************
* cmd_ofsFormat
* ipIP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsFormat(byte[] ip, ushort port);
/*! ***************************************************************
* bxDual_cmd_ofsStartFileTransf
* ipIP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsStartFileTransf(byte[] ip, ushort port);
/*! ***************************************************************
* bxDual_cmd_ofsEndFileTransf
* ipIP port
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsEndFileTransf(byte[] ip, ushort port);
/*! ***************************************************************
* bxDual_cmd_ofsDeleteFormatFile
* ipIP port
* fileNub:
* fileName
* 0
*
*
* fileName是4个字节 fileNub值为N就要把N个fileName拼接 fileName大小 = fileName4byte*N
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsDeleteFormatFile(byte[] ip, ushort port, short fileNub, byte[] fileName);
/*! ***************************************************************
* bxDual_cmd_confDeleteFormatFile
* ipIP port
* fileNub:
* fileName
* 0
*
*
Firmware
* fileName是4个字节 fileNub值为N就要把N个fileName拼接 fileName大小 = fileName4byte*N
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_confDeleteFormatFile(byte[] ip, ushort port, short fileNub, byte[] fileName);
/*! ***************************************************************
* bxDual_cmd_ofsGetMemoryVolume
* ipIP port
* totalMemVolume
* availableMemVolume
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsGetMemoryVolume(byte[] ip, ushort port, ref int totalMemVolume, ref int availableMemVolume);
/*! ***************************************************************
* bxDual_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 bxDual_cmd_ofsWriteFile(byte[] ip, ushort port, byte[] fileName, byte fileType, uint fileLen, byte overwrite, IntPtr fileAddre);
/*! ***************************************************************
* bxDual_cmd_ofsWriteFile
* ipIP port
* fileName
* fileType
* fileLen
* fileAddre
* overwrite 1 0 1
* 0
*
*
Firmware
* 便
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_confWriteFile(byte[] ip, ushort port, byte[] fileName, byte fileType, int fileLen, byte overwrite, byte[] fileAddre);
/*! ***************************************************************
* bxDual_cmd_ofsStartReedFile
* ipIP port
* fileName
* fileSize
* fileCrcCRC
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsStartReedFile(byte[] ip, ushort port, byte[] fileName, ref uint fileSize, ref uint fileCrc);
/*! ***************************************************************
* bxDual_cmd_confStartReedFile
* ipIP port
* fileName
* fileSize
* fileCrcCRC
* 0
*
*
Firmware
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_confStartReedFile(byte[] ip, ushort port, byte[] fileName, ref uint fileSize, ref uint fileCrc);
/*! ***************************************************************
* bxDual_cmd_ofsReedFileBlock
* ipIP port
* fileName
* fileAddre
* 0
*
* OFS
* fileAddre大小根据bxDual_cmd_ofsStartReedFile函数回调值确定
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsReedFileBlock(byte[] ip, ushort port, byte[] fileName, byte[] fileAddre);
/*! ***************************************************************
* bxDual_cmd_confReedFileBlock(
* ipIP port
* fileName
* fileAddre
* 0
*
*
Firmware
* fileAddre大小根据bxDual_cmd_ofsStartReedFile函数回调值确定
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_confReedFileBlock(byte[] ip, ushort port, byte[] fileName, byte[] fileAddre);
/*! ***************************************************************
* bxDual_cmd_ofsReedDirBlock
* ipIP port
* dirBlock: GetDirBlock_G56结构体
* 0
*
*
* 使
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsReedDirBlock(byte[] ip, ushort port, ref GetDirBlock_G56 dirBlock);
/*! ***************************************************************
* bxDual_cmd_getFileAttr
*
* dirBlock:
* number:
* fileAttr FileAttribute_G56
* 0
*
*
* numberfileAttr.fileName 0
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_getFileAttr(ref GetDirBlock_G56 dirBlock, ushort number, ref FileAttribute_G56 fileAttr);
/*! ***************************************************************
* bxDual_cmd_ofs_freeDirBlock
*
* dirBlock: 使
* 0
* bxDual_cmd_ofsReedDirBlock所创建的节目列表dirBlock
*
* dirBlock dirBlock不再使用时用此函数释放文件列表
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofs_freeDirBlock(ref GetDirBlock_G56 dirBlock);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_ofsGetTransStatus(byte[] ip, ushort port, byte[] r_w, byte[] fileName, int[] fileCrc, int[] fileOffset);
/*! ***************************************************************
* bxDual_cmd_firmwareActivate
* ipIP portfirmwareFileName要激活的固件名称
* 0
*
*
* firmwareFileName 4F001
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_firmwareActivate(byte[] ip, ushort port, byte[] firmwareFileName);
/*! ***************************************************************
* bxDual_cmd_sendConfigFile(
* ipIP port
configData ConfigFile
* 0
* 5
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_sendConfigFile(byte[] ip, ushort port, ref ConfigFile configData);
/*! ***************************************************************
* bxDual_cmd_sendConfigFile_G6(
* ipIP port
configData ConfigFile
* 0
* 5
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_cmd_sendConfigFile_G6(byte[] ip, ushort port, ref ConfigFile_G6 configData);
/*! ***************************************************************
/** TCP命令 END **/
/*! ***************************************************************/
/*! ***************************************************************
* get_crc16
*
* 0
* CRC16值
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_get_crc16(ref FileCRC16_G56 crc16);
/*! ***************************************************************
* get_crc32
*
* 0
* CRC32值
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_get_crc32(ref FileCRC32_G56 crc32);
/*! ***************************************************************
***
***
***
***
/*! ***************************************************************/
/*! ***************************************************************
* bxDual_program_deleteProgram
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_deleteProgram();
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_freeBuffer(ref EQprogram program);
/*! ***************************************************************
* bxDual_program_pictureArea
* ipIP port
* programIDID号
* 0
*
*
* 1024X80 26
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureArea(int programID, byte[] ip, ushort port);
/*! ***************************************************************
* bxDual_program_setScreenParams_G56
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_setScreenParams_G56(E_ScreenColor_G56 color, ushort ControllerType, E_DoubleColorPixel_G56 doubleColor); //设置屏相关属性
//[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]public static extern int bxDual_program_setScreenParams_G6(E_ScreenColor_G56 color, ushort ControllerType, E_DoubleColorPixel_G56 doubleColor);
/*! ***************************************************************
* bxDual_program_addProgram
* programHEQprogramHeader
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_addProgram(ref EQprogramHeader programH);
//添加节目句柄
/*! ***************************************************************
* bxDual_program_changeProgramParams
* programHEQprogramHeader
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_changeProgramParams(ref EQprogramHeader programH);
/*! ***************************************************************
* bxDual_program_addPlayPeriodGrp
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_addPlayPeriodGrp(ref EQprogramppGrp_G56 header);
/*! ***************************************************************
* bxDual_program_AddArea
*
* areaIDID号
* aheaderEQareaHeader
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_AddArea(ushort areaID, ref EQareaHeader aheader);//添加区域句柄
/*! ***************************************************************
* bxDual_program_deleteArea
*
* areaIDID号
* 0
* areaID的区域
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_deleteArea(ushort areaID);
/*! ***************************************************************
* bxDual_program_picturesAreaAddTxt
* areaIDID号
* str
* fontName
* pheaderEQpageHeader
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_picturesAreaAddTxt(ushort areaID, byte[] str, byte[] fontName, ref EQpageHeader pheader);//画字符到区域
/*! ***************************************************************
* bxDual_program_picturesAreaChangeTxt
* areaIDID号
* str
* pheaderEQpageHeader
*
* 0
*
*
* EQpageHeader结构体里面的参数
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_picturesAreaChangeTxt(ushort areaID, byte[] str, ref EQpageHeader pheader);
/*! ***************************************************************
* bxDual_program_fontPath_picturesAreaAddTxt
* areaIDID号
* str
* fontPathName
* pheaderEQpageHeader
*
* 0
* --使
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_fontPath_picturesAreaAddTxt(ushort areaID, byte[] str, byte[] fontPathName, ref EQpageHeader pheader);
/*! ***************************************************************
* bxDual_program_fontPath_picturesAreaChangeTxt
* areaIDID号
* str
* pheaderEQpageHeader
* 0
* --使
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_fontPath_picturesAreaChangeTxt(ushort areaID, byte[] str, ref EQpageHeader pheader);
/*! ***************************************************************
* bxDual_program_IntegrateProgramFile
*
* programEQprogram
* 0
*
*
* EQprogram
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_IntegrateProgramFile(ref EQprogram program);
/*! ***************************************************************
* bxDual_program_picturesAreaAddFrame(
* areaIDID号
* EQareaframeHeaderEQareaframeHeader
* picPath:
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_picturesAreaAddFrame(ushort areaID, ref EQareaframeHeader afHeader, byte[] picPath);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_picturesAreaAddFrame_G6(ushort areaID, ref EQscreenframeHeader_G6 afHeader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_pictureAreaGetOnePage(
*
* areaIDID
* pageNum: 0
* 0
* n张图片
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureAreaGetOnePage(ushort areaID, int pageNum, ref getPageData pageData);
/*! ***************************************************************
* bxDual_program_picturesAreaAddPic
* areaIDID号
* picIDID号
* EQpageHeaderEQpageHeader
* picPath
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureAreaAddPic(ushort areaID, ushort picID, ref EQpageHeader pheader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_addFrame
* EQscreenframeHeaderEQscreenframeHeader
* picPath
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_addFrame(ref EQscreenframeHeader sfHeader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_changeFrame
* EQscreenframeHeaderEQscreenframeHeader
* picPath
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_changeFrame(ref EQscreenframeHeader sfHeader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_removeFrame
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_removeFrame();
/*! ***************************************************************
* bxDual_program_pictureAreaRemoveFrame
* areaIDID号
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureAreaRemoveFrame(ushort areaID);
/*! ***************************************************************
* bxDual_program_MoveArea()
* areaIDID号
* x:left坐标
* y:top坐标
* width:
* height:
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_MoveArea(ushort areaID, int x, int y, int width, int height);
/*! ***************************************************************
* bxDual_program_timeAreaAddContent()
* areaIDID号
* timeData:EQtimeAreaData_G56
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaAddContent(ushort areaID, ref EQtimeAreaData_G56 timeData);
/*! ***************************************************************
* bxDual_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 bxDual_program_fontPath_timeAreaAddContent(ushort areaID, ref EQtimeAreaData_G56 timeData);
/*! ***************************************************************
* bxDual_program_timeAreaChangeContent()
* areaIDID号
* timeData:EQtimeAreaData_G56
*
* 0
* EQtimeAreaData::fontName ==
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaChangeContent(ushort areaID, ref EQtimeAreaData_G56 timeData);
/*! ***************************************************************
* bxDual_program_timeAreaGetOnePage(
*
* areaIDID
* pageNum: 0
* 0
* n张图片
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaGetOnePage(ushort areaID, ref getPageData pageData);
/*! ***************************************************************
* bxDual_program_timeAreaAddAnalogClock(
*
* 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 bxDual_program_timeAreaAddAnalogClock(ushort areaID, ref EQAnalogClockHeader_G56 header, E_ClockStyle cStyle, ref ClockColor_G56 cColor);
/*! ***************************************************************
* bxDual_program_timeAreaChangeAnalogClock(
*
* 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 bxDual_program_timeAreaChangeAnalogClock(ushort areaID, ref EQAnalogClockHeader_G56 header, E_ClockStyle cStyle, ref ClockColor_G56 cColor);
/*! ***************************************************************
* bxDual_program_timeAreaChangeDialPic(
*
* areaID ID
* picPath:
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaChangeDialPic(ushort areaID, byte[] picPath);
/*! ***************************************************************
* bxDual_program_timeAreaChangeDialPicAdd_G56(
*
* areaID ID
* picPath:
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaChangeDialPicAdd_G56(ushort areaID, byte[] picAdd, int picLen);
/*! ***************************************************************
* bxDual_program_timeAreaRemoveDialPic(
*
* areaIDID
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaRemoveDialPic(ushort areaID);
//6代控制卡动态区功能开始:====================================================================================================================================================================================================================
/*
R+G G+R
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_SetDualPixel(E_DoubleColorPixel_G56 ePixelRGorGR);
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6LED屏幕上会清空原来的内容 strAreaTxtContent
pIP,nPort :IP; ;
IP;;
color :LED屏颜色类型 E_ScreenColor_G56
uAreaId :; 4uAreaId的取值范围0-340-3
uAreaX,uAreaY :LED显示屏的位置/00LED显示屏幕的最左上角开始显示动态区域
:LED屏宽不同BX-6E2X最小屏宽为80个显示单位LED屏如果只有64宽度0016
X的坐标为16(160),(80-16,);
uWidth,uHeight:;
fontName :"宋体"; nFontSize:12;
strAreaTxtContent:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaTxt_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaId, ushort uAreaX, ushort uAreaY,
ushort uWidth, ushort uHeight, IntPtr fontName, byte nFontSize, IntPtr strAreaTxtContent);
//6代更新动态区详细功能:仅显示动态区; 将要显示的一些特性/属性,封装在 EQareaHeader_G6 和 EQpageHeader_G6 结构体中;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaTxtDetails_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaId, ref EQareaHeader_G6 oAreaHeader_G6,
ref EQpageHeader_G6 stPageHeader, IntPtr fontName, IntPtr strAreaTxtContent);
/*
6;
使
pSerialName ::byte pSerialName[] = "COM3";
nBaudRateIndex :19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaTxtDetails_6G_Serial(byte[] pSerialName, byte nBaudRateIndex, E_ScreenColor_G56 color, byte uAreaId, ref EQareaHeader_G6 oAreaHeader_G6,
ref EQpageHeader_G6 stPageHeader, IntPtr fontName, IntPtr strAreaTxtContent);
//动态区文本关联节目:
//RelateProNum = 0 时,关联所有节目,与所有节目一起播放,如果没有节目,则不播放该动态区;
// > 0 时, 指定关联节目,要关联的节目ID存放在RelateProSerial[]中;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaTxtDetails_WithProgram_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaId, ref EQareaHeader_G6 oAreaHeader_G6,
ref EQpageHeader_G6 stPageHeader, IntPtr fontName, IntPtr strAreaTxtContent, ushort RelateProNum, ushort[] RelateProSerial);
/*
byte[] pSerialName : ,"COM1"
int nBaudRateIndex : 19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaTxtDetails_WithProgram_6G_Serial(byte[] pSerialName, int nBaudRateIndex, E_ScreenColor_G56 color, byte uAreaId, ref EQareaHeader_G6 oAreaHeader_G6,
ref EQpageHeader_G6 stPageHeader, IntPtr fontName, IntPtr strAreaTxtContent, ushort RelateProNum, ushort[] RelateProSerial);
//更新动态区图片:仅显示动态区;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaPic_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaId, ushort AreaX, ushort AreaY,
ushort AreaWidth, ushort AreaHeight, ref EQpageHeader_G6 pheader, IntPtr picPath);
/*
;
byte[] pSerialName : ,"COM1"
int nBaudRateIndex : 19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaPic_6G_Serial(byte[] pSerialName, int nBaudRateIndex, E_ScreenColor_G56 color, byte uAreaId, ushort AreaX, ushort AreaY,
ushort AreaWidth, ushort AreaHeight, ref EQpageHeader_G6 pheader, IntPtr picPath);
//动态区图片关联节目:
//RelateProNum = 0 时,关联所有节目,与所有节目一起播放,如果没有节目,则不播放该动态区;
// > 0 时, 指定关联节目,要关联的节目ID存放在RelateProSerial[]中;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaPic_WithProgram_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaId, ushort AreaX, ushort AreaY,
ushort AreaWidth, ushort AreaHeight, ref EQpageHeader_G6 pheader, IntPtr picPath, ushort RelateProNum, ushort[] RelateProSerial);
/*
:
byte[] pSerialName : ,"COM1"
int nBaudRateIndex : 19600; 257600;
RelateProNum : RelateProNum == 0
RelateProNum > 0 , ID存放在RelateProSerial[]
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaPic_WithProgram_G6_Serial(byte[] pSerialName, int nBaudRateIndex, E_ScreenColor_G56 color, byte uAreaId, ushort AreaX, ushort AreaY,
ushort AreaWidth, ushort AreaHeight, ref EQpageHeader_G6 pheader, IntPtr picPath, ushort RelateProNum, ushort[] RelateProSerial);
//同时更新多个动态区:仅显示动态区,不显示节目
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicAreaS_AddTxtDetails_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaCount, DynamicAreaParams[] pParams);
/*
:;
byte[] pSerialName : ,"COM1"
int nBaudRateIndex : 19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicAreaS_AddTxtDetails_6G_Serial(byte[] pSerialName, int nBaudRateIndex, E_ScreenColor_G56 color, byte uAreaCount, DynamicAreaParams[] pParams);
//同时更新多个动态区文本:并与节目关联,即与节目一起显示
//RelateProNum = 0 时,关联所有节目,与所有节目一起播放,如果没有节目,则不播放该动态区;
// > 0 时, 指定关联节目,要关联的节目ID存放在RelateProSerial[]中;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicAreaS_AddTxtDetails_WithProgram_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaCount, DynamicAreaParams[] pParams, ushort RelateProNum, ushort[] RelateProSerial);
/*
:
byte[] pSerialName : ,"COM1"
int nBaudRateIndex : 19600; 257600;
ushort RelateProNum : = 0
> 0 , ID存放在RelateProSerial[]
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicAreaS_AddTxtDetails_WithProgram_G6_Serial(byte[] pSerialName, int nBaudRateIndex, E_ScreenColor_G56 color, byte uAreaCount, DynamicAreaParams[] pParams, ushort RelateProNum, ushort[] RelateProSerial);
//同时更新多个动态区图片:仅显示动态区图片;不与节目关联/不与节目一起显示;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicAreaS_AddAreaPic_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaCount, DynamicAreaParams[] pParams);
/*
;//
byte[] pSerialName : ,"COM1"
int nBaudRateIndex : 19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicAreaS_AddAreaPic_6G_Serial(byte[] pSerialName, int nBaudRateIndex, E_ScreenColor_G56 color, byte uAreaCount, DynamicAreaParams[] pParams);
//同时更新多个动态区图片,并与节目关联,即与节目一起显示;
//RelateProNum = 0 时,关联所有节目,与所有节目一起播放,如果没有节目,则不播放该动态区;
// > 0 时, 指定关联节目,要关联的节目ID存放在RelateProSerial[]中;
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicAreaS_AddAreaPic_WithProgram_6G(byte[] pIP, int nPort, E_ScreenColor_G56 color, byte uAreaCount, DynamicAreaParams[] pParams, ushort RelateProNum, ushort[] RelateProSerial);
/*
byte[] pSerialName : ,"COM1"
int nBaudRateIndex : 19600; 257600;
ushort RelateProNum : = 0
> 0 , ID存放在RelateProSerial[]
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicAreaS_AddAreaPic_WithProgram_6G_Serial(byte[] pSerialName, int nBaudRateIndex, E_ScreenColor_G56 color, byte uAreaCount, DynamicAreaParams[] pParams, ushort RelateProNum, ushort[] RelateProSerial);
/*
/
TCP
pIP :IP地址"192.168.1.111";
nPort :TCP方式的端口号为:5005
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaInfos_6G(byte[] pIP, 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,
ref DynamicAreaBaseInfo_5G[] pInfo
);
/*
/
使
pSerialName ::byte pSerialName[] = "COM3";
nBaudRateIndex :19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaInfos_G6_Serial(byte[] pSerialName, byte nBaudRateIndex, 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,
ref DynamicAreaBaseInfo_5G[] pInfo
);
/*
/
RunMode:
//0— 动态区数据循环显示。
//1— 动态区数据显示完成后静止显示最后一页数据。
//2— 动态区数据循环显示,超过设定时间后数据仍未更新时不再显示
//3— 动态区数据循环显示,超过设定时间后数据仍未更新时显示Logo 信息, Logo 信息即为动态区域的最后一页信息4— 动态区数据顺序显示,显示完最后一页后就不再显示
Timeout: ;(s)
RelateAllPro: 1 0
RelateProNum:
RelateProSerial:
pSoundData:
*6th
0 -1
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaInfos_6G_V2(byte[] pIP, 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,
BxAreaFrmae_Dynamic_G6 oFrame,
byte nInfoCount,
DynamicAreaBaseInfo_5G[] pInfo,
ref EQSound_6G pSoundData
);
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct BXSound_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 时才发送该字节,否则不发送
};/*这个语音结构体BXSound_6G仅在动态区时使用;图文分区播放语音请使用:EQPicAreaSoundHeader_G6;*/
/*
/
使
pSerialName ::byte pSerialName[] = "COM3";
nBaudRateIndex :19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaInfos_6G_V2_Serial(byte[] pSerialName, byte nBaudRateIndex, 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,
BxAreaFrmae_Dynamic_G6 oFrame,
byte nInfoCount,
DynamicAreaBaseInfo_5G[] pInfo
);
/*
TCP方式删除动态区
uAreaId = 0xff:
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_DelArea_6G(byte[] pIP, int nPort, byte uAreaId);
/*
TCP方式删除多个动态区
pAreaID-ID数组
uAreaCount-ID数组中的个数
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_DelAreas_6G(byte[] pIP, int nPort, byte uAreaCount, byte[] pAreaID);
/*
uAreaId = 0xff:
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_DelArea_G6_Serial(byte[] pSerialName, byte nBaudRateIndex, byte uAreaId);
/*
pAreaID-ID数组
uAreaCount-ID数组中的个数
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_DelAreas_G6_Serial(byte[] pSerialName, byte nBaudRateIndex, byte uAreaCount, byte[] pAreaID);
/*
byte VoiceFlg; //1 1 语音属性 0:此条语音从头插入队列,且停止当前正在播放的语音 1:此条语音从头插入队列,不停止当前播报的语音 2:此条语音从尾插入队列
byte StoreFlag; //1 0 该值为 1 表示需要存储到 FLASH 中,掉电信息不丢失该值为 0 表示需要存储到 RAM 中,掉电信息丢失
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_InsertSoundIndepend(byte[] pIP, int nPort, ref EQSoundDepend_6G stSoundData, byte VoiceFlg, byte StoreFlag);
/*
5.4.3
stSoundDataEQSoundDepend_6G结构的一段内存首地址指针
nSoundDataCount:stSoundData指向内存地址空间中存放EQSoundDepend_6G个数
StoreFlag: 1 FLASH ; 0 RAM
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_UpdateSoundIndepend(byte[] pIP, int nPort, ref EQSoundDepend_6G stSoundData, ushort nSoundDataCount, byte StoreFlag);
//6代控制卡动态区功能结束.==============================================================================================================================================================================================================================
//5代控制卡动态区功能开始:====================================================================================================================================================================================================================
/*
6 bxDual_dynamicArea_AddAreaTxt_6G
strAreaTxtContent -
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaWithTxt_5G(byte[] pIP, 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.
);
/*
使
pSerialName ::byte pSerialName[] = "COM3";
nBaudRateIndex :19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaWithTxt_5G_Serial(byte[] pSerialName, int nBaudRateIndex, 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 bxDual_dynamicArea_AddAreaWithTxt_Point_5G(byte[] pIP, 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,
ref EQareaframeHeader oFrame,
//PageStyle begin--------
byte DisplayMode,
byte ClearMode,
byte Speed,
ushort StayTime,
byte RepeatTime,
//PageStyle End.
//显示内容和字体格式 begin---------
ref EQfontData oFont,
byte[] fontName,
byte[] strAreaTxtContent
//end.
);
/*
使
pSerialName ::byte pSerialName[] = "COM3";
nBaudRateIndex :19600; 257600;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaWithTxt_Point_5G_Serial(byte[] pSerialName, int nBaundRateIndex, 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,
ref EQareaframeHeader oFrame,
//PageStyle begin--------
byte DisplayMode,
byte ClearMode,
byte Speed,
ushort StayTime,
byte RepeatTime,
//PageStyle End.
//显示内容和字体格式 begin---------
ref EQfontData oFont,
byte[] fontName,
byte[] strAreaTxtContent
//end.
);
/*
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaWithPic_5G(byte[] pIP, 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---------
byte[] filePath
//end.
);
/*
使
pSerialName ::byte pSerialName[] = "COM3";
nBaudRateIndex :19600; 257600;
0
-1
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaWithPic_5G_Serial(byte[] pSerialName, int nBaudRateIndex, 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---------
byte[] filePath
//end.
);
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DynamicAreaBaseInfo_5G
{
public byte nType; // nType=1:文本; nType=2:图片;
//PageStyle begin---------------
public byte DisplayMode;
public byte ClearMode;
public byte Speed;
public ushort StayTime;
public byte RepeatTime;
//PageStyle End.
//文本显示内容和字体格式 begin---------
public EQfontData oFont;
public IntPtr fontName;
public IntPtr strAreaTxtContent;
//end.
//图片路径 begin---------
public IntPtr filePath;
//end.
}
[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下对齐)
}
/*
/
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode, EntryPoint = "bxDual_dynamicArea_AddAreaInfos_5G")]
public static extern int bxDual_dynamicArea_AddAreaInfos_5G(byte[] pIP, 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, Out] DynamicAreaBaseInfo_5G[] pInfo
);
/*
/
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaInfos_5G_Point(byte[] pIP, 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,
DynamicAreaBaseInfo_5G[] pInfo
);
/*
/
使
pSerialName ::byte pSerialName[] = "COM3";
nBaudRateIndex :19600; 257600;
0
-1
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_AddAreaInfos_5G_Serial(byte[] pSerialName, int nBaudRateIndex, 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,
DynamicAreaBaseInfo_5G[] pInfo
);
//删除动态区:
/*
uAreaId = 0xff:
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_DelArea_5G(byte[] pIP, int nPort, byte uAreaId);
/*
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_DelAreaS_5G(byte[] pIP, int nPort, byte uAreaCount, byte[] pAreaID);
/*
uAreaId = 0xff:
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_DelArea_G5_Serial(byte[] pSerialName, byte nBaudRateIndex, byte uAreaId);
/*
pAreaID-ID数组
uAreaCount-ID数组中的个数
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_dynamicArea_DelAreaS_G5_Serial(byte[] pSerialName, byte nBaudRateIndex, byte uAreaCount, byte[] pAreaID);
//5代控制卡动态区功能结束:====================================================================================================================================================================================================================
/*****************************以下为六代接口*******************************************/
/*! ***************************************************************
* bxDual_program_addProgram_G6(
*
* EQprogramHeader_G6EQprogramHeader_G6
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_addProgram_G6(ref EQprogramHeader_G6 programH);
/*! ***************************************************************
* bxDual_program_addPlayPeriodGrp_G6
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_addPlayPeriodGrp_G6(ref EQprogramppGrp_G56 header);
/*! ***************************************************************
* bxDual_program_deleteProgram_G6(
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_deleteProgram_G6();
/*! ***************************************************************
* bxDual_program_freeBuffer_G6(
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_freeBuffer_G6(ref EQprogram_G6 program);
/*! ***************************************************************
* bxDual_program_changeProgramParams_G6
* EQprogramHeader_G6EQprogramHeader_G6
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_changeProgramParams_G6(ref EQprogramHeader_G6 programH);
/*! ***************************************************************
* bxDual_program_addFrame_G6
* sfHeaderEQscreenframeHeader_G6
* picPath
* 0 -1
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_addFrame_G6(ref EQscreenframeHeader_G6 sfHeader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_changeFrame_G6
* sfHeaderEQscreenframeHeader_G6
* picPath
* 0 -1
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_changeFrame_G6(ref EQscreenframeHeader_G6 sfHeader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_removeFrame_G6
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_removeFrame_G6();
/*! ***************************************************************
* bxDual_program_addArea_G6
* areaIDID号
* aheaderEQareaHeader_G6
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_addArea_G6(ushort areaID, ref EQareaHeader_G6 aheader);
/*! ***************************************************************
* bxDual_program_deleteArea_G6
*
* areaIDID号
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_deleteArea_G6(ushort areaID);
/*! ***************************************************************
* bxDual_program_MoveArea_G6()
* areaIDID号
* x:left坐标
* y:top坐标
* width:
* height:
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_MoveArea_G6(ushort areaID, int x, int y, int width, int height);
/*! ***************************************************************
* bxDual_program_picturesAreaAddTxt_G6
* areaIDID号
* str
* fontName
* pheaderEQpageHeader_G6
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_picturesAreaAddTxt_G6(ushort areaID, byte[] str, byte[] fontName, ref EQpageHeader_G6 pheader);
/*! ***************************************************************
* bxDual_program_picturesAreaChangeTxt_G6
* areaIDID号
* str
* pheaderEQpageHeader_G6
*
* 0
* EQpageHeader_G6结构体中的参数
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_picturesAreaChangeTxt_G6(ushort areaID, IntPtr str, ref EQpageHeader_G6 pheader);
/*! ***************************************************************
* bxDual_program_fontPath_picturesAreaAddTxt_G6
* areaIDID号
* str
* fontPathName
* pheaderEQpageHeader_G6
* 0
* --使
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_fontPath_picturesAreaAddTxt_G6(ushort areaID, byte[] str, byte[] fontPathName, ref EQpageHeader_G6 pheader);
/*! ***************************************************************
* bxDual_program_fontPath_picturesAreaChangeTxt_G6
* areaIDID号
* str
* pheaderEQpageHeader_G6
*
* 0
* --使
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_fontPath_picturesAreaChangeTxt_G6(ushort areaID, byte[] str, ref EQpageHeader_G6 pheader);
/*! ***************************************************************
* bxDual_program_pictureAreaAddPic_G6
* areaIDID号
* picID001id对应一张图片
* EQpageHeader_G6EQpageHeader_G6
* picPath
* 0
*
* picID一致picID为0的图片
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureAreaAddPic_G6(ushort areaID, ushort picID, ref EQpageHeader_G6 pheader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_backGroundPic_G6
* areaIDID号
* picID001id对应一张图片
* EQpageHeader_G6EQpageHeader_G6
* picPath
* 0
*
* picID一致picID为0的图片
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_backGroundPic_G6(ushort areaID, ushort picID, ref EQpageHeader_G6 pheader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_backGroundColor_G6
* areaIDID号
* picID001id对应一张图片
* EQpageHeader_G6EQpageHeader_G6
* BGColorRGB888
* 0
*
* picID一致picID为0的图片
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_backGroundColor_G6(ushort areaID, ref EQpageHeader_G6 pheader, int BGColor);
/*! **************************************************************** bxDual_program_pictureAreaChangePic_G6
* areaIDID号
* picID
* EQpageHeader_G6EQpageHeader_G6
* picPath
* 0
* picID对应的图片和一些参数
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureAreaChangePic_G6(ushort areaID, ushort picID, ref EQpageHeader_G6 pheader, byte[] picPath);
/*! ***************************************************************
* bxDual_program_pictureAreaEnableSound_G6
* areaIDID号
* sheaderEQPicAreaSoundHeader_G6
* soundData:
*
* 0
* 使
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureAreaEnableSound_G6(ushort areaID, EQPicAreaSoundHeader_G6 sheader, byte[] soundData);
/*! ***************************************************************
* bxDual_program_pictureAreaChangeSoundSettings_G6
* areaIDID号
* sheaderEQPicAreaSoundHeader_G6
* soundData:
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureAreaChangeSoundSettings_G6(ushort areaID, EQPicAreaSoundHeader_G6 sheader, byte[] soundData);
/*! ***************************************************************
* bxDual_program_pictureAreaDisableSound_G6
* areaIDID号
*
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_pictureAreaDisableSound_G6(ushort areaID);
/*! ***************************************************************
* bxDual_program_timeAreaSetBattleTime_G6
* areaIDID号
* headerEQTimeAreaBattle_G6
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaSetBattleTime_G6(ushort areaID, ref EQTimeAreaBattle_G6 header);
/*! ***************************************************************
* bxDual_program_timeAreaCancleBattleTime_G6
* areaIDID号
*
*
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaCancleBattleTime_G6(ushort areaID);
/*! ***************************************************************
* bxDual_program_timeAreaAddContent_G6
* areaIDID号
* timeDataEQtimeAreaData_G56
*
*
* 0
* EQtimeAreaData_G56
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaAddContent_G6(ushort areaID, ref EQtimeAreaData_G56 timeData);
/*! ***************************************************************
* bxDual_program_timeAreaChangeContent_G6
* areaIDID号
* timeDataEQtimeAreaData_G56
*
*
* 0
* EQtimeAreaData_G56
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaChangeContent_G6(ushort areaID, ref EQtimeAreaData_G56 timeData);
/*! ***************************************************************
* bxDual_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 bxDual_program_fontPath_timeAreaAddContent_G6(ushort areaID, ref EQtimeAreaData_G56 timeData);
/*! ***************************************************************
* bxDual_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 bxDual_program_timeAreaAddAnalogClock_G6(ushort areaID, ref EQAnalogClockHeader_G56 header, E_ClockStyle cStyle, ref ClockColor_G56 cColor);
/*! ***************************************************************
* bxDual_program_timeAreaChangeAnalogClock_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 bxDual_program_timeAreaChangeAnalogClock_G6(ushort areaID, ref EQAnalogClockHeader_G56 header, E_ClockStyle cStyle, ref ClockColor_G56 cColor);
/*! ***************************************************************
* bxDual_program_timeAreaChangeDialPic_G6(
*
* areaID ID
* picPath:
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaChangeDialPic_G6(ushort areaID, byte[] picPath);
/*! ***************************************************************
* bxDual_program_timeAreaRemoveDialPic_G6(
*
* areaID ID
*
* 0
*
*
*
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaRemoveDialPic_G6(ushort areaID);
/*! ***************************************************************
* bxDual_program_IntegrateProgramFile_G6
*
* programEQprogram_G6
* 0
*
*
* EQprogram
******************************************************************/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_IntegrateProgramFile_G6(ref EQprogram_G6 program);
/*!
*
*
* SensorMode 1byte =0
* 0
1湿
2
3PM2.5
4PM10
5RS485型风向变送器
6RS485型风速变换器
7
8
9
100x0A
110x0B: TSP
120x0C:
0xffBX-6XX-MODBUS系列专用类型SensorTypeSensorUnitDisplayUnitFlag均设置为00xff;
SensorType ;/ 1 0x00
0x00 DS18B20
0x01 SHT11(6 )I 湿(4 线)
0X02 DHT21II 湿(3 线)
0X03 RS-BYH-MBX-QX
湿
0x00 SHT11(6)I温湿度传感器(4线)
0x01 DHT21II温湿度传感器(3线)
0X02 RS-BYH-M BX-QX
0x00 AWA5636-3(6)
0x01 HS5633T(6)
0x02AZ8921(6)
0x03-BX-ZS
0x04- RS-BYH-MBX-QX
PM2.5
0x00(RS-PM-N10-2) PM2.5BX-PM
0x01 : RS-BYH-MPM2.5BX-QX
PM10
0x00 (RS-PM-N10-2) PM10(BX-PM)
0x01 : RS-BYH-MPM10BX-QX
TSP
0x00 (RS-PM-N10-2) TSP(BX-PM)
0x01 : RS-BYH-MTSPBX-QX
0x00 RS485型风向变送器(RS-FX-N01) (BX-FX)
0x00 RS485型风速变换器(RS-FS-N01 )BX-FS
0X00 RS-BYH-MBX-QX
0X00 TBR-300 (TBR-300)
0X00 RS-BYH-MBX-QX
0X00 YEH-Z(,LCD用L表示)
0X01 YEH-Z(,LCD用H表示)
0X02 WFX-40
0X03 WLZ(L)
0X04 WLZ(H)
0x00 -- AN-210
nSensorColor 绿=0x021Byte来表示Bit0表示红bit1表示绿bit2表示蓝Bit01
SensorAlarmColor /=0x01
nAlarmValue /60
nDisplayUnitFlag 0; 1; =1;
nSensorModeDispType ; 0x00; =0x00;
SensorCorrectionPol 0 1; =0x00
SensorCorrection =0x00
nRatioValue 100
* :
* 4Byte来表示Byte0表示红Byte1表示绿Byte2表示蓝Byte3保留
* 1Byte来表示Bit0表示红bit1表示绿bit2表示蓝Bit01
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_SetSensorArea_G6(ushort nAreaID, byte nSensorMode, byte nSensorType,
byte nSensorUnit, // 1 0x00 单位温度:0x00 –摄氏度 0x01 –华氏度; 水位计 0x00 –m, 0x01 –cm
byte[] pFixedTxt, byte[] pFontName, byte nFontSize,
byte nSensorColor, byte SensorErrColor1, int nAlarmValue, byte nSensorThreshPol,
byte nDisplayUnitFlag, byte nSensorModeDispType, byte nSensorCorrectionPol,
int nSensorCorrection, byte nRatioValue);
/*!
* 5
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_SetSensorAreaTemperature_G5(ushort nAreaID,
byte nSensorType, // 1 0x00 传感器类型://0x00 – DS18B20 //0x01 – SHT1XXX //0x02:S-RHT2
byte nTemperatureUnit, // 1 0x00 温度单位:0x00–摄氏度; 0x01–华氏度
byte nTermperatureMode, // 1 0x00 温度显示模式:0x00 –整数模式(25C); 0x01 –小数模式(25.5C);
byte nTemperatureCorrectionPol,// 1 0x00 传感器修正值极性 注:0 –正, 1 –负
byte nTemperatureCorrection, // 1 0x00 传感器修正值(单位:摄氏度)注:此参数为符号整型,单位为0.1
byte nTemperatureThreshPol, // 1 0x00 温度阈值极性 注:Bit0 –极性,0 正, 1 负; Bit1 - 0表示小于此值触发事情,1表示大于此值触发条件
byte nTemperatureThresh, // 1 0x00 温度阈值
byte nTemperatureColor, // 1 正常温度颜色;用1Byte来表示,其中,Bit0表示红,bit1表示绿,bit2表示蓝,对于每一个Bit,0表示灭,1表示亮;
byte nTemperatureErrColor, // 1 温度超过阈值时显示的颜色
byte[] pstrFixTxt,//Ouint8 StaticTextOption;//1 固定文本选项 0x00–无固定文本; 0x01–有
byte nFontSize,
byte[] pstrFontNameFile,
byte nUnitShowRation // 显示的单位字体大小与正常显示文本的大小的比例;
);
/*!
* nHumidityThresh湿>100=0x100+100; 湿<100=100;
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_SetSensorAreaHumidity_G5(ushort nAreaID,
byte nSensorType, // 1 传感器类型:0x00 –
byte nHumidityMode, // 1 显示模式:0x00 – % RH,整数型相对湿度; 0x01 –浮点型相对湿度;
byte nHumidityCorrectionPol, // 1 传感器修正值极性; 注:0 –正, 1 –负
byte nHumidityCorrection, // 1 传感器修正值; 注:单位为0.1
byte nHumidityThresh, // 1 湿度阈值及触发条件; Bit0~Bit6 –湿度阈值; Bit7 – 0表示小于此值触发事情,1表示大于此值触发条件
byte nHumidityColor, // 1 正常湿度颜色: * 本文档中提及的颜色属性:
//*对于有灰度系统,均用4Byte来表示,其中Byte0表示红,Byte1表示绿,Byte2表示蓝,Byte3保留
//*对于无灰度系统,均用1Byte来表示,其中 Bit0表示红,bit1表示绿,bit2表示蓝,对于每一个Bit,0表示灭,1表示亮;
byte nHumidityErrColor, // 1 湿度超过阈值时显示的颜色
byte[] pstrFixTxt,//Ouint8 StaticTextOption; // 1 固定文本选项 0x00–无固定文本; 0x01–有
byte nFontSize,
byte[] pstrFontNameFile,
byte nUnitShowRation // 显示的单位字体大小与正常显示文本的大小的比例;
);
/*!
* 5
*/
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_SetSensorAreaNoise_G5(ushort nAreaID,
byte nSensorType, // 1 传感器类型:0x00 –嘉兴恒升; 0x01 –杭州爱华
byte nNoiseMode, // 1 显示模式:0x00 – 60.0dB; 0x01 – 60dB; 0x02–60.0; 0x03–60
byte nNoiseCorrectionPol, // 1 传感器修正值极性; 注:0 –正, 1 –负
byte nNoiseCorrection, // 1 传感器修正值; 注:此参数为符号整型,单位为0.1
byte nNoiseThresh, // 1 噪声阈值及触发条件; Bit0~Bit6 –噪声阈值; Bit7 – 0表示小于此值触发事情,1表示大于此值触发条件
byte nNoiseColor, // 1 正常噪声颜色
byte nNoiseErrColor, // 1 噪声超过阈值时显示的颜色
//Ouint8 StaticTextOption, // 1 固定文本选项; 0x00 –无固定文本; 0x01 – 有;
//Ouint8* FontData, // 1 字模数据,具体的字模格式,请参考附录1; (固定文本应整体当做一个字来处理); 字模个数为13,其顺序依次为:0, …, 9, ., dB,固定文本;
byte[] pstrFixTxt,//Ouint8 StaticTextOption; // 1 固定文本选项 0x00–无固定文本; 0x01–有
byte nFontSize,
byte[] pstrFontNameFile,
byte nUnitShowRation // 显示的单位字体大小与正常显示文本的大小的比例;
);
[DllImport("bx_sdk_dual.dll", CharSet = CharSet.Unicode)]
public static extern int bxDual_program_timeAreaAddCounterTimer_G6(ushort areaID, ref BXG6_Time_Counter header, byte[] cUnitDay, byte[] cUnitHour, byte[] cUnitMinute, byte[] cUnitSec, byte[] pFixedTxt);
}
}