149 lines
5.5 KiB
C#
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();
|
|
//}
|
|
}
|
|
}
|
|
|
|
|
|
|