Commit 6135859d by wangonghui

设置字体颜色功能开发

parent 2ee39501
...@@ -67,17 +67,8 @@ namespace VIZ.Package.Module ...@@ -67,17 +67,8 @@ namespace VIZ.Package.Module
/// </summary> /// </summary>
private void Start() private void Start()
{ {
var pageModel = ApplicationDomainEx.CurrentPage as PageModel;
SendTakeCmd("CLOCK0 START");
ConnGroupModel group = ApplicationDomainEx.ConnGroups.FirstOrDefault(p => p.GroupID == pageModel.ConnGroupID);
foreach (var item in group.Items)
{
if (!item.IsEnabled || !item.IsConnected)
continue;
item.EndpointManager.Send("CLOCK0 START");
}
} }
...@@ -91,17 +82,8 @@ namespace VIZ.Package.Module ...@@ -91,17 +82,8 @@ namespace VIZ.Package.Module
/// </summary> /// </summary>
private void Stop() private void Stop()
{ {
var pageModel = ApplicationDomainEx.CurrentPage as PageModel;
ConnGroupModel group = ApplicationDomainEx.ConnGroups.FirstOrDefault(p => p.GroupID == pageModel.ConnGroupID); SendTakeCmd("CLOCK0 STOP");
foreach (var item in group.Items)
{
if (!item.IsEnabled || !item.IsConnected)
continue;
item.EndpointManager.Send("CLOCK0 STOP");
}
} }
...@@ -115,6 +97,16 @@ namespace VIZ.Package.Module ...@@ -115,6 +97,16 @@ namespace VIZ.Package.Module
/// </summary> /// </summary>
private void Cont() private void Cont()
{ {
SendTakeCmd("CLOCK0 CONT");
}
/// <summary>
/// Viz发送命令Take命令行
/// </summary>
/// <param name="cmd"></param>
private void SendTakeCmd(string cmd)
{
var pageModel = ApplicationDomainEx.CurrentPage as PageModel; var pageModel = ApplicationDomainEx.CurrentPage as PageModel;
ConnGroupModel group = ApplicationDomainEx.ConnGroups.FirstOrDefault(p => p.GroupID == pageModel.ConnGroupID); ConnGroupModel group = ApplicationDomainEx.ConnGroups.FirstOrDefault(p => p.GroupID == pageModel.ConnGroupID);
...@@ -124,7 +116,7 @@ namespace VIZ.Package.Module ...@@ -124,7 +116,7 @@ namespace VIZ.Package.Module
if (!item.IsEnabled || !item.IsConnected) if (!item.IsEnabled || !item.IsConnected)
continue; continue;
item.EndpointManager.Send("CLOCK0 CONT"); item.EndpointManager.Send(cmd);
} }
} }
/// <summary> /// <summary>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
mc:Ignorable="d" mc:Ignorable="d"
x:Name="colorEditControl" x:Name="colorEditControl"
d:DesignHeight="300" d:DesignWidth="380"> d:DesignHeight="300" d:DesignWidth="400">
<UserControl.Resources> <UserControl.Resources>
<dx:ColorToBrushConverter x:Key="ColorToBrushConverter" /> <dx:ColorToBrushConverter x:Key="ColorToBrushConverter" />
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</DataTemplate> </DataTemplate>
</UserControl.Resources> </UserControl.Resources>
<Grid> <Grid VerticalAlignment="Top">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="40"/> <RowDefinition Height="40"/>
<RowDefinition Height="40"/> <RowDefinition Height="40"/>
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<ColumnDefinition Width="85"/> <ColumnDefinition Width="85"/>
<ColumnDefinition Width="85"/>--> <ColumnDefinition Width="85"/>-->
<ColumnDefinition Width="340"/> <ColumnDefinition Width="340"/>
<ColumnDefinition Width="40"/> <ColumnDefinition Width="60"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<dxe:ButtonEdit ShowText="False" AllowDefaultButton="False" IsEnabled="{Binding BtnGroupEnable,Mode=TwoWay}"> <dxe:ButtonEdit ShowText="False" AllowDefaultButton="False" IsEnabled="{Binding BtnGroupEnable,Mode=TwoWay}">
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
</dxe:ButtonEdit> </dxe:ButtonEdit>
<CheckBox Content="E" Margin="10,0,0,0" <CheckBox Content="启用" Margin="10,0,0,0"
ToolTip="Title Safe" ToolTip="Title Safe"
IsChecked="{Binding Path=IsEnabledAll,Mode=TwoWay}" Grid.Column="4"> IsChecked="{Binding Path=IsEnabledAll,Mode=TwoWay}" Grid.Column="4">
</CheckBox> </CheckBox>
...@@ -124,7 +124,11 @@ ...@@ -124,7 +124,11 @@
<ColumnDefinition Width="80"/> <ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Shininess" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Grid.Column="0" Text="Shininess" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<dxe:TextEdit Grid.Column="1" Text="{Binding Path=Shininess,Mode=TwoWay}" HorizontalAlignment="Left" Height="30" Width="80" VerticalAlignment="Center"/> <dxe:TextEdit Grid.Column="1"
Text="{Binding Path=Shininess,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
HorizontalAlignment="Left" Height="30" Width="80"
Mask="[0-9]\d?|100" MaskType="RegEx" MaskUseAsDisplayFormat="True" ShowError="False"
VerticalAlignment="Center"/>
</Grid> </Grid>
</WrapPanel> </WrapPanel>
...@@ -139,8 +143,10 @@ ...@@ -139,8 +143,10 @@
<ColumnDefinition Width="80"/> <ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Alpha" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Grid.Column="0" Text="Alpha" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<dxe:TextEdit Grid.Column="1" Text="{Binding Path=Alpha,Mode=TwoWay}" HorizontalAlignment="Left" Width="80" Height="30" VerticalAlignment="Center"/> <dxe:TextEdit Grid.Column="1" Text="{Binding Path=Alpha,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Width="80" Height="30" ShowError="False"
VerticalAlignment="Center" Mask="[0-9]\d?|100" MaskType="RegEx"
MaskUseAsDisplayFormat="True"/>
</Grid> </Grid>
</WrapPanel> </WrapPanel>
......
...@@ -5,6 +5,7 @@ using System.Text; ...@@ -5,6 +5,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Media; using System.Windows.Media;
using VIZ.Framework.Core; using VIZ.Framework.Core;
using VIZ.Package.Domain;
namespace VIZ.Package.Module namespace VIZ.Package.Module
{ {
...@@ -12,7 +13,7 @@ namespace VIZ.Package.Module ...@@ -12,7 +13,7 @@ namespace VIZ.Package.Module
{ {
public override string GetFieldValue() public override string GetFieldValue()
{ {
throw new NotImplementedException(); return fieldValue;
} }
public ColorEditPanelModel() public ColorEditPanelModel()
...@@ -29,8 +30,6 @@ namespace VIZ.Package.Module ...@@ -29,8 +30,6 @@ namespace VIZ.Package.Module
this.DiffCommand = new VCommand(DiffCmd); this.DiffCommand = new VCommand(DiffCmd);
this.SpecCommand = new VCommand(SpecCmd); this.SpecCommand = new VCommand(SpecCmd);
this.EmisCommand = new VCommand(EmisCmd); this.EmisCommand = new VCommand(EmisCmd);
} }
/// <summary> /// <summary>
...@@ -64,24 +63,45 @@ namespace VIZ.Package.Module ...@@ -64,24 +63,45 @@ namespace VIZ.Package.Module
{ {
emissionColor = colorValue; emissionColor = colorValue;
} }
SendColorValue();
} }
else else
{ {
eColor = colorValue; eColor = colorValue;
SendIsEnbaleAll();
} }
} }
} }
/// <summary>
/// ambientColor 设置颜色缓存
/// </summary>
private Color ambientColor; private Color ambientColor;
/// <summary>
/// diffuseColor 设置颜色缓存
/// </summary>
private Color diffuseColor; private Color diffuseColor;
/// <summary>
/// specularColor 设置颜色缓存
/// </summary>
private Color specularColor; private Color specularColor;
/// <summary>
/// emissionColor 设置颜色缓存
/// </summary>
private Color emissionColor; private Color emissionColor;
/// <summary>
/// 按钮禁用后 设置Color颜色缓存
/// </summary>
private Color eColor; private Color eColor;
//设置字段后的字符串
private string fieldValue = "";
/// <summary> /// <summary>
/// 是否Ambient是否被禁用 /// 是否Ambient是否被禁用
/// </summary> /// </summary>
...@@ -164,7 +184,6 @@ namespace VIZ.Package.Module ...@@ -164,7 +184,6 @@ namespace VIZ.Package.Module
} }
/// <summary> /// <summary>
/// E 是否禁用 /// E 是否禁用
/// </summary> /// </summary>
...@@ -180,7 +199,7 @@ namespace VIZ.Package.Module ...@@ -180,7 +199,7 @@ namespace VIZ.Package.Module
isEnabledAll = value; isEnabledAll = value;
this.RaisePropertyChanged(nameof(IsEnabledAll)); this.RaisePropertyChanged(nameof(IsEnabledAll));
if(isEnabledAll) if (isEnabledAll)
{ {
BtnGroupEnable = true; BtnGroupEnable = true;
...@@ -204,11 +223,17 @@ namespace VIZ.Package.Module ...@@ -204,11 +223,17 @@ namespace VIZ.Package.Module
{ {
ColorValue = eColor; ColorValue = eColor;
} }
SendColorValue();
} }
else else
{ {
BtnGroupEnable = false; BtnGroupEnable = false;
ColorValue = eColor; ColorValue = eColor;
SendIsEnbaleAll();
} }
} }
} }
...@@ -243,6 +268,16 @@ namespace VIZ.Package.Module ...@@ -243,6 +268,16 @@ namespace VIZ.Package.Module
{ {
shininess = value; shininess = value;
this.RaisePropertyChanged(nameof(Shininess)); this.RaisePropertyChanged(nameof(Shininess));
if (isEnabledAll)
{
SendColorValue();
}
else
{
SendIsEnbaleAll();
}
} }
} }
...@@ -257,13 +292,105 @@ namespace VIZ.Package.Module ...@@ -257,13 +292,105 @@ namespace VIZ.Package.Module
set set
{ {
alpha = value; alpha = value;
this.RaisePropertyChanged(nameof(Alpha)); this.RaisePropertyChanged(nameof(Alpha));
if (isEnabledAll)
{
SendColorValue();
}
else
{
SendIsEnbaleAll();
}
} }
} }
/// <summary> /// <summary>
/// AmbCommand 方法 ///第一次保存以后,打开更新的值到对象里面
/// </summary>
/// <param name="controlObject"></param>
/// <param name="controlField"></param>
public override void Update(ControlObjectModel controlObject, ControlFieldNodeModel controlField)
{
base.Update(controlObject, controlField);
//this.IsSendToPreview = false;
//this.IsSendToPreview = true;
if(string.IsNullOrEmpty(this.ControlField.Value))
{
return;
}
else
{
string[] strValue = controlField.Value.Split(';');
Shininess = Convert.ToDouble(strValue[1]);
Alpha =Convert.ToDouble(strValue[2]);
if (strValue[0]=="0")
{
string[] colorValue = strValue[3].Split(',');
// Color 颜色 R,G,B,A
eColor = Color.FromArgb(Convert.ToByte(Convert.ToDouble(colorValue[3])*255), Convert.ToByte(Convert.ToDouble(colorValue[0])*255),
Convert.ToByte(Convert.ToDouble(colorValue[1])*255), Convert.ToByte(Convert.ToDouble(colorValue[2])*255));
ColorValue = eColor;
IsEnabledAll = false;
}
else
{
IsEnabledAll = true;
//Ambient 返回数组R,G,B,A
string[] strAmbient = strValue[3].Split(',');
ambientColor = Color.FromArgb(Convert.ToByte(Convert.ToDouble(strAmbient[3])*255), Convert.ToByte(Convert.ToDouble(strAmbient[0])*255),
Convert.ToByte(Convert.ToDouble(strAmbient[1])*255), Convert.ToByte(Convert.ToDouble(strAmbient[2])*255));
//Diffuse 返回数组R,G,B,A
string[] strDiffuse = strValue[4].Split(',');
diffuseColor = Color.FromArgb(Convert.ToByte(Convert.ToDouble(strDiffuse[3])*255), Convert.ToByte(Convert.ToDouble(strDiffuse[0])*255),
Convert.ToByte(Convert.ToDouble(strDiffuse[1])*255), Convert.ToByte(Convert.ToDouble(strDiffuse[2])*255));
//Specular 返回数组R,G,B,A
string[] strSpecular = strValue[5].Split(',');
specularColor= Color.FromArgb(Convert.ToByte(Convert.ToDouble(strSpecular[3])*255), Convert.ToByte(Convert.ToDouble(strSpecular[0])*255),
Convert.ToByte(Convert.ToDouble(strSpecular[1])*255), Convert.ToByte(Convert.ToDouble(strSpecular[2])*255));
//Emission 返回数组R,G,B,A
string[] strEmission = strValue[6].Split(',');
emissionColor = Color.FromArgb(Convert.ToByte(Convert.ToDouble(strEmission[3])*255), Convert.ToByte(Convert.ToDouble(strEmission[0])*255),
Convert.ToByte(Convert.ToDouble(strEmission[1])*255), Convert.ToByte(Convert.ToDouble(strEmission[2])*255));
if (IsEnabledA == false)
{
ColorValue = ambientColor;
}
else if (IsEnabledD == false)
{
ColorValue = diffuseColor;
}
else if (IsEnabledS == false)
{
ColorValue = specularColor;
}
else if (IsEnabledE == false)
{
ColorValue = emissionColor;
}
}
}
}
/// <summary>
/// 点击 AmbCommand 方法
/// </summary> /// </summary>
public VCommand AmbCommand { get; set; } public VCommand AmbCommand { get; set; }
...@@ -274,11 +401,89 @@ namespace VIZ.Package.Module ...@@ -274,11 +401,89 @@ namespace VIZ.Package.Module
IsEnabledD = true; IsEnabledD = true;
IsEnabledS = true; IsEnabledS = true;
IsEnabledE = true; IsEnabledE = true;
SendColorValue();
}
/// <summary>
/// 发送ColorValue值
/// </summary>
private void SendColorValue()
{
// 指的是Color.R的颜色,G的是Color.G的颜色,B的是Color.B的颜色,A的是指的Color.A的就是指的透明图
string amb = string.Format("{0},{1},{2},{3}", Convert.ToDouble((double)ambientColor.R/255).ToString(), Convert.ToDouble((double)ambientColor.G/255).ToString(),
Convert.ToDouble((double)ambientColor.B/255).ToString(), Convert.ToDouble((double) ambientColor.A/255).ToString());
// 指的是Color.R的颜色,G的是Color.G的颜色,B的是Color.B的颜色,A的是指的Color.A的就是指的透明图
string dff = string.Format("{0},{1},{2},{3}", Convert.ToDouble((double) diffuseColor.R/255).ToString(), Convert.ToDouble( (double)diffuseColor.G/255).ToString(),
Convert.ToDouble((double) diffuseColor.B/255).ToString(), Convert.ToDouble((double)diffuseColor.A/255).ToString());
// 指的是Color.R的颜色,G的是Color.G的颜色,B的是Color.B的颜色,A的是指的Color.A的就是指的透明图
string spec = string.Format("{0},{1},{2},{3}", Convert.ToDouble((double)specularColor.R/255).ToString(), Convert.ToDouble((double) specularColor.G/255).ToString(),
Convert.ToDouble((double) specularColor.B/255).ToString(), Convert.ToDouble((double) specularColor.A/255).ToString());
// 指的是Color.R的颜色,G的是Color.G的颜色,B的是Color.B的颜色,A的是指的Color.A的就是指的透明图
string emission = string.Format("{0},{1},{2},{3}", Convert.ToDouble((double) emissionColor.R/255).ToString(), Convert.ToDouble((double) emissionColor.G/255).ToString(),
Convert.ToDouble((double) emissionColor.B/255).ToString(), Convert.ToDouble((double) emissionColor.A/255).ToString());
//组装字符串说明 Enable;Shiness;Alpha;Ambient;Diffuse;specular;emission
fieldValue = string.Format("1;{0};{1};{2};{3};{4};{5}", Shininess, Alpha, amb, dff, spec, emission);
this.ControlField.Value = fieldValue;
// 没有预览连接
//if (ApplicationDomainEx.PreviewConn == null)
// return;
//// 没有控制对象或控制字段
//if (this.ControlObject == null || this.ControlField == null)
// return;
//this.VizCommandControlObjectService.SetControlObjectValue(
// ApplicationDomainEx.PreviewConn,
// ApplicationDomainEx.CurrentPage.GetVizScene(),
// this.ControlObject.TreeNodePath,
// this.ControlField.FieldIdentifier,
// this.ControlField.Value);
} }
/// <summary> /// <summary>
/// DiffCommand /// 禁用全部发送Color的值
/// </summary>
private void SendIsEnbaleAll()
{
//byte[] bytes = { eColor.R};
// double scr = BitConverter.ToDouble(bytes,1);
//Ambient 返回数组R,G,B,A
string ecolor = string.Format("{0},{1},{2},{3}", Convert.ToDouble((double)eColor.R/255).ToString(), Convert.ToDouble((double)eColor.G/255).ToString(),
Convert.ToDouble((double)eColor.B/255).ToString(),Convert.ToDouble((double)eColor.A/255).ToString());
//组装字符串说明 Enable;Shiness;Alpha;Color颜色
fieldValue = string.Format("0;{0};{1};{2}", Shininess, Alpha, ecolor);
this.ControlField.Value = fieldValue;
//// 没有预览连接
//if (ApplicationDomainEx.PreviewConn == null)
// return;
//// 没有控制对象或控制字段
//if (this.ControlObject == null || this.ControlField == null)
// return;
//this.VizCommandControlObjectService.SetControlObjectValue(
// ApplicationDomainEx.PreviewConn,
// ApplicationDomainEx.CurrentPage.GetVizScene(),
// this.ControlObject.TreeNodePath,
// this.ControlField.FieldIdentifier,
// this.ControlField.Value);
}
/// <summary>
/// 点击 DiffCommand
/// </summary> /// </summary>
public VCommand DiffCommand { get; set; } public VCommand DiffCommand { get; set; }
...@@ -288,10 +493,12 @@ namespace VIZ.Package.Module ...@@ -288,10 +493,12 @@ namespace VIZ.Package.Module
IsEnabledD = false; IsEnabledD = false;
IsEnabledS = true; IsEnabledS = true;
IsEnabledE = true; IsEnabledE = true;
SendColorValue();
} }
/// <summary> /// <summary>
/// SpecCommand 方法 /// 点击 SpecCommand 方法
/// </summary> /// </summary>
public VCommand SpecCommand { get; set; } public VCommand SpecCommand { get; set; }
...@@ -302,10 +509,13 @@ namespace VIZ.Package.Module ...@@ -302,10 +509,13 @@ namespace VIZ.Package.Module
IsEnabledD = true; IsEnabledD = true;
IsEnabledS = false; IsEnabledS = false;
IsEnabledE = true; IsEnabledE = true;
SendColorValue();
} }
/// <summary> /// <summary>
/// EmisCommand 方法 /// 点击 EmisCommand 方法
/// </summary> /// </summary>
public VCommand EmisCommand { get; set; } public VCommand EmisCommand { get; set; }
...@@ -315,29 +525,10 @@ namespace VIZ.Package.Module ...@@ -315,29 +525,10 @@ namespace VIZ.Package.Module
IsEnabledD = true; IsEnabledD = true;
IsEnabledS = true; IsEnabledS = true;
IsEnabledE = false; IsEnabledE = false;
}
///// <summary> SendColorValue();
///// EnableCommand 方法
///// </summary> }
//public VCommand EnableCommand { get; set; }
//private void EnableCmd()
//{
// if (IsEnabledAll)
// {
// BtnGroupEnable = false;
// IsEnabledAll = true;
// }
// else
// {
// BtnGroupEnable = true;
// IsEnabledAll = false;
// }
//}
} }
} }
...@@ -333,6 +333,16 @@ namespace VIZ.Package.Service ...@@ -333,6 +333,16 @@ namespace VIZ.Package.Service
conn.EndpointManager.Send(str); conn.EndpointManager.Send(str);
} }
/// <summary>
/// 设置时钟的发送命令字符串
/// </summary>
/// <param name="conn"></param>
/// <param name="scene"></param>
/// <param name="treeNodePath"></param>
/// <param name="fieldIdentifier"></param>
/// <param name="upValue"></param>
/// <param name="downValue"></param>
/// <param name="cmd"></param>
public void SetControlObjectClockCmd(ConnModel conn, VizScene scene, string treeNodePath, string fieldIdentifier, string upValue, string downValue, string cmd) public void SetControlObjectClockCmd(ConnModel conn, VizScene scene, string treeNodePath, string fieldIdentifier, string upValue, string downValue, string cmd)
{ {
string str = $"{scene}*TREE*{treeNodePath}*FUNCTION*ControlObject*in SET ON {fieldIdentifier} SET *TIME SET {upValue},*LIMIT SET {downValue},*DIRECTION SET {cmd}"; string str = $"{scene}*TREE*{treeNodePath}*FUNCTION*ControlObject*in SET ON {fieldIdentifier} SET *TIME SET {upValue},*LIMIT SET {downValue},*DIRECTION SET {cmd}";
...@@ -597,8 +607,8 @@ namespace VIZ.Package.Service ...@@ -597,8 +607,8 @@ namespace VIZ.Package.Service
if (type == "clock") if (type == "clock")
return VizControlFieldType.clock; return VizControlFieldType.clock;
//if (type == "color") if (type == "color")
// return VizControlFieldType.color; return VizControlFieldType.color;
return VizControlFieldType.none; return VizControlFieldType.none;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment