private void btnShowOnLed_Click(object sender, EventArgs e) { if (comport.ComPort > 0) { if (_bx4kController != null) { _bx4kController.Close(); } int baud = comBaud.SelectedIndex == 0 ? 9600 : 57600; _bx4kController = new BX4KLEDControler(comport.ComPort, baud); if (!_bx4kController.Open()) { MessageBox.Show("串口打开失败"); return; } if (txtAddress1.IntergerValue > 0) { List <BX4KDynamicArea> areas = GetCarLedAreas(); _bx4kController.DynamicDisplay((short)txtAddress1.IntergerValue, 0x51, true, areas); System.Threading.Thread.Sleep(100); } if (txtAddress2.IntergerValue > 0) { List <BX4KDynamicArea> areas = GetBikeLedAreas(); _bx4kController.DynamicDisplay((short)txtAddress2.IntergerValue, 0x51, true, areas); } } }
/// <summary> /// 在所有户外屏上显示车位信息 /// </summary> public void ShowLed() { //这里使用新的OutDoorLed集合是因为OutDoorLeds在发送数据过程中有可能被修改,导致foreach错误 List <OutDoorLed> leds = new List <OutDoorLed>(); leds.AddRange(OutDoorLeds); //这个方法采用每次都打开和关闭串口,则如果两个屏串口一样时也可以依次更新。 //如果采用打开串口后不关闭,则下一个屏属于同一个串口的就会打开此串口失败,导致不能更新屏。 foreach (OutDoorLed led in leds) { BX4KLEDControler ledController = GetAController(led.Commport, led.Baud); try { ledController.Open(); List <BX4KDynamicArea> areas = GetAreas(0); if (areas != null && areas.Count > 0) { ledController.DynamicDisplay((short)led.CarLedAddress, 0x51, true, areas); if (AppSettings.CurrentSetting.Debug) { Ralid.GeneralLibrary.LOG.FileLog.Log("户外屏", string.Format("发屏更新指令给小车屏 地址{0} 车位{1} {2} {3}", led.CarLedAddress, areas[0].Text, areas[1].Text, areas[2].Text)); } Thread.Sleep(2000); } areas = GetAreas(1); if (areas != null && areas.Count > 0) { ledController.DynamicDisplay((short)led.MotorLedAddress, 0x51, true, areas); if (AppSettings.CurrentSetting.Debug) { Ralid.GeneralLibrary.LOG.FileLog.Log("户外屏", string.Format("发屏更新指令给电单车屏 地址{0} 车位{1} {2} {3}", led.MotorLedAddress, areas[0].Text, areas[1].Text, areas[2].Text)); } Thread.Sleep(2000); } } catch (Exception ex) { Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex); } } }
private void timer1_Tick(object sender, EventArgs e) { if (comport.ComPort > 0) { int baud = comBaud.SelectedIndex == 0 ? 9600 : 57600; if (_bx4kController != null) { _bx4kController.Close(); } _bx4kController = new BX4KLEDControler(comport.ComPort, baud); if (!_bx4kController.Open()) { MessageBox.Show("串口打开失败"); return; } for (int i = txtFrom.IntergerValue; i < txtTo.IntergerValue; i += 2) { List <BX4KDynamicArea> areas = GetCarLedAreas(); foreach (BX4KDynamicArea area in areas) { Random rd = new Random(); int vacant = rd.Next(100, 800); area.Text = @"\FE000\C3" + vacant.ToString("D3"); } _bx4kController.DynamicDisplay((short)i, 0x51, true, areas); System.Threading.Thread.Sleep(500); areas = GetBikeLedAreas(); foreach (BX4KDynamicArea area in areas) { Random rd = new Random(); int vacant = rd.Next(100, 800); area.Text = @"\FE000\C3" + vacant.ToString("D3"); } _bx4kController.DynamicDisplay((short)(i + 1), 0x51, true, areas); System.Threading.Thread.Sleep(500); } } }
private void btnApply_Click(object sender, EventArgs e) { if (_bx4kController != null) { _bx4kController.Close(); } if (!CheckInput()) { return; } _bx4kController = new BX4KLEDControler(comport.ComPort, 57600); if (!_bx4kController.Open()) { MessageBox.Show("串口打开失败"); return; } BX4KDynamicArea area = GetAreaFromInput(); List <BX4KDynamicArea> areas = new List <BX4KDynamicArea>(); areas.Add(area); _bx4kController.DynamicDisplay((short)txtAddress.IntergerValue, 0x51, true, areas); }