using System; using System.Collections.ObjectModel; using System.Text; using System.Windows; using System.Windows.Threading; namespace eDosStation { /// /// Interaction logic for Settings.xaml /// public class beepclass { public string Text { get; set; } public byte Value { get; set; } public beepclass(string txt, byte val) { Text = txt; Value = val; } } public class readerclass { public string Text { get; set; } public readerclass(string txt) { Text = txt; } } public partial class Settings : Window { const string className = "Settings"; //private System.Threading.Tasks.Task ReaderTask; //User _User; Station thisStation; ObservableCollection beepValues; ObservableCollection readerValues; public Settings(Station tStation) { try { //_User = null; thisStation = null; //dfReader = null; ReaderTask = null; beepValues = new ObservableCollection(); readerValues = new ObservableCollection(); InitializeComponent(); if (tStation != null) thisStation = tStation; if (tStation != null) tStation.splunkLog?.WriteSplunkLog(className, LSWLib.CLog.iseverity.info, "created"); } catch (System.Exception ex) { if (tStation != null) tStation.splunkLog?.WriteException(className, className, ex); } } private void BOK_Click(object sender, RoutedEventArgs e) { const string module = "BOK_Click"; string step="init"; try { step = "comport"; string thiscom = cComPort.SelectedItem.ToString().Replace("COM", string.Empty); thisStation.ComPort = int.Parse(thiscom); DataSet1.InstallationRow ir; step = "code1"; ir = CIns1.SelectedItem as DataSet1.InstallationRow; if (ir != null) { thisStation.Inst_CODE1 = ir.Inst_CODE; thisStation.Inst_Name1 = ir.InstallationName; } else { thisStation.Inst_CODE1 = 0; thisStation.Inst_Name1 = string.Empty; } step = "code2"; ir = CIns2.SelectedItem as DataSet1.InstallationRow; if (ir != null) { thisStation.Inst_CODE2 = ir.Inst_CODE; thisStation.Inst_Name2 = ir.InstallationName; } else { thisStation.Inst_CODE2 = 0; thisStation.Inst_Name2 = string.Empty; } step = "usebeep"; if (tBeep.HasItems && tBeep.SelectedIndex != -1) { thisStation.useBeep = (byte)tBeep.SelectedValue; } else thisStation.useBeep = (byte)0b00011110; step = "validation++"; if (cbValidation.IsChecked == null) cbValidation.IsChecked = false; thisStation.useTestButtons = cbValidation.IsChecked.Value; step = "Reader"; thisStation.Reader = (string)cbReaders.SelectedValue; step = "checkUser"; thisStation.checkUser = cbCheckUsers.IsChecked != null ? cbCheckUsers.IsChecked.Value : false; thisStation.RestartCom = cbRestartCom.IsChecked != null ? cbRestartCom.IsChecked.Value : false; step = "EPDTimeOut"; thisStation.EPDTimeOut = int.Parse(tEPDTimeout.Text); step = "OnlyMK2"; thisStation.OnlyMK2 = cbOnlyMK2.IsChecked != null ? cbOnlyMK2.IsChecked.Value : false; step = "RestartComFirst"; thisStation.RestartComFirst = cbRestartComFirst.IsChecked != null ? cbRestartComFirst.IsChecked.Value : false; step = "AllowMultipleEPD"; thisStation.AllowMultipleEPD = cbAllowMultipleEPD.IsChecked != null ? cbAllowMultipleEPD.IsChecked.Value : false; //thisStation.WriteConfig32 = cbWriteConfig32.IsChecked != null ? cbWriteConfig32.IsChecked.Value : false; thisStation.LogAll = cbLogAll.IsChecked != null ? cbLogAll.IsChecked.Value : false; thisStation.ElatecPort = eComPort.SelectedValue.ToString().Trim(); step = "Update"; thisStation.Update(); if (thisStation.Error > 0) { thisStation?.splunkLog?.WriteSplunkLog(module, LSWLib.CLog.iseverity.err, thisStation.ErrorMessage); MessageBox.Show($"Error {thisStation.ErrorMessage}"); } } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(module, step, ex); } thisStation?.splunkLog?.WriteSplunkLog(module, LSWLib.CLog.iseverity.info, "done"); this.Close(); } private void BCancel_Click(object sender, RoutedEventArgs e) { const string module = "BCancel_Click"; thisStation?.splunkLog?.WriteSplunkLog(module, LSWLib.CLog.iseverity.info, "saved"); this.Close(); } private void Window_Loaded(object sender, RoutedEventArgs e) { string step = "devcon"; string eDosCom = null; try { eDosCom = thisStation?.find(); thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info, eDosCom); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); } step = "GetReaderList"; try { using (var a = new LSWDesfirePublic.CCard()) { a.GetReaderList(); foreach (string s in a.readersList) { readerValues.Add(new readerclass(s)); } } cbReaders.ItemsSource = readerValues; cbReaders.SelectedValue = thisStation.Reader; thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); MessageBox.Show($"Readers err {ex.Message}"); } step = "GetPortNames"; try { foreach (string cn in System.IO.Ports.SerialPort.GetPortNames()) { cComPort.Items.Add(cn); eComPort.Items.Add(cn); } thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); MessageBox.Show($"Serial err {ex.Message}"); } step = "BeepValues"; try { beepValues.Add(new beepclass("Loud High freq Beep", 0b00010111)); beepValues.Add(new beepclass("Loud Low freq Beep", 0b00011111)); beepValues.Add(new beepclass("Normal High freq Beep", 0b00010110)); beepValues.Add(new beepclass("Normal Low freq Beep", 0b00011110)); beepValues.Add(new beepclass("No Beep (only led)", 0b00011010)); tBeep.ItemsSource = beepValues; thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); MessageBox.Show($"Serial err {ex.Message}"); } // 7 6 5 4 3210 // 1 0 0 1 1 1 0 0 1 1 1 0 0001 // 1 0 0 1 1 1 0 0 1 1 0 0 0001 // 1 0 0 1 1 1 0 0 1 0 1 0 0001 // 1 0 0 1 1 1 0 0 1 0 0 0 0001 // 1 0 0 1 1 1 0 0 0 0 0 0 0000 //MK3 //Bits 0-3 = Graphic Wearer Name, displayed in EPD Assignment menu //0000 : Off(no sounder) //0001 : Continuous Single Tone //0010 : Continuous Dual Tone Slow //0011 : Continuous Dual Tone Fast //0100 : Intermittent Single Slow //0101 : Intermittent Single Fast //0110 : Intermittent Double Slow //0111 : Intermittent Double Fast //1110 : Mirion Style Dose //1111 : Mirion Style Rate //Bit 4 = Not used //Bit 5 = Tone 2kHz = 0, 4kHz = 1 //Bit 6 = Volume Loud = 1, Normal = 0 //Bit 7 = Sound Enabled = 1 //Bit 8, 9 = Not used //Bit 10 = LED Brightness Bright = 1, Normal = 0 //Bit 11 = LED Enabled = 1 //Bit 12 = Mutable User can mute = 1 //Bit 13, 14 = Not Used //Bit 15 = Vibe Enabled = 1 //beepValues.Add(new beepclass("Beep", 22)); //beepValues.Add(new beepclass("No Beep", 18)); step = "Select com"; try { string thisComport = $"COM{thisStation.ComPort}"; if (!string.IsNullOrEmpty(eDosCom)) thisComport = eDosCom; if (!cComPort.Items.Contains(thisComport)) cComPort.Items.Add(thisComport); cComPort.SelectedItem = thisComport; thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); MessageBox.Show($"Serial err {ex.Message}"); } step = "Select ecom"; try { string thisComport = thisStation.ElatecPort; if (!eComPort.Items.Contains(thisComport)) eComPort.Items.Add(thisComport); eComPort.SelectedItem = thisComport; thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); MessageBox.Show($"Serial err {ex.Message}"); } step = "tbInstallations"; try { DataSet1.InstallationDataTable tbInstallations; using (var ta = new DataSet1TableAdapters.InstallationTableAdapter()) tbInstallations = ta.GetData(); tbInstallations.AddInstallationRow(0, "-"); foreach (DataSet1.InstallationRow r in tbInstallations.Rows) { CIns1.Items.Add(r); CIns2.Items.Add(r); } CIns1.SelectedValue = thisStation.Inst_CODE1; CIns2.SelectedValue = thisStation.Inst_CODE2; thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); MessageBox.Show($"SetINstallations err {ex.Message}"); } step = "setCheckBoxes"; try { tBeep.SelectedValue = thisStation.useBeep; cbValidation.IsChecked = thisStation.useTestButtons; cbCheckUsers.IsChecked = thisStation.checkUser; cbRestartCom.IsChecked = thisStation.RestartCom; tEPDTimeout.Text = thisStation.EPDTimeOut.ToString(); cbRestartComFirst.IsChecked = thisStation.RestartComFirst; cbOnlyMK2.IsChecked = thisStation.OnlyMK2; cbAllowMultipleEPD.IsChecked = thisStation.AllowMultipleEPD; cbWriteConfig32.IsChecked = thisStation.WriteConfig32; cbLogAll.IsChecked = thisStation.LogAll; thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); MessageBox.Show($"Settings err {ex.Message}"); } step = "CheckCon"; try { bool rv = thisStation.dataInterface.checkCon(false); thisStation.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } catch (System.Exception ex) { thisStation?.splunkLog?.WriteException(className, step, ex); MessageBox.Show($"Interface check {ex.Message}"); } step = "endLoaded"; thisStation?.splunkLog?.WriteSplunkLog(step, LSWLib.CLog.iseverity.info); } #region BadgeReader //public void StartReader() //{ // if (dfReader == null) // { // dfReader = new LSWDesfirePublic.CCard(); // dfReader.GetReaderList(); // if (dfReader.readersList.Contains(thisStation.Reader)) // { // dfReader.SetReader(thisStation.Reader); // dfReader.Badged += DFReader_Badged; // dfReader.BadgeTO += DfReader_BadgeTO; // dfReader.BadgeError += DfReader_BadgeError; // ReaderTask = dfReader.Wait(5000, 10); // } // else // { // StringBuilder er = new StringBuilder($"Badgelezer \"{thisStation.Reader}\" niet gevonden!.\nDeze lezers zijn beschikbaar:\n"); // dfReader.GetReaderList(); // foreach (string r in dfReader.readersList) er.AppendLine($"-> {r}"); // MessageBox.Show(er.ToString(), "Badge Lezer", MessageBoxButton.OK, MessageBoxImage.Exclamation); // dfReader.Dispose(); dfReader = null; // } // } //} //void CheckBadge() //{ // thisStation.splunkLog?.KvSet(LSWLib.CLog.skeys.persID, _User.PersID); // thisStation.splunkLog?.WriteSplunkLog("CheckBadge", LSWLib.CLog.iseverity.info, _User.PersID.ToString(), null); // //Dispatcher.InvokeAsync(() => { ShowUserInfo(); }); //} //public void showBadge(int persID, string csn) //{ // //CSN.Text = csn; // //Site.Text = string.Empty; // //Code.Text = persID.ToString(); // _User = thisStation.dataInterface.GetUser(null, persID.ToString(), true); // Dispatcher.InvokeAsync(CheckBadge, DispatcherPriority.Normal); //} //private void DfReader_BadgeError(LSWDesfirePublic.CCard Sender, LSWDesfirePublic.BadgeErrorEventArgs e) //{ // // endPage(); //} //private void DfReader_BadgeTO(LSWDesfirePublic.CCard Sender, EventArgs e) //{ // //this.Dispatcher.InvokeAsync(new Action(() => endPage()), DispatcherPriority.Normal); //} //private void DFReader_Badged(LSWDesfirePublic.CCard Sender, LSWDesfirePublic.BadgeEventArgs e) //{ // if (e.PersID > 0) // this.Dispatcher.InvokeAsync(new Action(() => showBadge(e.PersID, e.UID)), DispatcherPriority.Background); // else // { // string msg = $"No PersID found on badge {e.UID}"; // MessageBox.Show(msg, "Error", MessageBoxButton.OK); // thisStation.splunkLog?.WriteSplunkLog("Badged", LSWLib.CLog.iseverity.warning, null, msg); // } //} //private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) //{ // //try // //{ // // if (dfReader != null ) // // { // // dfReader.WaitEnd(); // // System.Threading.Thread.Sleep(2000); // // dfReader.Dispose(); // // dfReader = null; // // } // //} // //catch (System.Exception ex) // //{ // // System.Diagnostics.Debug.WriteLine(ex.Message); // //} //} #endregion } }