/// <summary> /// 串口发送数据处理函数 /// </summary> /// <param name="spb">串口助手对象</param> /// <param name="data">发送数据</param> /// <param name="format">发送数据格式</param> private void SerialPortDataWriteProcess(SerialPortHelper spb, string data, SerialFormat format = SerialFormat.None) { if (data == "" || !spb.IsOpen) { return; } if (format == SerialFormat.None) { format = SerialData.IsStringHex(data) ? SerialFormat.Hex : SerialFormat.String; } byte[] arrData; switch (format) { case SerialFormat.Hex: arrData = SerialData.ToHexByteArray(data); Console.WriteLine("发送数据:" + SerialData.ToHexString(arrData)); break; case SerialFormat.String: arrData = SerialData.ToByteArray(data); Console.WriteLine("发送数据:" + data); break; case SerialFormat.None: default: return; } spb.Write(arrData); }
/// <summary> /// 设置测量模式 /// </summary> public void setMode(SerialPortHelper serialPort) { int temp_mode = 0;//用于存储各种扳手实际对应仪器的变量 //设置PLC模式,一一对应,电子扳手:仪器的1->PLC的1;咔嗒扳手:仪器的3->PLC的1;电动扳手:仪器的2->PLC的2 switch (CurrentTech.Mode) { case 1: s7Help.WriteTestMode(Vars.ControlMode ? 2 : 1); temp_mode = 2; break; case 2: //s7Help.WriteTestMode(Vars.ControlMode ? 3 : 2); s7Help.WriteTestMode(2); //电动 temp_mode = 6; break; case 3: s7Help.WriteTestMode(Vars.ControlMode ? 2 : 1); //s7Help.WriteTestMode(1);//咔嗒 temp_mode = 3; break; } //设置校验仪模式 for (int i = 0; i < 20; i++) { serialPort.send(temp_mode.ToString()); Thread.Sleep(100); } }
/// <summary> /// 串口错误事件 /// </summary> /// <param name="enumError">错误枚举</param> /// <param name="strError">错误内容</param> private void SerialPortErrorProcess(object sender, enumSerialError enumError, string strError) { this.Invoke(new Action(() => { SerialPortHelper spb = (SerialPortHelper)sender; switch (enumError) { case enumSerialError.LinkError: spb.CloseCom(out string str); Console.WriteLine(spb.SerialMark + "串口错误:" + strError); //MessageBox.Show(strError, "串口错误", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case enumSerialError.WriteError: Console.WriteLine(spb.SerialMark + "发送错误:" + strError); break; case enumSerialError.ReceivedError: Console.WriteLine(spb.SerialMark + "接收错误:" + strError); break; default: break; } })); }
public HttpResponseMessage Get(int player, float load) { try { string portName = ""; if (player == 1) { portName = SerialPortHelper.player1Port; } else { portName = SerialPortHelper.player2Port; } intensity = SerialPortHelper.CreateIntensity(load); SerialPortHelper.WritePort(portName, intensity); resultTest = $"Player: {player} Port name: {portName} Intensity: {intensity}"; return(Request.CreateResponse(HttpStatusCode.OK)); } catch (System.Exception) { return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } }
/// <summary> /// 串口对手初始化 /// </summary> private void InitSerialPort() { //初始化串口配置类 configCom1 = new ConfigCom(this.cbSerial1, this.cbBaudRate1, this.cbDataBits1, this.cbStop1, this.cbParity1); configCom2 = new ConfigCom(this.cbSerial2, this.cbBaudRate2, this.cbDataBits2, this.cbStop2, this.cbParity2); //初始化串口助手类 serialPort1 = new SerialPortHelper(); serialPort1.ConfigSerialPort = configCom1.GetConfigComData(); serialPort1.BindSerialPortDataReceivedProcessEvent(new SerialPortHelper.DelegateSerialPortDataReceivedProcessEvent(SerialPortDataReceivedProcess)); serialPort1.BindSerialPortErrorEvent(new SerialPortHelper.DelegateSerialPortErrorEvent(SerialPortErrorProcess)); serialPort1.SerialReceviedTimeInterval = 40; serialPort1.SerialWriteTimeInterval = 1; serialPort1.SerialReceviedLengthMax = 1024; serialPort1.SerialMark = "串口1"; serialPort2 = new SerialPortHelper(); serialPort2.ConfigSerialPort = configCom1.GetConfigComData(); serialPort2.BindSerialPortDataReceivedProcessEvent(new SerialPortHelper.DelegateSerialPortDataReceivedProcessEvent(SerialPortDataReceivedProcess)); serialPort2.BindSerialPortErrorEvent(new SerialPortHelper.DelegateSerialPortErrorEvent(SerialPortErrorProcess)); serialPort2.SerialReceviedTimeInterval = 40; serialPort2.SerialWriteTimeInterval = 1; serialPort2.SerialReceviedLengthMax = 1024; serialPort2.SerialMark = "串口2"; }
private void ComComboBox_SelectedIndexChanged(object sender, EventArgs e) { var comboBox = (ComboBox)sender; // 需要关闭端口后设置 serialPort = SerialPortHelper.GetSerialPort(comboBox.Text); // 数据接收回调 SerialPortHelper.ParseReData = (byte[] data) => { Console.WriteLine("解析数据!"); controllerToRead.ParseDataToControllerItem(data); // 解析完成后,读取下一个控制器数据 // ReadControllerData(serialPort, ++controllerToReadIndex); }; // 同步时间 byte[] txData = { 0x00, 0x00, 0x10, 0x01, 0x07, (byte)(DateTime.Now.Year - 2000), (byte)DateTime.Now.Month, (byte)DateTime.Now.Day, (byte)DateTime.Now.DayOfWeek, (byte)DateTime.Now.Hour, (byte)DateTime.Now.Minute, (byte)DateTime.Now.Second }; SerialPortHelper.SendData(serialPort, txData); Thread.Sleep(100); // 读取第一个控制器信息 ReadControllerData(serialPort, 0); }
/// <summary> /// 开关 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PowerButton_Click(object sender, EventArgs e) { Button powerBtn = (Button)sender; int groupId = 0; int addressId = 0; HelperTool.GetControllerAddressId(powerBtn.Tag.ToString(), out groupId, out addressId); currentControllerItem = GetCurrentController(groupId, addressId); if (currentControllerItem == null) { return; } byte powerByte = 0x01; if (currentControllerItem.PowerState) { powerByte = 0x00; powerBtn.BackgroundImage = Properties.Resources.powerOff; } else { powerBtn.BackgroundImage = Properties.Resources.powerOn; } currentControllerItem.PowerState = !currentControllerItem.PowerState; byte[] txData = { (byte)currentControllerItem.GroupId, (byte)currentControllerItem.AddressId, 0x10, 0x10, 0x01, powerByte }; SerialPortHelper.SendData(serialPort, txData); }
private void SelectPort_SelectedIndexChanged(object sender, EventArgs e) { var prop = SerialPortHelper.GetComPortProperties(((COMPortItem)SelectPort.SelectedItem).Name); var result = (SerialPortHelper.Baud)prop.dwSettableBaud; var tmp = Enum.GetValues((typeof(SerialPortHelper.Baud))); var selectedItem = SelectBaudRate.SelectedItem; SelectBaudRate.Items.Clear(); var listBaud = new List <object>(); foreach (Enum br in tmp) { var item = GetEnumDescription(br); try { listBaud.Add(int.Parse(item)); } catch (FormatException) { continue; } } SelectBaudRate.Items.AddRange(listBaud.OrderBy(o => o).ToArray()); if (listBaud.Contains(selectedItem)) { SelectBaudRate.SelectedItem = selectedItem; } else { SelectBaudRate.SelectedItem = SelectBaudRate.Items[0]; } }
static void Main(string[] args) { try { string portName = SerialPortHelper.FindProlificPortName(); using (SSC32Board board = new SSC32Board(portName)) { Servos servos = new Servos(); servos.ConfigureFromFile("ConfigSSC32.cfg"); Servo baseServo = servos.BaseServo; System.Console.WriteLine(baseServo); baseServo.Move(-30, 100, board); baseServo.Move(30, 100, board); } } catch (Exception ex) { System.Console.WriteLine(ex.ToString()); } finally { System.Console.WriteLine("Hit <Enter> to end."); System.Console.ReadLine(); } }
public ClickTorque(SerialPortHelper serialPort, S7Help s7Help, Main wnd) { this.serialPort = serialPort; this.wnd = wnd; name = "咔嗒扳手"; this.s7Help = s7Help; hybirdLock = new HslCommunication.Core.SimpleHybirdLock(); }
private void EnsureSSC32BoardIsInitialized() { if (m_SSC32Board == null) { string portName = SerialPortHelper.FindProlificPortName(); m_SSC32Board = new SSC32Board(portName); } }
public void SendMessage_NoExceptionThrown() { string portName = "COM3"; string message = "Test Running"; SignalType signalType = SignalType.String; Assert.DoesNotThrow(() => SerialPortHelper.SendMessage(portName, message, signalType)); }
private void RefreshSystemSerialPortList() { CmbComPort.ItemsSource = SerialPortHelper.GetSerialPorts(); if (CmbComPort.Items.Count > 0) { CmbComPort.SelectedIndex = 0; } }
private void ReadControllerData(SerialPort serialPort, int controllerIndex) { if (controllerIndex < controllerItems.Count()) { controllerToRead = controllerItems[controllerToReadIndex]; SerialPortHelper.ReadAllData(serialPort, controllerToRead.GroupId, controllerToRead.AddressId); } }
bool CheckSerialPort() { if (SerialPortHelper.GetSerialPorts().Length == 0) { return(false); } return(true); }
/// <summary> /// 初始化 /// </summary> /// <param name="ConfigPath"></param> private void InitItems(string CommandConfigPath, string SerialConfigPath) { StreamReader Reader; try { Reader = new StreamReader(CommandConfigPath); } catch (Exception) { throw new Exception("指令配置文件不存在!"); } try { Command.CMD_ProjectPowerOn = StrToHex(Reader.ReadLine()); Command.CMD_ProjectPowerOff = StrToHex(Reader.ReadLine()); Command.CMD_FilmPowerOn = StrToHex(Reader.ReadLine()); Command.CMD_FilmPowerOff = StrToHex(Reader.ReadLine()); Command.CMD_FilmEnlarge = StrToHex(Reader.ReadLine()); Command.CMD_FilmMinnor = StrToHex(Reader.ReadLine()); Command.CMD_FilmZoomStop = StrToHex(Reader.ReadLine()); Command.CMD_FilmAutoFocus = StrToHex(Reader.ReadLine()); Command.CMD_FilmFroze = StrToHex(Reader.ReadLine()); Command.CMD_FilmUnFroze = StrToHex(Reader.ReadLine()); Command.CMD_FilmSaveFilm = StrToHex(Reader.ReadLine()); Command.CMD_FilmDownloadFile = StrToHex(Reader.ReadLine()); Command.CMD_FilmLightIncrease = StrToHex(Reader.ReadLine()); Command.CMD_FilmLightReduce = StrToHex(Reader.ReadLine()); Command.CMD_TableLightIncrease = StrToHex(Reader.ReadLine()); Command.CMD_TableLightReduce = StrToHex(Reader.ReadLine()); Command.CMD_TableLightClose = StrToHex(Reader.ReadLine()); Reader.Close(); } catch (Exception) { throw new Exception("配置文件错误!"); } try { Port = new SerialPortHelper(SerialConfigPath); } catch (Exception) { throw; } }
//试验动作线程 //Thread th_temp=null; #endregion #region 构造函数 public Main(Login wnd) { InitializeComponent(); serialPort = new InstrumentSerialPort(this);//仪器串口 //创建借还扳手窗口,并隐藏 borrowForm = new BorrowToolWnd(); borrowForm.Hide(); serialScanPort = new ScanSerialPort(this, borrowForm);//扫码枪串口 this.wnd = wnd; }
/// <summary> /// SerialPortHelper初始化 /// </summary> private void InitSerialPortHelper() { spb = new SerialPortHelper(); spb.ConfigSerialPort = cc.GetConfigComData(); spb.BindSerialPortDataReceivedProcessEvent(new SerialPortHelper.DelegateSerialPortDataReceivedProcessEvent(SerialPortDataReceivedProcess)); spb.BindSerialPortErrorEvent(new SerialPortHelper.DelegateSerialPortErrorEvent(SerialPortErrorProcess)); spb.SerialReceviedTimeInterval = 40; spb.SerialWriteTimeInterval = 1; spb.SerialReceviedLengthMax = 1024; }
private void RefreshSystemSerialPortList() { CmbComPort.ItemsSource = SerialPortHelper.GetSerialPorts(); if (CmbComPort.Items.Count > 0) { CmbComPort.SelectedIndex = 0; } LblPortStatus.Content = @"系统哥哥说,他就知道这几个家伙了。"; }
public DigitalTorque(SerialPortHelper serialPort, S7Help s7Help, Main wnd) { this.name = "数显扳手"; this.serialPort = serialPort; this.wnd = wnd; this.s7Help = s7Help; hybirdLock = new HslCommunication.Core.SimpleHybirdLock(); manualWriteValueForm = new ManualWriteValueForm(); manualWriteValueForm.Hide(); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); SerialPortHelper.GetData(); }
private void LoadParams() { CmbBoundRate.ItemsSource = SerialPortHelper.GetSerialPortBoundRate(); CmbDataBit.ItemsSource = SerialPortHelper.GetSerialPortDataBits(); CmbStopBit.ItemsSource = SerialPortHelper.GetSerialPortStopBits(); CmbParity.ItemsSource = SerialPortHelper.GetSerialPortParity(); CmbBoundRate.SelectedIndex = 0; CmbDataBit.SelectedIndex = 0; CmbStopBit.SelectedIndex = 0; CmbParity.SelectedIndex = 0; RefreshSystemSerialPortList(); }
public MainWindow() { InitializeComponent(); LbLoadedBinFile.ItemsSource = _loadedBinFiles; _messageTimer = new Timer { Interval = 10, Enabled = true }; LoadParams(); _portHelper = new SerialPortHelper(); _portDownloader = new SerialPortDownloader(_portHelper); }
private void RefreshButton_Click(object sender, EventArgs e) { // 同步时间 byte[] txData = { 0x00, 0x00, 0x10, 0x01, 0x07, (byte)(DateTime.Now.Year - 2000), (byte)DateTime.Now.Month, (byte)DateTime.Now.Day, (byte)DateTime.Now.DayOfWeek, (byte)DateTime.Now.Hour, (byte)DateTime.Now.Minute, (byte)DateTime.Now.Second }; SerialPortHelper.SendData(serialPort, txData); // RefreshSettingDisplay(); ReadSelectedComData(currentControllerItem.GroupId, currentControllerItem.AddressId); }
private void LoadParams() { CmbBoundRate.ItemsSource = SerialPortHelper.GetSerialPortBoundRate(); CmbDataBit.ItemsSource = SerialPortHelper.GetSerialPortDataBits(); CmbStopBit.ItemsSource = SerialPortHelper.GetSerialPortStopBits(); CmbParity.ItemsSource = SerialPortHelper.GetSerialPortParity(); CmbBoundRate.SelectedIndex = 9; CmbDataBit.SelectedIndex = 3; CmbStopBit.SelectedIndex = 0; CmbParity.SelectedIndex = 0; RefreshSystemSerialPortList(); _messageTimer.Elapsed += (sender, args) => Dispatcher.Invoke(() => LblMessage.Content = _messageBarMessage); _messageTimer.Start(); }
static void Main() { string portName = SerialPortHelper.FindProlificPortName(); using (SSC32Board board = new SSC32Board(portName)) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); MainForm mainForm = new MainForm(); mainForm.Initialize(board); Application.Run(mainForm); } }
public void SetHost(HomeGenieService hg, SchedulerItem item) { homegenie = hg; schedulerItem = item; Reset(); netHelper = new NetHelper(homegenie); serialPortHelper = new SerialPortHelper(); tcpClientHelper = new TcpClientHelper(); udpClientHelper = new UdpClientHelper(); mqttClientHelper = new MqttClientHelper(); knxClientHelper = new KnxClientHelper(); schedulerHelper = new SchedulerHelper(homegenie); programHelper = new ProgramHelperBase(homegenie); }
public RobotHandler(string ip, int port) { _ip = ip; _port = port; InitAngleKs(); InitSocket(ip, port); try { _serialPortHelper = new SerialPortHelper(ConfigHelper.GetInstance().ComPort, 9600); } catch (Exception e) { LogHelper.GetInstance().ShowMsg("Init SerialPort fail:" + e.Message); } }
/// <summary> /// 发送命令到设备 /// </summary> /// <param name="controllerItem"></param> private void SendSettingToDevice(ControllerItem controllerItem) { controllerItem.SortTimers(); // 起始地址 int startAddress = 0x20; List <byte> txData = new List <byte>() { (byte)controllerItem.GroupId, (byte)controllerItem.AddressId, 0x10, (byte)startAddress, 0x50 }; // 添加关断定时器数据 for (int i = 0; i < maxTimePointCount; i++) { if (i >= controllerItem.OffTimerCount) { txData.AddRange(new byte[] { 0xff, 0xff }); continue; } byte[] minutesBytes = BitConverter.GetBytes(controllerItem.OffTimersMinutes[i]); txData.AddRange(new byte[] { minutesBytes[0], minutesBytes[1] }); } // 添加打开定时器 for (int i = 0; i < maxTimePointCount; i++) { if (i >= controllerItem.OnTimerCount) { txData.AddRange(new byte[] { 0xff, 0xff, 0, 0, 0, 0, 0, 0 }); continue; } byte[] minutesBytes = BitConverter.GetBytes(controllerItem.OnTimersMinutes[i]); txData.AddRange(new byte[] { minutesBytes[0], minutesBytes[1] }); foreach (var item in controllerItem.OnTimersColorValues[i]) { txData.Add((byte)item); } } SerialPortHelper.SendData(serialPort, txData.ToArray()); }
/// <summary> /// 串口开关按钮事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSerialPortSwitch_Click(object sender, EventArgs e) { Button btn = (Button)sender; ConfigCom cc = (btn.Tag.ToString() == "1") ? configCom1 : configCom2; SerialPortHelper spb = (btn.Tag.ToString() == "1") ? serialPort1 : serialPort2; CheckBox chkTimer = (btn.Tag.ToString() == "1") ? chkSerialWriteLoop1 : chkSerialWriteLoop2; GroupBox grp = btn.Parent as GroupBox; if (btn.Text == "打开串口") { string strError; try { spb.OpenCom(cc.GetConfigComData(), out strError); } catch (Exception err) { strError = err.Message; } if (strError != "null") { MessageBox.Show(strError); } else { cc.GetDetectCom().Close(); Console.WriteLine("开启{0}端口成功。", cc.PortName); btn.Text = "关闭串口"; GroupBoxEnable(grp, false); } } else { spb.CloseCom(out string strError); if (strError != "null") { MessageBox.Show(strError); } else { cc.GetDetectCom().Open(); Console.WriteLine("关闭端口成功。"); btn.Text = "打开串口"; GroupBoxEnable(grp, true); chkTimer.Checked = false; } } }