public MainWindowViewModel() { HelpModel = new HelpModel(); HelpModel.HelpDataContext(); RecvModel = new RecvModel(); RecvModel.RecvDataContext(); SendModel = new SendModel(); SendModel.SendDataContext(); SerialPortModel = new SerialPortModel(); SerialPortModel.SerialPortDataContext(); DepictInfo = "串行端口调试助手"; TimerModel = new TimerModel(); TimerModel.TimerDataContext(); HexSend = false; AutoSend = false; InitAutoSendTimer(); SaveRecv = false; }
internal bool Close(SerialPortModel model) { if (_serials.TryGetValue(model.SelectSerialPort, out SerialPort serialPort)) { model.IsOpened = serialPort.TryClose(); return(serialPort.IsOpen); } return(false); }
//static private Dictionary<string, SerialPort> serials = new Dictionary<string, SerialPort>(); //static private IHubContext/*<ChatHub>*/ context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); // GET: SerialPort public ActionResult SerialPort() { ViewBag.Title = Resources.SerialPort.Serial_Port_Web_Assistant; var model = new SerialPortModel { SelectBaudRate = 19200, QuickCommandList = GetQuickCommandList(), }; return(View(model)); }
private SerialPort CreateSerialPort(SerialPortModel model) { var serialPort = new SerialPort { PortName = model.SelectSerialPort, BaudRate = model.SelectBaudRate, DataBits = model.SelectDataBits, Parity = model.GetParity(), StopBits = model.GetStopBits() }; serialPort.DataReceived += SerialPort_DataReceived; return(serialPort); }
internal bool Open(SerialPortModel model) { if (string.IsNullOrEmpty(model.SelectSerialPort)) { return(false); } if (!_serials.TryGetValue(model.SelectSerialPort, out SerialPort serialPort)) { serialPort = CreateSerialPort(model); _serials[model.SelectSerialPort] = serialPort; } model.IsOpened = serialPort.TryOpen(); return(serialPort.IsOpen); }
internal void SendMessage(SerialPortModel model) { if (string.IsNullOrEmpty(model.Send)) { return; } if (_serials.TryGetValue(model.SelectSerialPort, out SerialPort serialPort)) { if (serialPort.IsOpen) { var msg = Encoding.Default.GetBytes(model.Send); serialPort.Write(msg, 0, msg.Length); } } }
/// <summary> /// 初始化 /// </summary> public bool Init() { string portName = _getSerialPortNames(); if (string.IsNullOrEmpty(portName)) { MessageBox.Show("串口名不能为空!"); return(false); } else { //实例化一个通信Model model = new SerialPortModel(portName, 9600, 8, "None", "1"); return(true); } }
/// <summary> /// 初始化 /// </summary> public PageBalanceExamineViewModel() { try { //下一步隐藏 _NextBtnVisibility = Visibility.Hidden; //赋值查询到的可用串口名 PortNames = ManagerPlant.serialPortManager.GetSerialPortNames(); //绑定串口Model SerialPortModel = ManagerPlant.serialPortManager.model; TianPingCopy = "仁-设(仪)-01"; //初始化事件对象 if (m_UIController == null) { m_UIController = new PageBalanceExamineViewController(this); } } catch (Exception ex) { Console.WriteLine("[ ViewModel Class Init Error ] " + ex.Message); } }
public SettingsController(JsonHandler jsonHandler, SerialPortModel serialPortModel, LaserSettings settings) { _jsonHandler = jsonHandler; _serialPortModel = serialPortModel; _settings = settings; }
public bool OpenSP() { if (SPserialPort != null && SPserialPort.IsOpen) { return(CloseSP()); } try { SPserialPort.PortName = SerialPortModel.SPPort; SPserialPort.BaudRate = SerialPortModel.SPBaudRate; SPserialPort.DataBits = SerialPortModel.SPDataBits; SPserialPort.StopBits = SerialPortModel.GetStopBits(SerialPortModel.SPStopBits.ToString()); SPserialPort.Parity = SerialPortModel.GetParity(SerialPortModel.SPParity.ToString()); SPserialPort.WriteBufferSize = 1048576; /* 输出缓冲区的大小为1048576字节 = 1MB */ SPserialPort.ReadBufferSize = 2097152; /* 输入缓冲区的大小为2097152字节 = 2MB */ /* 字节编码 */ if (SerialPortModel.ASCIIEnable) { SPserialPort.Encoding = System.Text.Encoding.ASCII; } else if (SerialPortModel.UTF8Enable) { SPserialPort.Encoding = System.Text.Encoding.UTF8; } else if (SerialPortModel.UTF16Enable) { SPserialPort.Encoding = System.Text.Encoding.Unicode; } else if (SerialPortModel.UTF32Enable) { SPserialPort.Encoding = System.Text.Encoding.UTF32; } /* 发送请求(RTS)信号 */ if (SerialPortModel.RtsEnable) { SPserialPort.RtsEnable = true; } else { SPserialPort.RtsEnable = false; } /* 数据终端就绪(DTR)信号 */ if (SerialPortModel.DtrEnable) { SPserialPort.DtrEnable = true; } else { SPserialPort.DtrEnable = false; } /* 流控制 */ if (SerialPortModel.NoneEnable) { SPserialPort.Handshake = Handshake.None; } else if (SerialPortModel.RequestToSendEnable) { SPserialPort.Handshake = Handshake.RequestToSend; } else if (SerialPortModel.XOnXOffEnable) { SPserialPort.Handshake = Handshake.XOnXOff; } else if (SerialPortModel.RequestToSendXOnXOffEnable) { SPserialPort.Handshake = Handshake.RequestToSendXOnXOff; } /* 数据接收事件 */ SPserialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived); /* 信号状态事件 */ SPserialPort.PinChanged += new SerialPinChangedEventHandler(SerialPortModel.SerialPort_PinChanged); SPserialPort.Open(); if (SPserialPort.IsOpen) { SerialPortModel.SPBrush = Brushes.GreenYellow; SerialPortModel.OpenCloseSP = "关闭串口"; DepictInfo = string.Format("成功打开串行端口{0}、波特率{1}、数据位{2}、停止位{3}、校验位{4}", SPserialPort.PortName, SPserialPort.BaudRate.ToString(), SPserialPort.DataBits.ToString(), SPserialPort.StopBits.ToString(), SPserialPort.Parity.ToString()); SerialPortModel.SPPortEnable = false; SerialPortModel.SPBaudRateEnable = false; SerialPortModel.SPDataBitsEnable = false; SerialPortModel.SPStopBitsEnable = false; SerialPortModel.SPParityEnable = false; return(true); } else { DepictInfo = "串行端口打开失败"; return(false); } } catch (UnauthorizedAccessException e) { DepictInfo = string.Format("[{0}]端口访问被拒绝", e.HResult.ToString("X")); return(false); } catch (ArgumentOutOfRangeException e) { DepictInfo = string.Format("串口属性{0}是非法的", e.ParamName); return(false); } catch (ArgumentException e) { DepictInfo = string.Format("串口{0}不支持", e.ParamName); return(false); } catch (IOException e) { DepictInfo = string.Format("[{0}]端口处于无效状态", e.HResult.ToString("X")); return(false); } catch (InvalidOperationException e) { DepictInfo = string.Format("[{0}]指定端口已经打开", e.HResult.ToString("X")); return(false); } }
public MainWindow() { InitializeComponent(); Port = new SerialPortModel(); Port.DataReceived += new SerialDataReceivedEventHandler(Port_DataReceived); string[] DelayTimes = { "0", "500", "1000", "1500", "2000", "3000", "4000", "5000", "6000", "7000", "8000", "9000", "10000" }; cmbSend1.ItemsSource = DelayTimes; cmbSend2.ItemsSource = DelayTimes; this.DataContext = this; cmbPortName.SelectedIndex = Properties.Settings.Default.PortName; cmbBaudRate.SelectedIndex = Properties.Settings.Default.BaudRate; txtSend1.Text = Properties.Settings.Default.Send1; txtSend2.Text = Properties.Settings.Default.Send2; btnOpenPort.Click += delegate (object sender, RoutedEventArgs e) { if ((bool)btnOpenPort.IsChecked) { Port.PortName = (string)cmbPortName.SelectedItem; Port.BaudRate = Convert.ToInt32(cmbBaudRate.SelectedItem); try { Port.Open(); } catch (Exception ex) { MessageBox.Show(ex.Message); btnOpenPort.IsChecked = false; return; } cmbBaudRate.IsEnabled = false; cmbDataBit.IsEnabled = false; cmbPortName.IsEnabled = false; cmbParity.IsEnabled = false; cmbStopBit.IsEnabled = false; } else { Port.Close(); cmbBaudRate.IsEnabled = true; cmbDataBit.IsEnabled = true; cmbPortName.IsEnabled = true; cmbParity.IsEnabled = true; cmbStopBit.IsEnabled = true; } }; btnClearText.Click += delegate (object sender, RoutedEventArgs e) { //txtRecData.Clear(); txtRecData.Document.Blocks.Clear(); }; btnClearZero.Click += delegate (object sender, RoutedEventArgs e) { Port.ClearCounter(); }; btnSave.Click += delegate (object sender, RoutedEventArgs e) { SaveFileDialog sfd = new SaveFileDialog() { Filter = "文本|*.log" }; if (sfd.ShowDialog() == true) { //File.WriteAllText(sfd.FileName, txtRecData.Text); //using (FileStream stream = File.OpenWrite(sfd.FileName)) //{ // TextRange documentTextRange = new TextRange(txtRecData.Document.ContentStart, txtRecData.Document.ContentEnd); // string dataFormat = DataFormats.Text; // string ext = System.IO.Path.GetExtension(sfd.FileName); // if (String.Compare(ext, ".xaml", true) == 0) // { // dataFormat = DataFormats.Xaml; // } // else if (String.Compare(ext, ".rtf", true) == 0) // { // dataFormat = DataFormats.Rtf; // } // documentTextRange.Save(stream, dataFormat); //} TextRange textRange = new TextRange(txtRecData.Document.ContentStart, txtRecData.Document.ContentEnd); File.WriteAllText(sfd.FileName, textRange.Text); } }; btnSend1.Click += delegate (object sender, RoutedEventArgs e) { SendData(txtSend1.Text); }; cmbSend1.SelectionChanged += delegate (object sender, SelectionChangedEventArgs e) { int time = Convert.ToInt32(cmbSend1.SelectedValue); if (time > 0) { sendTimer1.Interval = new TimeSpan(time * 10000); sendTimer1.Start(); } else { sendTimer1.Stop(); } }; sendTimer1.Tick += delegate (object sender, EventArgs e) { SendData(txtSend1.Text); }; btnSend2.Click += delegate (object sender, RoutedEventArgs e) { SendData(txtSend2.Text); }; cmbSend2.SelectionChanged += delegate (object sender, SelectionChangedEventArgs e) { int time = Convert.ToInt32(cmbSend2.SelectedValue); if (time > 0) { sendTimer2.Interval = new TimeSpan(time * 10000); sendTimer2.Start(); } else { sendTimer2.Stop(); } }; sendTimer2.Tick += delegate (object sender, EventArgs e) { SendData(txtSend2.Text); }; txtRecData.TextChanged += delegate (object sender, TextChangedEventArgs e) { txtRecData.ScrollToEnd(); }; this.Closing += delegate (object sender, System.ComponentModel.CancelEventArgs e) { Properties.Settings.Default.PortName = cmbPortName.SelectedIndex; Properties.Settings.Default.BaudRate = cmbBaudRate.SelectedIndex; Properties.Settings.Default.Send1 = txtSend1.Text; Properties.Settings.Default.Send2 = txtSend2.Text; Properties.Settings.Default.Save(); }; this.Activated += delegate (object sender, EventArgs e) { string str = Clipboard.GetText(); Clipboard.SetText(str.Replace("\r\n", "")); }; }
public void SendMessage(SerialPortModel model) { SerialPort.SendMessage(model); }
public bool Close(SerialPortModel model) { return(SerialPort.Close(model)); }
public bool Open(SerialPortModel model) { return(SerialPort.Open(model)); }
public Laser(SerialPortModel serialPortModel, LaserSettings settings) { _serialPortModel = serialPortModel; _settings = settings; }
/// <summary> /// 初始化 /// </summary> public SerialPortManager() { //实例化一个通信Model model = new SerialPortModel(); }