Files
JoyD/Windows/CS/Framework4.0/Toprie/Toprie/SharedStructures.cs

491 lines
14 KiB
C#
Raw Normal View History

2025-10-27 10:39:33 +08:00
using System;
using System.Runtime.InteropServices;
namespace JoyD.Windows.CS.Toprie
{
/// <summary>
/// 共享数据结构定义类用于在V8、A8SDK和DeviceManager之间共享
/// </summary>
public static class SharedStructures
{
// 位置相关结构体
2026-01-05 16:23:46 +08:00
/// <summary>
/// 区域位置结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct AreaPos
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 区域左上角X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 区域左上角Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int y;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 区域宽度
/// </summary>
2025-10-27 10:39:33 +08:00
public int width;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 区域高度
/// </summary>
2025-10-27 10:39:33 +08:00
public int height;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 点位置结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct SpotPos
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 点的X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 点的Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int y;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 线位置结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct LinePos
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 起始点X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int sta_x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 起始点Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int sta_y;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 结束点X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int end_x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 结束点Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int end_y;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 图像位置结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct ImagePos
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 区域位置数组最多支持6个区域
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public AreaPos[] area;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 点位置数组最多支持6个点
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public SpotPos[] spot;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 线位置
/// </summary>
2025-10-27 10:39:33 +08:00
public LinePos line;
}
// 温度相关结构体
2026-01-05 16:23:46 +08:00
/// <summary>
/// 区域温度结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct AreaTemp
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度点的X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp_x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度点的Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp_y;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度点的X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp_x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度点的Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp_y;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 平均温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int ave_temp;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 点温度结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct SpotTemp
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int temp;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 线温度结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct LineTemp
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度点的X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp_x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度点的Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp_y;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度点的X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp_x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度点的Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp_y;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 平均温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int ave_temp;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 全局温度结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct GlobaTemp
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度点的X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp_x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最高温度点的Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int max_temp_y;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度值
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度点的X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp_x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 最低温度点的Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int min_temp_y;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 图像温度结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct ImageTemp
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 区域温度数组最多支持6个区域
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public AreaTemp[] area;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 点温度数组最多支持6个点
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public SpotTemp[] spot;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 线温度
/// </summary>
2025-10-27 10:39:33 +08:00
public LineTemp line;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 全局温度
/// </summary>
2025-10-27 10:39:33 +08:00
public GlobaTemp globa;
}
// 配置相关结构体
2026-01-05 16:23:46 +08:00
/// <summary>
/// 邮件服务器配置结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct EmailServer
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 收件人邮箱地址
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] recv_addr;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 发件人邮箱地址
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] send_addr;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 发件人邮箱密码
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] send_pwd;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// TFTP服务器配置结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct TftpServer
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// TFTP服务器地址
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] tftp_addr;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 网络以太网配置结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct NetworkEth
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 启用状态0表示禁用1表示启用
/// </summary>
2025-10-27 10:39:33 +08:00
public int enable;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 静态IP地址
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] static_ip;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 子网掩码
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] netmask;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 默认网关
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] gateway;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 主DNS服务器地址
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] dns1;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 备DNS服务器地址
/// </summary>
2025-10-27 10:39:33 +08:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] dns2;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 环境参数结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct EnvirParam
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 计算方法
/// </summary>
2025-10-27 10:39:33 +08:00
public int method;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 参数编号
/// </summary>
2025-10-27 10:39:33 +08:00
public int num;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 发射率
/// </summary>
2025-10-27 10:39:33 +08:00
public float emissivity;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 环境温度
/// </summary>
2025-10-27 10:39:33 +08:00
public float airTemp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 目标温度
/// </summary>
2025-10-27 10:39:33 +08:00
public float targetTemp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 大气透过率
/// </summary>
2025-10-27 10:39:33 +08:00
public float atmosTrans;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 测量距离
/// </summary>
2025-10-27 10:39:33 +08:00
public float distance;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 红外温度
/// </summary>
2025-10-27 10:39:33 +08:00
public float infraredTemp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 红外辐射率
/// </summary>
2025-10-27 10:39:33 +08:00
public float infraredRadia;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 报警参数结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct AlarmParam
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 报警方法
/// </summary>
2025-10-27 10:39:33 +08:00
public int method;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 参数编号
/// </summary>
2025-10-27 10:39:33 +08:00
public int num;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 激活状态
/// </summary>
2025-10-27 10:39:33 +08:00
public int active;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 报警条件
/// </summary>
2025-10-27 10:39:33 +08:00
public int condition;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 截图功能
/// </summary>
2025-10-27 10:39:33 +08:00
public int captrue;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 禁用校准
/// </summary>
2025-10-27 10:39:33 +08:00
public int disableCalib;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 邮件报警
/// </summary>
2025-10-27 10:39:33 +08:00
public int email;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 数字输出
/// </summary>
2025-10-27 10:39:33 +08:00
public int digital;
2026-01-05 16:23:46 +08:00
/// <summary>
/// FTP上传
/// </summary>
2025-10-27 10:39:33 +08:00
public int ftp;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 报警阈值
/// </summary>
2025-10-27 10:39:33 +08:00
public float threshold;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 滞后值
/// </summary>
2025-10-27 10:39:33 +08:00
public float hysteresis;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 阈值时间
/// </summary>
2025-10-27 10:39:33 +08:00
public int thresholeTime;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 焦距参数结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct FocusParam
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 对焦方法
/// </summary>
2025-10-27 10:39:33 +08:00
public int method;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 对焦区域X坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int x;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 对焦区域Y坐标
/// </summary>
2025-10-27 10:39:33 +08:00
public int y;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 对焦区域宽度
/// </summary>
2025-10-27 10:39:33 +08:00
public int width;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 对焦区域高度
/// </summary>
2025-10-27 10:39:33 +08:00
public int height;
}
2026-01-05 16:23:46 +08:00
/// <summary>
/// 时间参数结构体
/// </summary>
2025-10-27 10:39:33 +08:00
public struct TimeParam
{
2026-01-05 16:23:46 +08:00
/// <summary>
/// 年份
/// </summary>
2025-10-27 10:39:33 +08:00
public int year;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 月份
/// </summary>
2025-10-27 10:39:33 +08:00
public char month;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 日期
/// </summary>
2025-10-27 10:39:33 +08:00
public char day;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 小时
/// </summary>
2025-10-27 10:39:33 +08:00
public char hour;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 分钟
/// </summary>
2025-10-27 10:39:33 +08:00
public char minute;
2026-01-05 16:23:46 +08:00
/// <summary>
/// 秒
/// </summary>
2025-10-27 10:39:33 +08:00
public char second;
}
}
}