using System;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace ZigBee.Device
{
public class ZbGatewayData
{
#region 一堆变量
///
/// 住宅ID
///
public string HomeId = string.Empty;
///
///网关序列号,该网关唯一标识
///
public string GwId = string.Empty;
///
///网关绑定网卡的mac地址
///
public string GwMac = string.Empty;
///
///网关名称
///
public string GwName = string.Empty;
///
/// 网关的序列号
///
public string GwSerialNum = string.Empty;
///
///是否为主网关。(因为在外网的情况下,这个字段可以获取到,用来更新局域网中基本信息的对象中的主网关信息)
///0:否
///1:是
///
public bool IsMainGateWay;
///
///网关所在局域网的ip地址
///
public string GwIP = string.Empty;
///
/// 该网关应用程序版本(网关固件日期??)
///
public long GwVersionDate = 0;
///
///Linux网关类型(也叫网关镜像类型)
///
public int LinuxImageType = -1;
///
///Linux网关硬件版本
///
public int LinuxHardVersion = -1;
///
/// Linux网关固件版本
///
public int LinuxFirmwareVersion = -1;
///
/// 协调器硬件版本
///
public int CoordinatorHardVersion = -1;
///
/// 协调器固件版本
///
public int CoordinatorFirmwareVersion = -1;
///
/// 协调器镜像ID
///
public int CoordinatorImageId = -1;
///
/// 虚拟驱动信息
///
public List DriveCodeList = new List();
///
/// 虚拟网关
///
[Newtonsoft.Json.JsonIgnore]
public bool IsVirtual;
///
/// 最后的更新时间
///
[Newtonsoft.Json.JsonIgnore]
public DateTime LastDateTime = DateTime.MinValue;
///
/// 网关在线的时间点(这个东西有点用处,当第一次获取时,需要返回当前时间回去,然后才开始计时)
///
[Newtonsoft.Json.JsonIgnore]
private DateTime m_OnlineTime = new DateTime(1970, 1, 1);
///
/// 网关在线的时间点
///
[Newtonsoft.Json.JsonIgnore]
public DateTime OnlineTime
{
get
{
if (m_OnlineTime.Year == 1970)
{
//当第一次获取时,需要返回当前时间回去,然后才开始计时
m_OnlineTime = DateTime.Now;
}
return m_OnlineTime;
}
set { m_OnlineTime = value; }
}
#endregion
#region 网关信息.
///
/// 网关版本信息,网关反馈信息
///
[System.Serializable]
public class GetGwVersionAllData : CommonDevice.ErrorResponCommon
{
///
/// 网关版本信息
///
public GetGwVersionData getGwVersion;
}
///
/// 网关版本信息
///
[System.Serializable]
public class GetGwVersionData
{
///
/// 该网关应用程序版本
///
public long AppVersion;
///
/// Zigbee协议器程序版本
///
public int ZigbeeVersion;
}
#endregion
#region 获取网关信息.
///
/// 网关信息,网关反馈具体信息
///
[System.Serializable]
public class GetGwAllData : CommonDevice.ErrorResponCommon
{
///
/// 网关信息
///
public GetGwData getGwData;
}
///
/// 网关信息(屏蔽掉了一些目前不使用的变量)
///
[System.Serializable]
public class GetGwData
{
///
///网关序列号,该网关唯一标识
///
public string GwId;
///
///网关绑定网卡的mac地址
///
public string GwMac;
///
///网关名称
///
public string GwName;
///
/// 网关的序列号
///
public string GWSN = string.Empty;
///
///是否为主网关。(因为在外网的情况下,这个字段可以获取到,用来更新局域网中基本信息的对象中的主网关信息)
///0:否
///1:是
///
public int IsDominant;
///
///utc时间戳,程序启动时网关的系统时间
///
public long StartTime;
///
///加入局域网模式
///0:wifi连接局域网
///1:有线连接局域网
///2:未加入局域网
///
public int JoinMode;
///
///网关所在局域网的ip地址
///
public string GwIP;
///
/// 主人的Guid(即使是管理员,这里也是主人的Guid)
///
public string AccountId;
///
///当前局域网网络号占用位数,用于计算子网掩码,如Mask=32,则子网掩码为255.255.255.0
///
public int Mask;
///
///上级路由器无线名称
///当 JoinMode = 0时存在
///
public string RouteESSID;
///
///DNS服务器地址
///
public string DNSServer;
///
/// 该网关应用程序版本(网关固件日期??)
///
public long AppVersion;
///
/// Zigbee协议器程序版本
///
public int ZigbeeVersion;
///
///协调器mac地址
///
public string ZigbeeMacAddr;
///
///网关宅id
///
public string HomeId;
///
///是否已经连接云端mqtt
///0:否
///1:是
///
public int IsConnectCloud;
///
///(用于网关程序调试)
///https登陆云端时,最近一次获取的响应状态码。根据云端的定义,有如下状态码。
///(1)Success,则[调用此接口操作成功]
///(2)ParameterOrEmpty,则响应字段中[ErrorInfo] 为错误信息[提交错误信息]
///(3)NoBind,则响应字段中[ErrorInfo] 为错误信息[您所提交的[GatewayUniqueId 网关唯一Id(MAC)]和[住宅主键Id]不存在绑定的关系]
///(4)YouDataNoIsLocalRegion,则响应字段中[ErrorInfo] 为错误信息[您的的数据并不在此HDL区域服务器, 请重定向到如下HDL区域服务器进行处理.]
///
public string StateCode;
///
///Linux网关类型
///
public int LinuxImageType;
///
///Linux网关HW版本
///
public int LinuxHWVersion;
///
/// Linux网关FW版本
///
public int LinuxFWVersion;
///
/// 协调器HW版本
///
public int ZbHWVersion;
///
/// 协调器FW版本
///
public int ZbFWVersion;
///
/// 网关镜像类型
///
public int ZbImageType;
///
/// 虚拟驱动信息
///
public List DriveCodeList = new List();
}
#endregion
#region 修改网关名称
///
/// 修改网关名称,网关反馈具体信息
///
[System.Serializable]
public class GwReNameAllData : CommonDevice.ErrorResponCommon
{
///
/// 修改网关名称
///
public GwReNameData gwReNameData;
}
///
/// 修改网关名称
///
[System.Serializable]
public class GwReNameData
{
///
/// 修改后的网关名称
///
public string GwName;
}
#endregion
#region 设定网关住宅id
///
/// 网关住宅id数据,网关反馈具体信息
///
[System.Serializable]
public class GwSetHomeIdAllData : CommonDevice.ErrorResponCommon
{
///
/// 网关住宅id数据
///
public GwSetHomeIdData gwSetHomeIdData;
}
///
/// 网关住宅id数据
///
[System.Serializable]
public class GwSetHomeIdData
{
///
/// 住宅id
///
public string HomeId;
}
///
/// 广播发现协议(屏蔽掉了一些目前不用的变量)
///
[System.Serializable]
public class GatewayBaseInfo
{
///
/// 网关Ip地址
///
public string IpAddress;
///
/// 住宅id,4字节整型。(小端结构)如果网关不设置宅id,将默认为0
///
public string HomeId = string.Empty;
///
/// 网关当前时间戳(小端结构)
///
[Newtonsoft.Json.JsonIgnore]
public int Time;
///
/// 是否为主网关
///
public bool IsMainGateWay;
///
/// 网关名称
///
public string GwName;
///
/// 网关ID
///
public string gwID;
}
///
/// 网关成为主网关时广播通知
///
[System.Serializable]
public class MainGatewayBaseInfo
{
///
/// 发送方的ip地址
///
public string IpAddress;
///
/// 住宅id,4字节整型。(小端结构)如果网关不设置住宅id,将默认为0
///
public string HomeId;
///
/// 数据命令标识
///
public int Command_Id = 0x03;
///
/// 保留
///
public int Retain = 0x00;
///
/// 网关当前时间戳(小端结构)
///
public int Time;
///
/// RSA公钥
///
public string PubKey;
///
/// 网关名称
///
public string gwName;
///
/// 网关ID
///
public string gwID;
}
#endregion
#region 网关恢复出厂设置
///
/// 网关恢复出厂设置返回的数据.
///
[System.Serializable]
public class GwLinuxResetResponData : CommonDevice.ErrorResponCommon
{
///
/// 0:命令已接收,系统即将恢复出厂并重启。
///
public int Result = 2;
}
#endregion
#region 重启网关系统
///
/// 重启网关系统返回数据
///
[System.Serializable]
public class GwRebootResponAllData : CommonDevice.ErrorResponCommon
{
///
/// 返回值是0:命令已接收,系统即将重启。
///
public int Result = 999;
}
///
/// 重启网关系统返回数据
///
[System.Serializable]
public class GwRebootResponData
{
///
/// 0:命令已接收,系统即将重启。
///
public int Result = 999;
}
#endregion
#region 网关和协调器升级
///
/// 保存zigbee协调器组网信息,网关反馈具体信息
///
[System.Serializable]
public class SaveNVFileResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 保存zigbee协调器组网信息
///
public SaveNVFileResponseData saveNVFileResponseData;
}
///
/// 保存zigbee协调器组网信息
///
[System.Serializable]
public class SaveNVFileResponseData
{
///
/// 修改后的网关名称
///0:保存成功
///1:文件创建失败
///2:NV分区读取出错
///
public int Flag = 999;
}
#endregion
#region 协调器恢复组网信息
///
/// 协调器恢复组网信息,网关反馈具体信息
///
[System.Serializable]
public class RestoreNVAllDtta : CommonDevice.ErrorResponCommon
{
///
/// 协调器恢复组网信息
///
public RestoreNVDtta restoreNVDtta;
}
///
/// 协调器恢复组网信息
///
[System.Serializable]
public class RestoreNVDtta
{
///
/// 修改后的网关名称
/// 0:恢复成功
///1:文件不存在,恢复失败
///2:NV分区写入错误,恢复失败
///7:文件不合法
///
public int Flag = 999;
}
#endregion
#region 协调器升级
///
/// 下载进度
///
/// 启动升级
///
[Newtonsoft.Json.JsonIgnore]
public CommonDevice.OTAScheduleResponData oTAScheduleResponData = null;
///
/// 协调器升级,网关反馈具体信息
///
[System.Serializable]
public class ZbGwOperationUpgradeAllData : CommonDevice.ErrorResponCommon
{
///
/// 协调器升级
///
public ZbGwOperationUpgradeData bGwOperationUpgradeData;
}
///
/// 协调器升级
///
[Newtonsoft.Json.JsonIgnore]
public ZbGwOperationUpgradeData zbGwOperationUpgradeData;
///
/// 协调器升级
///
[System.Serializable]
public class ZbGwOperationUpgradeData
{
///
/// 修改后的网关名称
/// 0:升级完成
///1:没有找到升级文件,或升级文件打开失败。
///2:正在升级
///3:写入分区出错
///7:升级文件不合法。
///8:未知错误
///9:升级文件名称中无“ZBMODULE”标识。
///
public int Flag = 999;
///
/// 修改后的网关名称
/// 升级进度。0-100表示0-100% ,该字段在Flag =2时才存在
///
public int Percent;
}
#endregion
#region 升级虚拟驱动设备数据
///
/// 升级虚拟驱动设备,网关反馈具体信息
///
[System.Serializable]
public class VirtualDriveUpgradeResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 升级虚拟驱动设备
///
public VirtualDriveUpgradeResponData virtualDriveUpgradeResponData;
}
///
/// 升级虚拟驱动设备
///
[Newtonsoft.Json.JsonIgnore]
public VirtualDriveUpgradeResponData virtualDriveUpgradeResponData;
///
/// 升级虚拟驱动设备
///
[System.Serializable]
public class VirtualDriveUpgradeResponData
{
/// 0:升级完成
///1:没有找到升级文件,或升级文件打开失败。v
///2:正在升级
///3:写入分区出错
///7:升级文件不合法。
///8:未知错误
///10:错误,驱动代号不存在
public int Flag;
///
///驱动代号
///
public int DriveCode;
///
///升级进度。0-100表示0-100%(该字段在Flag =2时才有效)
///
public int Percent;
}
#endregion
#region 查看网关记录的虚拟驱动数据
///
/// 查看网关记录的虚拟驱动,网关反馈具体信息
///
[System.Serializable]
public class CheckVDDriveCodeResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 查看网关记录的虚拟驱动
///
public VDriveDriveCodeResponData vDriveDriveCodeResponData;
}
///
/// 查看网关记录的虚拟驱动
///
[System.Serializable]
public class VDriveDriveCodeResponData
{
///
/// 驱动代号列表
///
public List DriveCodeList = new List();
}
///
/// 虚拟驱动
///
[System.Serializable]
public class DriveCodeObj
{
///
/// 驱动代号
///
public int DriveCode;
///
/// 驱动硬件版本
///
public int DriveHwVersion;
///
/// 驱动软件版本
///
public int DriveFwVersion;
///
/// 驱动固件类型
///
public int DriveImageType;
///
/// 驱动标识符
///
public int DriveId;
}
#endregion
#region 网关系统升级
///
/// 网关系统升级,网关反馈具体信息
///
[System.Serializable]
public class LinuxUpgradeAllData : CommonDevice.ErrorResponCommon
{
///
/// 0:正常(默认回复)
///1:找不到升级固件,路径或升级固件名称错误。
///2:固件不合法。(如果强制升级,则返回正常,Result=0)
///3:升级固件过大(使用16MFlash时固件大小不得超过16449536B)
///4:升级文件名称中无“LINUXMODULE”标识。
///
public int Result = 999;
}
#endregion
#region 获取协调器当前信道.
///
/// 获取协调器当前信道,网关反馈具体信息
///
[System.Serializable]
public class GwGetChannelResponData : CommonDevice.ErrorResponCommon
{
///
/// 协调器当前信道
///
public int channel = 999;
}
#endregion
#region 更改协调器当前信道.
///
/// 更改协调器当前信道,网关反馈具体信息
///
[System.Serializable]
public class ChangeChannelResponAllData : CommonDevice.ErrorResponCommon
{
///
/// 更改协调器当前信道数据
///
public ChangeChannelResponData changeChannelResponData;
}
///
/// 更改协调器当前信道数据
///
[System.Serializable]
public class ChangeChannelResponData
{
///
/// 是否配置成功
///0:成功
///1:失败
///2:配置的信道为无效值
///
public int Status = 999;
///
/// 协调器当前信道
///
public int Channel = 999;
}
#endregion
#region 读取协调器MAC地址
///
/// 读取协调器MAC地址,网关反馈具体信息
///
[System.Serializable]
public class GetMacResponData : CommonDevice.ErrorResponCommon
{
///
/// 协调器mac地址
///
public MacAddrData macAddrData;
}
///
/// 读取协调器MAC地址,网关反馈具体信息
///
[System.Serializable]
public class MacAddrData
{
///
/// 协调器mac地址
///
public string MacAddr;
}
#endregion
#region 启用或关闭透传数据上传接口
///
/// 透传数据上传接口,网关反馈信息
///
[System.Serializable]
public class PassthroughAllData : CommonDevice.ErrorResponCommon
{
///
/// 已经转换成字符格式的16进制的透传数据
///
public string passData;
}
#endregion
#region 客户端发送文件流到网关
///
/// 客户端发送文件流到网关
///
[System.Serializable]
public class SendFileResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 0: 数据写入成功,请求发送下一个数据包
///1:数据写入失败
///2:数据解析错误
///3:发送数据大小超出限制
///
public int Result = -1;
}
#endregion
#region 客户端发送创建文件命令
///
/// 客户端发送创建文件命令,网关反馈信息
///
[System.Serializable]
public class CreateFileResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 0:创建成功
///1:失败,无法创建文件
///2:失败,该客户端有文件还没上传完成,请等待文件上传完毕(一个客户端只能同时上传一个文件)
///
public int Result = 999;
}
#endregion
#region 查看网关目录文件信息
///
/// 查看网关目录文件信息,网关反馈信息
///
[System.Serializable]
public class FileTransferLsDiResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 查看网关目录文件信息
///
public FileTransferLsDiResponseData fileTransferLsDiResponseData;
}
///
/// 客户端发送创建文件命令,网关反馈信息
///
[System.Serializable]
public class FileTransferLsDiResponseData
{
///
///0: 成功
///1:查看失败
///
public int Result;
///
/// 目录文件列表
///
public List Dir = new List();
}
///
/// 目录文件
///
[System.Serializable]
public class DriObj
{
///
///文件(包含所在路径和文件名称:如/usr/sbin/aa.txt)
///
public string File;
///
///文件大小(byte)
///
public int FileSize;
///
///文件最后修改的utc时间戳
///
public int LastModifyTime;
}
#endregion
#region 客户端设定要下载的文件名称和路径
///
/// 客户端设定要下载的文件名称和路径,网关反馈信息
///
[System.Serializable]
public class SetDownloadFileResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 客户端设定要下载的文件名称和路径
///
public SetDownloadFileResponseData setDownloadFileResponseData;
}
///
/// 客户端设定要下载的文件名称和路径,网关反馈信息
///
[System.Serializable]
public class SetDownloadFileResponseData
{
///
///0:默认
///1:失败,文件不存在。
///2:BlockStartAddress设置不合理,超出文件大小范围。
///3:当前有文件在下载,需要等待正在进行的下载任务结束。
///
public int Result = -1;
///
/// 网关文件名称
///
//public string BackupFileName ;
///
/// 网关中对应文件中的数据内容
///
//public byte[] BackupFileContent;
}
#endregion
#region 查看单个文件信息
///
/// 查看单个文件信息数据
///
[System.Serializable]
public class FileTransferGetFileInfoResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 查看单个文件信息返回的数据
///
public FileTransferGetFileInfoResponseData fileTransferGetFileInfoResponseData;
}
///
/// 查看单个文件信息返回的数据
///
[System.Serializable]
public class FileTransferGetFileInfoResponseData
{
///
/// 0: 成功
///1:查看失败,文件不存在
///
public int Result = -1;
///
///文件(包含所在路径和文件名称:如/etc/hdlDat/aa.txt)
///
public string File;
///
/// 文件大小(byte)(当Result = 0 时存在)
///
public int FileSize;
///
/// 文件最后修改的utc时间戳(当Result = 0 时存在)
///
public int LastModifyTime;
}
#endregion
#region 客户端接收到网关发色数据格式后应反馈给网关到格式数据
///
/// 客户端接收到网关发色数据格式后应反馈给网关到格式数据
///
[System.Serializable]
public class DownloadFileResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 0: 数据写入成功,请求发送下一个数据包
///1:终止下载。当下载出现错误,或者下载已经完成可以发送该值。
///
public int Result = -1;
}
///
/// 客户端接收到网关发色数据格式后应反馈给网关
///
[System.Serializable]
public class FileTransferDownloadFileRespon
{
///
/// 0: 数据写入成功,请求发送下一个数据包
///1:终止下载。当下载出现错误,或者下载已经完成可以发送该值。
///
public int Result = -1;
}
#endregion
#region 删除文件或目录
///
/// 删除文件或目录,网关反馈信息
///
[System.Serializable]
public class DelFileOrDirResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 删除文件或目录
///
public DelFileOrDirResponseData delFileOrDirResponseData;
}
///
/// 删除文件或目录,网关反馈信息
///
[System.Serializable]
public class DelFileOrDirResponseData
{
///
///0: 删除成功
///1:删除失败,路径不存在
///2:无法删除。
///
public int Result;
///
///目录或文件的路径
///
public string Path;
}
#endregion
#region 创建一个目录
///
/// 创建一个目录,网关反馈信息
///
[System.Serializable]
public class CreateDirResponseAllData : CommonDevice.ErrorResponCommon
{
///
/// 创建一个目录
///
public CreateDirResponseData createDirResponseData;
}
///
/// 创建一个目录,网关反馈信息
///
[System.Serializable]
public class CreateDirResponseData
{
///
///0: 创建成功
///1:创建失败
///
public int Result;
///
///目录或文件的路径
///
public string Path;
}
#endregion
#region 客户端发送DES密钥到网关
///
/// 客户端发送DES密钥到网关,网关反馈具体信息
///
[System.Serializable]
public class SendKeyResponData : CommonDevice.ErrorResponCommon
{
///
/// 0:成功
///1:失败,RSA私钥解密失败
///
public int Result = -1;
}
#endregion
}
}