COM Port / Kartenleserfunktionen neu gemacht
This commit is contained in:
parent
8544d5c30a
commit
62b2dca396
@ -6,7 +6,7 @@
|
|||||||
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
|
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
|
||||||
xmlns:local="clr-namespace:ZKuP"
|
xmlns:local="clr-namespace:ZKuP"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Kartenbenutzer" MinHeight="450" Height="450" Width="594" Loaded="Window_Loaded" LocationChanged="Window_LocationChanged">
|
Title="Kartenbenutzer" MinHeight="450" Height="450" Width="594" Loaded="Window_Loaded" Closing="MetroWindow_Closing" LocationChanged="Window_LocationChanged">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
|
|||||||
@ -14,6 +14,7 @@ using System.Windows.Media;
|
|||||||
using System.Windows.Media.Imaging;
|
using System.Windows.Media.Imaging;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
using System.Windows.Threading;
|
using System.Windows.Threading;
|
||||||
|
using static System.Net.Mime.MediaTypeNames;
|
||||||
|
|
||||||
namespace ZKuP
|
namespace ZKuP
|
||||||
{
|
{
|
||||||
@ -38,6 +39,8 @@ namespace ZKuP
|
|||||||
|
|
||||||
DispatcherTimer blinkTimer = new DispatcherTimer();
|
DispatcherTimer blinkTimer = new DispatcherTimer();
|
||||||
|
|
||||||
|
private CardReaderViewModel _cardReader;
|
||||||
|
|
||||||
public AddCardUser(string user = "", bool isBesucher = false, string count = "", string ap = "", bool needTel = true, bool hasEinweisung = false, string firma = "", string telnr = "", string idFirma = "")
|
public AddCardUser(string user = "", bool isBesucher = false, string count = "", string ap = "", bool needTel = true, bool hasEinweisung = false, string firma = "", string telnr = "", string idFirma = "")
|
||||||
{
|
{
|
||||||
_user = user;
|
_user = user;
|
||||||
@ -47,8 +50,9 @@ namespace ZKuP
|
|||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
Helper.InitSerial();
|
_cardReader = new CardReaderViewModel();
|
||||||
Helper.DataReceived += Helper_DataReceived;
|
_cardReader.CardDetected += OnCardDetected;
|
||||||
|
_cardReader.StartListening(Settings.GetSettingString("COMPort"));
|
||||||
|
|
||||||
blinkTimer.Interval = TimeSpan.FromMilliseconds(50);
|
blinkTimer.Interval = TimeSpan.FromMilliseconds(50);
|
||||||
blinkTimer.Tick += BlinkTimer_Tick;
|
blinkTimer.Tick += BlinkTimer_Tick;
|
||||||
@ -125,13 +129,13 @@ namespace ZKuP
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
private void OnCardDetected(string cardNumber)
|
||||||
private void Helper_DataReceived(object sender, string e)
|
|
||||||
{
|
{
|
||||||
|
// Deine Logik
|
||||||
var text = "";
|
var text = "";
|
||||||
Dispatcher.Invoke(() =>
|
Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
text = tbNummer.Text = e.Split('=')[0];
|
text = tbNummer.Text = cardNumber.Split('=')[0];
|
||||||
|
|
||||||
borderKartenleser.Visibility = Visibility.Collapsed;
|
borderKartenleser.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
@ -154,6 +158,34 @@ namespace ZKuP
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//private void Helper_DataReceived(object sender, string e)
|
||||||
|
//{
|
||||||
|
// var text = "";
|
||||||
|
// Dispatcher.Invoke(() =>
|
||||||
|
// {
|
||||||
|
// text = tbNummer.Text = e.Split('=')[0];
|
||||||
|
|
||||||
|
// borderKartenleser.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
|
|
||||||
|
// blinkTimer.Stop();
|
||||||
|
|
||||||
|
// if (!string.IsNullOrWhiteSpace(text))
|
||||||
|
// {
|
||||||
|
// var farbe = SQL.ReadSingleValue($"SELECT Farbe FROM {MainWindow.table}.kartennummern WHERE Kartennummer='{text}'");
|
||||||
|
|
||||||
|
// switch (farbe)
|
||||||
|
// {
|
||||||
|
// case "1":
|
||||||
|
// cbColor.SelectedValue = "Rot";
|
||||||
|
// break;
|
||||||
|
// case "2":
|
||||||
|
// cbColor.SelectedValue = "Grün";
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
private void tbNummer_TextChanged(object sender, TextChangedEventArgs e)
|
private void tbNummer_TextChanged(object sender, TextChangedEventArgs e)
|
||||||
@ -255,5 +287,10 @@ namespace ZKuP
|
|||||||
{
|
{
|
||||||
Helper.CheckWindowIsInScreenSpace(this);
|
Helper.CheckWindowIsInScreenSpace(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void MetroWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||||
|
{
|
||||||
|
_cardReader.StopListening();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,12 +24,14 @@ namespace ZKuP
|
|||||||
{
|
{
|
||||||
private List<string> COMList = new List<string>();
|
private List<string> COMList = new List<string>();
|
||||||
|
|
||||||
|
private CardReaderViewModel _cardReader;
|
||||||
public COMSelector()
|
public COMSelector()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
COMList = Helper.GetCOMPorts();
|
COMList = Helper.GetCOMPorts();
|
||||||
cbCOMList.ItemsSource = COMList;
|
cbCOMList.ItemsSource = COMList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnSave_Click(object sender, RoutedEventArgs e)
|
private void btnSave_Click(object sender, RoutedEventArgs e)
|
||||||
@ -46,19 +48,25 @@ namespace ZKuP
|
|||||||
|
|
||||||
private void cbCOMList_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void cbCOMList_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
Helper.DataReceived += Helper_DataReceived;
|
var match = Regex.Match(cbCOMList.SelectedValue.ToString(), @"COM\d+(?=\))");
|
||||||
|
Settings.WriteSetting("COMPort", match.Value);
|
||||||
|
|
||||||
|
_cardReader = new CardReaderViewModel();
|
||||||
|
_cardReader.CardDetected += OnCardDetected;
|
||||||
|
_cardReader.StartListening(Settings.GetSettingString("COMPort"));
|
||||||
|
//Helper.DataReceived += Helper_DataReceived;
|
||||||
MessageBox.Show("Bitte jetzt den Leser testen:\n\nSchließen Sie diese Meldung und legen Sie anschließend eine Karte auf!\n\nWird nach dem Auflegen keine Meldung angezeigt, bitte anderen Port wählen", "Kartenleser testen", MessageBoxButton.OK, MessageBoxImage.Information);
|
MessageBox.Show("Bitte jetzt den Leser testen:\n\nSchließen Sie diese Meldung und legen Sie anschließend eine Karte auf!\n\nWird nach dem Auflegen keine Meldung angezeigt, bitte anderen Port wählen", "Kartenleser testen", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||||
Helper.InitSerial(cbCOMList.SelectedValue.ToString());
|
//Helper.InitSerial(cbCOMList.SelectedValue.ToString(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Helper_DataReceived(object sender, string e)
|
private void OnCardDetected(string cardNumber)
|
||||||
{
|
{
|
||||||
if (e.Split('=')[0].Length == 19)
|
if (cardNumber.Split('=')[0].Length == 19)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Test des Kartenlesers erfolgreich!", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information);
|
MessageBox.Show("Test des Kartenlesers erfolgreich!", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||||
|
}
|
||||||
|
|
||||||
Helper.DataReceived -= Helper_DataReceived;
|
_cardReader.StopListening();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
71
ZKuP/CardReaderViewModel.cs
Normal file
71
ZKuP/CardReaderViewModel.cs
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.IO.Ports;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
public class CardReaderViewModel : IDisposable
|
||||||
|
{
|
||||||
|
private SerialPort _port;
|
||||||
|
private StringBuilder _buffer = new StringBuilder();
|
||||||
|
|
||||||
|
public event Action<string> CardDetected;
|
||||||
|
|
||||||
|
public void StartListening(string portName = "COM3")
|
||||||
|
{
|
||||||
|
if (_port != null && _port.IsOpen)
|
||||||
|
return; // Bereits aktiv
|
||||||
|
|
||||||
|
_port = new SerialPort(portName, 9600, Parity.None, 8, StopBits.One);
|
||||||
|
_port.DataReceived += OnDataReceived;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_port.Open();
|
||||||
|
}
|
||||||
|
catch (UnauthorizedAccessException)
|
||||||
|
{
|
||||||
|
// Port bereits von anderem Fenster geöffnet
|
||||||
|
throw new InvalidOperationException("Port ist bereits in Verwendung");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopListening()
|
||||||
|
{
|
||||||
|
if (_port != null && _port.IsOpen)
|
||||||
|
{
|
||||||
|
//_port.DataReceived -= OnDataReceived;
|
||||||
|
//_port.Dispose();
|
||||||
|
_port.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
|
||||||
|
{
|
||||||
|
string data = _port.ReadExisting();
|
||||||
|
_buffer.Append(data);
|
||||||
|
|
||||||
|
string bufferContent = _buffer.ToString();
|
||||||
|
int newlineIndex = bufferContent.IndexOfAny(new[] { '\r', '\n' });
|
||||||
|
|
||||||
|
if (newlineIndex >= 0)
|
||||||
|
{
|
||||||
|
string cardNumber = bufferContent.Substring(0, newlineIndex).Trim();
|
||||||
|
_buffer.Clear();
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(cardNumber))
|
||||||
|
{
|
||||||
|
Application.Current.Dispatcher.Invoke(() =>
|
||||||
|
{
|
||||||
|
CardDetected?.Invoke(cardNumber);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
StopListening();
|
||||||
|
_port?.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -437,6 +437,8 @@ namespace ZKuP
|
|||||||
if (type == CardType.McFit || type == CardType.All) mcFit = SQL.ReadSQL($"SELECT `Kartennr`,`Vorname`,`Nachname`,`Abteilung`,`Handynr`,`Email`,`AusgabeTimestamp`,`ZurueckTimestamp`,`AktuellAusgegeben` FROM {MainWindow.table}.mcFit ORDER BY AusgabeTimestamp", mcFit).Result;
|
if (type == CardType.McFit || type == CardType.All) mcFit = SQL.ReadSQL($"SELECT `Kartennr`,`Vorname`,`Nachname`,`Abteilung`,`Handynr`,`Email`,`AusgabeTimestamp`,`ZurueckTimestamp`,`AktuellAusgegeben` FROM {MainWindow.table}.mcFit ORDER BY AusgabeTimestamp", mcFit).Result;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Dispatcher.Invoke(() =>
|
||||||
|
{
|
||||||
if (type == CardType.DB || type == CardType.All)
|
if (type == CardType.DB || type == CardType.All)
|
||||||
{
|
{
|
||||||
if (!karten.Columns.Contains("IsChecked"))
|
if (!karten.Columns.Contains("IsChecked"))
|
||||||
@ -445,6 +447,7 @@ namespace ZKuP
|
|||||||
dgCards.DataContext = karten;
|
dgCards.DataContext = karten;
|
||||||
}
|
}
|
||||||
if (type == CardType.McFit || type == CardType.All) dgMcFit.DataContext = mcFit;
|
if (type == CardType.McFit || type == CardType.All) dgMcFit.DataContext = mcFit;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Window_LocationChanged(object sender, EventArgs e)
|
private void Window_LocationChanged(object sender, EventArgs e)
|
||||||
|
|||||||
140
ZKuP/Helper.cs
140
ZKuP/Helper.cs
@ -876,49 +876,55 @@ namespace ZKuP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SerialPort serial = new SerialPort();
|
//public static SerialPort serial = new SerialPort();
|
||||||
|
//static bool serialInitialized = false;
|
||||||
|
//public static void InitSerial(string COM = "", bool forced = false)
|
||||||
|
//{
|
||||||
|
// if (!serialInitialized || forced)
|
||||||
|
// {
|
||||||
|
// if (COM == "" && string.IsNullOrWhiteSpace(Settings.GetSettingString("COMPort")) && GetCOMPortCount() > 0)
|
||||||
|
// {
|
||||||
|
// COMSelector cOMSelector = new COMSelector();
|
||||||
|
// cOMSelector.ShowDialog();
|
||||||
|
// }
|
||||||
|
// else if (COM != "")
|
||||||
|
// {
|
||||||
|
// var match = Regex.Match(COM, @"COM\d+(?=\))");
|
||||||
|
// Settings.WriteSetting("COMPort", match.Value);
|
||||||
|
// }
|
||||||
|
|
||||||
public static void InitSerial(string COM = "")
|
// if (forced && serial.IsOpen) { serial.Close(); }
|
||||||
{
|
|
||||||
if (COM == "" && string.IsNullOrWhiteSpace(Settings.GetSettingString("COMPort")) && GetCOMPortCount() > 0)
|
|
||||||
{
|
|
||||||
COMSelector cOMSelector = new COMSelector();
|
|
||||||
cOMSelector.ShowDialog();
|
|
||||||
}
|
|
||||||
else if(COM != "")
|
|
||||||
{
|
|
||||||
var match = Regex.Match(COM, @"COM\d+(?=\))");
|
|
||||||
Settings.WriteSetting("COMPort", match.Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!serial.IsOpen)
|
// if (!serial.IsOpen)
|
||||||
{
|
// {
|
||||||
try
|
// try
|
||||||
{
|
// {
|
||||||
var port = Settings.GetSettingString("COMPort");
|
// var port = Settings.GetSettingString("COMPort");
|
||||||
if (!string.IsNullOrWhiteSpace(port))
|
// if (!string.IsNullOrWhiteSpace(port))
|
||||||
{
|
// {
|
||||||
serial.PortName = port; //Com Port Name
|
// serial.PortName = port; //Com Port Name
|
||||||
serial.BaudRate = Convert.ToInt32(9600); //COM Port Sp
|
// serial.BaudRate = Convert.ToInt32(9600); //COM Port Sp
|
||||||
serial.Handshake = System.IO.Ports.Handshake.None;
|
// serial.Handshake = System.IO.Ports.Handshake.None;
|
||||||
serial.Parity = Parity.None;
|
// serial.Parity = Parity.None;
|
||||||
serial.DataBits = 8;
|
// serial.DataBits = 8;
|
||||||
serial.StopBits = StopBits.One;
|
// serial.StopBits = StopBits.One;
|
||||||
serial.ReadTimeout = 200;
|
// serial.ReadTimeout = 200;
|
||||||
serial.WriteTimeout = 50;
|
// serial.WriteTimeout = 50;
|
||||||
|
|
||||||
serial.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(OnDataReceived);
|
// serial.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(OnDataReceived);
|
||||||
serial.Open();
|
// serial.Open();
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
// catch (Exception ex)
|
||||||
|
// {
|
||||||
|
// MessageBox.Show("Fehler beim Öffnen des COM Ports\nKartenleser kann nicht aktiviert werden\n\nBitte Kartenleser anstecken oder anderen COM Port versuchen", "Fehler beim COM Port", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
// Log.WriteLog(ex.ToString());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
// serialInitialized = true;
|
||||||
catch (Exception ex)
|
// }
|
||||||
{
|
//}
|
||||||
MessageBox.Show("Fehler beim Öffnen des COM Ports\nKartenleser kann nicht aktiviert werden\n\nBitte Kartenleser anstecken oder anderen COM Port versuchen", "Fehler beim COM Port", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
Log.WriteLog(ex.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int GetCOMPortCount()
|
public static int GetCOMPortCount()
|
||||||
{
|
{
|
||||||
@ -958,35 +964,35 @@ namespace ZKuP
|
|||||||
// return Recieve();
|
// return Recieve();
|
||||||
//}
|
//}
|
||||||
|
|
||||||
public static event EventHandler<string> DataReceived;
|
//public static event EventHandler<string> DataReceived;
|
||||||
public static event EventHandler<byte[]> BinaryDataReceived;
|
//public static event EventHandler<byte[]> BinaryDataReceived;
|
||||||
private static void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
|
//private static void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
|
||||||
{
|
//{
|
||||||
try
|
// try
|
||||||
{
|
// {
|
||||||
if (serial.BytesToRead > 0)
|
// if (serial.BytesToRead > 0)
|
||||||
{
|
// {
|
||||||
// Read as string
|
// // Read as string
|
||||||
string stringData = serial.ReadExisting();
|
// string stringData = serial.ReadExisting();
|
||||||
if (!string.IsNullOrWhiteSpace(stringData))
|
// if (!string.IsNullOrWhiteSpace(stringData))
|
||||||
{
|
// {
|
||||||
DataReceived?.Invoke(sender, stringData);
|
// DataReceived?.Invoke(sender, stringData);
|
||||||
}
|
// }
|
||||||
|
|
||||||
// For binary data reception
|
// // For binary data reception
|
||||||
if (serial.BytesToRead > 0)
|
// if (serial.BytesToRead > 0)
|
||||||
{
|
// {
|
||||||
byte[] binaryData = new byte[serial.BytesToRead];
|
// byte[] binaryData = new byte[serial.BytesToRead];
|
||||||
serial.Read(binaryData, 0, binaryData.Length);
|
// serial.Read(binaryData, 0, binaryData.Length);
|
||||||
BinaryDataReceived?.Invoke(sender, binaryData);
|
// BinaryDataReceived?.Invoke(sender, binaryData);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
catch (Exception ex)
|
// catch (Exception ex)
|
||||||
{
|
// {
|
||||||
Console.WriteLine($"Error in async data reception: {ex.Message}");
|
// Log.WriteLog($"Error in async data reception: {ex.Message}");
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
public static string GetIPAddresses()
|
public static string GetIPAddresses()
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
|
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
|
||||||
xmlns:local="clr-namespace:ZKuP"
|
xmlns:local="clr-namespace:ZKuP"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Rote Karte zu Grüner Karte tauschen" Height="250" Width="400" Loaded="Window_Loaded" LocationChanged="Window_LocationChanged">
|
Title="Rote Karte zu Grüner Karte tauschen" Height="250" Width="400" Loaded="Window_Loaded" Closing="MetroWindow_Closing" LocationChanged="Window_LocationChanged">
|
||||||
<Grid Margin="10">
|
<Grid Margin="10">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="1.5*"/>
|
<RowDefinition Height="1.5*"/>
|
||||||
|
|||||||
@ -23,6 +23,7 @@ namespace ZKuP
|
|||||||
public partial class KartenTausch : MetroWindow
|
public partial class KartenTausch : MetroWindow
|
||||||
{
|
{
|
||||||
DispatcherTimer blinkTimer = new DispatcherTimer();
|
DispatcherTimer blinkTimer = new DispatcherTimer();
|
||||||
|
private CardReaderViewModel _cardReader;
|
||||||
|
|
||||||
public KartenTausch()
|
public KartenTausch()
|
||||||
{
|
{
|
||||||
@ -30,8 +31,12 @@ namespace ZKuP
|
|||||||
|
|
||||||
cbRot.ItemsSource = SQL.ReadListString($"SELECT kartennr From {MainWindow.table}.karten WHERE farbe = 'Rot'").Result;
|
cbRot.ItemsSource = SQL.ReadListString($"SELECT kartennr From {MainWindow.table}.karten WHERE farbe = 'Rot'").Result;
|
||||||
|
|
||||||
Helper.InitSerial();
|
|
||||||
Helper.DataReceived += Helper_DataReceived;
|
_cardReader = new CardReaderViewModel();
|
||||||
|
_cardReader.CardDetected += OnCardDetected;
|
||||||
|
_cardReader.StartListening(Settings.GetSettingString("COMPort"));
|
||||||
|
//Helper.InitSerial();
|
||||||
|
//Helper.DataReceived += Helper_DataReceived;
|
||||||
|
|
||||||
blinkTimer.Interval = TimeSpan.FromMilliseconds(50);
|
blinkTimer.Interval = TimeSpan.FromMilliseconds(50);
|
||||||
blinkTimer.Tick += BlinkTimer_Tick;
|
blinkTimer.Tick += BlinkTimer_Tick;
|
||||||
@ -70,22 +75,36 @@ namespace ZKuP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnCardDetected(string cardNumber)
|
||||||
private void Helper_DataReceived(object sender, string e)
|
{
|
||||||
|
// Deine Logik
|
||||||
|
Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
borderKartenleserRot.Visibility = Visibility.Collapsed;
|
borderKartenleserRot.Visibility = Visibility.Collapsed;
|
||||||
blinkTimer.Stop();
|
blinkTimer.Stop();
|
||||||
|
|
||||||
|
|
||||||
Dispatcher.Invoke(() =>
|
if (cbRot.ItemsSource.Cast<string>().ToList().Contains(cardNumber.Split('=')[0].ToString()))
|
||||||
{
|
cbRot.SelectedValue = cardNumber.Split('=')[0].ToString();
|
||||||
if (cbRot.ItemsSource.Cast<string>().ToList().Contains(e.Split('=')[0].ToString()))
|
|
||||||
cbRot.SelectedValue = e.Split('=')[0].ToString();
|
|
||||||
else if (cbRot.SelectedIndex != -1 || tbGruen.IsKeyboardFocused)
|
else if (cbRot.SelectedIndex != -1 || tbGruen.IsKeyboardFocused)
|
||||||
tbGruen.Text = e.Split('=')[0].ToString();
|
tbGruen.Text = cardNumber.Split('=')[0].ToString();
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//private void Helper_DataReceived(object sender, string e)
|
||||||
|
//{
|
||||||
|
// Dispatcher.Invoke(() =>
|
||||||
|
// {
|
||||||
|
// borderKartenleserRot.Visibility = Visibility.Collapsed;
|
||||||
|
// blinkTimer.Stop();
|
||||||
|
|
||||||
|
|
||||||
|
// if (cbRot.ItemsSource.Cast<string>().ToList().Contains(e.Split('=')[0].ToString()))
|
||||||
|
// cbRot.SelectedValue = e.Split('=')[0].ToString();
|
||||||
|
// else if (cbRot.SelectedIndex != -1 || tbGruen.IsKeyboardFocused)
|
||||||
|
// tbGruen.Text = e.Split('=')[0].ToString();
|
||||||
|
|
||||||
|
// });
|
||||||
|
//}
|
||||||
|
|
||||||
bool up = false;
|
bool up = false;
|
||||||
private void BlinkTimer_Tick(object sender, EventArgs e)
|
private void BlinkTimer_Tick(object sender, EventArgs e)
|
||||||
@ -197,5 +216,9 @@ namespace ZKuP
|
|||||||
Helper.CheckWindowIsInScreenSpace(this);
|
Helper.CheckWindowIsInScreenSpace(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void MetroWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||||
|
{
|
||||||
|
_cardReader.StopListening();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,7 +44,7 @@ namespace ZKuP
|
|||||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||||
}
|
}
|
||||||
|
|
||||||
public const string Version = "5.2.1.0";
|
public const string Version = "5.2.1.2";
|
||||||
//public static Roles LoggedInRole { get; private set; } = Roles.None;
|
//public static Roles LoggedInRole { get; private set; } = Roles.None;
|
||||||
internal static MainWindow main;
|
internal static MainWindow main;
|
||||||
ThemeManager TM;
|
ThemeManager TM;
|
||||||
@ -239,8 +239,7 @@ namespace ZKuP
|
|||||||
File.Copy(@"\\mhb00swfs003v.fv-werke.db.de\GLW99\ZKuP\ZKuPUpdater.exe", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", true);
|
File.Copy(@"\\mhb00swfs003v.fv-werke.db.de\GLW99\ZKuP\ZKuPUpdater.exe", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", true);
|
||||||
|
|
||||||
System.Diagnostics.Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", $"\"{file}\"");
|
System.Diagnostics.Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", $"\"{file}\"");
|
||||||
Helper.serial.Close();
|
|
||||||
Helper.serial.Dispose();
|
|
||||||
Application.Current.Shutdown();
|
Application.Current.Shutdown();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2858,18 +2857,17 @@ namespace ZKuP
|
|||||||
else
|
else
|
||||||
lblmcfit.Visibility = Visibility.Collapsed;
|
lblmcfit.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
if (tabPfoertner.IsSelected)
|
//if (tabPfoertner.IsSelected)
|
||||||
{
|
//{
|
||||||
if (Helper.GetCOMPortCount() > 1)
|
// //if (Helper.GetCOMPortCount() > 1)
|
||||||
btnCOMSelector.Visibility = Visibility.Visible;
|
// // btnCOMSelector.Visibility = Visibility.Visible;
|
||||||
else if (Helper.GetCOMPortCount() == 1)
|
// //else if (Helper.GetCOMPortCount() == 1)
|
||||||
Settings.WriteSetting("COMPort", Regex.Match(Helper.GetCOMPorts().First(), @"COM\d+(?=\))").Value);
|
// // Settings.WriteSetting("COMPort", Regex.Match(Helper.GetCOMPorts().First(), @"COM\d+(?=\))").Value);
|
||||||
|
|
||||||
if (Helper.GetCOMPortCount() == 0)
|
// //if (Helper.GetCOMPortCount() == 0)
|
||||||
return;
|
// // return;
|
||||||
|
|
||||||
Helper.InitSerial();
|
//}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void imgLoading_AnimationCompleted(DependencyObject d, XamlAnimatedGif.AnimationCompletedEventArgs e)
|
private void imgLoading_AnimationCompleted(DependencyObject d, XamlAnimatedGif.AnimationCompletedEventArgs e)
|
||||||
|
|||||||
@ -233,6 +233,7 @@
|
|||||||
<Compile Include="Belegung.xaml.cs">
|
<Compile Include="Belegung.xaml.cs">
|
||||||
<DependentUpon>Belegung.xaml</DependentUpon>
|
<DependentUpon>Belegung.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="CardReaderViewModel.cs" />
|
||||||
<Compile Include="Cards.xaml.cs">
|
<Compile Include="Cards.xaml.cs">
|
||||||
<DependentUpon>Cards.xaml</DependentUpon>
|
<DependentUpon>Cards.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user