laatzen/Common/CommonConsole/Program.cs
2025-03-13 13:55:56 +01:00

149 lines
5.5 KiB
C#

namespace CommonConsole
{
using Common.Hardware.SIRT;
using LaaPackages.SqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
public static class Program
{
private static Dictionary<string, Dictionary<byte, byte>> sizes = new Dictionary<string, Dictionary<byte, byte>>();
public static void Main()
{
SqlConnection
.CreateSqlConnection("Server=SLASQL01.emea.sensus.net; Database=Auftrag; User ID=sa; Password=sqlserver;")
.CreateCommand(@"
SELECT DISTINCT
erg.DEBUG
, ems.Metersize
, vmm.Wert
FROM eRegister AS erg
JOIN AuftragPositionSerienNr AS aps
ON erg.Seriennummer = aps.SerienNr
JOIN AlleAuftragPositionen AS aap
ON aps.AuftragNr = aap.AuftragNr
AND aps.PositionNr = aap.PositionNr
JOIN eRegister_Auftragposition AS eap
ON aap.FertigungsauftragNr = eap.FertigungsauftragNr
JOIN eRegister_Metersize AS ems
ON eap.Meter_Size_Id = ems.Id
JOIN Identnr AS idn
ON aap.IdentNr = idn.IdentNr
JOIN VAKO_Merkmale AS vmm
ON SUBSTRING(idn.VakoCode, 1, LEN(vmm.Basis)) = vmm.Basis
AND vmm.Basis = 'MS'
AND vmm.Stelle = 5
AND vmm.Laenge = 1
AND SUBSTRING(idn.VakoCode, 5, 1) = vmm.Charcode
WHERE erg.DEBUG IS NOT NULL
AND SUBSTRING(erg.DEBUG, 1, 2) = '0B'
ORDER BY ems.Metersize")
.ExecuteReader(ParseMeterSize);
Console.WriteLine(string.Join(Environment.NewLine, sizes.SelectMany(x => x.Value.Select(y => $"DN {x.Key,3} IN {y.Key,3} OUT {y.Value,3}"))));
}
private static void ParseMeterSize(SqlReader reader)
{
var debug = reader
.GetValue<string>(0)
?.GetBytes() ?? Array.Empty<byte>();
if (debug.Length > 0)
{
var debugMeterSize = debug[37];
var meterSize = reader.GetValue<byte>(1);
var nennweite = reader.GetValue<string>(2);
if (!sizes.ContainsKey(nennweite))
{
sizes[nennweite] = new Dictionary<byte, byte>();
}
sizes[nennweite][meterSize] = debugMeterSize;
}
}
//public static void Main()
//{
// var addresses = new HashSet<uint>
// {
// 2000000002, 2000000002,
// 1000000011, 1000000011,
// 1000000012, 1000000012,
// 1000000013, 1000000013,
// 4291631647, 2000000014,
// 2000000001, 2000000001,
// 1000000002, 1000000002,
// 1000000003, 1000000003,
// 1000000004, 1000000004,
// 1000000005, 1000000005,
// 1000000006, 1000000006,
// 1000000007, 1000000007,
// 1000000008, 1000000008,
// 1000000009, 1000000009,
// 1100000010, 1100000010,
// };
// var sirtBroadcaster = new SIRTBroadcaster("COM6");
// sirtBroadcaster.Logging += Console.WriteLine;
// //sirtBroadcaster.MessageReceived += msg =>
// //{
// // Console.WriteLine(msg.Address);
// //};
// sirtBroadcaster.Activated += () =>
// {
// foreach (var address in addresses)
// {
// sirtBroadcaster.EnqueueTask(new EregisterTask(868)
// {
// EncryptionKey = "E6C88800DEB868C0D6A84880CE982840".GetEncryptionKey(),
// RequestAddress = address,
// P1 = new P811
// {
// DelPamSemi = true,
// },
// Cmd = SIRTMessage.W_PAM,
// Data = new OpticalTelegram
// {
// Minutes = 1
// }
// .Append(new ProvidePin
// {
// AuthLevel = AuthLevel.III
// })
// .ToByteArray(),
// //Data = new ChangeWakeUp
// //{
// // WakeUpMode = WakeUpMode.SleepAutoOn
// //}
// //.Append(new ChangeTransmissionInterval
// //{
// // Seconds = 3
// //})
// //.Append(new ChangeNumberOfLatWindows
// //{
// // N = 0
// //})
// //.Append(new ProvidePin
// //{
// // AuthLevel = AuthLevel.II
// //})
// //.ToByteArray()
// });
// }
// };
// sirtBroadcaster.Open();
// Console.ReadKey();
// sirtBroadcaster.Close();
//}
}
}