using HslCommunication.LogNet; using HZH_Controls.Forms; using NewLife.Threading; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using RfidWeb.Frm; using Tool; using System.Security.Principal; using DB.Entity; using DB; using System.Threading; using DB.Service; using NewLife.Caching; using Tool.Model; namespace RfidWeb { public partial class FormMain : Form { private ILogNet logNet = ILogNetFactory.GetLogNet; private ICache cache; TimerX _timer; public FormMain() { cache=Cache.Default; DbInfo.Init(typeof(UserInfo).Assembly); var rfidSetting = RfidSetting.Current; InitializeComponent(); //if (this.FormBorderStyle == FormBorderStyle.None) //{ // this.FormBorderStyle = FormBorderStyle.FixedSingle; // this.WindowState = FormWindowState.Normal; //} //else //{ // this.FormBorderStyle = FormBorderStyle.None; // this.WindowState = FormWindowState.Maximized; //} Init(); } private void Init() { _timer = new TimerX(TimeState, null, 10, 1000); // 如果所有的日志在记录之前需要在控制台显示出来 logNet.BeforeSaveToFile += (object sender, HslEventArgs e) => { Console.WriteLine(e.HslMessage.ToString()); }; logNet.ConsoleOutput = true; logNet.WriteInfo("nihao"); this.panContent.Controls.Clear(); this.panContent.Controls.Add(new UserMain()); } /// 移除过期的缓存项 void TimeState(Object state) { var dataTime = DateTime.Now; this.Invoke(() => { label1.Text = dataTime.ToString("yyyy'/'MM'/'dd"); label2.Text = dataTime.ToString("HH:mm:ss"); }); ThreadPoolX.QueueUserWorkItem(UpdateLog); } private UpdateLogService updateLogService = new UpdateLogService(); private void UpdateLog() { if(cache.ContainsKey(CacheKeyManager.UpdateLog)) return; cache.Set(CacheKeyManager.UpdateLog, DateTime.Now, TimeSpan.FromSeconds(5)); var plc = PlcConnect.Instance; var userDto = TestFactory.TestUser(); var strings = HmiPoint.GetValue(); foreach (var se in strings) { var res = plc.ReadUInt32(se); if (res.IsSuccess) { updateLogService.AddOrUpdateLog(userDto, se, res.Content); } } cache.Remove(CacheKeyManager.UpdateLog); } private void btnExit_Click(object sender, EventArgs e) { if (FrmDialog.ShowDialog(this, "是否退出系统?", "提示窗体", true) == System.Windows.Forms.DialogResult.OK) { Application.Exit(); } } private void SetBackGroupImage(Button button) { var imageOld = Properties.Resources.btn; List