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