灯光列表改为单独页面
跑马灯和灯带加入方向 加入对齐灯光时间 加入灯光新类型 拉烟ID之前是8改为11,到固件任然为50
This commit is contained in:
parent
62a7b8b028
commit
59b4669a7d
@ -672,15 +672,15 @@ namespace Plane.FormationCreator.Formation
|
|||||||
{
|
{
|
||||||
var copter = copters[j];
|
var copter = copters[j];
|
||||||
var fc = copter as FakeCopter;
|
var fc = copter as FakeCopter;
|
||||||
fc.SetProperties(
|
if (fc != null)
|
||||||
latitude: Tasks[0].SingleCopterInfos[j].TargetLat,
|
{
|
||||||
longitude: Tasks[0].SingleCopterInfos[j].TargetLng,
|
fc.SetProperties(
|
||||||
altitude:0
|
latitude: Tasks[0].SingleCopterInfos[j].TargetLat,
|
||||||
|
longitude: Tasks[0].SingleCopterInfos[j].TargetLng,
|
||||||
);
|
altitude: 0 );
|
||||||
//设置灯光为默认颜色
|
//设置灯光为默认颜色
|
||||||
fc.LEDColor = CopterManager.CopterDefaultColor;// "000000";
|
fc.LEDColor = CopterManager.CopterDefaultColor;// "000000";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
using GalaSoft.MvvmLight.Command;
|
using GalaSoft.MvvmLight;
|
||||||
|
using GalaSoft.MvvmLight.Command;
|
||||||
using Plane.CommunicationManagement;
|
using Plane.CommunicationManagement;
|
||||||
using Plane.Copters;
|
using Plane.Copters;
|
||||||
using Plane.Windows.Messages;
|
using Plane.Windows.Messages;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
|
||||||
namespace Plane.FormationCreator.Formation
|
namespace Plane.FormationCreator.Formation
|
||||||
{
|
{
|
||||||
@ -29,19 +32,24 @@ namespace Plane.FormationCreator.Formation
|
|||||||
{
|
{
|
||||||
LEDInfo LedInfo = new LEDInfo();
|
LEDInfo LedInfo = new LEDInfo();
|
||||||
LEDInfos.Add(LedInfo);
|
LEDInfos.Add(LedInfo);
|
||||||
LedInfo.RemoveEvent += new LEDInfo.RemoveEventHandler(LEDRemove);
|
LedInfo.RemoveEvent += new LEDInfo.RemoveEventHandler(LEDRemove);
|
||||||
|
LedInfo.PropertyChanged += (sender, e) =>{RefLEDSumTime();};
|
||||||
|
RefLEDSumTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddLEDInfo(LEDInfo LedInfo)
|
public void AddLEDInfo(LEDInfo LedInfo)
|
||||||
{
|
{
|
||||||
LEDInfos.Add(LedInfo);
|
LEDInfos.Add(LedInfo);
|
||||||
LedInfo.RemoveEvent += new LEDInfo.RemoveEventHandler(LEDRemove);
|
LedInfo.RemoveEvent += new LEDInfo.RemoveEventHandler(LEDRemove);
|
||||||
|
LedInfo.PropertyChanged += (sender, e) => { RefLEDSumTime(); };
|
||||||
|
RefLEDSumTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LEDRemove(object sender)
|
public void LEDRemove(object sender)
|
||||||
{
|
{
|
||||||
LEDInfo LedInfo = sender as LEDInfo;
|
LEDInfo LedInfo = sender as LEDInfo;
|
||||||
LEDInfos.Remove(LedInfo);
|
LEDInfos.Remove(LedInfo);
|
||||||
|
RefLEDSumTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -57,6 +65,7 @@ namespace Plane.FormationCreator.Formation
|
|||||||
return _AddLEDCommand ?? (_AddLEDCommand = new RelayCommand<double>(async =>
|
return _AddLEDCommand ?? (_AddLEDCommand = new RelayCommand<double>(async =>
|
||||||
{
|
{
|
||||||
AddLEDInfo();
|
AddLEDInfo();
|
||||||
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -85,15 +94,39 @@ namespace Plane.FormationCreator.Formation
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RefLEDSumTime()
|
||||||
|
{
|
||||||
|
float _ledSumTime = 0;
|
||||||
|
foreach (LEDInfo led in LEDInfos)
|
||||||
|
{
|
||||||
|
_ledSumTime += (float)led.Delay;
|
||||||
|
}
|
||||||
|
LEDSumTime = _ledSumTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//灯光总时长
|
||||||
|
private float _LEDSumTime = 0;
|
||||||
|
public float LEDSumTime
|
||||||
|
{
|
||||||
|
get { return _LEDSumTime; }
|
||||||
|
set { Set(nameof(LEDSumTime), ref _LEDSumTime, value); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool LEDTestRun = false;
|
bool LEDTestRun = false;
|
||||||
/*
|
/*
|
||||||
private string _TestLEDtxt = "测试";
|
private string _TestLEDtxt = "测试";
|
||||||
public string TestLEDtxt
|
public string TestLEDtxt
|
||||||
{
|
{
|
||||||
get { return _TestLEDtxt; }
|
get { return _TestLEDtxt; }
|
||||||
set { Set(nameof(TestLEDtxt), ref _TestLEDtxt, value); }
|
set { Set(nameof(TestLEDtxt), ref _TestLEDtxt, value); }
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
|
||||||
LEDMode 0 = "常亮"
|
LEDMode 0 = "常亮"
|
||||||
1="同步闪烁(单色)" />
|
1="同步闪烁(单色)" />
|
||||||
@ -130,7 +163,7 @@ namespace Plane.FormationCreator.Formation
|
|||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
LEDTestRun = false;
|
LEDTestRun = false;
|
||||||
_commModuleManager.LED_TaskAsync(99, 0, 0, "000000", this.Copter);
|
_commModuleManager.LED_TaskAsync(255, 0, 0, "000000", this.Copter);
|
||||||
}
|
}
|
||||||
|
|
||||||
}));
|
}));
|
||||||
@ -166,13 +199,22 @@ namespace Plane.FormationCreator.Formation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LEDInfo
|
public class LEDInfo :INotifyPropertyChanged
|
||||||
{
|
{
|
||||||
private double delay = 1; //灯光延时 单位:100ms (从当前任务开为0,延时几秒后设置LED)
|
private double delay = 1; //灯光延时 单位:100ms (从当前任务开为0,延时几秒后设置LED)
|
||||||
private int ledmode = 0; //灯光模式 0常亮 1闪烁 2随机闪烁(RGB无意义)
|
private int ledmode = 0; //灯光模式 0常亮 1闪烁 2随机闪烁(RGB无意义)
|
||||||
private float ledInterval = 0; //闪烁延时 单位:秒
|
private float ledInterval = 0; //闪烁延时 单位:秒
|
||||||
private int ledtimes = 0; //次数 (预留、暂取消其意义)
|
private int ledtimes = 0; //次数 (预留、暂取消其意义)
|
||||||
private string ledRGB = "FFFFFF"; //灯光颜色
|
private string ledRGB = "FFFFFF"; //灯光颜色
|
||||||
|
private SolidColorBrush _DrawRGB = new SolidColorBrush(Color.FromRgb(0xFF, 0xFF, 0xFF));
|
||||||
|
|
||||||
|
protected internal virtual void OnPropertyChanged(string propertyName)
|
||||||
|
{
|
||||||
|
if (PropertyChanged != null)
|
||||||
|
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
|
||||||
|
}
|
||||||
|
public event PropertyChangedEventHandler PropertyChanged;
|
||||||
|
|
||||||
|
|
||||||
public LEDInfo()
|
public LEDInfo()
|
||||||
{
|
{
|
||||||
@ -184,12 +226,12 @@ namespace Plane.FormationCreator.Formation
|
|||||||
delay = led.delay;
|
delay = led.delay;
|
||||||
ledmode = led.ledmode;
|
ledmode = led.ledmode;
|
||||||
ledInterval = led.ledInterval;
|
ledInterval = led.ledInterval;
|
||||||
ledRGB = led.ledRGB;
|
LEDRGB = led.ledRGB;
|
||||||
}
|
}
|
||||||
public double Delay
|
public double Delay
|
||||||
{
|
{
|
||||||
get { return delay; }
|
get { return delay; }
|
||||||
set { delay = value; }
|
set { delay = value; OnPropertyChanged("delay"); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public int LEDMode
|
public int LEDMode
|
||||||
@ -211,9 +253,29 @@ namespace Plane.FormationCreator.Formation
|
|||||||
public string LEDRGB
|
public string LEDRGB
|
||||||
{
|
{
|
||||||
get { return ledRGB; }
|
get { return ledRGB; }
|
||||||
set { ledRGB = value; }
|
set {
|
||||||
|
|
||||||
|
ledRGB = value;
|
||||||
|
DrawRGB.Color= (Color)ColorConverter.ConvertFromString("#" + ledRGB);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Newtonsoft.Json.JsonIgnore]
|
||||||
|
public SolidColorBrush DrawRGB
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _DrawRGB;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_DrawRGB = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public delegate void RemoveEventHandler(object sender);
|
public delegate void RemoveEventHandler(object sender);
|
||||||
public event RemoveEventHandler RemoveEvent;
|
public event RemoveEventHandler RemoveEvent;
|
||||||
private ICommand _RemoveLEDCommand;
|
private ICommand _RemoveLEDCommand;
|
||||||
|
@ -1514,7 +1514,7 @@ namespace Plane.FormationCreator.ViewModels
|
|||||||
Color color = (Color)ColorConverter.ConvertFromString("#" + ledInfo.LEDRGB);
|
Color color = (Color)ColorConverter.ConvertFromString("#" + ledInfo.LEDRGB);
|
||||||
int ledMode = ledInfo.LEDMode;
|
int ledMode = ledInfo.LEDMode;
|
||||||
//拉烟任务模式ID是50,需要改为50
|
//拉烟任务模式ID是50,需要改为50
|
||||||
if (ledMode == 8) ledMode = 50;
|
if (ledMode == 11) ledMode = 50;
|
||||||
IMission LEDMission = Mission.CreateLEDControlMission(
|
IMission LEDMission = Mission.CreateLEDControlMission(
|
||||||
(int)(ledInfo.Delay * 10),
|
(int)(ledInfo.Delay * 10),
|
||||||
ledMode,
|
ledMode,
|
||||||
|
@ -1680,14 +1680,29 @@ public ICommand VerticlAlignmentCommand
|
|||||||
|
|
||||||
#region 跑马灯参数
|
#region 跑马灯参数
|
||||||
|
|
||||||
private double _BeginTime = 10;
|
private double _BeginTime = 1;
|
||||||
public double BeginTime
|
public double BeginTime
|
||||||
{
|
{
|
||||||
get { return _BeginTime; }
|
get { return _BeginTime; }
|
||||||
set { Set(nameof(BeginTime), ref _BeginTime, value); }
|
set { Set(nameof(BeginTime), ref _BeginTime, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private double _EndTime = 11;
|
|
||||||
|
//灯带扫光方向,默认从左到右
|
||||||
|
private double _BeltDirection = 90;
|
||||||
|
public double BeltDirection
|
||||||
|
{
|
||||||
|
get { return _BeltDirection; }
|
||||||
|
set { Set(nameof(BeltDirection), ref _BeltDirection, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private double _EndTime = 3;
|
||||||
public double EndTime
|
public double EndTime
|
||||||
{
|
{
|
||||||
get { return _EndTime; }
|
get { return _EndTime; }
|
||||||
@ -1701,22 +1716,55 @@ public ICommand VerticlAlignmentCommand
|
|||||||
set { Set(nameof(AverageSum), ref _AverageSum, value); }
|
set { Set(nameof(AverageSum), ref _AverageSum, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private string _ChangeRGB = "FFFFFF";
|
private string _ChangeRGB = "FF0000";
|
||||||
public string ChangeRGB
|
public string ChangeRGB
|
||||||
{
|
{
|
||||||
get { return _ChangeRGB; }
|
get { return _ChangeRGB; }
|
||||||
set { Set(nameof(ChangeRGB), ref _ChangeRGB, value); }
|
set { Set(nameof(ChangeRGB), ref _ChangeRGB, value);
|
||||||
|
DrawChangeRGB.Color = (Color)ColorConverter.ConvertFromString("#" + value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private string _EndRGB = "";
|
private string _EndRGB = "0000FF";
|
||||||
public string EndRGB
|
public string EndRGB
|
||||||
{
|
{
|
||||||
get { return _EndRGB; }
|
get { return _EndRGB; }
|
||||||
set { Set(nameof(EndRGB), ref _EndRGB, value); }
|
set { Set(nameof(EndRGB), ref _EndRGB, value);
|
||||||
|
DrawEndRGB.Color = (Color)ColorConverter.ConvertFromString("#" + value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SolidColorBrush _DrawChangeRGB = new SolidColorBrush(Color.FromRgb(0xFF, 0x00, 0x00));
|
||||||
|
public SolidColorBrush DrawChangeRGB
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _DrawChangeRGB;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
Set(nameof(DrawChangeRGB), ref _DrawChangeRGB, value);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private SolidColorBrush _DrawEndRGB = new SolidColorBrush(Color.FromRgb(0x00, 0x00, 0xFF));
|
||||||
|
public SolidColorBrush DrawEndRGB
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _DrawEndRGB;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
Set(nameof(DrawEndRGB), ref _DrawEndRGB, value);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
//跑马灯--按照经纬度变换灯光
|
//灯带--按照经纬度变换灯光
|
||||||
private ICommand _SetHorseRaceLampCommand;
|
private ICommand _SetHorseRaceLampCommand;
|
||||||
public ICommand SetHorseRaceLampCommand
|
public ICommand SetHorseRaceLampCommand
|
||||||
{
|
{
|
||||||
@ -1724,10 +1772,18 @@ public ICommand VerticlAlignmentCommand
|
|||||||
{
|
{
|
||||||
return _SetHorseRaceLampCommand ?? (_SetHorseRaceLampCommand = new RelayCommand(async () =>
|
return _SetHorseRaceLampCommand ?? (_SetHorseRaceLampCommand = new RelayCommand(async () =>
|
||||||
{
|
{
|
||||||
|
float CopterDirection =90- (float)BeltDirection ;
|
||||||
|
|
||||||
if (_copterManager.SelectedCopters.Count() <= 0)
|
if (_copterManager.SelectedCopters.Count() <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
//旋转飞机矩阵
|
||||||
|
if (CopterDirection != 0)
|
||||||
|
{
|
||||||
|
LevelRotateCommand.Execute(CopterDirection);
|
||||||
|
await Task.Delay(100);
|
||||||
|
}
|
||||||
|
|
||||||
double minLat, maxLat;
|
double minLat, maxLat;
|
||||||
double minLng, maxLng;
|
double minLng, maxLng;
|
||||||
|
|
||||||
@ -1749,10 +1805,12 @@ public ICommand VerticlAlignmentCommand
|
|||||||
foreach (var copterInfo in selectCopterInfos)
|
foreach (var copterInfo in selectCopterInfos)
|
||||||
{
|
{
|
||||||
double interval = copterInfo.TargetLng - minLng;
|
double interval = copterInfo.TargetLng - minLng;
|
||||||
|
double leddelay = 0;
|
||||||
int time = (int)(interval / (averagelngCount / AverageSum));
|
int time = (int)(interval / (averagelngCount / AverageSum));
|
||||||
LEDInfo led = new LEDInfo();
|
LEDInfo led = new LEDInfo();
|
||||||
led.LEDMode = 0;
|
led.LEDMode = 0;
|
||||||
led.Delay = BeginTime + time * (EndTime - BeginTime) / AverageSum;
|
led.Delay = BeginTime + time * (EndTime - BeginTime) / AverageSum;
|
||||||
|
leddelay += led.Delay;
|
||||||
led.LEDRGB = ChangeRGB;
|
led.LEDRGB = ChangeRGB;
|
||||||
copterInfo.AddLEDInfo(led);
|
copterInfo.AddLEDInfo(led);
|
||||||
|
|
||||||
@ -1767,16 +1825,39 @@ public ICommand VerticlAlignmentCommand
|
|||||||
else
|
else
|
||||||
endLed.LEDRGB = EndRGB;
|
endLed.LEDRGB = EndRGB;
|
||||||
copterInfo.AddLEDInfo(endLed);
|
copterInfo.AddLEDInfo(endLed);
|
||||||
|
|
||||||
|
//为了每架飞机结束灯光时间一致,以便下次再做跑马灯之类的效果有个一致的起始时间,再增加一个
|
||||||
|
//改为专门的按钮功能=AlignmentTimeCommand
|
||||||
|
/*
|
||||||
|
leddelay += endLed.Delay;
|
||||||
|
LEDInfo endLed1 = new LEDInfo();
|
||||||
|
endLed1.LEDMode = 0;
|
||||||
|
endLed1.Delay = (EndTime - BeginTime)-leddelay;
|
||||||
|
if (EndRGB == "0")
|
||||||
|
endLed1.LEDRGB = copterInfo.LEDInfos[copterInfo.LEDInfos.Count - 2].LEDRGB;
|
||||||
|
else
|
||||||
|
endLed1.LEDRGB = EndRGB;
|
||||||
|
copterInfo.AddLEDInfo(endLed1);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await Task.Delay(100);
|
await Task.Delay(100);
|
||||||
|
|
||||||
|
|
||||||
|
//旋转飞机矩阵
|
||||||
|
if (CopterDirection != 0)
|
||||||
|
LevelRotateCommand.Execute(0-CopterDirection);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private double _StrokesTime = 10;
|
private double _StrokesTime = 1;
|
||||||
public double StrokesTime
|
public double StrokesTime
|
||||||
{
|
{
|
||||||
get { return _StrokesTime; }
|
get { return _StrokesTime; }
|
||||||
@ -1855,6 +1936,16 @@ public ICommand VerticlAlignmentCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private double _AlignmentTime = 10;
|
||||||
|
public double AlignmentTime
|
||||||
|
{
|
||||||
|
get { return _AlignmentTime; }
|
||||||
|
set { Set(nameof(AlignmentTime), ref _AlignmentTime, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#region 渐变灯参数
|
#region 渐变灯参数
|
||||||
@ -1869,15 +1960,165 @@ public ICommand VerticlAlignmentCommand
|
|||||||
public string RightRGB
|
public string RightRGB
|
||||||
{
|
{
|
||||||
get { return _RightRGB; }
|
get { return _RightRGB; }
|
||||||
set { Set(nameof(RightRGB), ref _RightRGB, value); }
|
set { Set(nameof(RightRGB), ref _RightRGB, value);
|
||||||
|
DrawRightRGB.Color = (Color)ColorConverter.ConvertFromString("#" + value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private string _LeftRGB = "FFFFFF";
|
private string _LeftRGB = "FFFFFF";
|
||||||
public string LeftRGB
|
public string LeftRGB
|
||||||
{
|
{
|
||||||
get { return _LeftRGB; }
|
get { return _LeftRGB; }
|
||||||
set { Set(nameof(LeftRGB), ref _LeftRGB, value); }
|
set { Set(nameof(LeftRGB), ref _LeftRGB, value);
|
||||||
|
DrawLeftRGB.Color = (Color)ColorConverter.ConvertFromString("#" + value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//渐变方向,默认从左到右
|
||||||
|
private double _GradualDirection = 90;
|
||||||
|
public double GradualDirection
|
||||||
|
{
|
||||||
|
get { return _GradualDirection; }
|
||||||
|
set { Set(nameof(GradualDirection), ref _GradualDirection, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private SolidColorBrush _DrawLeftRGB = new SolidColorBrush(Color.FromRgb(0xFF, 0xFF, 0xFF));
|
||||||
|
public SolidColorBrush DrawLeftRGB
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _DrawLeftRGB;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
Set(nameof(DrawLeftRGB), ref _DrawLeftRGB, value);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private SolidColorBrush _DrawRightRGB = new SolidColorBrush(Color.FromRgb(0xFF, 0xFF, 0xFF));
|
||||||
|
public SolidColorBrush DrawRightRGB
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _DrawRightRGB;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
Set(nameof(DrawRightRGB), ref _DrawRightRGB, value);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ICommand _QueryMAXTimeCommand;
|
||||||
|
public ICommand QueryMAXTimeCommand
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _QueryMAXTimeCommand ?? (_QueryMAXTimeCommand = new RelayCommand<int>(async =>
|
||||||
|
{
|
||||||
|
//所以选中飞行当前任务信息
|
||||||
|
var selectCopterInfos = _flightTaskManager.SelectedTask.SingleCopterInfos.FindAll(delegate (FlightTaskSingleCopterInfo p)
|
||||||
|
{
|
||||||
|
return _copterManager.SelectedCopters.Contains(p.Copter);
|
||||||
|
});
|
||||||
|
double maxtime = 0.0f;
|
||||||
|
string maxid="" ;
|
||||||
|
foreach (var copterInfo in selectCopterInfos)
|
||||||
|
{
|
||||||
|
// AlignmentTime
|
||||||
|
double leddelay = 0;
|
||||||
|
foreach (LEDInfo led in copterInfo.LEDInfos)
|
||||||
|
{
|
||||||
|
leddelay += led.Delay;
|
||||||
|
}
|
||||||
|
if (leddelay > maxtime)
|
||||||
|
{
|
||||||
|
maxtime = leddelay;
|
||||||
|
maxid = copterInfo.Copter.Id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Alert.Show($"ID={maxid}飞机的航点灯光时长为{maxtime}秒", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||||
|
|
||||||
|
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private ICommand _AlignmentTimeCommand;
|
||||||
|
public ICommand AlignmentTimeCommand
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _AlignmentTimeCommand ?? (_AlignmentTimeCommand = new RelayCommand<int>(async =>
|
||||||
|
{
|
||||||
|
//所以选中飞行当前任务信息
|
||||||
|
var selectCopterInfos = _flightTaskManager.SelectedTask.SingleCopterInfos.FindAll(delegate (FlightTaskSingleCopterInfo p)
|
||||||
|
{
|
||||||
|
return _copterManager.SelectedCopters.Contains(p.Copter);
|
||||||
|
});
|
||||||
|
|
||||||
|
foreach (var copterInfo in selectCopterInfos)
|
||||||
|
{
|
||||||
|
// AlignmentTime
|
||||||
|
double leddelay = 0;
|
||||||
|
foreach (LEDInfo led in copterInfo.LEDInfos)
|
||||||
|
{
|
||||||
|
leddelay += led.Delay;
|
||||||
|
}
|
||||||
|
if (leddelay > AlignmentTime)
|
||||||
|
{
|
||||||
|
Alert.Show($"{AlignmentTime}秒对齐时间不够,ID={copterInfo.Copter.Id}飞机的航点灯光时长为{leddelay}秒", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var copterInfo in selectCopterInfos)
|
||||||
|
{
|
||||||
|
|
||||||
|
double leddelay = 0;
|
||||||
|
foreach (LEDInfo led in copterInfo.LEDInfos)
|
||||||
|
{
|
||||||
|
leddelay += led.Delay;
|
||||||
|
}
|
||||||
|
if (leddelay<= AlignmentTime)
|
||||||
|
{
|
||||||
|
LEDInfo endLed = new LEDInfo();
|
||||||
|
endLed.LEDMode = 0;
|
||||||
|
endLed.Delay = AlignmentTime - leddelay;
|
||||||
|
endLed.LEDRGB = copterInfo.LEDInfos[copterInfo.LEDInfos.Count - 1].LEDRGB;
|
||||||
|
copterInfo.AddLEDInfo(endLed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
//渐变色
|
//渐变色
|
||||||
@ -1889,9 +2130,23 @@ public ICommand VerticlAlignmentCommand
|
|||||||
return _SetGradientRampCommand ?? (_SetGradientRampCommand = new RelayCommand(async () =>
|
return _SetGradientRampCommand ?? (_SetGradientRampCommand = new RelayCommand(async () =>
|
||||||
{
|
{
|
||||||
|
|
||||||
|
float CopterDirection = 90 - (float)GradualDirection;
|
||||||
|
|
||||||
if (_copterManager.SelectedCopters.Count() <= 0)
|
if (_copterManager.SelectedCopters.Count() <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
//旋转飞机矩阵
|
||||||
|
if (CopterDirection != 0)
|
||||||
|
{
|
||||||
|
LevelRotateCommand.Execute(CopterDirection);
|
||||||
|
await Task.Delay(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
double minLat, maxLat;
|
double minLat, maxLat;
|
||||||
double minLng, maxLng;
|
double minLng, maxLng;
|
||||||
|
|
||||||
@ -1936,6 +2191,10 @@ public ICommand VerticlAlignmentCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
await Task.Delay(100);
|
await Task.Delay(100);
|
||||||
|
//旋转飞机矩阵
|
||||||
|
if (CopterDirection != 0)
|
||||||
|
LevelRotateCommand.Execute(0 - CopterDirection);
|
||||||
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -214,6 +214,7 @@
|
|||||||
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left"
|
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left"
|
||||||
Text="高度: " />
|
Text="高度: " />
|
||||||
<TextBox Grid.Row="2"
|
<TextBox Grid.Row="2"
|
||||||
|
Height="24"
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
Margin="0,5,5,0"
|
Margin="0,5,5,0"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
@ -235,7 +236,7 @@
|
|||||||
|
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<CheckBox Content="返航点" ToolTip="勾选后航点仅高度有用,经纬度无效,无视原点自动飞回起飞点" Margin="0,2,0,0" IsChecked="{Binding IsLandWaypoint,UpdateSourceTrigger=PropertyChanged}" />
|
<CheckBox Content="返航点" ToolTip="勾选后航点仅高度有用,经纬度无效,无视原点自动飞回起飞点" Margin="0,5,0,0" IsChecked="{Binding IsLandWaypoint,UpdateSourceTrigger=PropertyChanged}" />
|
||||||
<Button Content="应用到所选" Margin="0,2,5,0" Command="{Binding SetIsLandCommand}" Grid.Column="1"/>
|
<Button Content="应用到所选" Margin="0,2,5,0" Command="{Binding SetIsLandCommand}" Grid.Column="1"/>
|
||||||
|
|
||||||
|
|
||||||
@ -253,7 +254,7 @@
|
|||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<CheckBox Content="改变速度" Margin="0,2"
|
<CheckBox Content="改变速度" Margin="0,3"
|
||||||
IsChecked="{Binding IsChangeSpeed, UpdateSourceTrigger=PropertyChanged}"/>
|
IsChecked="{Binding IsChangeSpeed, UpdateSourceTrigger=PropertyChanged}"/>
|
||||||
<StackPanel Margin="0,0" Grid.Column="1">
|
<StackPanel Margin="0,0" Grid.Column="1">
|
||||||
<TextBlock Text="水平" Margin="0,0,5,5" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
<TextBlock Text="水平" Margin="0,0,5,5" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
||||||
@ -303,75 +304,151 @@
|
|||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem Header="灯光设计">
|
<TabItem Header="灯光设计">
|
||||||
<StackPanel>
|
|
||||||
|
|
||||||
<StackPanel x:Name="lightDesign">
|
<StackPanel x:Name="lightDesign">
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,5,0,5" >
|
<StackPanel Orientation="Horizontal" Margin="0,5,0,5" >
|
||||||
<TextBlock Margin="5,7,0,0" Text="变换颜色"/>
|
<TextBlock Margin="5,7,0,0" Text="扫光颜色"/>
|
||||||
<TextBox Margin="5,5,40,3" Width="60" Text="{Binding ChangeRGB}"
|
<TextBox Height="25" Margin="5,3,5,3" Width="55" Text="{Binding ChangeRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
MouseDoubleClick="TextBox_MouseDoubleClick"/>
|
ToolTip="灯带或跑马灯扫过的颜色"
|
||||||
<TextBlock Margin="5,7,0,0" Text="起始时间"/>
|
Foreground="Black"
|
||||||
<TextBox Margin="5,5,0,3" Width="30" Text="{Binding BeginTime}"/>
|
Background="{Binding DrawChangeRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
<TextBlock Margin="5,7,0,0" Text="结束时间"/>
|
MouseDoubleClick="TextBox_MouseDoubleClick"/>
|
||||||
<TextBox Margin="5,5,0,3" Width="30" Text="{Binding EndTime}"/>
|
<TextBlock Margin="0,7,0,0" Text="方向"/>
|
||||||
<TextBlock Margin="5,7,0,0" Text="分层"/>
|
<TextBox Height="25"
|
||||||
<TextBox Margin="5,5,0,3" Width="30" Text="{Binding AverageSum}"/>
|
ToolTip="默认90度表示从左到右扫过,0度从下向上扫"
|
||||||
<Button Width="80" Content="灯带" Margin="10,0,0,0"
|
Margin="5,3,0,3" Width="30" Text="{Binding BeltDirection}"/>
|
||||||
|
|
||||||
|
<TextBlock Margin="5,7,0,0" Text="起始时间"/>
|
||||||
|
<TextBox Height="25"
|
||||||
|
ToolTip="扫光开始时间"
|
||||||
|
Margin="5,3,0,3" Width="30" Text="{Binding BeginTime}"/>
|
||||||
|
<TextBlock Margin="5,7,0,0" Text="结束时间"/>
|
||||||
|
<TextBox Height="25" Margin="5,3,0,3" Width="30" Text="{Binding EndTime}"
|
||||||
|
ToolTip="扫光完成时间" />
|
||||||
|
<TextBlock Margin="5,7,0,0" Text="分段"/>
|
||||||
|
<TextBox Height="25" Margin="5,3,0,3" Width="30" Text="{Binding AverageSum}"
|
||||||
|
ToolTip="图案分成几段扫过,段数越多灯带越窄,同样时间扫得越快" />
|
||||||
|
<Button Width="78" Content="灯带" Margin="10,0,0,0"
|
||||||
|
ToolTip="选择的飞机用一个光带扫过"
|
||||||
Command="{Binding SetHorseRaceLampCommand}" HorizontalAlignment="Right"/>
|
Command="{Binding SetHorseRaceLampCommand}" HorizontalAlignment="Right"/>
|
||||||
|
|
||||||
</StackPanel>
|
|
||||||
<Grid >
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,2,0,0">
|
|
||||||
<TextBlock Margin="5,7,0,0" Text="结束颜色"/>
|
|
||||||
<TextBox Margin="5,5,40,3" Width="60" Text="{Binding EndRGB}" ToolTip="设置为0,表示变换后回到原色"
|
|
||||||
MouseDoubleClick="TextBox_MouseDoubleClick"/>
|
|
||||||
<TextBlock Margin="5,7,0,0" Text="起始时间"/>
|
|
||||||
<TextBox Margin="5,5,0,3" Width="30" Text="{Binding StrokesTime}"/>
|
|
||||||
<TextBlock Margin="5,7,0,0" Text="频率"/>
|
|
||||||
<TextBox Margin="5,5,0,3" Width="30" Text="{Binding IntervalTime}"/>
|
|
||||||
<TextBlock Margin="5,7,0,0" Text="变换数量"/>
|
|
||||||
<TextBox Margin="5,5,0,3" Width="30" Text="{Binding SingleNum}"/>
|
|
||||||
|
|
||||||
<Button Width="80" Content="跑马灯" Margin="10,0,0,0"
|
|
||||||
Command="{Binding SetStrokesLampCommamd}" HorizontalAlignment="Right"/>
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
<Separator Margin="5,5,5,5" />
|
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<TextBlock Margin="5,7,0,0" Text="时间"/>
|
|
||||||
<TextBox Margin="5,5,0,3" Width="30" Text="{Binding GradientRampTime}"/>
|
|
||||||
<TextBlock Margin="5,7,0,0" Text="起始色"/>
|
|
||||||
<TextBox Margin="5,5,0,3" Width="60" Text="{Binding LeftRGB}"
|
|
||||||
MouseDoubleClick="TextBox_MouseDoubleClick"/>
|
|
||||||
<TextBlock Margin="5,7,0,0" Text="结束色"/>
|
|
||||||
<TextBox Margin="5,5,0,3" Width="60" Text="{Binding RightRGB}"
|
|
||||||
MouseDoubleClick="TextBox_MouseDoubleClick"/>
|
|
||||||
<Button Margin="10,5,0,3" Width="120" Content="设置渐变灯"
|
|
||||||
Command="{Binding SetGradientRampCommand}" />
|
|
||||||
</StackPanel>
|
|
||||||
<Separator Margin="5,5,5,5" />
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
<Grid >
|
||||||
|
<StackPanel Orientation="Horizontal" Margin="0,2,0,0">
|
||||||
|
<TextBlock Margin="5,7,0,0" Text="结束颜色"/>
|
||||||
|
<TextBox Height="25" Margin="5,3,40,3" Width="55" Text="{Binding EndRGB, UpdateSourceTrigger=PropertyChanged}" ToolTip="设置为0表示扫过后回到原色"
|
||||||
|
Foreground="Black"
|
||||||
|
Background="{Binding DrawEndRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
|
||||||
|
MouseDoubleClick="TextBox_MouseDoubleClick"/>
|
||||||
|
<TextBlock Margin="29,7,0,0" Text="起始时间"/>
|
||||||
|
<TextBox Height="25" Margin="5,3,0,3" Width="30" Text="{Binding StrokesTime}"
|
||||||
|
ToolTip="跑马灯开始时间" />
|
||||||
|
|
||||||
|
<TextBlock Margin="5,7,0,0" Text="扫光数量"/>
|
||||||
|
<TextBox Height="25" Margin="5,3,0,3" Width="30" Text="{Binding SingleNum}"
|
||||||
|
ToolTip="一次扫光改变颜色的数量" />
|
||||||
|
<TextBlock Margin="5,7,0,0" Text="间隔"/>
|
||||||
|
<TextBox Height="25" Margin="5,3,0,3" Width="30" Text="{Binding IntervalTime}"
|
||||||
|
ToolTip="下一个扫光的间隔(秒)" />
|
||||||
|
<Button Width="78" Content="跑马灯" Margin="10,0,0,0"
|
||||||
|
Command="{Binding SetStrokesLampCommamd}" HorizontalAlignment="Right"
|
||||||
|
ToolTip="根据航点选择的顺序改变为扫光的颜色,经过扫光的航点变为结束颜色"
|
||||||
|
/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
<Separator Margin="5,5,5,5" />
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock Margin="5,7,3,0" Text="时间"/>
|
||||||
|
<TextBox Height="25" Margin="5,2,3,3" Width="30" Text="{Binding GradientRampTime}"
|
||||||
|
ToolTip="开始时间" />
|
||||||
|
<TextBlock Margin="5,7,3,0" Text="方向"/>
|
||||||
|
<TextBox Height="25" Margin="5,2,5,3" Width="30" Text="{Binding GradualDirection}"
|
||||||
|
ToolTip="默认90度表示从左到右渐变,0度从下向上渐变" />
|
||||||
|
<TextBlock Margin="5,7,3,0" Text="起始颜色"/>
|
||||||
|
<TextBox Height="25" Margin="5,2,3,3" Width="55" Text="{Binding LeftRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
Foreground="Black"
|
||||||
|
ToolTip="渐变起始颜色"
|
||||||
|
Background="{Binding DrawLeftRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
|
||||||
|
MouseDoubleClick="TextBox_MouseDoubleClick"/>
|
||||||
|
<TextBlock Margin="5,7,3,0" Text="结束颜色"/>
|
||||||
|
<TextBox Height="25" Margin="5,2,7,3" Width="55" Text="{Binding RightRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
Foreground="Black"
|
||||||
|
ToolTip="渐变结束颜色"
|
||||||
|
Background="{Binding DrawRightRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
|
||||||
|
MouseDoubleClick="TextBox_MouseDoubleClick"/>
|
||||||
|
<Button Margin="42,0,0,3" Width="78" Content="渐变灯"
|
||||||
|
ToolTip="自动生成渐变过度颜色"
|
||||||
|
Command="{Binding SetGradientRampCommand}" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<Separator Margin="5,5,5,5" />
|
||||||
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,12,0" >
|
||||||
|
<Button Margin="5,0,0,3" Content="最长时间" Width="90"
|
||||||
|
ToolTip="查询所有选择飞机最长灯光时间"
|
||||||
|
Command="{Binding QueryMAXTimeCommand}" />
|
||||||
|
<TextBlock Margin="5,7,3,0" Text="时间对齐"/>
|
||||||
|
<TextBox Height="25" Margin="5,2,3,3" Width="30" Text="{Binding AlignmentTime}"
|
||||||
|
ToolTip="对齐时间(秒)" />
|
||||||
|
<Button Margin="5,0,0,3" Content="对齐" Width="78"
|
||||||
|
ToolTip="所有飞机灯光时间对齐到指定秒数,便于做第二个灯带或跑马灯"
|
||||||
|
Command="{Binding AlignmentTimeCommand}" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Separator Margin="5,5,5,5" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<TabItem Header="灯光列表">
|
||||||
|
<StackPanel>
|
||||||
|
|
||||||
|
|
||||||
<StackPanel DataContext="{Binding FlightTaskManager.SelectedTask.ModifyingSingleCopterInfo}">
|
<StackPanel DataContext="{Binding FlightTaskManager.SelectedTask.ModifyingSingleCopterInfo}">
|
||||||
<Grid >
|
<Grid >
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="33*"/>
|
<ColumnDefinition Width="40*"/>
|
||||||
<ColumnDefinition Width="89*"/>
|
<ColumnDefinition Width="61*"/>
|
||||||
<ColumnDefinition Width="61*"/>
|
<ColumnDefinition Width="61*"/>
|
||||||
<ColumnDefinition Width="61*"/>
|
<ColumnDefinition Width="61*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<TextBlock Text="灯光控制" Margin="5,7,5,2" VerticalAlignment="Center" Height="15"/>
|
<StackPanel Orientation="Horizontal" Margin="0,0,0,0" >
|
||||||
<Grid Grid.Column="1" Grid.ColumnSpan="3" VerticalAlignment="Center" Height="34">
|
<TextBlock Text="总时长:" Margin="5,7,2,2" VerticalAlignment="Center" Height="15"/>
|
||||||
|
<TextBlock Text="{Binding LEDSumTime}" Margin="0,7,2,2" VerticalAlignment="Center" Height="15"/>
|
||||||
|
<TextBlock Text="秒" Margin="0,7,5,2" VerticalAlignment="Center" Height="15"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<Grid Grid.Column="1" Grid.ColumnSpan="3" VerticalAlignment="Center" Height="34">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Button Content="应用到全部" VerticalAlignment="Center"
|
<Button Content="应用全部" VerticalAlignment="Center"
|
||||||
Margin="0,5,5,0"
|
Margin="0,5,5,0"
|
||||||
Command="{Binding SetAllCopterLEDCommand}" />
|
Command="{Binding SetAllCopterLEDCommand}" />
|
||||||
<Button Content="应用到所选" VerticalAlignment="Center"
|
<Button Content="应用所选" VerticalAlignment="Center"
|
||||||
Margin="0,5,5,0"
|
Margin="0,5,5,0"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Command="{Binding SetSelectedCopterLEDCommand}" />
|
Command="{Binding SetSelectedCopterLEDCommand}" />
|
||||||
@ -396,8 +473,8 @@
|
|||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.ColumnSpan="2"
|
Grid.ColumnSpan="2"
|
||||||
MinHeight="100"
|
MinHeight="100"
|
||||||
Height="206"
|
Height="346"
|
||||||
MaxHeight="280"
|
MaxHeight="400"
|
||||||
ScrollViewer.VerticalScrollBarVisibility="Visible"
|
ScrollViewer.VerticalScrollBarVisibility="Visible"
|
||||||
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
|
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
|
||||||
ItemsSource="{Binding Path= LEDInfos}">
|
ItemsSource="{Binding Path= LEDInfos}">
|
||||||
@ -417,7 +494,7 @@
|
|||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<StackPanel Margin="0,5,0,0" Orientation="Horizontal" >
|
<StackPanel Margin="0,5,0,0" Orientation="Horizontal" >
|
||||||
<TextBlock Text="类型" Margin="0,0,0,0" VerticalAlignment="Center" ></TextBlock>
|
<TextBlock Text="类型" Margin="0,0,0,0" VerticalAlignment="Center" ></TextBlock>
|
||||||
<ComboBox MinWidth="125" Width="110" Margin="5,0,0,0" Foreground="White" VerticalContentAlignment="Center"
|
<ComboBox Height="25" MinWidth="125" Width="110" Margin="5,0,0,0" Foreground="White" VerticalContentAlignment="Center"
|
||||||
SelectedIndex="{Binding Path=LEDMode}">
|
SelectedIndex="{Binding Path=LEDMode}">
|
||||||
<ComboBox.ItemContainerStyle>
|
<ComboBox.ItemContainerStyle>
|
||||||
<Style>
|
<Style>
|
||||||
@ -427,35 +504,35 @@
|
|||||||
<ComboBoxItem Content="常亮" />
|
<ComboBoxItem Content="常亮" />
|
||||||
<ComboBoxItem Content="同步闪烁(单色)" />
|
<ComboBoxItem Content="同步闪烁(单色)" />
|
||||||
<ComboBoxItem Content="异步闪烁(随机)" />
|
<ComboBoxItem Content="异步闪烁(随机)" />
|
||||||
<ComboBoxItem Content="渐亮" />
|
|
||||||
<ComboBoxItem Content="渐暗" />
|
|
||||||
<ComboBoxItem Content="呼吸灯" />
|
|
||||||
<ComboBoxItem Content="同步闪烁(随机)" />
|
<ComboBoxItem Content="同步闪烁(随机)" />
|
||||||
<ComboBoxItem Content="异步闪烁(单色)" />
|
<ComboBoxItem Content="异步闪烁(单色)" />
|
||||||
|
<ComboBoxItem Content="渐亮" />
|
||||||
|
<ComboBoxItem Content="渐暗" />
|
||||||
|
<ComboBoxItem Content="呼吸灯(单色)" />
|
||||||
|
<ComboBoxItem Content="呼吸灯(随机)" />
|
||||||
|
<ComboBoxItem Content="异步呼吸(单色)" />
|
||||||
|
<ComboBoxItem Content="异步呼吸(随机)" />
|
||||||
<ComboBoxItem Content="拉烟"/>
|
<ComboBoxItem Content="拉烟"/>
|
||||||
|
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<TextBlock Text="时间" Margin="12,0,0,0" VerticalAlignment="Center"></TextBlock>
|
<TextBlock Text="时间" Margin="12,0,0,0" VerticalAlignment="Center"></TextBlock>
|
||||||
<TextBox MinWidth="40" MaxWidth="45" Margin="5,0,0,0"
|
<TextBox Height="25" MinWidth="40" MaxWidth="45" Margin="5,0,0,0"
|
||||||
ToolTip="单位:秒,最小设置0.1秒"
|
ToolTip="单位:秒,最小设置0.1秒"
|
||||||
Text="{Binding Delay,UpdateSourceTrigger=PropertyChanged}" />
|
Text="{Binding Delay,UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
|
||||||
<TextBlock Text="间隔" Margin="12,0,0,0" VerticalAlignment="Center"></TextBlock>
|
<TextBlock Text="间隔" Margin="12,0,0,0" VerticalAlignment="Center"></TextBlock>
|
||||||
<TextBox MinWidth="35" MaxWidth="40" Margin="5,0,0,0"
|
<TextBox Height="25" MinWidth="35" MaxWidth="40" Margin="5,0,0,0"
|
||||||
ToolTip="单位:秒,最小设置0.1秒"
|
ToolTip="单位:秒,最小设置0.1秒"
|
||||||
Text="{Binding Path=LEDInterval, UpdateSourceTrigger=PropertyChanged}" />
|
Text="{Binding Path=LEDInterval, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
|
||||||
<TextBlock Text="颜色" Margin="12,0,0,0" VerticalAlignment="Center"></TextBlock>
|
<TextBlock Text="颜色" Margin="12,0,0,0" VerticalAlignment="Center"></TextBlock>
|
||||||
<TextBox Margin="5,0,0,0" MinWidth="50" Width="50"
|
<TextBox Height="25" Margin="5,0,0,0" MinWidth="50" Width="55"
|
||||||
Text="{Binding LEDRGB, UpdateSourceTrigger=PropertyChanged}"
|
Text="{Binding LEDRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
MouseDoubleClick="TextBox_MouseDoubleClick"
|
Foreground="Black"
|
||||||
|
Background="{Binding DrawRGB, UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
MouseDoubleClick="TextBox_MouseDoubleClick"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button Content="删除" Margin="12,0,0,0"
|
<Button Content="删除" Margin="12,0,0,0"
|
||||||
Command="{Binding RemoveLEDCommand}"/>
|
Command="{Binding RemoveLEDCommand}"/>
|
||||||
|
|
||||||
|
@ -83,6 +83,7 @@ namespace Plane.FormationCreator.Views
|
|||||||
(sender as TextBox).Text = String.Format("{0:X2}", colorDialog.Color.R) +
|
(sender as TextBox).Text = String.Format("{0:X2}", colorDialog.Color.R) +
|
||||||
String.Format("{0:X2}", colorDialog.Color.G) +
|
String.Format("{0:X2}", colorDialog.Color.G) +
|
||||||
String.Format("{0:X2}", colorDialog.Color.B);
|
String.Format("{0:X2}", colorDialog.Color.B);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user