TLSetting.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace IvfTl.Control.Entity.GlobalEntitys
  7. {
  8. /// <summary>
  9. /// TL设置表
  10. /// </summary>
  11. public class TLSetting
  12. {
  13. /// <summary>
  14. /// Desc:自增id
  15. /// Default:
  16. /// Nullable:False
  17. /// </summary>
  18. public long id { get; set; }
  19. /// <summary>
  20. /// Desc:设备编号
  21. /// Default:
  22. /// Nullable:False
  23. /// </summary>
  24. public string tlSn { get; set; }
  25. /// <summary>
  26. /// Desc:设备名
  27. /// Default:
  28. /// Nullable:False
  29. /// </summary>
  30. public string tlName { get; set; }
  31. /// <summary>
  32. /// Desc:运行状态 0在线空闲 1在线培养
  33. /// Default:
  34. /// Nullable:False
  35. /// </summary>
  36. public int state { get; set; }
  37. /// <summary>
  38. /// Desc:在线状态 0离线 1在线 2已剔除
  39. /// Default:
  40. /// Nullable:False
  41. /// </summary>
  42. public int online { get; set; }
  43. /// <summary>
  44. /// Desc:下位机软件版本
  45. /// Default:
  46. /// Nullable:False
  47. /// </summary>
  48. public string softwareVersion { get; set; }
  49. /// <summary>
  50. /// Desc:下位机协议地址
  51. /// Default:
  52. /// Nullable:False
  53. /// </summary>
  54. public string protocolAddress { get; set; }
  55. /// <summary>
  56. /// Desc:设备安装时间
  57. /// Default:
  58. /// Nullable:False
  59. /// </summary>
  60. public DateTime installTime { get; set; }
  61. /// <summary>
  62. /// Desc:安装地址;省、市、区
  63. /// Default:
  64. /// Nullable:False
  65. /// </summary>
  66. public string address { get; set; }
  67. /// <summary>
  68. /// Desc:socket通讯ip地址
  69. /// Default:
  70. /// Nullable:False
  71. /// </summary>
  72. public string socketIp { get; set; }
  73. /// <summary>
  74. /// Desc:socket通讯端口号
  75. /// Default:
  76. /// Nullable:False
  77. /// </summary>
  78. public string socketPort { get; set; }
  79. /// <summary>
  80. /// Desc:远程报警ip
  81. /// Default:
  82. /// Nullable:False
  83. /// </summary>
  84. public string alarmIp { get; set; }
  85. /// <summary>
  86. /// Desc:远程报警端口
  87. /// Default:
  88. /// Nullable:False
  89. /// </summary>
  90. public string alarmPort { get; set; }
  91. /// <summary>
  92. /// Desc:mqtt通信队列
  93. /// Default:
  94. /// Nullable:False
  95. /// </summary>
  96. public string mqttQueue { get; set; }
  97. /// <summary>
  98. /// Desc:kafka消息队列
  99. /// Default:
  100. /// Nullable:False
  101. /// </summary>
  102. public string kafkaTopic { get; set; }
  103. /// <summary>
  104. /// Desc:备注
  105. /// Default:
  106. /// Nullable:True
  107. /// </summary>
  108. public string remark { get; set; }
  109. /// <summary>
  110. /// Desc:下位机缓存路径(日志、图片等 盘符)
  111. /// Default:
  112. /// Nullable:False
  113. /// </summary>
  114. public string tmpDir { get; set; }
  115. /// <summary>
  116. /// Desc:自动对焦定时时间0-24
  117. /// Default:
  118. /// Nullable:False
  119. /// </summary>
  120. public int autoFocusTime { get; set; }
  121. /// <summary>
  122. /// Desc:视频帧率
  123. /// Default:
  124. /// Nullable:False
  125. /// </summary>
  126. public int videoFps { get; set; }
  127. /// <summary>
  128. /// Desc:胚胎图片水印文字
  129. /// Default:
  130. /// Nullable:False
  131. /// </summary>
  132. public string watermarking { get; set; }
  133. /// <summary>
  134. /// Desc:缓冲瓶报警设置:缓冲瓶气压上限
  135. /// Default:
  136. /// Nullable:False
  137. /// </summary>
  138. public int bufferBottlerPressureMax { get; set; }
  139. /// <summary>
  140. /// Desc:缓冲瓶报警设置:缓冲瓶气压下限
  141. /// Default:
  142. /// Nullable:False
  143. /// </summary>
  144. public int bufferBottlerPressureMin { get; set; }
  145. /// <summary>
  146. /// Desc:仓室气压报警设置:压力报警上限值
  147. /// Default:
  148. /// Nullable:False
  149. /// </summary>
  150. public decimal pressureAlarmMax { get; set; }
  151. /// <summary>
  152. /// Desc:仓室气压报警设置:压力报警下限值
  153. /// Default:
  154. /// Nullable:False
  155. /// </summary>
  156. public decimal pressureAlarmMin { get; set; }
  157. /// <summary>
  158. /// Desc:仓室温度报警设置:温度报警上限值
  159. /// Default:
  160. /// Nullable:True
  161. /// </summary>
  162. public decimal temperatureAlarmMax { get; set; }
  163. /// <summary>
  164. /// Desc:仓室温度报警设置:温度报警下限值
  165. /// Default:
  166. /// Nullable:False
  167. /// </summary>
  168. public decimal temperatureAlarmMin { get; set; }
  169. /// <summary>
  170. /// Desc:气压参数设置:缓冲瓶补气次数
  171. /// Default:
  172. /// Nullable:False
  173. /// </summary>
  174. public int bufferBottlerAerationNum { get; set; }
  175. /// <summary>
  176. /// Desc:气压参数设置:仓室补气次数
  177. /// Default:
  178. /// Nullable:False
  179. /// </summary>
  180. public int houseAerationNum { get; set; }
  181. /// <summary>
  182. /// Desc:气压参数设置:换气打开排气阀时间 /s
  183. /// Default:
  184. /// Nullable:False
  185. /// </summary>
  186. public int ventilationDelay { get; set; }
  187. /// <summary>
  188. /// Desc:气压参数设置:换气间隔时间 /min
  189. /// Default:
  190. /// Nullable:False
  191. /// </summary>
  192. public int airSwapFrequency { get; set; }
  193. /// <summary>
  194. /// Desc:气压参数设置:换气次数
  195. /// Default:
  196. /// Nullable:False
  197. /// </summary>
  198. public int airSwapTime { get; set; }
  199. /// <summary>
  200. /// Desc:气压参数设置:气阀到位延时 /ms
  201. /// Default:
  202. /// Nullable:False
  203. /// </summary>
  204. public int valueDelay { get; set; }
  205. /// <summary>
  206. /// Desc:气压参数设置:补气后等待检测时间 /s
  207. /// Default:
  208. /// Nullable:False
  209. /// </summary>
  210. public int aerationDelay { get; set; }
  211. /// <summary>
  212. /// Desc:气压参数设置:是否开启新版换气 0 关闭 1开启
  213. /// Default:
  214. /// Nullable:False
  215. /// </summary>
  216. public bool newAirSwap { get; set; }
  217. /// <summary>
  218. /// Desc:电机运动设置:电机到位延时 /ms
  219. /// Default:
  220. /// Nullable:False
  221. /// </summary>
  222. public int motorDelay { get; set; }
  223. /// <summary>
  224. /// Desc:电机运动设置:垂直电机运动上限脉冲数
  225. /// Default:
  226. /// Nullable:False
  227. /// </summary>
  228. public int verticalMotorPulseMax { get; set; }
  229. /// <summary>
  230. /// 保存原图
  231. /// </summary>
  232. public int saveSourcePic { get; set; }
  233. /// <summary>
  234. /// 合成视频
  235. /// </summary>
  236. public bool buildVideo { get; set; }
  237. /// <summary>
  238. /// Desc:相机拍照设置:每轮拍照间隔
  239. /// Default:
  240. /// Nullable:False
  241. /// </summary>
  242. public int photoIntervalPerRound { get; set; }
  243. /// <summary>
  244. /// Desc:呼吸灯开关:0关 1开
  245. /// Default:
  246. /// Nullable:False
  247. /// </summary>
  248. public int lightOn { get; set; }
  249. /// <summary>
  250. /// Desc:下次保养时间
  251. /// Default:
  252. /// Nullable:False
  253. /// </summary>
  254. public DateTime keepDate { get; set; }
  255. /// <summary>
  256. /// Desc:下次安装heap时间
  257. /// Default:
  258. /// Nullable:False
  259. /// </summary>
  260. public DateTime heapDate { get; set; }
  261. /// <summary>
  262. /// 历史曲线写入间隔秒数/(默认60秒)
  263. /// </summary>
  264. public int historyCurveInterval { get; set; }
  265. /// <summary>
  266. /// Desc:抠图失败报警次数 / (默认2次)
  267. /// Default:
  268. /// Nullable:False
  269. /// </summary>
  270. public int mattingAlarmTimes { get; set; }
  271. /// <summary>
  272. /// Desc:仓门超时报警秒数 / (默认60秒)
  273. /// Default:
  274. /// Nullable:False
  275. /// </summary>
  276. public int houseDoorAlarmTime { get; set; }
  277. /// <summary>
  278. /// Desc:温度报警秒数 / (默认180秒)
  279. /// Default:
  280. /// Nullable:False
  281. /// </summary>
  282. public int temperatureAlarmTime { get; set; }
  283. /// <summary>
  284. /// Desc:气压报警秒数 / (默认60秒)
  285. /// Default:
  286. /// Nullable:False
  287. /// </summary>
  288. public int pressureAlarmTime { get; set; }
  289. /// <summary>
  290. /// Desc:温压显示阈值 / (默认0.5)
  291. /// Default:
  292. /// Nullable:False
  293. /// </summary>
  294. public decimal chartThreshold { get; set; }
  295. // ────────────────────────────────────────────────────────────────
  296. // M2-03 本地自动对焦:设备级拍照层配置(对齐 sql/migrations/2026-06-17-autofocus-data-layer.sql 的 tl_setting 扩列)。
  297. // ⚠ 待验证(V-046):这些 C# 属性已加,但取数链路(DBServiceImpl/TL 初始化)是否已把库列填进来需真机/真库确认;
  298. // 若初始化未读这些列,focusLayerSpacingPulse 将为 null → §2.5 报错(FocusConfigMissingException),不兜底。
  299. // ────────────────────────────────────────────────────────────────
  300. /// <summary>
  301. /// Desc:拍照层间距脉冲(工艺值,权威来源;缺失须报错,EEPROM仅参考) focus_layer_spacing_pulse
  302. /// Default: 无默认(缺失报错)
  303. /// Nullable:True
  304. /// </summary>
  305. public int? focusLayerSpacingPulse { get; set; }
  306. /// <summary>
  307. /// Desc:拍照总层数(业务参数) focus_layer_count
  308. /// Default: 5
  309. /// Nullable:False
  310. /// </summary>
  311. public int? focusLayerCount { get; set; }
  312. /// <summary>
  313. /// Desc:对焦标定数据保留天数(清理任务用) clean_autofocus_data —— G4-1
  314. /// Default: 30
  315. /// Nullable:True
  316. /// </summary>
  317. public int? cleanAutofocusData { get; set; }
  318. /// <summary>
  319. /// Desc:对焦起点下移层数(清晰层在第几层之上) focus_layer_down
  320. /// Default: 2
  321. /// Nullable:False
  322. /// </summary>
  323. public int? focusLayerDown { get; set; }
  324. /// <summary>
  325. /// Desc:标定合格峰比阈值(不同客户可松紧) focus_peak_ratio_threshold
  326. /// Default: 1.2
  327. /// Nullable:False
  328. /// </summary>
  329. public decimal? focusPeakRatioThreshold { get; set; }
  330. // ────────────────────────────────────────────────────────────────
  331. // M2-06 场景B产线本地自动对焦安全门(设备级开关)。
  332. // 对齐 sql/migrations/2026-06-17-autofocus-data-layer.sql 的 tl_setting.local_autofocus_enabled。
  333. // 0=关闭(默认安全):StartAutoFocus 本地路径降级——按 scene=0 基准/既有位置拍照,不做实际对焦,
  334. // 避免算法未在真机验证通过(03 §6 三前置:74000伪峰/真胚胎峰比/EEPROM回写)时错误对焦污染拍摄。
  335. // 1=启用:走 M2-03 本地 CalibrationEngine 四步标定对焦(场景B 正式启用)。
  336. // ⚠ 待验证 V-061/V-062:安全门开关生效、关闭降级行为正确不污染拍摄。
  337. // 取数链同 focusLayer*(V-047):经服务器 init JSON 反序列化 / 本地缓存 ConvertHelper 回填。
  338. // ────────────────────────────────────────────────────────────────
  339. /// <summary>
  340. /// Desc:场景B本地自动对焦安全门 local_autofocus_enabled
  341. /// 0=关闭(降级按基准/既有位置拍照,默认安全) 1=启用(本地四步标定对焦)。
  342. /// Default: 0(安全)
  343. /// Nullable:False
  344. /// </summary>
  345. public int localAutofocusEnabled { get; set; }
  346. }
  347. }