Compare commits

..
244 Commits
Author SHA1 Message Date
sc 5aee8ae1b8 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-08 23:20:43 +08:00
sc dfa9a53ab1 修改数据库 2025-10-08 23:20:42 +08:00
sc 781155370f Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-08 23:12:09 +08:00
sc dd7bf1b4d1 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-08 23:12:07 +08:00
sc b3fe0f2dd1 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-08 22:48:36 +08:00
sc 42d728b2ca 810,811,812指令逻辑修改 2025-10-08 22:48:34 +08:00
sc 37723963ce Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-06 21:50:13 +08:00
sc bcca150aea 防火墙设置 2025-10-06 21:50:12 +08:00
sc 2abd80567a Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-06 21:36:36 +08:00
sc 104bec5de6 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-06 21:36:35 +08:00
sc 9e391cd291 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-06 21:35:43 +08:00
sc 3b936a37cb 添加资源,822指令错误修复 2025-10-06 21:35:42 +08:00
sc 9c00cb8176 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-06 00:38:34 +08:00
sc 41990092c4 添加822指令,最近可用工艺 2025-10-06 00:38:31 +08:00
sc a1ec2f84a6 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-05 00:23:20 +08:00
sc 7c31cab283 运行资源 2025-10-05 00:23:08 +08:00
sc 7edfcec844 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-02 22:25:38 +08:00
sc 339d4cfde5 数据库 2025-10-02 22:25:36 +08:00
sc 26a7faebe7 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-02 22:25:24 +08:00
sc 2b93e8141e Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-02 22:25:23 +08:00
sc b64e35a100 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-02 20:56:06 +08:00
sc 62cd3c6e33 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-02 20:56:04 +08:00
sc bb334e76cf Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-01 16:50:48 +08:00
sc 650f89b7cb 明细传输错误修正 2025-10-01 16:50:47 +08:00
sc 9e5e1415a9 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-10-01 15:42:07 +08:00
sc 55ee496d51 812指令修正错误 2025-10-01 15:42:06 +08:00
sc f3b17df9c2 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-09-30 20:53:50 +08:00
sc 003037f94a Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-30 20:53:48 +08:00
sc b7b4729805 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-29 01:06:03 +08:00
sc e5ce1bd9ca 数据库 2025-09-29 01:05:45 +08:00
sc eb6ea78c50 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-29 00:57:10 +08:00
sc ec4aa3a9a2 修改缓冲区 2025-09-29 00:57:06 +08:00
sc a1d566b2e0 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-27 23:35:18 +08:00
sc 355d942c6e 添加859指令 2025-09-27 23:35:07 +08:00
sc 2cfd88d7a1 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-24 21:45:08 +08:00
sc 7bd4fca576 SC821修改指令 2025-09-24 21:45:05 +08:00
sc 508b07acc5 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-24 11:01:33 +08:00
sc 7d1c20b414 错误修正 2025-09-24 11:01:26 +08:00
sc f3e377cc2b Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-21 23:55:29 +08:00
sc b53c596d0d Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-21 23:55:27 +08:00
sc 05c1185c2d Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-21 23:44:30 +08:00
sc 0c24c679ce Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-21 23:44:18 +08:00
sc e5a7d89219 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-21 00:36:55 +08:00
sc ec8bd91c8b 添加资源 2025-09-21 00:36:52 +08:00
sc 370936c484 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-19 01:21:58 +08:00
sc 70a9133f5e 曲线图逻辑错误修改,模拟题添加信息 2025-09-19 01:21:50 +08:00
sc 66d40d94aa Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-18 00:53:12 +08:00
sc 79625bf08c 模拟图 2025-09-18 00:53:08 +08:00
sc 24e7dff82f Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-18 00:04:19 +08:00
sc 3e3a04cb36 模拟图页面 2025-09-18 00:03:47 +08:00
sc c7ccd8277c Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-17 00:36:30 +08:00
sc 9df14365ef 数据库 2025-09-17 00:36:26 +08:00
sc a4cf2ffd00 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-17 00:34:30 +08:00
sc c4b3cbb469 添加资源,设备模拟页面 2025-09-17 00:34:22 +08:00
sc 34af5b755e Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-16 01:08:47 +08:00
sc f0597387d5 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-16 01:08:41 +08:00
sc 8bcdc19eb9 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-16 01:06:07 +08:00
sc 026a3f4f2b 添加资源,模拟图 2025-09-16 01:06:02 +08:00
sc f2d5e795b0 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-15 01:09:54 +08:00
sc 9205894999 添加资源 2025-09-15 01:09:45 +08:00
sc 105155b737 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-14 00:50:20 +08:00
sc d9e5f4e2dc 添加资源 2025-09-14 00:50:15 +08:00
sc 53b28c8319 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-07 12:27:13 +08:00
sc 6c6fa42544 通讯循环逻辑修改 2025-09-07 12:27:07 +08:00
sc c768489b69 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-07 11:06:49 +08:00
sc 65a738d238 io修改限制 2025-09-07 11:06:43 +08:00
sc eff04b74cd Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-07 01:20:32 +08:00
sc da1d79f073 812指令错误修正Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-07 01:20:25 +08:00
sc 4206dda9aa Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-06 22:22:05 +08:00
sc 0af96ea30b Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-06 22:22:00 +08:00
sc 8cb58fc6fa Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-06 22:05:02 +08:00
sc 8db7de1d3c 添加关机退出按钮 2025-09-06 22:05:00 +08:00
sc f08fde6dad Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-05 23:01:23 +08:00
sc df21f7f4cf 修改错误,添加硬件监控 2025-09-05 23:01:19 +08:00
sc 6b26763320 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-05 16:43:19 +08:00
sc 683c7b03f3 内置触摸键盘,参数设置系统设置添加打开触摸键盘功能 2025-09-05 16:42:48 +08:00
sc 6a1d6c5cf8 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-04 23:20:18 +08:00
sc f7e051baec 步骤设置页面数字输入键盘完善 2025-09-04 23:20:13 +08:00
sc 5da57efb29 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-04 22:27:56 +08:00
sc 37192378b0 添加数字键盘与字母键盘。数字键盘包含输入限制功能。步骤设置页面使用数字键盘。 2025-09-04 22:27:50 +08:00
sc 06b948dd92 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-04 17:54:18 +08:00
sc aaee65200a 任务检查逻辑数据错误修正 2025-09-04 17:54:16 +08:00
sc af6b3c0796 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-04 00:39:22 +08:00
sc c4f98eda2a 添加字母键盘与数字键盘 2025-09-04 00:39:18 +08:00
sc eae0bbeed3 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-03 22:30:52 +08:00
sc bec56c1206 添加813指令 2025-09-03 22:30:47 +08:00
sc f6f3bd5607 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-03 21:18:57 +08:00
sc 7d259c5b51 数据库 2025-09-03 21:18:46 +08:00
sc 6119bfe857 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-03 21:17:25 +08:00
sc 6ddb1f0a86 添加默认速度逻辑 2025-09-03 21:17:21 +08:00
sc e4deb1e52c Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-03 20:50:02 +08:00
sc 56bb9e0fd7 膝盖信息点位,添加运行信息 2025-09-03 20:49:58 +08:00
sc ba1fe7ef95 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-03 20:21:06 +08:00
sc a689ff0ad0 添加参数信息传入 2025-09-03 20:20:57 +08:00
sc 8a9cb1b05e Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-03 19:53:07 +08:00
sc 53eb3be876 部分io点修改,添加图片资源,添加注料功能逻辑 2025-09-03 19:53:03 +08:00
sc e570ba713a Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-02 21:04:46 +08:00
sc 27a9b87387 主泵停止时复位温控 2025-09-02 21:04:38 +08:00
sc d2d1f1a741 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-02 21:02:05 +08:00
sc 5750ff7ce1 通讯修改,温控增加主泵检查 2025-09-02 21:01:58 +08:00
sc 2d83da7916 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-01 01:06:10 +08:00
sc 227f2c9967 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-09-01 01:06:01 +08:00
sc 59706005cd Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-31 01:30:14 +08:00
sc b3e33b2f27 增加模拟演示数据 2025-08-31 01:30:03 +08:00
sc 6af357c0d0 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-30 21:52:04 +08:00
sc 469d76f9b0 锁功能生效,操作锁 2025-08-30 21:52:00 +08:00
sc 0402261175 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-28 18:30:49 +08:00
sc ad64084638 数据库连接修改 2025-08-28 18:30:42 +08:00
sc e6dc7814cc Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-28 18:00:10 +08:00
sc 58f457c305 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-28 18:00:03 +08:00
sc dd47f96d71 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-28 01:22:29 +08:00
sc 77288bdf85 中控操作逻辑修复 2025-08-28 01:21:49 +08:00
sc 1806a35687 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-27 01:24:13 +08:00
sc 5b203da464 语言,呼叫检查状态 2025-08-27 01:24:06 +08:00
sc e8a7e0e548 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-26 21:09:24 +08:00
sc 6ab8ebb4d9 等待输送功能 2025-08-26 21:08:15 +08:00
sc f422844cec Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-26 01:46:58 +08:00
sc 96468a68c7 输送相关指令 2025-08-26 01:46:56 +08:00
sc cc392fdbfe Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-25 00:23:39 +08:00
sc fb1b024944 数据读写逻辑修改 2025-08-25 00:23:34 +08:00
sc 495d2d1690 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-24 01:04:11 +08:00
sc f4109ecfe1 呼叫功能通讯 2025-08-24 01:04:06 +08:00
sc c35cb1e2fa Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-23 01:17:48 +08:00
sc 0cc877284a Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-23 01:17:45 +08:00
sc 16b727fba7 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-22 23:22:24 +08:00
sc e7eada1ff4 中控呼叫功能 2025-08-22 23:22:16 +08:00
sc 1a5c0aa5d9 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-22 01:13:33 +08:00
sc e1e1b3bb33 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-22 01:13:31 +08:00
sc bf014c35a2 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-22 00:49:42 +08:00
sc 7d88a1887c 编辑页面子功能错误修复,呼叫功能添加 2025-08-22 00:49:37 +08:00
sc 6644c8d334 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-21 00:15:04 +08:00
sc abe15b19f4 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-21 00:15:01 +08:00
sc bd24477e94 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-20 22:51:46 +08:00
sc 094a3553ad Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-20 22:51:44 +08:00
sc 549d66fb07 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-20 01:41:06 +08:00
sc ae749384b1 添加指令859获取设备日志 2025-08-20 01:41:05 +08:00
sc 4256650361 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-20 01:15:08 +08:00
sc d55324eb42 修改指令特征字符 2025-08-20 01:15:07 +08:00
sc 9959e015db Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-20 01:06:58 +08:00
sc 05ff7c8431 添加指令记录 2025-08-20 01:06:56 +08:00
sc d2ceaca223 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-20 00:47:50 +08:00
sc 3da807005d IOdata 2025-08-20 00:47:49 +08:00
sc b01b076748 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-20 00:38:30 +08:00
sc bbaeeb4575 修改iodata 2025-08-20 00:38:28 +08:00
sc d570d5131b Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-19 23:38:40 +08:00
sc c8c93ae046 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-19 23:38:37 +08:00
sc 735575d96c Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-19 23:28:34 +08:00
sc 1069a43cf4 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-19 23:28:32 +08:00
sc b6b67b9961 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-19 00:05:12 +08:00
sc ae2ddc1691 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-19 00:02:02 +08:00
sc 0401dea0df Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-17 23:38:46 +08:00
sc 8b11146d06 添加资源 2025-08-17 23:38:45 +08:00
sc 6f835ea088 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-17 20:58:08 +08:00
sc 0f44866e27 副功能步骤 2025-08-17 20:58:06 +08:00
sc f718cf152f Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-17 20:16:51 +08:00
sc 5f9cefb7e2 更新库 2025-08-17 20:16:46 +08:00
sc 68414d1bd8 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-17 19:52:03 +08:00
sc 28d6556b51 卸载ScottPlot库 2025-08-17 19:52:01 +08:00
sc cf876c27f4 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-16 23:52:39 +08:00
sc f363b81a16 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-16 23:52:37 +08:00
sc b947648a2b Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-16 23:45:57 +08:00
sc d21d54da88 步骤表问题修改 2025-08-16 23:45:55 +08:00
sc a0aa5c43c0 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-16 23:02:25 +08:00
sc 5798d8ba00 图表问题修改 2025-08-16 23:02:22 +08:00
sc 09a6ed632e Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-16 16:45:27 +08:00
sc a946dc8b47 修改数据库 2025-08-16 16:45:23 +08:00
sc 4d6e4f0707 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-16 16:42:21 +08:00
sc 4a23ae3f2b 数据库 2025-08-16 16:42:19 +08:00
sc 64bc52c166 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-16 16:41:42 +08:00
sc 7666f88e12 部分触摸界面修改,新建功能错误修改,信息按钮逻辑错误修改 2025-08-16 16:41:40 +08:00
sc 0109e44891 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-16 16:06:12 +08:00
sc 0b9b01c772 添加触摸限制弹性效果 2025-08-16 16:06:10 +08:00
sc c069291ae8 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-11 23:39:19 +08:00
sc 4a11bf8b53 数据库修改 2025-08-11 23:39:17 +08:00
sc f861cdb4f8 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-11 23:38:24 +08:00
sc 00f6d637ac 程序组步骤页面逻辑修改 2025-08-11 23:38:20 +08:00
sc e51e8bb73f Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-11 23:08:47 +08:00
sc dfcbd0e5ec 子功能页面完成 2025-08-11 23:08:43 +08:00
sc a9288ffad5 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-10 00:45:13 +08:00
sc 2ed1f7887b 子功能保存事件 2025-08-10 00:45:09 +08:00
sc 837f0f3cb0 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-09 23:15:55 +08:00
sc 3f6ce1389b 修改步骤页面返回逻辑 2025-08-09 23:15:52 +08:00
sc 22a0382f0f Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-09 21:51:43 +08:00
sc 8758185ab1 添加资源,步骤页面更改增加子功能 2025-08-09 21:51:39 +08:00
sc 3f09edd3c7 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-08 17:33:51 +08:00
sc 27f62a03da 步骤编辑页面修改 2025-08-08 17:33:48 +08:00
sc 7401240e4d Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-08 16:56:32 +08:00
sc fb26c91e9b 修改无功能图片逻辑 2025-08-08 16:56:26 +08:00
sc 88646c2c29 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-08 16:53:11 +08:00
sc d6420a29c7 添加错误图标 2025-08-08 16:53:08 +08:00
sc 84b80e0780 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-08 16:49:37 +08:00
sc ad765afbbd 添加图片资源,修改插入逻辑错误,修改主功能循环跳转逻辑错误 2025-08-08 16:49:32 +08:00
sc 65bbc7c572 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-07 00:41:29 +08:00
sc fa836593f5 步骤编辑修改 2025-08-07 00:41:22 +08:00
sc 4cc396c43b Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-06 23:46:42 +08:00
sc 50485955cd 添加子功能逻辑 2025-08-06 23:46:36 +08:00
sc 517b165a45 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-04 01:05:22 +08:00
sc f5bc14171e step表格功能添加 2025-08-04 01:05:16 +08:00
sc 561ef7e336 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-03 23:57:11 +08:00
sc b6ce460d18 修改操作页面开始添加从逻辑 2025-08-03 23:57:04 +08:00
sc 117b7147f1 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-01 16:20:10 +08:00
sc 9d0b291ea0 添加主缸加压与减压逻辑 2025-08-01 16:20:07 +08:00
sc 5b5c7434e5 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-01 15:50:22 +08:00
sc bf39e85925 报警消音相关逻辑 2025-08-01 15:50:16 +08:00
sc 1d0c0dbb23 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-01 15:09:51 +08:00
sc e1a567d1f7 添加取样页面及相关资源 2025-08-01 15:09:47 +08:00
sc a348201ea3 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-08-01 00:32:47 +08:00
sc 928dc8099d 添加通知页面 2025-08-01 00:32:41 +08:00
sc ab45c593df Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-31 22:44:05 +08:00
sc 1efa70892e 添加新建功能 2025-07-31 22:43:58 +08:00
sc 9166319c0e Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-30 00:06:40 +08:00
sc e17e97be2c 修改新建页面 2025-07-30 00:06:37 +08:00
sc 3abdd696f6 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-29 23:46:42 +08:00
sc 1e309ff829 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-29 23:46:39 +08:00
sc 9a003f333c Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-29 23:45:11 +08:00
sc f929954a28 修改工艺信息页面,去除键盘监控 2025-07-29 23:45:08 +08:00
sc 7f0d4b60f5 添加资源 2025-07-29 21:48:30 +08:00
sc d448909269 添加图片资源,修改工艺启动页面,修改图形页面大小添加关机按钮 2025-07-29 21:47:41 +08:00
sc 78dfca2719 Merge branch 'master' of http://192.168.0.12:13000/sc/DyeingComputer 2025-07-28 20:51:14 +08:00
sc 9f4ca537ed 添加datagrid触摸支持 2025-07-28 20:51:05 +08:00
sc 9578bc756d Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-27 23:52:57 +08:00
sc c0aedcb843 添加中控自动状态信息 2025-07-27 23:52:53 +08:00
sc 731531bc39 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-27 17:18:40 +08:00
sc f161ee0e77 功能图标添加 2025-07-27 17:18:36 +08:00
sc 57873c67d6 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-27 15:46:38 +08:00
sc c1e324438d 资源调整 2025-07-27 15:46:35 +08:00
sc a7ff642b0c Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-27 13:03:48 +08:00
sc 9a60d77c84 添加请求解锁功能 2025-07-27 13:03:44 +08:00
sc ce09b1f6e3 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-24 01:13:01 +08:00
sc 9e3ff33967 修改输送指令 2025-07-24 01:12:57 +08:00
sc 9addef460b Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-23 22:39:31 +08:00
sc 65bebbf591 添加输送状态返回 2025-07-23 22:39:19 +08:00
sc 6ee3b02ede Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-23 00:11:34 +08:00
sc becf47a916 添加故障信息状态 2025-07-23 00:11:26 +08:00
sc ecbaf4ceed Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-21 23:01:28 +08:00
sc 5185b1f4a4 830指令添加细节 2025-07-21 23:01:22 +08:00
sc bb2f0c5fec Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-16 23:36:57 +08:00
sc 2040c6b102 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-16 23:36:51 +08:00
sc 768cf4f7cb Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-16 23:28:52 +08:00
sc 16249bb112 数据库 2025-07-16 23:28:48 +08:00
sc 39acb6fc37 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-16 23:20:22 +08:00
sc 64c467137b 跳步按钮效果 2025-07-16 23:20:17 +08:00
sc a8c7a956e4 Merge branch 'master' of http://www.scserverddns.top:13000/sc/DyeingComputer 2025-07-16 21:39:14 +08:00
sc d4918cd419 修改工艺步骤编辑逻辑 2025-07-16 21:38:58 +08:00
149 changed files with 10347 additions and 1622 deletions

No files matched your search

+247
View File
@@ -0,0 +1,247 @@
# 如果要从更高级别的目录继承 .editorconfig 设置,请删除以下行
root = true
# c# 文件
[*.cs]
#### Core EditorConfig 选项 ####
# 缩进和间距
indent_size = 4
indent_style = space
tab_width = 4
# 新行首选项
end_of_line = crlf
insert_final_newline = false
#### .NET 代码操作 ####
# 类型成员
dotnet_hide_advanced_members = false
dotnet_member_insertion_location = with_other_members_of_the_same_kind
dotnet_property_generation_behavior = prefer_throwing_properties
# 符号搜索
dotnet_search_reference_assemblies = true
#### .NET 编码约定 ####
# 组织 Using
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = false
file_header_template = unset
# this. 和 Me. 首选项
dotnet_style_qualification_for_event = false
dotnet_style_qualification_for_field = false
dotnet_style_qualification_for_method = false
dotnet_style_qualification_for_property = false
# 语言关键字与 bcl 类型首选项
dotnet_style_predefined_type_for_locals_parameters_members = true
dotnet_style_predefined_type_for_member_access = true
# 括号首选项
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_operators = never_if_unnecessary
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
# 修饰符首选项
dotnet_style_require_accessibility_modifiers = for_non_interface_members
# 表达式级首选项
dotnet_prefer_system_hash_code = true
dotnet_style_coalesce_expression = true
dotnet_style_collection_initializer = true
dotnet_style_explicit_tuple_names = true
dotnet_style_namespace_match_folder = true
dotnet_style_null_propagation = true
dotnet_style_object_initializer = true
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_prefer_auto_properties = true
dotnet_style_prefer_collection_expression = when_types_loosely_match
dotnet_style_prefer_compound_assignment = true
dotnet_style_prefer_conditional_expression_over_assignment = true
dotnet_style_prefer_conditional_expression_over_return = true
dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed
dotnet_style_prefer_inferred_anonymous_type_member_names = true
dotnet_style_prefer_inferred_tuple_names = true
dotnet_style_prefer_is_null_check_over_reference_equality_method = true
dotnet_style_prefer_simplified_boolean_expressions = true
dotnet_style_prefer_simplified_interpolation = true
# 字段首选项
dotnet_style_readonly_field = true
# 参数首选项
dotnet_code_quality_unused_parameters = all
# 禁止显示首选项
dotnet_remove_unnecessary_suppression_exclusions = none
# 新行首选项
dotnet_style_allow_multiple_blank_lines_experimental = true
dotnet_style_allow_statement_immediately_after_block_experimental = true
#### c# 编码约定 ####
# var 首选项
csharp_style_var_elsewhere = false
csharp_style_var_for_built_in_types = false
csharp_style_var_when_type_is_apparent = false
# Expression-bodied 成员
csharp_style_expression_bodied_accessors = true
csharp_style_expression_bodied_constructors = false
csharp_style_expression_bodied_indexers = true
csharp_style_expression_bodied_lambdas = true
csharp_style_expression_bodied_local_functions = false
csharp_style_expression_bodied_methods = false
csharp_style_expression_bodied_operators = false
csharp_style_expression_bodied_properties = true
# 模式匹配首选项
csharp_style_pattern_matching_over_as_with_null_check = true
csharp_style_pattern_matching_over_is_with_cast_check = true
csharp_style_prefer_extended_property_pattern = true
csharp_style_prefer_not_pattern = true
csharp_style_prefer_pattern_matching = true
csharp_style_prefer_switch_expression = true
# Null 检查首选项
csharp_style_conditional_delegate_call = true
# 修饰符首选项
csharp_prefer_static_anonymous_function = true
csharp_prefer_static_local_function = true
csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async
csharp_style_prefer_readonly_struct = true
csharp_style_prefer_readonly_struct_member = true
# 代码块首选项
csharp_prefer_braces = true
csharp_prefer_simple_using_statement = true
csharp_prefer_system_threading_lock = true
csharp_style_namespace_declarations = block_scoped
csharp_style_prefer_method_group_conversion = true
csharp_style_prefer_primary_constructors = true
csharp_style_prefer_simple_property_accessors = true
csharp_style_prefer_top_level_statements = true
# 表达式级首选项
csharp_prefer_simple_default_expression = true
csharp_style_deconstructed_variable_declaration = true
csharp_style_implicit_object_creation_when_type_is_apparent = true
csharp_style_inlined_variable_declaration = true
csharp_style_prefer_implicitly_typed_lambda_expression = true
csharp_style_prefer_index_operator = true
csharp_style_prefer_local_over_anonymous_function = true
csharp_style_prefer_null_check_over_type_check = true
csharp_style_prefer_range_operator = true
csharp_style_prefer_tuple_swap = true
csharp_style_prefer_unbound_generic_type_in_nameof = true
csharp_style_prefer_utf8_string_literals = true
csharp_style_throw_expression = true
csharp_style_unused_value_assignment_preference = discard_variable
csharp_style_unused_value_expression_statement_preference = discard_variable
# "using" 指令首选项
csharp_using_directive_placement = outside_namespace
# 新行首选项
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
csharp_style_allow_embedded_statements_on_same_line_experimental = true
#### C# 格式规则 ####
# 新行首选项
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true
# 缩进首选项
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true
# 空格键首选项
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
# 包装首选项
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true
#### 命名样式 ####
# 命名规则
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
# 符号规范
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =
# 命名样式
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
+5 -1
View File
@@ -4,6 +4,10 @@
xmlns:local="clr-namespace:DyeingComputer" xmlns:local="clr-namespace:DyeingComputer"
StartupUri="MainWindow.xaml"> StartupUri="MainWindow.xaml">
<Application.Resources> <Application.Resources>
<!-- 全局禁用弹性效果,保留触摸滚动 -->
<Style TargetType="ScrollViewer">
<!-- 关键:仅添加事件处理 -->
<EventSetter Event="ManipulationBoundaryFeedback" Handler="ScrollViewer_ManipulationBoundaryFeedback"/>
</Style>
</Application.Resources> </Application.Resources>
</Application> </Application>
+7
View File
@@ -15,6 +15,8 @@ using System.Runtime.InteropServices;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace DyeingComputer namespace DyeingComputer
{ {
@@ -69,6 +71,11 @@ namespace DyeingComputer
LiveCharts.Configure(config => config.HasGlobalSKTypeface(SKFontManager.Default.MatchCharacter('药'))); LiveCharts.Configure(config => config.HasGlobalSKTypeface(SKFontManager.Default.MatchCharacter('药')));
LiveCharts.Configure(config => config.HasGlobalSKTypeface(SKFontManager.Default.MatchCharacter('缸'))); LiveCharts.Configure(config => config.HasGlobalSKTypeface(SKFontManager.Default.MatchCharacter('缸')));
} }
private void ScrollViewer_ManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
// 禁用弹性效果的核心代码
e.Handled = true;
}
private UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "DyeingComputer.ini"); private UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "DyeingComputer.ini");
+85
View File
@@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media.Imaging;
namespace DyeingComputer.ConvertMoels
{
internal class StatenToImageConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
switch (value)
{
case "001":
return new BitmapImage(new Uri("/Lmage/ID001.png", UriKind.Relative));//功能模块001温度控制
case "007":
return new BitmapImage(new Uri("/Lmage/ID007.png", UriKind.Relative));//液位入水
case "008":
return new BitmapImage(new Uri("/Lmage/ID008.png", UriKind.Relative));//流量入水
case "013":
return new BitmapImage(new Uri("/Lmage/ID013.png", UriKind.Relative));//批次水位水洗
case "015":
return new BitmapImage(new Uri("/Lmage/ID015.png", UriKind.Relative));//溢流水洗
case "017":
return new BitmapImage(new Uri("/Lmage/ID017.png", UriKind.Relative));//降温水洗
case "020":
return new BitmapImage(new Uri("/Lmage/ID020.png", UriKind.Relative));//排水
case "022":
return new BitmapImage(new Uri("/Lmage/ID022.png", UriKind.Relative));//动力排水
case "031":
return new BitmapImage(new Uri("/Lmage/ID031.png", UriKind.Relative));//运转时间
case "035":
return new BitmapImage(new Uri("/Lmage/ID035.png", UriKind.Relative));//准备入布
case "036":
return new BitmapImage(new Uri("/Lmage/ID036.png", UriKind.Relative));//准备出布
case "039":
return new BitmapImage(new Uri("/Lmage/ID039.png", UriKind.Relative));//呼叫人工
case "040":
return new BitmapImage(new Uri("/Lmage/ID040.png", UriKind.Relative));//取样
case "041":
return new BitmapImage(new Uri("/Lmage/ID041.png", UriKind.Relative));//结束
case "049":
return new BitmapImage(new Uri("/Lmage/ID049.png", UriKind.Relative));//等待
case "050":
return new BitmapImage(new Uri("/Lmage/ID050.png", UriKind.Relative));//主缸加压
case "051":
return new BitmapImage(new Uri("/Lmage/ID051.png", UriKind.Relative));//主缸减压
case "054":
return new BitmapImage(new Uri("/Lmage/ID054.png", UriKind.Relative));//主泵/风机速度
case "055":
return new BitmapImage(new Uri("/Lmage/ID055.png", UriKind.Relative));//主泵启动
case "056":
return new BitmapImage(new Uri("/Lmage/ID056.png", UriKind.Relative));//
case "064":
return new BitmapImage(new Uri("/Lmage/ID064.png", UriKind.Relative));//
case "065":
return new BitmapImage(new Uri("/Lmage/ID065.png", UriKind.Relative));//
case "066":
return new BitmapImage(new Uri("/Lmage/ID066.png", UriKind.Relative));//
case "067":
return new BitmapImage(new Uri("/Lmage/ID067.png", UriKind.Relative));//
case "090":
return new BitmapImage(new Uri("/Lmage/ID090.png", UriKind.Relative));//
case "091":
return new BitmapImage(new Uri("/Lmage/ID091.png", UriKind.Relative));//
case "093":
return new BitmapImage(new Uri("/Lmage/ID093.png", UriKind.Relative));//
case "094":
return new BitmapImage(new Uri("/Lmage/ID094.png", UriKind.Relative));//
default:
return new BitmapImage(new Uri("", UriKind.Relative));
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
Binary file not shown.
BIN
View File
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
[SYS]
COM=COM7
Language=zh-CN
Protocols=SUNLIGHT_R
BIN
View File
Binary file not shown.
Binary file not shown.
+120 -9
View File
@@ -80,6 +80,11 @@
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit> <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup />
<PropertyGroup />
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.ComponentModel.DataAnnotations" />
@@ -111,6 +116,7 @@
<Compile Include="ConvertMoels\GramsSQLConvert.cs" /> <Compile Include="ConvertMoels\GramsSQLConvert.cs" />
<Compile Include="ConvertMoels\ProductTypeSQLConvert.cs" /> <Compile Include="ConvertMoels\ProductTypeSQLConvert.cs" />
<Compile Include="ConvertMoels\RowToIndexConverter.cs" /> <Compile Include="ConvertMoels\RowToIndexConverter.cs" />
<Compile Include="ConvertMoels\StatenToImageConvert.cs" />
<Compile Include="ConvertMoels\StatenConvert.cs" /> <Compile Include="ConvertMoels\StatenConvert.cs" />
<Compile Include="Properties\Resources.en-US.Designer.cs"> <Compile Include="Properties\Resources.en-US.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
@@ -136,6 +142,7 @@
<Compile Include="UserClass\HardwareSN.cs" /> <Compile Include="UserClass\HardwareSN.cs" />
<Compile Include="UserClass\IniFile.cs" /> <Compile Include="UserClass\IniFile.cs" />
<Compile Include="UserClass\Json.cs" /> <Compile Include="UserClass\Json.cs" />
<Compile Include="UserClass\LiquidDosingSystem.cs" />
<Compile Include="UserClass\LogDataRead.cs" /> <Compile Include="UserClass\LogDataRead.cs" />
<Compile Include="UserClass\ERRinf.cs" /> <Compile Include="UserClass\ERRinf.cs" />
<Compile Include="UserClass\LogGing.cs" /> <Compile Include="UserClass\LogGing.cs" />
@@ -197,6 +204,21 @@
<Compile Include="Windows\InputBox.xaml.cs"> <Compile Include="Windows\InputBox.xaml.cs">
<DependentUpon>InputBox.xaml</DependentUpon> <DependentUpon>InputBox.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Windows\Sampling.xaml.cs">
<DependentUpon>Sampling.xaml</DependentUpon>
</Compile>
<Compile Include="KEY\TouchKeyboardNumeral.xaml.cs">
<DependentUpon>TouchKeyboardNumeral.xaml</DependentUpon>
</Compile>
<Compile Include="KEY\TouchKeyboard.xaml.cs">
<DependentUpon>TouchKeyboard.xaml</DependentUpon>
</Compile>
<Compile Include="Windows\UserInf.xaml.cs">
<DependentUpon>UserInf.xaml</DependentUpon>
</Compile>
<Compile Include="Windows\UserCall.xaml.cs">
<DependentUpon>UserCall.xaml</DependentUpon>
</Compile>
<Compile Include="Windows\ViewProgram.xaml.cs"> <Compile Include="Windows\ViewProgram.xaml.cs">
<DependentUpon>ViewProgram.xaml</DependentUpon> <DependentUpon>ViewProgram.xaml</DependentUpon>
</Compile> </Compile>
@@ -271,6 +293,26 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Windows\Sampling.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="KEY\TouchKeyboardNumeral.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="KEY\TouchKeyboard.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Windows\UserInf.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Windows\UserCall.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Windows\ViewProgram.xaml"> <Page Include="Windows\ViewProgram.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
@@ -312,8 +354,11 @@
<LastGenOutput>Resources.zh-TW.Designer.cs</LastGenOutput> <LastGenOutput>Resources.zh-TW.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<Resource Include="Fonts\FontAwesome.otf" /> <Resource Include="Fonts\FontAwesome.otf" />
<None Include=".editorconfig" />
<None Include="app.manifest" />
<None Include="DATA\800COMPUTER.db" /> <None Include="DATA\800COMPUTER.db" />
<None Include="DATA\Chart.db" /> <None Include="DATA\Chart.db" />
<None Include="DATA\LOG.db" />
<None Include="Fonts\font-awesome-4.7.0.zip" /> <None Include="Fonts\font-awesome-4.7.0.zip" />
<None Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.eot" /> <None Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.eot" />
<Resource Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.ttf" /> <Resource Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.ttf" />
@@ -348,6 +393,7 @@
<None Include="Fonts\font-awesome-4.7.0\scss\_screen-reader.scss" /> <None Include="Fonts\font-awesome-4.7.0\scss\_screen-reader.scss" />
<None Include="Fonts\font-awesome-4.7.0\scss\_stacked.scss" /> <None Include="Fonts\font-awesome-4.7.0\scss\_stacked.scss" />
<None Include="Fonts\font-awesome-4.7.0\scss\_variables.scss" /> <None Include="Fonts\font-awesome-4.7.0\scss\_variables.scss" />
<None Include="Properties\.editorconfig" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>
@@ -357,6 +403,7 @@
<None Include="App.config" /> <None Include="App.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="DLL\" />
<Folder Include="Model\" /> <Folder Include="Model\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -364,10 +411,10 @@
<Version>2.0.7</Version> <Version>2.0.7</Version>
</PackageReference> </PackageReference>
<PackageReference Include="CommunityToolkit.Mvvm"> <PackageReference Include="CommunityToolkit.Mvvm">
<Version>8.3.2</Version> <Version>8.4.0</Version>
</PackageReference> </PackageReference>
<PackageReference Include="LiveChartsCore.SkiaSharpView.WPF"> <PackageReference Include="LiveChartsCore.SkiaSharpView.WPF">
<Version>2.0.0-rc3.3</Version> <Version>2.0.0-rc5.4</Version>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces"> <PackageReference Include="Microsoft.Bcl.AsyncInterfaces">
<Version>8.0.0</Version> <Version>8.0.0</Version>
@@ -378,9 +425,6 @@
<PackageReference Include="NModbus.Serial"> <PackageReference Include="NModbus.Serial">
<Version>3.0.81</Version> <Version>3.0.81</Version>
</PackageReference> </PackageReference>
<PackageReference Include="ScottPlot.WPF">
<Version>5.0.39</Version>
</PackageReference>
<PackageReference Include="System.Buffers"> <PackageReference Include="System.Buffers">
<Version>4.6.1</Version> <Version>4.6.1</Version>
</PackageReference> </PackageReference>
@@ -413,10 +457,77 @@
<Content Include="Fonts\font-awesome-4.7.0\css\font-awesome.css" /> <Content Include="Fonts\font-awesome-4.7.0\css\font-awesome.css" />
<Content Include="Fonts\font-awesome-4.7.0\css\font-awesome.min.css" /> <Content Include="Fonts\font-awesome-4.7.0\css\font-awesome.min.css" />
<Content Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.svg" /> <Content Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.svg" />
<Resource Include="link.png" /> <Resource Include="Lmage\00001-1.png" />
<Resource Include="Fonts\link.png" /> <Resource Include="Lmage\00002-1.png" />
<Resource Include="LOCK.png" /> <Resource Include="Lmage\00001.png" />
<Resource Include="Fonts\LOCK.png" /> <Resource Include="Lmage\19002.png" />
<Resource Include="Lmage\19001.png" />
<Resource Include="Lmage\19000.png" />
<Resource Include="Lmage\10009-0.png" />
<Resource Include="Lmage\10009-1.png" />
<Resource Include="Lmage\12500-1.png" />
<Resource Include="Lmage\12000-1.png" />
<Resource Include="Lmage\12000.png" />
<Resource Include="Lmage\10002-1.png" />
<Resource Include="Lmage\10002-2.png" />
<Resource Include="Lmage\10002-3.png" />
<Resource Include="Lmage\10002-4.png" />
<Resource Include="Lmage\10002-5.png" />
<Resource Include="Lmage\10002-6.png" />
<Resource Include="Lmage\11000.png" />
<Resource Include="Lmage\15000.png" />
<Resource Include="Lmage\IconParkExtendY.png" />
<Resource Include="Lmage\IconParkExtendR.png" />
<Resource Include="Lmage\MdiPh.png" />
<Resource Include="Lmage\IconParkExtend.png" />
<Resource Include="Lmage\IconParkInfo.png" />
<Resource Include="Lmage\ID051.png" />
<Resource Include="Lmage\ID050.png" />
<Resource Include="Lmage\ADD.jpg" />
<Resource Include="Lmage\ERR.png" />
<Resource Include="Lmage\ID093.png" />
<Resource Include="Lmage\ID094.png" />
<Resource Include="Lmage\ID090.png" />
<Resource Include="Lmage\ID091.png" />
<Resource Include="Lmage\ID066.png" />
<Resource Include="Lmage\ID067.png" />
<Resource Include="Lmage\ID022.png" />
<Resource Include="Lmage\ID017.png" />
<Resource Include="Lmage\ID013.png" />
<Resource Include="Lmage\ID015.png" />
<Resource Include="Lmage\ID020.png" />
<Resource Include="Lmage\ID007.png" />
<Resource Include="Lmage\ID008.png" />
<Resource Include="Lmage\ID049.png" />
<Resource Include="Lmage\ID031.png" />
<Resource Include="Lmage\ID035.png" />
<Resource Include="Lmage\ID036.png" />
<Resource Include="Lmage\ID040.png" />
<Resource Include="Lmage\ID041.png" />
<Resource Include="Lmage\ID055.png" />
<Resource Include="Lmage\ID056.png" />
<Resource Include="Lmage\ID054.png" />
<Resource Include="Lmage\ID064.png" />
<Resource Include="Lmage\ID065.png" />
<Resource Include="Lmage\ID039.png" />
<Resource Include="Lmage\ID001.png" />
<Resource Include="Lmage\StreamlineUltimateColorColorPaletteSample1.png" />
<Resource Include="Lmage\FxemojiBellcancellation.png" />
<Resource Include="Lmage\FxemojiRingingbell.png" />
<Resource Include="Lmage\IconParkMessages.png" />
<Resource Include="Lmage\IconParkPlayTwo.png" />
<Resource Include="Lmage\StreamlinePlayList4Solid.png" />
<Resource Include="Lmage\StreamlinePlayList8.png" />
<Resource Include="Lmage\IconParkAutoFocus.png" />
<Resource Include="Lmage\FlatColorIconsCancel.png" />
<Resource Include="Lmage\IconParkPauseOne.png" />
<Resource Include="Lmage\IconParkPlay.png" />
<Resource Include="Lmage\IconParkStopwatch.png" />
<Resource Include="Lmage\IconParkLock.png" />
<Resource Include="Lmage\Manual.png" />
<Resource Include="Lmage\Hand.png" />
<Resource Include="Lmage\link.png" />
<Resource Include="Lmage\LOCK.png" />
<Resource Include="Lmage\inf.png" /> <Resource Include="Lmage\inf.png" />
<Resource Include="Lmage\start2.png" /> <Resource Include="Lmage\start2.png" />
<Resource Include="Lmage\start3.png" /> <Resource Include="Lmage\start3.png" />
+132
View File
@@ -0,0 +1,132 @@
<Window x:Class="DyeingComputer.KEY.TouchKeyboard"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DyeingComputer.Windows"
mc:Ignorable="d" WindowStyle="None" ResizeMode="NoResize" Topmost="True"
WindowStartupLocation="CenterScreen"
Title="TouchKeyboard" Height="500" Width="750">
<Window.Resources>
<Style x:Key="KeyButtonStyle" TargetType="Button">
<Setter Property="Background" Value="#FFF0F0F0"/>
<Setter Property="BorderBrush" Value="#FFCCCCCC"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="MinWidth" Value="60"/>
<Setter Property="MinHeight" Value="40"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFDDDDDD"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="SpecialKeyButtonStyle" BasedOn="{StaticResource KeyButtonStyle}" TargetType="Button">
<Setter Property="Background" Value="#FFE0E0E0"/>
<Setter Property="FontSize" Value="16"/>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 预览区域 -->
<TextBox x:Name="PreviewTextBox" Grid.Row="0" Height="60" Margin="10"
FontSize="24" VerticalContentAlignment="Center" IsReadOnly="False"/>
<!-- 键盘主体区域 -->
<Grid Grid.Row="1" Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 数字行 -->
<StackPanel Orientation="Horizontal" Grid.Row="0" HorizontalAlignment="Center">
<Button Content="1" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="2" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="3" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="4" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="5" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="6" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="7" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="8" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="9" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="0" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="DEL" Style="{StaticResource SpecialKeyButtonStyle}" Click="Backspace_Click" Width="60"/>
</StackPanel>
<!-- 第一行字母 -->
<StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Center">
<Button Content="Q" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="W" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="E" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="R" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="T" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="Y" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="U" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="I" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="O" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="P" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
</StackPanel>
<!-- 第二行字母 -->
<StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Center">
<Button Content="A" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="S" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="D" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="F" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="G" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="H" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="J" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="K" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="L" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="/" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="HIDE" Style="{StaticResource SpecialKeyButtonStyle}" Click="Hide_Click" Width="60"/>
</StackPanel>
<!-- 第三行字母 -->
<StackPanel Orientation="Horizontal" Grid.Row="3" HorizontalAlignment="Center">
<Button x:Name="ShiftButton" Content="⇧" Style="{StaticResource SpecialKeyButtonStyle}" Click="Shift_Click" Width="60"/>
<Button Content="Z" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="X" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="C" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="V" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="B" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="N" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="M" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="." Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="ENTER" Style="{StaticResource SpecialKeyButtonStyle}" Click="Enter_Click" Width="120"/>
</StackPanel>
</Grid>
<!-- 状态栏 -->
<StatusBar Grid.Row="2">
<StatusBarItem>
<TextBlock x:Name="StatusTextBlock" Text="就绪"/>
</StatusBarItem>
</StatusBar>
</Grid>
</Window>
+116
View File
@@ -0,0 +1,116 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using static DyeingComputer.KEY.TouchKeyboardNumeral;
namespace DyeingComputer.KEY
{
/// <summary>
/// TouchKeyboard.xaml 的交互逻辑
/// </summary>
public partial class TouchKeyboard : Window
{
private bool isShiftActive = false;
public string KeyValue;
public event EventHandler<KeyPressedEventArgs> KeyPressed;
public TouchKeyboard()
{
InitializeComponent();
}
private void KeyButton_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
if (button != null)
{
string key = button.Content.ToString();
if (key.Length == 1 && char.IsLetter(key[0]))
{
key = isShiftActive ? key.ToUpper() : key.ToLower();
}
PreviewTextBox.Text += key;
// 输入后关闭Shift状态
if (isShiftActive)
{
isShiftActive = false;
UpdateButtonAppearance();
}
}
}
private void Shift_Click(object sender, RoutedEventArgs e)
{
isShiftActive = !isShiftActive;
UpdateButtonAppearance();
}
private void Backspace_Click(object sender, RoutedEventArgs e)
{
if (!string.IsNullOrEmpty(PreviewTextBox.Text))
{
PreviewTextBox.Text = PreviewTextBox.Text.Substring(0, PreviewTextBox.Text.Length - 1);
}
}
private void Enter_Click(object sender, RoutedEventArgs e)
{
// 触发回车事件
KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Enter, PreviewTextBox.Text));
this.Close();
// PreviewTextBox.Text += Environment.NewLine;
}
private void Hide_Click(object sender, RoutedEventArgs e)
{
KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Hide, ""));
this.Close();
}
private void UpdateButtonAppearance()
{
// 更新Shift按钮的外观以反映当前状态
if (isShiftActive)
{
ShiftButton.Background = new SolidColorBrush(Colors.LightBlue);
}
else
{
ShiftButton.Background = new SolidColorBrush(Color.FromRgb(224, 224, 224));
}
}
public class KeyPressedEventArgs : EventArgs
{
public KeyType KeyType { get; }
public string KeyValue { get; }
public KeyPressedEventArgs(KeyType keyType, string keyValue)
{
KeyType = keyType;
KeyValue = keyValue;
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// 初始化为默认模式
// SetKeyboardMode(KeyboardMode.Default);
PreviewTextBox.Text = null;
}
}
}
+100
View File
@@ -0,0 +1,100 @@
<Window x:Class="DyeingComputer.KEY.TouchKeyboardNumeral"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DyeingComputer.Windows"
mc:Ignorable="d"
WindowStyle="None"
ResizeMode="NoResize"
Topmost="True"
WindowStartupLocation="CenterScreen"
Title="TouchKeyboardNumeral"
Loaded="Window_Loaded"
Height="500" Width="550">
<Window.Resources>
<Style x:Key="KeyButtonStyle" TargetType="Button">
<Setter Property="Background" Value="#FFF0F0F0"/>
<Setter Property="BorderBrush" Value="#FFCCCCCC"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="MinWidth" Value="100"/>
<Setter Property="MinHeight" Value="40"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFDDDDDD"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="#FFBBBBBB"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="SpecialKeyButtonStyle" BasedOn="{StaticResource KeyButtonStyle}" TargetType="Button">
<Setter Property="Background" Value="#FFE0E0E0"/>
<Setter Property="FontSize" Value="16"/>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 预览区域 -->
<TextBox x:Name="PreviewTextBox" Grid.Row="0" Height="60" Margin="10"
FontSize="24" VerticalContentAlignment="Center" IsReadOnly="False"/>
<!-- 键盘主体区域 -->
<Grid Grid.Row="1" Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 数字行 -->
<StackPanel x:Name="FirstRow" Orientation="Horizontal" Grid.Row="0" HorizontalAlignment="Center">
<Button Content="7" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="8" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="9" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="0" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="DEL" Style="{StaticResource SpecialKeyButtonStyle}" Click="Backspace_Click" Width="60"/>
</StackPanel>
<!-- 数字行 -->
<StackPanel x:Name="SecondRow" Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Center">
<Button Content="4" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="5" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="6" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="." Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="HIDE" Style="{StaticResource SpecialKeyButtonStyle}" Click="Hide_Click" Width="60"/>
</StackPanel>
<!-- 数字行 -->
<StackPanel x:Name="ThirdRow" Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Center">
<Button Content="1" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="2" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="3" Style="{StaticResource KeyButtonStyle}" Click="KeyButton_Click"/>
<Button Content="ENTER" Style="{StaticResource SpecialKeyButtonStyle}" Click="Enter_Click" Width="200"/>
</StackPanel>
</Grid>
</Grid>
</Window>
+215
View File
@@ -0,0 +1,215 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace DyeingComputer.KEY
{
/// <summary>
/// TouchKeyboard.xaml 的交互逻辑
/// </summary>
public partial class TouchKeyboardNumeral : Window
{
private bool mode = false;
public string KeyValue;
public event EventHandler<KeyPressedEventArgs> KeyPressed;
private KeyboardMode currentMode = KeyboardMode.Default;
private int minValue = 0;
private int maxValue = 9;
private TextBox targetTextBox;
// 定义键盘模式枚举
public enum KeyboardMode
{
Default, // 默认模式,所有键可用
NumericOnly, // 只允许数字
DecimalOnly, // 允许数字和小数点
LimitedRange // 限制数字范围
}
public TouchKeyboardNumeral()
{
InitializeComponent();
}
public void SetKeyboardMode(KeyboardMode mode, TextBox target = null, int min = 0, int max = 9)
{
currentMode = mode;
targetTextBox = target;
minValue = min;
maxValue = max;
UpdateKeyboardLayout();
}
private void UpdateKeyboardLayout()
{
switch (currentMode)
{
case KeyboardMode.NumericOnly:
// 只允许数字,禁用小数点
SetButtonEnabled(".", false);
break;
case KeyboardMode.DecimalOnly:
// 允许数字和小数点
SetButtonEnabled(".", true);
break;
case KeyboardMode.LimitedRange:
// 根据范围启用/禁用数字键
for (int i = 0; i <= 9; i++)
{
SetButtonEnabled(i.ToString(), i >= minValue && i <= maxValue);
}
mode = true;
break;
case KeyboardMode.Default:
default:
// 启用所有键
foreach (var element in FirstRow.Children)
{
if (element is Button button && char.IsDigit(button.Content.ToString()[0]))
button.IsEnabled = true;
}
foreach (var element in SecondRow.Children)
{
if (element is Button button && (char.IsDigit(button.Content.ToString()[0]) || button.Content.ToString() == "."))
button.IsEnabled = true;
}
foreach (var element in ThirdRow.Children)
{
if (element is Button button && char.IsDigit(button.Content.ToString()[0]))
button.IsEnabled = true;
}
break;
}
}
// 设置按钮启用状态
private void SetButtonEnabled(string content, bool enabled)
{
// 在第一行查找
foreach (var element in FirstRow.Children)
{
if (element is Button button && button.Content.ToString() == content)
{
button.IsEnabled = enabled;
return;
}
}
// 在第二行查找
foreach (var element in SecondRow.Children)
{
if (element is Button button && button.Content.ToString() == content)
{
button.IsEnabled = enabled;
return;
}
}
// 在第三行查找
foreach (var element in ThirdRow.Children)
{
if (element is Button button && button.Content.ToString() == content)
{
button.IsEnabled = enabled;
return;
}
}
}
// 数字键点击事件
private void KeyButton_Click(object sender, RoutedEventArgs e)
{
if (mode && PreviewTextBox.Text.Length > 0) return;
Button button = sender as Button;
if (button != null && button.IsEnabled)
{
string keyValue = button.Content.ToString();
PreviewTextBox.Text += keyValue;
// 触发按键事件
// KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Character, keyValue));
}
}
// 退格键点击事件
private void Backspace_Click(object sender, RoutedEventArgs e)
{
if (PreviewTextBox.Text.Length > 0)
{
PreviewTextBox.Text = PreviewTextBox.Text.Substring(0, PreviewTextBox.Text.Length - 1);
// 触发退格事件
// KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Backspace, ""));
}
}
// 回车键点击事件
private void Enter_Click(object sender, RoutedEventArgs e)
{
// 触发回车事件
KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Enter, PreviewTextBox.Text));
// 隐藏键盘
this.Hide();
}
// 隐藏键点击事件
private void Hide_Click(object sender, RoutedEventArgs e)
{
KeyPressed?.Invoke(this, new KeyPressedEventArgs(KeyType.Hide, ""));
// 隐藏键盘
this.Hide();
}
public class KeyPressedEventArgs : EventArgs
{
public KeyType KeyType { get; }
public string KeyValue { get; }
public KeyPressedEventArgs(KeyType keyType, string keyValue)
{
KeyType = keyType;
KeyValue = keyValue;
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// 初始化为默认模式
// SetKeyboardMode(KeyboardMode.Default);
PreviewTextBox.Text = null;
mode = false;
}
}
// 按键类型枚举
public enum KeyType
{
Character,
Backspace,
Enter,
Hide
}
// 按键事件参数
public class KeyPressedEventArgs : EventArgs
{
public KeyType KeyType { get; }
public string KeyValue { get; }
public KeyPressedEventArgs(KeyType keyType, string keyValue)
{
KeyType = keyType;
KeyValue = keyValue;
}
}
}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 96 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 604 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 608 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File
File renamed without changes.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

View File
File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

+139 -47
View File
@@ -7,10 +7,11 @@
xmlns:local="clr-namespace:DyeingComputer" xmlns:local="clr-namespace:DyeingComputer"
xmlns:viewmodel="clr-namespace:DyeingComputer.ViewModel" xmlns:viewmodel="clr-namespace:DyeingComputer.ViewModel"
d:DataContext="{d:DesignInstance Type=viewmodel:MainWindowViewModel}" d:DataContext="{d:DesignInstance Type=viewmodel:MainWindowViewModel}"
mc:Ignorable="d" KeyDown="W_KeyDown" mc:Ignorable="d"
Title="SUNLIGHT 838 b0.0.1 (2024/08/10)" Title="SUNLIGHT838"
Height="720" Width="1280"> Height="720" Width="1280"
<!--WindowState ="Maximized" WindowStyle="None"--> WindowState ="Maximized"
WindowStyle="None">
<Window.Resources> <Window.Resources>
<Style x:Key="RadioButtonStyle" TargetType="{x:Type RadioButton}"> <Style x:Key="RadioButtonStyle" TargetType="{x:Type RadioButton}">
<Setter Property="FocusVisualStyle" Value="{DynamicResource {x:Static SystemParameters.FocusVisualStyleKey}}"/> <Setter Property="FocusVisualStyle" Value="{DynamicResource {x:Static SystemParameters.FocusVisualStyleKey}}"/>
@@ -58,52 +59,90 @@
<Grid> <Grid>
<Rectangle Margin="0,0,0,0" Fill="#FFCCCCCC" VerticalAlignment="Bottom" Height="40"/> <Rectangle Margin="0,0,0,0" Fill="#FFCCCCCC" VerticalAlignment="Bottom" Height="40"/>
<RadioButton Content="{x:Static lang:Resources.WorkOrder}" x:Name="Work_Order" Tag="&#xF2d2;" <RadioButton Content="{x:Static lang:Resources.WorkOrder}"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="0,0,0,0" x:Name="Work_Order" Tag="&#xF2d2;"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page"/> Style="{DynamicResource RadioButtonStyle}"
<RadioButton Content="{x:Static lang:Resources.TechnologicalProcess}" x:Name="Technological_Process" Tag="&#xF036;" HorizontalAlignment="Left" Height="40" Margin="0,0,0,0"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="200,0,0,0" VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page"/> Checked="RadioButton_Page"/>
<RadioButton Content="{x:Static lang:Resources.CurveDiagram}" x:Name="Curve_Diagram" Tag="&#xF1fe;" <RadioButton Content="{x:Static lang:Resources.TechnologicalProcess}"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="400,0,0,0" x:Name="Technological_Process" Tag="&#xF036;"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page"/> Style="{DynamicResource RadioButtonStyle}"
<RadioButton Content="{x:Static lang:Resources.EquipmentSimulation}" x:Name="Equipment_Simulation" Tag="&#xF1b3;" HorizontalAlignment="Left" Height="40" Margin="200,0,0,0"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="600,0,0,0" VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page"/> Checked="RadioButton_Page"/>
<RadioButton Content="{x:Static lang:Resources.HistoryRecords}" x:Name="History_Records" Tag="&#xF15C;" <RadioButton Content="{x:Static lang:Resources.CurveDiagram}"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="800,0,0,0" x:Name="Curve_Diagram" Tag="&#xF1fe;"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page"/> Style="{DynamicResource RadioButtonStyle}"
<RadioButton Content="{x:Static lang:Resources.Next}" x:Name="Next" Tag="&#xF061;" HorizontalAlignment="Left" Height="40" Margin="400,0,0,0"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Right" Height="40" Margin="0,0,0,0" VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_toolbar" GroupName="toolbar"/> Checked="RadioButton_Page"/>
<RadioButton Content="{x:Static lang:Resources.EquipmentSimulation}"
x:Name="Equipment_Simulation" Tag="&#xF1b3;"
Style="{DynamicResource RadioButtonStyle}"
HorizontalAlignment="Left" Height="40" Margin="600,0,0,0"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
Checked="RadioButton_Page"/>
<RadioButton Content="{x:Static lang:Resources.HistoryRecords}"
x:Name="History_Records" Tag="&#xF15C;"
Style="{DynamicResource RadioButtonStyle}"
HorizontalAlignment="Left" Height="40" Margin="800,0,0,0"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
Checked="RadioButton_Page"/>
<RadioButton Content="{x:Static lang:Resources.Next}"
x:Name="Next" Tag="&#xF061;"
Style="{DynamicResource RadioButtonStyle}"
HorizontalAlignment="Right" Height="40" Margin="0,0,0,0"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
Checked="RadioButton_toolbar" GroupName="toolbar"/>
<RadioButton Content="{x:Static lang:Resources.InOut}" x:Name="In_Out" Tag="&#xF065;" <RadioButton Content="{x:Static lang:Resources.InOut}"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="0,0,0,0" x:Name="In_Out" Tag="&#xF065;"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page" Visibility="Hidden"/> Style="{DynamicResource RadioButtonStyle}"
<RadioButton Content="{x:Static lang:Resources.SysSet}" x:Name="Sys_Set" Tag="&#xF2a2;" HorizontalAlignment="Left" Height="40" Margin="0,0,0,0"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="200,0,0,0" VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page" Visibility="Hidden"/> Checked="RadioButton_Page" Visibility="Hidden"/>
<RadioButton Content="{x:Static lang:Resources.ParameterSet}" x:Name="Parameter_Set" Tag="&#xF013;" <RadioButton Content="{x:Static lang:Resources.SysSet}"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="400,0,0,0" x:Name="Sys_Set" Tag="&#xF2a2;"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page" Visibility="Hidden"/> Style="{DynamicResource RadioButtonStyle}"
<RadioButton Content="{x:Static lang:Resources.Programgroup}" x:Name="Program_group" Tag="&#xF00a;" HorizontalAlignment="Left" Height="40" Margin="200,0,0,0"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="600,0,0,0" VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page" Visibility="Hidden"/> Checked="RadioButton_Page" Visibility="Hidden"/>
<RadioButton Content="{x:Static lang:Resources.EngineerSet}" x:Name="Engineer_Set" Tag="&#xF0f0;" <RadioButton Content="{x:Static lang:Resources.ParameterSet}"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Left" Height="40" Margin="800,0,0,0" x:Name="Parameter_Set" Tag="&#xF013;"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_Page" Visibility="Hidden"/> Style="{DynamicResource RadioButtonStyle}"
<RadioButton Content="{x:Static lang:Resources.Previous}" x:Name="Previous" Tag="&#xF060;" HorizontalAlignment="Left" Height="40" Margin="400,0,0,0"
Style="{DynamicResource RadioButtonStyle}" HorizontalAlignment="Right" Height="40" Margin="0,0,0,0" VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC" Checked="RadioButton_toolbar" GroupName="toolbar" Visibility="Hidden"/> Checked="RadioButton_Page" Visibility="Hidden"/>
<RadioButton Content="{x:Static lang:Resources.Programgroup}"
x:Name="Program_group" Tag="&#xF00a;"
Style="{DynamicResource RadioButtonStyle}"
HorizontalAlignment="Left" Height="40" Margin="600,0,0,0"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
Checked="RadioButton_Page" Visibility="Hidden"/>
<RadioButton Content="{x:Static lang:Resources.EngineerSet}"
x:Name="Engineer_Set" Tag="&#xF0f0;"
Style="{DynamicResource RadioButtonStyle}"
HorizontalAlignment="Left" Height="40" Margin="800,0,0,0"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
Checked="RadioButton_Page" Visibility="Hidden"/>
<RadioButton Content="{x:Static lang:Resources.Previous}"
x:Name="Previous" Tag="&#xF060;"
Style="{DynamicResource RadioButtonStyle}"
HorizontalAlignment="Right" Height="40" Margin="0,0,0,0"
VerticalAlignment="Bottom" Width="200" Background="#FFCCCCCC"
Checked="RadioButton_toolbar" GroupName="toolbar" Visibility="Hidden"/>
<ContentControl x:Name="container" Margin="0,50,0,40"/> <ContentControl x:Name="container" Margin="0,50,0,40"/>
<Grid Margin="0,0,0,0" VerticalAlignment="Top" Height="50" Background="#FFD2D2D2"> <Grid Margin="0,0,0,0" VerticalAlignment="Top" Height="50" Background="#FFD2D2D2">
<TextBox Text="{x:Static lang:Resources.Temperature}" HorizontalAlignment="Left" Height="20" Margin="0,0,0,0" <TextBox Text="{x:Static lang:Resources.Temperature}"
HorizontalAlignment="Left" Height="20" Margin="0,0,0,0"
TextWrapping="Wrap" VerticalAlignment="Top" Width="100" FontSize="12" TextWrapping="Wrap" VerticalAlignment="Top" Width="100" FontSize="12"
Background="{x:Null}" BorderBrush="{x:Null}" SelectionBrush="{x:Null}" Background="{x:Null}" BorderBrush="{x:Null}" SelectionBrush="{x:Null}"
IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/> IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/>
<TextBox Text="{x:Static lang:Resources.WorkOrderNumder}" HorizontalAlignment="Left" Height="20" Margin="100,0,5,0" <TextBox Text="{x:Static lang:Resources.WorkOrderNumder}"
HorizontalAlignment="Left" Height="20" Margin="100,0,5,0"
TextWrapping="Wrap" VerticalAlignment="Top" Width="100" FontSize="12" TextWrapping="Wrap" VerticalAlignment="Top" Width="100" FontSize="12"
Background="{x:Null}" BorderBrush="{x:Null}" SelectionBrush="{x:Null}" Background="{x:Null}" BorderBrush="{x:Null}" SelectionBrush="{x:Null}"
IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/> IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/>
@@ -117,16 +156,69 @@
IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/> IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/>
<TextBox Text="{Binding Status_Str}" HorizontalAlignment="Center" Height="50" Margin="0,0,0,0" <TextBox Text="{Binding Status_Str}" HorizontalAlignment="Center" Height="50" Margin="0,0,0,0"
TextWrapping="Wrap" VerticalAlignment="Top" Width="700" FontSize="35" TextWrapping="Wrap" VerticalAlignment="Top" Width="700" FontSize="35"
Background="{x:Null}" BorderBrush="{x:Null}" SelectionBrush="{x:Null}" Foreground="{Binding Status_Str_coloer}" Background="{x:Null}" BorderBrush="{x:Null}" SelectionBrush="{x:Null}"
Foreground="{Binding Status_Str_coloer}"
IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/> IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/>
<TextBox Text="{Binding Sys_Time}" HorizontalAlignment="Right" Height="50" Margin="0,0,5,0" <TextBox Text="{Binding Sys_Time}" HorizontalAlignment="Right" Height="50" Margin="0,0,5,0"
TextWrapping="Wrap" VerticalAlignment="Top" Width="150" FontSize="20" TextWrapping="Wrap" VerticalAlignment="Top" Width="150" FontSize="20"
Background="{x:Null}" BorderBrush="{x:Null}" SelectionBrush="{x:Null}" Background="{x:Null}" BorderBrush="{x:Null}" SelectionBrush="{x:Null}"
IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/> IsReadOnly="True" IsUndoEnabled="False" MaxLines="1" IsEnabled="False"/>
<Image HorizontalAlignment="Right" Height="40" VerticalAlignment="Top" Width="40" Margin="0,5,220,5"
Source="/link.png" Visibility="{Binding Link_bool}"/> <StackPanel Margin="0,0,170,0" HorizontalAlignment="Right"
<Image HorizontalAlignment="Right" Height="40" VerticalAlignment="Top" Width="40" Margin="0,5,270,5" Orientation="Horizontal" FlowDirection="RightToLeft">
Source="/LOCK.png" Visibility="{Binding Lock_bool}"/> <Image Height="40" Width="40" VerticalAlignment="Center" FlowDirection="LeftToRight">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="/Lmage/IconParkStopwatch.png"/>
<Style.Triggers>
<DataTrigger Binding="{Binding WORK_run}" Value="1">
<Setter Property="Source" Value="/Lmage/IconParkPauseOne.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding WORK_run}" Value="2">
<Setter Property="Source" Value="/Lmage/IconParkPlay.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<Image Height="40" VerticalAlignment="Center" Width="40" Visibility="{Binding EX_bool}">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="/Lmage/IconParkExtend.png"/>
<Style.Triggers>
<DataTrigger Binding="{Binding EX_str}" Value="309">
<Setter Property="Source" Value="/Lmage/IconParkExtendR.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding EX_str}" Value="308">
<Setter Property="Source" Value="/Lmage/IconParkExtendY.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<Image Height="40" VerticalAlignment="Center" Width="40" Source="/Lmage/link.png"
Visibility="{Binding Link_bool}"/>
<Image Height="40" Width="40" Source="/Lmage/IconParkLock.png"
Visibility="{Binding Lock_bool}" MouseLeftButtonDown="Image_MouseLeftButtonDown"
MouseLeftButtonUp="Image_MouseLeftButtonUp" VerticalAlignment="Center"/>
<Image Height="40" Width="40" VerticalAlignment="Center" FlowDirection="LeftToRight"
MouseLeftButtonDown="Image_MouseLeftButtonDown_1"
MouseLeftButtonUp="Image_MouseLeftButtonUp_1">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="/Lmage/IconParkAutoFocus.png"/>
<Style.Triggers>
<DataTrigger Binding="{Binding AUTO_bool}" Value="false">
<Setter Property="Source" Value="/Lmage/IconParkAutoFocus.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding AUTO_bool}" Value="true">
<Setter Property="Source" Value="/Lmage/Hand.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</StackPanel>
</Grid> </Grid>
</Grid> </Grid>
</Window> </Window>
+32 -24
View File
@@ -1,9 +1,11 @@
using DyeingComputer.UserClass; using DyeingComputer.UserClass;
using DyeingComputer.ViewModel;
using DyeingComputer.View; using DyeingComputer.View;
using DyeingComputer.ViewModel;
using DyeingComputer.Windows;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
@@ -34,8 +36,9 @@ namespace DyeingComputer
MainWindowViewModel.ViewID = 1; MainWindowViewModel.ViewID = 1;
} }
private SQLiteHelper SQLiteHelpers = null; //定义数据库 public static SQLiteHelper SQLiteChartAdress = null; //定义数据库
public static SQLiteHelper SQLiteHelpers = null; //定义数据库
private readonly string ChartAdress = Environment.CurrentDirectory + "\\DataBase\\Chart.db"; //数据库路径
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径 private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径
/// <summary> /// <summary>
@@ -47,6 +50,9 @@ namespace DyeingComputer
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Open(); //打开数据库
SQLiteChartAdress = new SQLiteHelper(ChartAdress); //数据库连接路径
SQLiteChartAdress.Open(); //打开数据库
bool result_System = SQLiteHelpers.TableExists("System"); //检查表格是否存在(存在返回true) bool result_System = SQLiteHelpers.TableExists("System"); //检查表格是否存在(存在返回true)
bool result_IOName = SQLiteHelpers.TableExists("IOName"); bool result_IOName = SQLiteHelpers.TableExists("IOName");
bool result_ProgramName = SQLiteHelpers.TableExists("ProgramName"); bool result_ProgramName = SQLiteHelpers.TableExists("ProgramName");
@@ -68,13 +74,13 @@ namespace DyeingComputer
if (!result_WorkorderSteps) LogGing.LogGingDATA("Master_WorkorderSteps_Table_Loss"); if (!result_WorkorderSteps) LogGing.LogGingDATA("Master_WorkorderSteps_Table_Loss");
if (!result_System || !result_IOName || !result_ProgramName || !result_ProgramSteps || !result_RUN || !result_Dyelot || !result_Parameters || !result_WorkOrder || !result_WorkorderSteps) if (!result_System || !result_IOName || !result_ProgramName || !result_ProgramSteps || !result_RUN || !result_Dyelot || !result_Parameters || !result_WorkOrder || !result_WorkorderSteps)
{ {
SQLiteHelpers.Close(); // SQLiteHelpers.Close();
MessageBox.Show(Properties.Resources.SysDatLoss); MessageBox.Show(Properties.Resources.SysDatLoss);
return true; return true;
} }
else else
{ {
SQLiteHelpers.Close(); // SQLiteHelpers.Close();
return false; return false;
} }
@@ -177,27 +183,29 @@ namespace DyeingComputer
break; break;
} }
} }
private void W_KeyDown(object sender, KeyEventArgs e) //键盘监控 private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{ {
if(e.Key == Key.N) ((Image)sender).RenderTransform = new ScaleTransform(0.9,0.9);
{
if (MainWindowViewModel.WORK_RUN == 2)
{
MainWindowViewModel.WORK_RUN = 1;// 运行时停止键为暂停
}else if (MainWindowViewModel.WORK_RUN == 1)
{
MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show(Properties.Resources.StopProcess, "800", MessageBoxButton.OKCancel);
if (messageBoxResult == MessageBoxResult.OK)
{
MainWindowViewModel.WORK_RUN = 0;// 运行时停止键为
MainWindowViewModel.DIDETime = 0;
}
}
}
} }
private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
((Image)sender).RenderTransform = Transform.Identity;
MainWindowViewModel.UserInfoStart = 901;
MainWindowViewModel.UserInfo = Properties.Resources.Unlock;
}//解锁
private void Image_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
{
((Image)sender).RenderTransform = new ScaleTransform(0.9, 0.9);
}
private void Image_MouseLeftButtonUp_1(object sender, MouseButtonEventArgs e)
{
((Image)sender).RenderTransform = Transform.Identity;
MainWindowViewModel.UserInfoStart = 901;
if (MainWindowViewModel._AUTO_bool)
{ MainWindowViewModel.UserInfo = Properties.Resources.Auto; }
else { MainWindowViewModel.UserInfo = Properties.Resources.Manual; }
}//手动
} }
} }
+247
View File
@@ -0,0 +1,247 @@
# 如果要从更高级别的目录继承 .editorconfig 设置,请删除以下行
root = true
# c# 文件
[*.cs]
#### Core EditorConfig 选项 ####
# 缩进和间距
indent_size = 4
indent_style = space
tab_width = 4
# 新行首选项
end_of_line = crlf
insert_final_newline = false
#### .NET 代码操作 ####
# 类型成员
dotnet_hide_advanced_members = false
dotnet_member_insertion_location = with_other_members_of_the_same_kind
dotnet_property_generation_behavior = prefer_throwing_properties
# 符号搜索
dotnet_search_reference_assemblies = true
#### .NET 编码约定 ####
# 组织 Using
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = false
file_header_template = unset
# this. 和 Me. 首选项
dotnet_style_qualification_for_event = false
dotnet_style_qualification_for_field = false
dotnet_style_qualification_for_method = false
dotnet_style_qualification_for_property = false
# 语言关键字与 bcl 类型首选项
dotnet_style_predefined_type_for_locals_parameters_members = true
dotnet_style_predefined_type_for_member_access = true
# 括号首选项
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_operators = never_if_unnecessary
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
# 修饰符首选项
dotnet_style_require_accessibility_modifiers = for_non_interface_members
# 表达式级首选项
dotnet_prefer_system_hash_code = true
dotnet_style_coalesce_expression = true
dotnet_style_collection_initializer = true
dotnet_style_explicit_tuple_names = true
dotnet_style_namespace_match_folder = true
dotnet_style_null_propagation = true
dotnet_style_object_initializer = true
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_prefer_auto_properties = true
dotnet_style_prefer_collection_expression = when_types_loosely_match
dotnet_style_prefer_compound_assignment = true
dotnet_style_prefer_conditional_expression_over_assignment = true
dotnet_style_prefer_conditional_expression_over_return = true
dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed
dotnet_style_prefer_inferred_anonymous_type_member_names = true
dotnet_style_prefer_inferred_tuple_names = true
dotnet_style_prefer_is_null_check_over_reference_equality_method = true
dotnet_style_prefer_simplified_boolean_expressions = true
dotnet_style_prefer_simplified_interpolation = true
# 字段首选项
dotnet_style_readonly_field = true
# 参数首选项
dotnet_code_quality_unused_parameters = all
# 禁止显示首选项
dotnet_remove_unnecessary_suppression_exclusions = none
# 新行首选项
dotnet_style_allow_multiple_blank_lines_experimental = true
dotnet_style_allow_statement_immediately_after_block_experimental = true
#### c# 编码约定 ####
# var 首选项
csharp_style_var_elsewhere = false
csharp_style_var_for_built_in_types = false
csharp_style_var_when_type_is_apparent = false
# Expression-bodied 成员
csharp_style_expression_bodied_accessors = true
csharp_style_expression_bodied_constructors = false
csharp_style_expression_bodied_indexers = true
csharp_style_expression_bodied_lambdas = true
csharp_style_expression_bodied_local_functions = false
csharp_style_expression_bodied_methods = false
csharp_style_expression_bodied_operators = false
csharp_style_expression_bodied_properties = true
# 模式匹配首选项
csharp_style_pattern_matching_over_as_with_null_check = true
csharp_style_pattern_matching_over_is_with_cast_check = true
csharp_style_prefer_extended_property_pattern = true
csharp_style_prefer_not_pattern = true
csharp_style_prefer_pattern_matching = true
csharp_style_prefer_switch_expression = true
# Null 检查首选项
csharp_style_conditional_delegate_call = true
# 修饰符首选项
csharp_prefer_static_anonymous_function = true
csharp_prefer_static_local_function = true
csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async
csharp_style_prefer_readonly_struct = true
csharp_style_prefer_readonly_struct_member = true
# 代码块首选项
csharp_prefer_braces = true
csharp_prefer_simple_using_statement = true
csharp_prefer_system_threading_lock = true
csharp_style_namespace_declarations = block_scoped
csharp_style_prefer_method_group_conversion = true
csharp_style_prefer_primary_constructors = true
csharp_style_prefer_simple_property_accessors = true
csharp_style_prefer_top_level_statements = true
# 表达式级首选项
csharp_prefer_simple_default_expression = true
csharp_style_deconstructed_variable_declaration = true
csharp_style_implicit_object_creation_when_type_is_apparent = true
csharp_style_inlined_variable_declaration = true
csharp_style_prefer_implicitly_typed_lambda_expression = true
csharp_style_prefer_index_operator = true
csharp_style_prefer_local_over_anonymous_function = true
csharp_style_prefer_null_check_over_type_check = true
csharp_style_prefer_range_operator = true
csharp_style_prefer_tuple_swap = true
csharp_style_prefer_unbound_generic_type_in_nameof = true
csharp_style_prefer_utf8_string_literals = true
csharp_style_throw_expression = true
csharp_style_unused_value_assignment_preference = discard_variable
csharp_style_unused_value_expression_statement_preference = discard_variable
# "using" 指令首选项
csharp_using_directive_placement = outside_namespace
# 新行首选项
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
csharp_style_allow_embedded_statements_on_same_line_experimental = true
#### C# 格式规则 ####
# 新行首选项
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true
# 缩进首选项
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true
# 空格键首选项
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
# 包装首选项
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true
#### 命名样式 ####
# 命名规则
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
# 符号规范
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =
# 命名样式
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
Loaded 100 of 149 files, more files were not shown because too many files have changed in this diff. Show more