ASCU_ALL/Tests/Program.cs
2021-06-02 20:58:38 +05:00

422 lines
12 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
using System.Collections;
using System.Collections.Generic;
public class CustomMath
{
public static int multiplu(int a, int b)
{
return a * b;
}
}
namespace Tests
{
class Program
{
static void Main(string[] args)
{
test14();
Console.ReadKey();
}
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());
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"));
foreach (var t in b)
{
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);
var r1 = new List<(string name, string dir)>();
var r2 = new List<Pasport>();
for (var i = s; i < e; i = i.AddDays(1))
{
var a = w.GetListPasport(i);
foreach (var b in a)
{
var c = w.GetPasport(b.Item2);
var d = w.GetIshData(c.time_start, c.time_end, c.numVDP);
var flag = false;
foreach (var f in d)
{
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");
for (var i = 0; i < r1.Count; i++)
{
var a = w.GetProtectData(r2[i].time_start, r2[i].time_end, r2[i].numVDP);
var b = new List<Protect>();
foreach (var c in a)
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();
}
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 };
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"));
foreach (var b in a)
{
Console.Write(b.id.ToString("D2") + " ");
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 Состояние");
foreach (var b in a)
fs.WriteLine(b.id.ToString("D2") + "\t" + b.time.ToString(@"yyyy.MM.dd HH:mm:ss.ff") + "\t" + b.value.ToString("D2"));
fs.Close();
}
}
static void test9()
{
var w = new STPClient();
var s = new DateTime(2020, 10, 05);
var e = new DateTime(2020, 10, 07);
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);
}
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);
b = new SZOWork()
{
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);
}
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)>();
var ts = new DateTime(2021, 05, 28);
var te = new DateTime(2021, 06, 02);
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");
}
}
}