ASCU_ALL/Tests/Program.cs

422 lines
12 KiB
C#
Raw Permalink Normal View History

2020-09-04 12:49:15 +05:00
using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.Tar;
using System;
using System.IO;
using System.Text;
using DataClients;
using System.Threading.Tasks;
using System.Threading;
using System.Linq;
using Mailing;
using System.Text.RegularExpressions;
2021-05-25 17:00:45 +05:00
using System.Collections;
2020-09-04 12:49:15 +05:00
using System.Collections.Generic;
public class CustomMath
{
public static int multiplu(int a, int b)
{
return a * b;
}
}
2020-09-04 12:49:15 +05:00
namespace Tests
{
class Program
{
static void Main(string[] args)
{
2021-05-25 17:00:45 +05:00
test14();
Console.ReadKey();
2020-09-04 12:49:15 +05:00
}
static void test1()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var enc = Encoding.GetEncoding(866);
var filec = new FileClient();
var test = filec.GetFile(DateTime.Now.AddDays(-46), 34, 0);
//var netc = new NetClient();
//var test = netc.SocketWork(NetClient.Cmd.download_nh, "20200707.230");
//var netc = new NetClient();
//var test = netc.SocketWork(NetClient.Cmd.user_flags);
Console.WriteLine(BitConverter.ToString(test).Replace("-", " "));
Console.WriteLine(enc.GetString(test));
Console.ReadKey();
}
static void test2()
{
var a = new STPClient();
var b = a.GetTechCycle(
new DateTime(2020, 07, 1),
new DateTime(2020, 07, 10),
16);
foreach (var e in b)
Console.WriteLine(e.start.ToString(@"yyyy.MM.dd HH:mm:ss") + '\t' + Names.techCycle[(ushort)e.index]);
}
static void test3()
{
var a = new STPClient();
var b = a.GetAnalogDiscret(
new DateTime(2020, 07, 14, 0, 0, 0),
new DateTime(2020, 07, 14, 23, 59, 59),
37);
foreach (var c in b.di)
{
Console.WriteLine(Names.discretFull[c.Key]);
foreach (var d in c.Value)
Console.WriteLine(d.Item1.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' + d.Item2.ToString());
}
foreach (var c in b.an)
{
Console.WriteLine(Names.discretFull[c.Key]);
foreach (var d in c.Value)
Console.WriteLine(d.Item1.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' + d.Item2.ToString());
}
Console.ReadKey();
}
static void test4()
{
var a = new STPClient();
var ts = new DateTime(2020, 07, 13, 0, 0, 0);
var te = new DateTime(2020, 07, 13, 23, 59, 59);
var totTime = new TimeSpan();
for (ushort i = 1; i <= 50; i++)
{
var tc = a.GetTechCycle(ts, te, i);
var ad = a.GetAnalogDiscret(ts, te, i);
Console.WriteLine("VDP " + i.ToString("D2"));
var totalVdpTime = new TimeSpan();
foreach (var e in tc)
{
int[] chk1 = {
(int)TechCycle.Operation.cooling_ingot,
(int)TechCycle.Operation.cooling_reflow,
(int)TechCycle.Operation.cooling_welding };
int[] chk2 =
{
(int)TechCycle.Operation.end_tech_cycle,
(int)TechCycle.Operation.unloading_loading,
(int)TechCycle.Operation.looking_welding,
(int)TechCycle.Operation.unloading_kit
};
if (!chk1.Contains((int)e.index) && !chk2.Contains((int)e.index))
continue;
if (chk1.Contains((int)e.index))
{
var test =
(from l in ad.an[13]
where l.Item1 >= e.start &&
l.Item1 <= e.end &&
l.Item2 >= 30
select l).ToArray();
if (test.Length == 0)
continue;
}
Tuple<DateTime, bool?> currstat = new Tuple<DateTime, bool?>(e.start, null);
foreach (var d in ad.di[22])
{
if (
currstat.Item1 <= e.end &&
d.Item1 >= e.start &&
currstat.Item2.HasValue &&
currstat.Item2.Value
)
{
var t1 = currstat.Item1 > e.start ? currstat.Item1 : e.start;
var t2 = d.Item1 > e.end ? e.end : d.Item1;
var res = t2 - t1;
Console.Write(e.start.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t');
Console.Write(Names.techCycle[(int)e.index] + '\t');
Console.WriteLine(res.ToString(@"hh\:mm\:ss"));
totalVdpTime = totalVdpTime.Add(res);
}
currstat = d;
}
}
Console.WriteLine("Total VDP Time: " + totalVdpTime.ToString(@"hh\:mm\:ss"));
totTime = totTime.Add(totalVdpTime);
}
Console.WriteLine("Total Time: " + totTime.ToString(@"hh\:mm\:ss"));
Console.ReadKey();
}
static void test5()
{
var a = new STPClient();
var i = DateTime.Now.AddDays(-1 * new Random().Next(10));
Console.WriteLine(i.ToString());
2021-05-25 17:00:45 +05:00
2020-09-04 12:49:15 +05:00
var b = a.GetListPasport(i);
foreach (var e in b)
Console.WriteLine(e.Item1 + '\t' + e.Item2);
Console.WriteLine();
var r = new Random().Next(b.Length);
Console.WriteLine(b[r].Item1 + '\t' + b[r].Item2);
var p = a.GetPasport(b[r].Item2);
Console.WriteLine(p.ToString());
}
static void test6()
{
var a = new STPClient();
var s = DateTime.Now.AddDays(-30);
var e = DateTime.Now.AddDays(-20);
var b = a.GetIshData(s, e, 37);
Console.WriteLine(s.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' + e.ToString(@"yyyy.MM.dd HH:mm:ss.ff"));
2021-05-25 17:00:45 +05:00
foreach (var t in b)
2020-09-04 12:49:15 +05:00
{
Console.WriteLine(t.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' + t.id.ToString("D2") + '\t' + t.value);
}
}
static void test7()
{
var w = new STPClient();
var s = new DateTime(2020, 06, 1);
var e = new DateTime(2020, 07, 22);
2021-05-25 17:00:45 +05:00
var r1 = new List<(string name, string dir)>();
2020-09-04 12:49:15 +05:00
var r2 = new List<Pasport>();
for (var i = s; i < e; i = i.AddDays(1))
{
var a = w.GetListPasport(i);
2021-05-25 17:00:45 +05:00
foreach (var b in a)
2020-09-04 12:49:15 +05:00
{
var c = w.GetPasport(b.Item2);
var d = w.GetIshData(c.time_start, c.time_end, c.numVDP);
var flag = false;
2021-05-25 17:00:45 +05:00
foreach (var f in d)
2020-09-04 12:49:15 +05:00
{
if (f.id != 0) continue;
//Console.Write(f.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' + b.Item1 + '\t' + f.value);
Regex r = new Regex(@"(\w*)-(\w{3})-32-031(\w*)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
//Console.WriteLine('\t' + r.IsMatch(f.value).ToString());
flag = flag || r.IsMatch(f.value);
}
if (flag)
{
r1.Add(b); r2.Add(c);
Console.WriteLine(b.Item1 + '\t' +
c.time_start.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' +
c.time_end.ToString(@"yyyy.MM.dd HH:mm:ss.ff"));
foreach (var f in d)
{
if (f.id != 0) continue;
Console.WriteLine(f.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' + f.value);
}
}
}
}
Console.WriteLine();
var fs = new StreamWriter(Directory.GetCurrentDirectory() + '\\' + "result.txt");
2021-05-25 17:00:45 +05:00
for (var i = 0; i < r1.Count; i++)
2020-09-04 12:49:15 +05:00
{
var a = w.GetProtectData(r2[i].time_start, r2[i].time_end, r2[i].numVDP);
var b = new List<Protect>();
2021-05-25 17:00:45 +05:00
foreach (var c in a)
2020-09-04 12:49:15 +05:00
if (c.id == 72) b.Add(c);
if (b.Count > 0)
{
Console.WriteLine(r1[i].Item1 + '\t' +
r2[i].time_start.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' +
r2[i].time_end.ToString(@"yyyy.MM.dd HH:mm:ss.ff"));
fs.WriteLine(r1[i].Item1 + '\t' +
r2[i].time_start.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' +
r2[i].time_end.ToString(@"yyyy.MM.dd HH:mm:ss.ff"));
foreach (var d in b)
{
Console.WriteLine(d.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' + d.id.ToString("D2") + '\t' + d.value);
fs.WriteLine(d.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + '\t' + d.value);
}
}
}
fs.Close();
}
2020-09-29 08:18:25 +05:00
static void test8()
{
var w = new STPClient();
var s = new DateTime(2020, 09, 30);
var e = new DateTime(2020, 10, 03);
//var vdps = new int[] { 2, 3, 4, 10, 11, 12, 16, 21, 22, 23, 27, 31, 33, 36, 45 };
var vdps = new int[] { 3, 4, 21, 36 };
2020-09-29 08:18:25 +05:00
foreach (var vdp in vdps)
{
var a = w.GetProtectData(s, e, (ushort)vdp);
a = a.FindAll(x => x.id == 35 || x.id == 70 || x.id == 71);
Console.WriteLine("VDP " + vdp.ToString("D2"));
2020-09-29 08:18:25 +05:00
foreach (var b in a)
{
Console.Write(b.id.ToString("D2") + " ");
2020-09-29 08:18:25 +05:00
Console.Write(b.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff"));
Console.WriteLine(" " + b.value.ToString("D2"));
}
var fs = new StreamWriter(Directory.GetCurrentDirectory() + '\\' + vdp.ToString("D2") + ".txt");
fs.WriteLine("35 - Отсутствует связь с контроллером ГМП");
fs.WriteLine("70 - Смещение начала архивации");
fs.WriteLine("70 - Смещение конца архивации");
fs.WriteLine();
fs.WriteLine("№ защиты \t Дата возникновения записи \t Состояние");
2021-05-25 17:00:45 +05:00
2020-09-29 08:18:25 +05:00
foreach (var b in a)
2021-05-25 17:00:45 +05:00
fs.WriteLine(b.id.ToString("D2") + "\t" + b.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + "\t" + b.value.ToString("D2"));
2020-09-29 08:18:25 +05:00
fs.Close();
}
}
static void test9()
{
var w = new STPClient();
var s = new DateTime(2020, 10, 05);
var e = new DateTime(2020, 10, 07);
2020-09-29 08:18:25 +05:00
var vdp = 1;
var a = w.GetProtectData(s, e, (ushort)vdp);
/*var res = new List<int>();
foreach (var b in a)
if (!res.Contains(b.id))
res.Add(b.id);
res.Sort((x, y) => x.CompareTo(y));*/
foreach (var b in a)
Console.WriteLine(b.id.ToString("D3") + " " + b.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + " " + b.value);
}
2020-11-19 16:30:38 +05:00
static void test10()
{
var a = new List<List<SZOWork>>();
a.Add(new List<SZOWork>());
var tc = new TechCycle()
{
index = TechCycle.Operation.unloading_loading,
start = DateTime.Now.AddHours(-2),
end = DateTime.Now
};
var b = new SZOWork()
{
tc = tc,
tStart = DateTime.Now.AddHours(-2),
tEnd = DateTime.Now.AddHours(-1.3)
};
a[0].Add(b);
2021-05-25 17:00:45 +05:00
b = new SZOWork()
2020-11-19 16:30:38 +05:00
{
tc = tc,
tStart = DateTime.Now.AddHours(-1.3),
tEnd = DateTime.Now.AddHours(-0.7)
};
a[0].Add(b);
b = new SZOWork()
{
tc = tc,
tStart = DateTime.Now.AddHours(-0.7),
tEnd = DateTime.Now.AddHours(-0.2)
};
a[0].Add(b);
CreatePDF.PDFSZO(a, DateTime.Now);
}
static void test11()
{
var tStart = new DateTime(2020, 11, 17, 0, 0, 0);
var tEnd = new DateTime(2020, 11, 17, 23, 59, 59, 999);
var r = new List<List<SZOWork>>();
for (var i = 1; i <= 50; i++)
r.Add(CollectData.GetSZOWorks(tStart, tEnd, (ushort)i));
CreatePDF.PDFSZO(r, tStart);
}
2021-05-25 17:00:45 +05:00
static void test12()
{
var a = new STPClient();
var b = a.GetAnalogDiscret(DateTime.Now, DateTime.Now, 50);
foreach (var e in b.an)
{
if (e.Key == 13)
continue;
using (StreamWriter file = new StreamWriter(Directory.GetCurrentDirectory() + "/test50.txt", true))
{
file.WriteLine(e.Key.ToString());
foreach (var f in e.Value)
{
var tmp = f.Item2.HasValue ? f.Item2.Value.ToString() : "NULL";
file.WriteLine(f.Item1.ToString("yyyy-MM-dd HH:mm:ss.f") + "\t" + tmp);
}
}
}
}
static void test13()
{
var ts = new DateTime(2021, 03, 03);
var te = new DateTime(2021, 03, 04);
var a = new STPClient();
var b = a.GetProtectData(ts, te, 32);
foreach (var e in b)
if (e.id == 68)
Console.WriteLine(e.time.ToString("yyyy-MM-dd HH:mm:ss.f") + "\t" + e.id.ToString("D3") + "\t" + e.value.ToString("D2"));
}
static void test14()
{
var total = new List<(ushort, Protect)>();
2021-06-02 20:58:38 +05:00
var ts = new DateTime(2021, 05, 28);
var te = new DateTime(2021, 06, 02);
2021-05-25 17:00:45 +05:00
var a = new STPClient();
var vdp = new ushort[] { 3, 4, 5, 6, 8, 10, 17, 18, 33, 39, 40, 43, 44 };
foreach(var v in vdp)
{
Console.WriteLine("Get: vdp=" + v.ToString("D2"));
var b = a.GetProtectData(ts, te, v);
Console.WriteLine("Write: vdp=" + v.ToString("D2"));
foreach (var e in b)
{
if (e.id != 35 && e.id != 105)
continue;
total.Add((v, e));
var name = e.id == 35 ? "Отс. связь ГМП" : "Отс. связь AB ";
using (StreamWriter file = new StreamWriter(Directory.GetCurrentDirectory() + "/" + v.ToString("D2") +".txt", true))
{
file.WriteLine(
e.time.ToString("yyyy-MM-dd HH:mm:ss.f") + "\t" +
e.id.ToString("D3") + "\t" +
name + "\t" +
e.value.ToString("D2"));
}
}
Console.WriteLine("End: vdp=" + v.ToString("D2"));
}
using (StreamWriter file = new StreamWriter(Directory.GetCurrentDirectory() + "/total.txt", true))
{
total.Sort(delegate((ushort, Protect)x, (ushort, Protect) y) {
var r = DateTime.Compare(x.Item2.time, y.Item2.time);
if (r < 0) return -1;
else if (r > 0) return 1;
else return 0;
});
for (var i = 0; i < total.Count; i++)
{
var e = total[i];
var name = e.Item2.id == 35 ? "Отс. связь ГМП" : "Отс. связь AB ";
file.WriteLine(
e.Item2.time.ToString("yyyy-MM-dd HH:mm:ss.f") + "\t" +
e.Item2.id.ToString("D3") + "\t" +
name + "\t" +
e.Item2.value.ToString("D2") + "\t" +
"<- vdp" + e.Item1.ToString("D2"));
}
}
Console.WriteLine("End");
}
2020-09-04 12:49:15 +05:00
}
}