You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
4.7 KiB
119 lines
4.7 KiB
using DyeingComputer.View;
|
|
using DyeingComputer.ViewModel;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Forms;
|
|
using System.Xml.Linq;
|
|
using static DyeingComputer.UserClass.SqliteHelper;
|
|
|
|
namespace DyeingComputer.UserClass
|
|
{
|
|
public class APILog
|
|
{
|
|
static bool QueueT=false;
|
|
private static SQLiteHelper SQLiteHelpers = null; //定义数据库
|
|
private readonly static string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径
|
|
private readonly static string LOGAddress = Environment.CurrentDirectory + "\\DataBase\\LOG.db"; //数据库路径
|
|
public class QueueString
|
|
{
|
|
public string ID { get; set; }
|
|
public Dictionary<string, object> DAT { get; set; }
|
|
}
|
|
public static class Queue
|
|
{
|
|
public static string ID { get; set; }
|
|
public static Dictionary<string, object> DAT { get; set; }
|
|
}
|
|
// 创建一个字符串类型的队列
|
|
public static Queue<QueueString> DBQueue = new Queue<QueueString>();
|
|
public static void DBlog(string Name, string ID, string Api, string MESSAGE)
|
|
{
|
|
Dictionary<string, object> API_LOG = new Dictionary<string, object>();//缓存函数
|
|
API_LOG.Add("NAME", Name);
|
|
API_LOG.Add("ID", ID);
|
|
API_LOG.Add("API", Api);
|
|
API_LOG.Add("MESSAGE", MESSAGE);
|
|
API_LOG.Add("TIME", MainWindowViewModel.SYSTime);
|
|
LOGDB("SERVER", API_LOG);//行插入
|
|
API_LOG.Clear();
|
|
}
|
|
public static void LOGlog(string WorkOrder, string TYPE, string Command, string MESSAGE)
|
|
{
|
|
Dictionary<string, object> API_LOG = new Dictionary<string, object>();//缓存函数
|
|
API_LOG.Add("WorkOrder", WorkOrder);
|
|
API_LOG.Add("TYPE", TYPE);
|
|
API_LOG.Add("Command", Command);
|
|
API_LOG.Add("MESSAGE", MESSAGE);
|
|
API_LOG.Add("TIME", MainWindowViewModel.SYSTime);
|
|
LOGDB("OperationLog", API_LOG);//行插入
|
|
API_LOG.Clear();
|
|
}
|
|
public static void IOlog(string IOName, string TYPE_ , object dat, string ID="0000", string PLC = "0000")
|
|
{
|
|
Dictionary<string, object> API_LOG = new Dictionary<string, object>();//缓存函数
|
|
API_LOG.Add("IOName", IOName);
|
|
API_LOG.Add("type", TYPE_);
|
|
if(TYPE_ == "M") API_LOG.Add("Value", dat);
|
|
if ((TYPE_ == "AI") ||(TYPE_ == "AO")) API_LOG.Add("AIO", dat);
|
|
if ((TYPE_ == "DQ") || (TYPE_ == "DO")) API_LOG.Add("DIO", dat);
|
|
API_LOG.Add("ID", ID);
|
|
API_LOG.Add("PLC", PLC);
|
|
API_LOG.Add("TIME", MainWindowViewModel.SYSTime);
|
|
LOGDB("IOLog", API_LOG);//行插入
|
|
API_LOG.Clear();
|
|
}
|
|
public static void ERRlog(string WorkOrder, string ERRID, string MESSAGE, string Time)
|
|
{
|
|
Dictionary<string, object> API_LOG = new Dictionary<string, object>();//缓存函数
|
|
API_LOG.Add("NAME", WorkOrder);
|
|
API_LOG.Add("ERRID", ERRID);
|
|
API_LOG.Add("MESSAGE", MESSAGE);
|
|
API_LOG.Add("TIME", MainWindowViewModel.SYSTime);
|
|
LOGDB("ERRLog", API_LOG);//行插入
|
|
API_LOG.Clear();
|
|
}
|
|
|
|
public static void LOGDB(string NAME, Dictionary<string, object> dat)//添加信息到队列
|
|
{
|
|
DBQueue.Enqueue(new QueueString
|
|
{
|
|
ID = NAME,
|
|
DAT = dat
|
|
});
|
|
|
|
if (!QueueT)
|
|
{
|
|
QueueT = true;
|
|
LOGDB();
|
|
}
|
|
if(DBQueue.Count==0) QueueT=false;
|
|
}
|
|
|
|
public static void LOGnew()
|
|
{
|
|
SQLiteHelpers = new SQLiteHelper(LOGAddress); //数据库连接路径
|
|
SQLiteHelpers.Open(); //打开数据库
|
|
}//
|
|
public static DataTable LOGSELECT(string select)
|
|
{
|
|
var dat = SQLiteHelpers.ExecuteDataSet(select, null);
|
|
DataTable dt = dat.Tables[0];
|
|
return dt;
|
|
}
|
|
public static void LOGDB()//从队列写入数据库
|
|
{
|
|
while (DBQueue.Count > 0)//信息发送队列
|
|
{
|
|
QueueString t = DBQueue.Dequeue();
|
|
SQLiteHelpers.InsertData(t.ID, t.DAT);//行插入
|
|
}
|
|
//SQLiteHelpers.Close(); //关闭连接
|
|
QueueT = false;
|
|
}
|
|
}
|
|
}
|
|
|