public MainWindowViewModel() { portNameList = new List <string>(); for (int i = 1; i <= 16; i++) { portNameList.Add($"COM{i}"); } portName = portNameList[0]; dataToSend = "=0005.000-"; currentDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); startDataSendingEnabled = true; clockTimer = new System.Timers.Timer(); clockTimer.Interval = 1000; clockTimer.Elapsed += TimeTickTimer_Elapsed; clockTimer.Start(); dataSendingIntervalList = new List <int>(); for (int i = 1; i <= 6; i++) { dataSendingIntervalList.Add(i * 10); } dataSendingInterval = 20; StartDataSendingCommand = new Prism.Commands.DelegateCommand(() => { try { serialPortReader = new Utilities.SerialPortReader(portName); serialPortReader.StartDataSending(dataToSend); IsStartDataSendingEnabled = false; } catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message); } }); StopDataSendingCommand = new Prism.Commands.DelegateCommand(() => { try { serialPortReader.StopDataSending(); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message); } finally { IsStartDataSendingEnabled = true; } }); }
public MainWindowViewModel() { portList = new List <string>(); for (int i = 1; i <= 16; i++) { portList.Add($"COM{i}"); } baudRateList = "300:600:1200:2400:4800:9600:19200:38400:57600:115200".Split(':').ToList(); dataBitsList = "5:6:7:8".Split(':').ToList(); stopBitsList = "0:1:1.5:2".Split(':').ToList(); parityCheckList = "None:Odd:Even:Mark:Space".Split(':').ToList(); stopBitsDict = new Dictionary <string, System.IO.Ports.StopBits>(); stopBitsDict.Add("0", System.IO.Ports.StopBits.None); stopBitsDict.Add("1", System.IO.Ports.StopBits.One); stopBitsDict.Add("1.5", System.IO.Ports.StopBits.OnePointFive); stopBitsDict.Add("2", System.IO.Ports.StopBits.Two); port = "COM1"; baudRate = "9600"; parityCheck = "None"; dataBits = "8"; stopBits = "1"; crcEnabled = false; MessageContent = ""; openPortEnabled = true; OpenPortCommand = new Prism.Commands.DelegateCommand(() => { try { spReader = new Utilities.SerialPortReader(port, Convert.ToInt32(baudRate), (Parity)Enum.Parse(typeof(Parity), parityCheck), Convert.ToInt32(dataBits), stopBitsDict[stopBits], new SerialDataReceivedEventHandler(SerialPortDataReceivedEventHandler)); spReader.Open(); } catch (Exception ex) { System.Windows.MessageBox.Show($"打开串口失败,{ex.Message}"); return; } IsOpenPortEnabled = false; timeStub = Environment.TickCount; MessageTotal = 0; IsTimerEnabled = false; }); ClosePortCommand = new DelegateCommand(() => { spReader.Close(); IsOpenPortEnabled = true; IsTimerEnabled = true; }); ClearMessageContentCommand = new DelegateCommand(() => { MessageContent = ""; }); ReadDataCommand = new DelegateCommand <string>((t) => { int timeSpan = Convert.ToInt32(t); IsTimerEnabled = false; OpenPortCommand.Execute(); Task.Run(() => { Thread.Sleep(timeSpan); ClosePortCommand.Execute(); IsTimerEnabled = true; }); }); }