private List <BX4KDynamicArea> GetAreas(byte carType)
        {
            int offset = 108;
            List <OutDoorLedArea> areas = _Areas.Where(item => item != null && item.CarType == carType).ToList();

            if (areas.Count > 0 && areas.Count >= 3) //3表示目前的屏只能显示三种卡类型的车位数
            {
                List <BX4KDynamicArea> items = new List <BX4KDynamicArea>();
                for (int i = 0; i < 3; i++)
                {
                    BX4KDynamicArea item = new BX4KDynamicArea()
                    {
                        X           = (short)(offset + (6 + 1) * i),
                        Y           = 0,
                        Width       = 6,
                        Height      = 16,
                        SingleLine  = false,
                        NewLine     = false,
                        FontCode    = 0x1,
                        DisplayMode = BX4KDisplayMode.Static,
                        StayTime    = 0xA,
                        AreaType    = 0x00,
                        Text        = string.Format(@"\FE000\C{0}{1}", areas[i].Vacant == 0 ? areas[i].FullColor : areas[i].VacantColor, (areas[i].Vacant > 999 ? 999 : areas[i].Vacant).ToString("D3")),
                    };
                    items.Add(item);
                }
                return(items);
            }
            else
            {
                return(null);
            }
        }
        private List <BX4KDynamicArea> GetBikeLedAreas()
        {
            int offset = 108;
            List <BX4KDynamicArea> areas = new List <BX4KDynamicArea>();
            BX4KDynamicArea        bikeA = new BX4KDynamicArea()
            {
                X           = (short)(offset + 0),
                Y           = 0,
                Width       = 48 / 8,
                Height      = 16,
                SingleLine  = false,
                NewLine     = true,
                FontCode    = 0x1,
                DisplayMode = BX4KDisplayMode.Static,
                StayTime    = 0xA,
                Text        = @"\FE000\C2" + BikeA.IntergerValue.ToString("D3")
            };

            areas.Add(bikeA);
            BX4KDynamicArea bikeB = new BX4KDynamicArea()
            {
                X           = (short)(offset + 56 / 8),
                Y           = 0,
                Width       = 48 / 8,
                Height      = 16,
                SingleLine  = false,
                NewLine     = true,
                FontCode    = 0x1,
                DisplayMode = BX4KDisplayMode.Static,
                StayTime    = 0xA,
                Text        = @"\FE000\C2" + BikeB.IntergerValue.ToString("D3")
            };

            areas.Add(bikeB);
            BX4KDynamicArea bikeC = new BX4KDynamicArea()
            {
                X           = (short)(offset + 112 / 8),
                Y           = 0,
                Width       = 48 / 8,
                Height      = 16,
                SingleLine  = false,
                NewLine     = true,
                FontCode    = 0x1,
                DisplayMode = BX4KDisplayMode.Static,
                StayTime    = 0xA,
                Text        = @"\FE000\C2" + BikeC.IntergerValue.ToString("D3")
            };

            areas.Add(bikeC);
            return(areas);
        }
        private List <BX4KDynamicArea> GetCarLedAreas()
        {
            int offset = 108;
            List <BX4KDynamicArea> areas = new List <BX4KDynamicArea>();
            BX4KDynamicArea        carA  = new BX4KDynamicArea()
            {
                X           = (short)(0 + offset),
                Y           = 0,
                Width       = 48 / 8,
                Height      = 16,
                SingleLine  = false,
                NewLine     = false,
                FontCode    = 0x1,
                DisplayMode = BX4KDisplayMode.Static,
                StayTime    = 0xA,
                Text        = @"\FE000\C2" + CarA.IntergerValue.ToString("D3")
            };

            areas.Add(carA);
            BX4KDynamicArea carB = new BX4KDynamicArea()
            {
                X           = (short)(56 / 8 + offset),
                Y           = 0,
                Width       = 48 / 8,
                Height      = 16,
                SingleLine  = false,
                NewLine     = false,
                FontCode    = 0x1,
                DisplayMode = BX4KDisplayMode.Static,
                StayTime    = 0xA,
                Text        = @"\FE000\C2" + CarB.IntergerValue.ToString("D3")
            };

            areas.Add(carB);
            BX4KDynamicArea carC = new BX4KDynamicArea()
            {
                X           = (short)(112 / 8 + offset),
                Y           = 0,
                Width       = 48 / 8,
                Height      = 16,
                SingleLine  = false,
                NewLine     = false,
                FontCode    = 0x1,
                DisplayMode = BX4KDisplayMode.Static,
                StayTime    = 0xA,
                Text        = @"\FE000\C2" + CarC.IntergerValue.ToString("D3")
            };

            areas.Add(carC);
            return(areas);
        }
示例#4
0
        private BX4KDynamicArea GetAreaFromInput()
        {
            BX4KDynamicArea area = new BX4KDynamicArea();

            area.X           = (short)(numX.Value / 8);
            area.Y           = (short)numY.Value;
            area.Width       = (short)(numWidth.Value / 8);
            area.Height      = (short)numHeight.Value;
            area.SingleLine  = chkSingleLine.Checked;
            area.NewLine     = chkNewLine.Checked;
            area.FontCode    = 0x1;
            area.DisplayMode = BX4KDisplayMode.Static;
            area.StayTime    = 0xA;
            area.Text        = txtContent.Text;
            return(area);
        }
示例#5
0
        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);
        }