diff --git a/EpdBase/EpdBase.cpp b/EpdBase/EpdBase.cpp
index da48719..4921bc4 100644
--- a/EpdBase/EpdBase.cpp
+++ b/EpdBase/EpdBase.cpp
@@ -65,7 +65,6 @@ EpdBase::Epd2U::~Epd2U()
EndCom();
}
-
int EpdBase::Epd2U::StartDiscover( int EpdTimeout)
{
maxDiscoverTime = EpdTimeout;
diff --git a/eDosStation/DataInterface.cs b/eDosStation/DataInterface.cs
index a4ad198..9606c2f 100644
--- a/eDosStation/DataInterface.cs
+++ b/eDosStation/DataInterface.cs
@@ -343,7 +343,7 @@ namespace eDosStation
public User GetUser( string CSN, string Code)
{
User u = new User();
- object[] Values = null;
+ //object[] Values = null;
try
{
using (var cmd = new SqlCommand("GetPersonInfo", localConnection))
diff --git a/eDosStation/EntryBadge.xaml.cs b/eDosStation/EntryBadge.xaml.cs
index 367abcc..07401f6 100644
--- a/eDosStation/EntryBadge.xaml.cs
+++ b/eDosStation/EntryBadge.xaml.cs
@@ -28,11 +28,9 @@ namespace eDosStation
DataSet1.GetTaskInfoRow CurTaskRow;
private DateTime ResultTime;
enum eCOE { quiz = 1 };
-
#if SimulateEPD
public SimulateData simulData = new SimulateData();
#endif
-
public EntryBadge(Station curStation)
{
InitializeComponent();
@@ -53,14 +51,12 @@ namespace eDosStation
_User = null;
taskLoading = false;
}
-
private void Ep_EpdTO(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdTOEventArgs e)
{
Dispatcher.InvokeAsync(() => {
endPage();
});
}
-
private void Ep_EpdError(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdErrorEventArgs e)
{
Dispatcher.InvokeAsync(() => {
@@ -68,12 +64,10 @@ namespace eDosStation
endPage();
});
}
-
private void Ep_EpdRead(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdEventArgs e)
{
Dispatcher.InvokeAsync(() => GetEPD());
}
-
private bool LoadDoses()
{
bool rv = true;
@@ -308,7 +302,6 @@ namespace eDosStation
}
}
}
-
private void GetEPD()
{
if (ep.DeviceCount == 1 && ep.EpdID> 0)
@@ -317,7 +310,6 @@ namespace eDosStation
DoEPD();
}
}
-
private void SetFilter(bool isAlara)
{
dataInterface.stationLog?.WriteLine($"SetFilter Start {DateTime.Now.ToString("HH:mm:ss.fff")}");
@@ -384,7 +376,6 @@ namespace eDosStation
}
return res.Replace("\\n", "\n");
}
-
///
/// Get User data
///
@@ -457,7 +448,6 @@ namespace eDosStation
dataInterface.stationLog?.WriteLine($"ShowUserInfo Stop {DateTime.Now.ToString("HH:mm:ss.fff")}");
return doCancel;
}
-
private void SwitchToTask(object sender, EventArgs e)
{
if (--UserSeconds > 0 && (_User.AccessAllow != true || !string.IsNullOrEmpty(_User.UserComment) || !string.IsNullOrEmpty(_User.ReasonNoAccess)))
@@ -502,19 +492,16 @@ namespace eDosStation
{
this.Close();
}
-
private void bClose_Click(object sender, RoutedEventArgs e)
{
endPage();
}
-
private void BClear_Click(object sender, RoutedEventArgs e)
{
CSN.Text = string.Empty;
Site.Text = string.Empty;
Code.Text = string.Empty;
}
-
private void TaskOK_Click(object sender, RoutedEventArgs e)
{
@@ -562,7 +549,6 @@ namespace eDosStation
}
}
}
-
private void CountDown(object sender, EventArgs e)
{
double v = (ResultTime - DateTime.Now).TotalSeconds;
@@ -574,7 +560,6 @@ namespace eDosStation
endPage();
}
}
-
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (taskLoading) return;
@@ -602,7 +587,6 @@ namespace eDosStation
TaskOK.Content = "OK"; TaskOK.Tag = "O";
}
}
-
private void CbInst1_Click(object sender, RoutedEventArgs e)
{
Inst1 = (cbInst1.IsChecked == true);
@@ -610,7 +594,6 @@ namespace eDosStation
bool isAlara = (cbAlara.IsChecked == true);
SetFilter(isAlara);
}
-
private void CbAlara_Click(object sender, RoutedEventArgs e)
{
if (!initialising)
@@ -621,7 +604,6 @@ namespace eDosStation
SetFilter(isAlara);
}
}
-
private void CbNormal_Click(object sender, RoutedEventArgs e)
{
if (!initialising)
@@ -632,7 +614,6 @@ namespace eDosStation
SetFilter(isAlara);
}
}
-
private void BUserRead_Click(object sender, RoutedEventArgs e)
{
dispatcherTimer.Stop();
@@ -641,12 +622,10 @@ namespace eDosStation
AskTask();
else Close();
}
-
private void TaskCancel_Click(object sender, RoutedEventArgs e)
{
Close();
}
-
private void BTestPerson_Click(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
@@ -659,7 +638,6 @@ namespace eDosStation
dfReader?.WaitEnd();
}
-
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
try
@@ -682,7 +660,6 @@ namespace eDosStation
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
-
private void CbInst2_Click(object sender, RoutedEventArgs e)
{
Inst2 = (cbInst2.IsChecked == true);
@@ -690,7 +667,6 @@ namespace eDosStation
bool isAlara = (cbAlara.IsChecked == true);
SetFilter(isAlara);
}
-
private void AddTestButtons()
{
StackPanel sp = pTestButtons;
@@ -713,7 +689,6 @@ namespace eDosStation
sp.Visibility = Visibility.Visible;
}
-
private void Window_Loaded(object sender, RoutedEventArgs e)
{
initialising = true;
@@ -763,22 +738,18 @@ namespace eDosStation
}
taskLoading = false;
}
-
private void DfReader_BadgeError(LSWDesfirePublic.CCard Sender, LSWDesfirePublic.BadgeErrorEventArgs e)
{
endPage();
}
-
private void LeesCancel_Click(object sender, RoutedEventArgs e)
{
endPage();
}
-
private void DfReader_BadgeTO(LSWDesfirePublic.CCard Sender, EventArgs e)
{
this.Dispatcher.InvokeAsync(new Action(() => endPage()),DispatcherPriority.Normal);
}
-
private bool SelectTask(string id_task)
{
System.Windows.Data.CollectionViewSource getTaskListViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("getTaskListViewSource")));
@@ -791,7 +762,6 @@ namespace eDosStation
}
else return false;
}
-
private void numPanel_Click(object sender, RoutedEventArgs e)
{
Button x = sender as Button;
@@ -821,7 +791,6 @@ namespace eDosStation
break;
}
}
-
private void ShowNumpad_Click(object sender, RoutedEventArgs e)
{
if (numPanel.Visibility != Visibility.Visible)
@@ -837,7 +806,6 @@ namespace eDosStation
numPanel.Visibility = Visibility.Collapsed;
}
}
-
private void DFReader_Badged(LSWDesfirePublic.CCard Sender, LSWDesfirePublic.BadgeEventArgs e)
{
if (e.PersID > 0)
diff --git a/eDosStation/MainWindow.xaml.cs b/eDosStation/MainWindow.xaml.cs
index 24cf5d7..9180c3c 100644
--- a/eDosStation/MainWindow.xaml.cs
+++ b/eDosStation/MainWindow.xaml.cs
@@ -47,6 +47,7 @@ namespace eDosStation
simulData = w.simulData;
#endif
w = null;
+ if (thisStation.RestartCom) devcon.Restart();
}
private void BExit_Click(object sender, RoutedEventArgs e)
@@ -57,6 +58,7 @@ namespace eDosStation
#endif
w.ShowDialog();
w = null;
+ if (thisStation.RestartCom) devcon.Restart();
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
@@ -183,6 +185,7 @@ namespace eDosStation
{
About x = new About(thisStation);
x.ShowDialog();
+
}
private void mExit_Click(object sender, RoutedEventArgs e)
diff --git a/eDosStation/Settings.xaml b/eDosStation/Settings.xaml
index 0e04bb6..f397c3a 100644
--- a/eDosStation/Settings.xaml
+++ b/eDosStation/Settings.xaml
@@ -20,6 +20,7 @@
+
@@ -53,8 +54,10 @@
-
-
+
+
+
+
diff --git a/eDosStation/Settings.xaml.cs b/eDosStation/Settings.xaml.cs
index 22348f8..6fb8705 100644
--- a/eDosStation/Settings.xaml.cs
+++ b/eDosStation/Settings.xaml.cs
@@ -1,4 +1,5 @@
using System.Collections.ObjectModel;
+using System.Text;
using System.Windows;
namespace eDosStation
@@ -59,7 +60,7 @@ namespace eDosStation
thisStation.useTestButtons = cbValidation.IsChecked.Value;
thisStation.Reader = (string)cbReaders.SelectedValue;
thisStation.checkUser = cbCheckUsers.IsChecked != null ? cbCheckUsers.IsChecked.Value : false;
-
+ thisStation.RestartCom = cbRestartCom.IsChecked != null ? cbRestartCom.IsChecked.Value : false;
thisStation.EPDTimeOut = int.Parse(tEPDTimeout.Text);
thisStation.Update();
this.Close();
@@ -76,7 +77,7 @@ namespace eDosStation
private void Window_Loaded(object sender, RoutedEventArgs e)
{
-
+ string eDosCom = devcon.FindEdosCom();
try
{
using (var a = new LSWDesfirePublic.CCard())
@@ -93,10 +94,10 @@ namespace eDosStation
try {
- foreach (string cn in System.IO.Ports.SerialPort.GetPortNames())
- {
- cComPort.Items.Add(cn);
- }
+ foreach (string cn in System.IO.Ports.SerialPort.GetPortNames())
+ {
+ cComPort.Items.Add(cn);
+ }
}
catch (System.Exception ex)
{
@@ -146,6 +147,7 @@ namespace eDosStation
tBeep.ItemsSource = beepValues;
string thisComport = $"COM{thisStation.ComPort}";
+ if (!string.IsNullOrEmpty(eDosCom)) thisComport = eDosCom;
if (!cComPort.Items.Contains(thisComport)) cComPort.Items.Add(thisComport);
cComPort.SelectedItem = thisComport;
@@ -168,13 +170,13 @@ namespace eDosStation
}
- try {
-
- tBeep.SelectedValue = thisStation.useBeep;
- cbValidation.IsChecked = thisStation.useTestButtons;
- cbCheckUsers.IsChecked= thisStation.checkUser;
-
- tEPDTimeout.Text = thisStation.EPDTimeOut.ToString();
+ try
+ {
+ tBeep.SelectedValue = thisStation.useBeep;
+ cbValidation.IsChecked = thisStation.useTestButtons;
+ cbCheckUsers.IsChecked= thisStation.checkUser;
+ cbRestartCom.IsChecked = thisStation.RestartCom;
+ tEPDTimeout.Text = thisStation.EPDTimeOut.ToString();
}
catch (System.Exception ex)
{
diff --git a/eDosStation/Station.cs b/eDosStation/Station.cs
index 5dc96b1..3f588ac 100644
--- a/eDosStation/Station.cs
+++ b/eDosStation/Station.cs
@@ -13,7 +13,6 @@ namespace eDosStation
public class Station
{
private bool doLog;
-
public System.IO.StreamWriter stationLog=null;
public int ID_Station { get; set; }
public int ComPort { get; set; }
@@ -28,6 +27,7 @@ namespace eDosStation
public byte useBeep { get; set; }
public bool checkUser { get; internal set; }
+ public bool RestartCom { get; set; }
public int EPDTimeOut { get; internal set; }
public int EPDRetries { get; internal set; }
public bool Changed = false;
@@ -240,12 +240,14 @@ namespace eDosStation
cmd.SetIfExists("useBeep", useBeep);
cmd.SetIfExists("EPDTimeout", EPDTimeOut);
cmd.SetIfExists("EPDRetries", EPDRetries);
+ cmd.SetIfExists("RestartCom", RestartCom);
}
catch (System.Exception ex)
{
-
+ Error = 1;
+ ErrorMessage = ex.Message;
+ if (stationLog != null) stationLog.WriteLine($"GetStationSettings error {ex.Message} {System.DateTime.Now}");
}
-
}
private void UpdateToDb(SqlConnection co, SqlCommand cmd)
diff --git a/eDosStation/devcon.cs b/eDosStation/devcon.cs
new file mode 100644
index 0000000..912db3f
--- /dev/null
+++ b/eDosStation/devcon.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace eDosStation
+{
+ class devcon
+ {
+ static private string ExecuteDevcon(string command)
+ {
+ StringBuilder sb = new StringBuilder();
+ System.Diagnostics.Process p = null;
+ string curPath = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "extra");
+ string devcon;
+
+ if (System.IO.Directory.Exists(curPath))
+ {
+ devcon = System.IO.Path.Combine(curPath, "devcon.exe");
+ if (System.IO.File.Exists(devcon))
+ {
+ try
+ {
+ using (p = new System.Diagnostics.Process())
+ {
+ p.StartInfo.WorkingDirectory = curPath;
+ p.StartInfo.FileName = devcon;
+ p.StartInfo.Arguments = $"{command} \"USB\\VID_0EBB&PID_0340&MI_00\"";
+ p.StartInfo.RedirectStandardOutput = true;
+ p.StartInfo.UseShellExecute = false;
+ p.Start();
+ var i = p.StandardOutput;
+ while (!i.EndOfStream)
+ {
+ sb.AppendLine(i.ReadLine());
+ }
+ p.WaitForExit();
+ }
+ } catch
+ {
+
+ }
+ }
+ }
+ return sb.ToString();
+ }
+
+ static public string FindEdosCom()
+ {
+ string eDosCom = null;
+ try
+ {
+ string cp = devcon.ExecuteDevcon("find");
+ var ix = cp.IndexOf("(COM");
+ if (ix >= 0) eDosCom = cp.Substring(ix + 1, 4);
+ }
+ catch { }
+ return eDosCom;
+ }
+
+ static public void Restart()
+ {
+ string cp = devcon.ExecuteDevcon("restart");
+ }
+ }
+}
diff --git a/eDosStation/eDosStation.csproj b/eDosStation/eDosStation.csproj
index 7edb339..3a71a4d 100644
--- a/eDosStation/eDosStation.csproj
+++ b/eDosStation/eDosStation.csproj
@@ -1,7 +1,7 @@
-
+
Debug
@@ -112,20 +112,16 @@
4.0
- ..\lib\RCWPF\2022.1.222.45\Telerik.Windows.Controls.dll
- True
+ ..\packages\Telerik.Windows.Controls.for.Wpf.Xaml.2022.1.222\lib\net45\Telerik.Windows.Controls.dll
- ..\lib\RCWPF\2022.1.222.45\Telerik.Windows.Controls.GridView.dll
- True
+ ..\packages\Telerik.Windows.Controls.GridView.for.Wpf.Xaml.2022.1.222\lib\net45\Telerik.Windows.Controls.GridView.dll
- ..\lib\RCWPF\2022.1.222.45\Telerik.Windows.Controls.Input.dll
- True
+ ..\packages\Telerik.Windows.Controls.Input.for.Wpf.Xaml.2022.1.222\lib\net45\Telerik.Windows.Controls.Input.dll
- ..\lib\RCWPF\2022.1.222.45\Telerik.Windows.Data.dll
- True
+ ..\packages\Telerik.Windows.Data.for.Wpf.Xaml.2022.1.222\lib\net45\Telerik.Windows.Data.dll
False
@@ -157,6 +153,7 @@
DataSet1.xsd
+
EntryBadge.xaml
@@ -290,6 +287,9 @@
+
+ Always
+
Always
@@ -326,26 +326,23 @@
{f1f47b79-9930-48b0-8dde-56e2c4bed2a2}
EpdBaseClr
-
- {f98f3496-8a4c-4bdb-9f17-c7af47a60739}
- OkReadBadge
-
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
+
+
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign /sha1 857150b64ef7d3e679c8cbde425d2a0b5e58ffaa /fd sha256 /d "Integrity & Authenticity" /tr "http://timestamp.digicert.com" $(TargetPath)
-
+
\ No newline at end of file
diff --git a/eDosStation/extra/devcon.exe b/eDosStation/extra/devcon.exe
new file mode 100644
index 0000000..b08744a
Binary files /dev/null and b/eDosStation/extra/devcon.exe differ
diff --git a/eDosStation/packages.config b/eDosStation/packages.config
index 3639c19..7116a9a 100644
--- a/eDosStation/packages.config
+++ b/eDosStation/packages.config
@@ -9,8 +9,8 @@
-
-
-
-
+
+
+
+
\ No newline at end of file