using FreeSql.DataAnnotations; using JiShe.CollectBus.Analyzers.Shared; using JiShe.CollectBus.Common.Enums; using JiShe.CollectBus.Common.Models; using JiShe.CollectBus.IoTDB.Attributes; using JiShe.CollectBus.IoTDB.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace JiShe.CollectBus.IotSystems.Devices { /// /// 设备信息 /// public class DeviceInfo : DeviceCacheBasicModel { /// /// 关系映射标识,用于ZSet的Member字段和Set的Value字段,具体值可以根据不同业务场景进行定义 /// [Column(IsIgnore = true)] public override string MemberId => $"{FocusAddress}:{MeteringCode}"; /// /// ZSet排序索引分数值,具体值可以根据不同业务场景进行定义,例如时间戳 /// [Column(IsIgnore = true)] public override long ScoreValue => Common.Helpers.CommonHelper.GetFocusScores(FocusAddress, MeteringCode); /// /// 通讯方案: /// NB-IOT常德水表、NB-IOT泽联电表、GPRS华立水表、 /// RS-485、无线、载波 /// public string LinkType { get; set; } /// /// HaveValve: 是否带阀 (0 不带阀, 1 带阀) /// 注意:NULL表示未设置 /// public int? HaveValve { get; set; } /// /// 设备类型: 水表\气表、流量计 /// public string MeterTypeName { get; set; } /// /// 设备品牌; /// (当 MeterType = 水表, 如 威铭、捷先 等) /// (当 MeterType = 流量计, 如 西恩超声波流量计、西恩电磁流量计、涡街流量计 等) /// public string MeterBrand { get; set; } /// /// 倍率 /// public decimal TimesRate { get; set; } /// /// 电表名称 /// public string Name { get; set; } /// /// 集中器地址 /// public string Address { get; set; } /// /// 集中器区域代码 /// public string AreaCode { get; set; } /// /// 电表类别 (1单相、2三相三线、3三相四线), /// 07协议: 开合闸指令(1A开闸断电,1C单相表合闸,1B多相表合闸) 645 2007 表 /// 97协议://true(合闸);false(跳闸) 545 1997 没有单相多相 之分 "true" ? "9966" : "3355" /// public int TypeName { get; set; } /// /// 跳合闸状态字段: 0 合闸,1 跳闸 /// 电表:TripState (0 合闸-通电, 1 断开、跳闸); /// public int TripState { get; set; } /// /// 规约 -电表default(30) 1:97协议,30:07协议 /// public int? Protocol { get; set; } /// /// 一个集中器下的[MeteringCode]必须唯一。 PN /// public int MeteringCode { get; set; } /// /// 表通信地址 /// public string MeterAddress { get; set; } /// /// 波特率 default(2400) /// public int Baudrate { get; set; } /// /// MeteringPort 端口就几个可以枚举。 /// public int MeteringPort { get; set; } /// /// 电表密码 /// public string Password { get; set; } /// /// 该电表方案下采集项,JSON格式,如:["0D_80","0D_80"] /// public string ItemCodes { get; set; } /// /// State表状态: /// 0新装(未下发),1运行(档案下发成功时设置状态值1), 2暂停, 100销表(销表后是否重新启用) /// 特定:State -1 已删除 /// public int State { get; set; } /// /// 是否自动采集(0:主动采集,1:自动采集) /// public int AutomaticReport { get; set; } /// /// 该电表方案下采集项编号 /// public string DataTypes { get; set; } /// /// 品牌型号 /// public string BrandType { get; set; } /// /// 采集器编号 /// public string GatherCode { get; set; } /// /// 是否特殊表,1是特殊电表 /// public int Special { get; set; } /// /// 费率类型,单、多 (SingleRate :单费率(单相表1),多费率(其他0) ,与TypeName字段无关) /// SingleRate ? "单" : "复" /// [SingleRate] --0 复费率 false , 1 单费率 true (与PayPlanID保持一致) ///对应 TB_PayPlan.Type: 1复费率,2单费率 /// public bool SingleRate { get; set; } /// /// 项目ID /// public int ProjectID { get; set; } /// /// 数据库业务ID /// public int DatabaseBusiID { get; set; } /// /// 是否异常集中器 0:正常,1异常 /// public int AbnormalState { get; set; } } }