ServoConfigView.axaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <UserControl
  2. x:Class="Dynamicloadsimulationdevice.Views.ServoConfigView"
  3. xmlns="https://github.com/avaloniaui"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:ivm="using:IViewModel.Convert"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. xmlns:suki="https://github.com/kikipoulet/SukiUI"
  9. xmlns:vm="using:Dynamicloadsimulationdevice.ViewModels"
  10. d:DesignHeight="520"
  11. d:DesignWidth="780"
  12. x:DataType="vm:ServoConfigViewModel"
  13. DataContext="{Binding Source={x:Static vm:ServoConfigViewModel.Instance}}"
  14. mc:Ignorable="d">
  15. <Grid
  16. HorizontalAlignment="Center"
  17. VerticalAlignment="Top"
  18. ColumnDefinitions="auto,auto">
  19. <suki:GlassCard
  20. Width="420"
  21. Margin="10"
  22. HorizontalAlignment="Left"
  23. VerticalAlignment="Top">
  24. <suki:GroupBox Header="{DynamicResource DisplacementPI}">
  25. <Grid RowDefinitions="*,auto">
  26. <Grid RowDefinitions="auto,*">
  27. <Grid ColumnDefinitions="62,*,*">
  28. <TextBlock
  29. HorizontalAlignment="Center"
  30. VerticalAlignment="Center"
  31. Text="{DynamicResource ServoValveIndex}" />
  32. <TextBlock
  33. Grid.Column="1"
  34. HorizontalAlignment="Center"
  35. VerticalAlignment="Center"
  36. Text="{DynamicResource DisplacementP}" />
  37. <TextBlock
  38. Grid.Column="2"
  39. HorizontalAlignment="Center"
  40. VerticalAlignment="Center"
  41. Text="{DynamicResource DisplacementI}" />
  42. </Grid>
  43. <ScrollViewer Grid.Row="1">
  44. <ItemsControl ItemsSource="{Binding PI}">
  45. <ItemsControl.ItemTemplate>
  46. <DataTemplate>
  47. <Grid ColumnDefinitions="62,*,*">
  48. <TextBlock
  49. HorizontalAlignment="Center"
  50. VerticalAlignment="Center"
  51. Text="{Binding Index}" />
  52. <NumericUpDown
  53. Grid.Column="1"
  54. Margin="4"
  55. Increment="0.001"
  56. Maximum="{Binding Value.MaxP}"
  57. Minimum="{Binding Value.MinP}"
  58. Value="{Binding Value.P}" />
  59. <NumericUpDown
  60. Grid.Column="2"
  61. Margin="4"
  62. Increment="0.001"
  63. Maximum="{Binding Value.MaxI}"
  64. Minimum="{Binding Value.MinI}"
  65. Value="{Binding Value.I}" />
  66. </Grid>
  67. </DataTemplate>
  68. </ItemsControl.ItemTemplate>
  69. </ItemsControl>
  70. </ScrollViewer>
  71. </Grid>
  72. <StackPanel Grid.Row="1" Orientation="Horizontal">
  73. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
  74. <Run Text="{DynamicResource MaxDisplacementIntegral}" />
  75. <Run Text="(V)" />
  76. </TextBlock>
  77. <NumericUpDown
  78. Width="120"
  79. Margin="4,0,0,0"
  80. Increment="0.001"
  81. Maximum="{Binding MaxMaxIntegratedVoltage}"
  82. Minimum="{Binding MinMaxIntegratedVoltage}"
  83. Value="{Binding MaxIntegratedVoltage}" />
  84. </StackPanel>
  85. </Grid>
  86. </suki:GroupBox>
  87. </suki:GlassCard>
  88. <StackPanel
  89. Grid.Column="1"
  90. VerticalAlignment="Top"
  91. Orientation="Vertical">
  92. <suki:GlassCard
  93. Width="320"
  94. Margin="0,10,10,10"
  95. HorizontalAlignment="Left"
  96. VerticalAlignment="Top">
  97. <suki:GroupBox Header="{DynamicResource DisplacementFeedforwardGain}">
  98. <StackPanel VerticalAlignment="Top" Orientation="Horizontal">
  99. <TextBlock
  100. HorizontalAlignment="Center"
  101. VerticalAlignment="Center"
  102. Text="{DynamicResource DisplacementFeedforwardGain}" />
  103. <NumericUpDown
  104. Width="120"
  105. Margin="4,0,0,0"
  106. Increment="0.001"
  107. Maximum="{Binding MaxDisplacementFeedforwardGain}"
  108. Minimum="{Binding MinDisplacementFeedforwardGain}"
  109. Value="{Binding DisplacementFeedforwardGain}" />
  110. </StackPanel>
  111. </suki:GroupBox>
  112. </suki:GlassCard>
  113. <suki:GlassCard
  114. Width="320"
  115. Margin="0,0,10,10"
  116. HorizontalAlignment="Left"
  117. VerticalAlignment="Top">
  118. <suki:GroupBox Header="{DynamicResource BarrierPotential}">
  119. <StackPanel>
  120. <StackPanel VerticalAlignment="Top" Orientation="Horizontal">
  121. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
  122. <Run Text="{DynamicResource VerticalBarrierPotential}" />
  123. <Run Text="(V)" />
  124. </TextBlock>
  125. <NumericUpDown
  126. Width="120"
  127. Margin="4,0,0,0"
  128. Increment="0.001"
  129. Maximum="{Binding MaxVerticalBarrierPotential}"
  130. Minimum="{Binding MinVerticalBarrierPotential}"
  131. Value="{Binding VerticalBarrierPotential}" />
  132. </StackPanel>
  133. <StackPanel
  134. Margin="0,4,0,0"
  135. VerticalAlignment="Top"
  136. Orientation="Horizontal">
  137. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
  138. <Run Text="{DynamicResource HorizontalBarrierPotential}" />
  139. <Run Text="(V)" />
  140. </TextBlock>
  141. <NumericUpDown
  142. Width="120"
  143. Margin="4,0,0,0"
  144. Increment="0.001"
  145. Maximum="{Binding MaxHorizontalBarrierPotential}"
  146. Minimum="{Binding MinHorizontalBarrierPotential}"
  147. Value="{Binding HorizontalBarrierPotential}" />
  148. </StackPanel>
  149. </StackPanel>
  150. </suki:GroupBox>
  151. </suki:GlassCard>
  152. <suki:GlassCard
  153. Grid.Row="1"
  154. Grid.Column="1"
  155. Width="320"
  156. Margin="0,0,10,10"
  157. HorizontalAlignment="Left"
  158. VerticalAlignment="Top">
  159. <suki:GroupBox Header="{DynamicResource SecurityConfig}">
  160. <StackPanel>
  161. <StackPanel Orientation="Horizontal">
  162. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
  163. <Run Text="{DynamicResource MaxDriver}" />
  164. <Run Text="(V)" />
  165. </TextBlock>
  166. <NumericUpDown
  167. Width="120"
  168. Margin="4,0,0,0"
  169. Increment="0.001"
  170. Maximum="{Binding MaxMaxDriverVoltage}"
  171. Minimum="{Binding MinMaxDriverVoltage}"
  172. Value="{Binding MaxDriverVoltage}" />
  173. </StackPanel>
  174. <StackPanel Margin="0,4,0,0" Orientation="Horizontal">
  175. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
  176. <Run Text="{DynamicResource DriverOverLimitVoltage}" />
  177. <Run Text="(V)" />
  178. </TextBlock>
  179. <NumericUpDown
  180. Width="120"
  181. Margin="4,0,0,0"
  182. Increment="0.001"
  183. Maximum="{Binding MaxDriverOverLimitVoltage}"
  184. Minimum="{Binding MinDriverOverLimitVoltage}"
  185. Value="{Binding DriverOverLimitVoltage}" />
  186. </StackPanel>
  187. <StackPanel Margin="0,4,0,0" Orientation="Horizontal">
  188. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
  189. <Run Text="{DynamicResource EmerhencyDriverLimitVoltage}" />
  190. <Run Text="(V)" />
  191. </TextBlock>
  192. <NumericUpDown
  193. Width="120"
  194. Margin="4,0,0,0"
  195. Increment="0.001"
  196. Maximum="{Binding MaxEmerhencyDriverLimitVoltage}"
  197. Minimum="{Binding MinEmerhencyDriverLimitVoltage}"
  198. Value="{Binding EmerhencyDriverLimitVoltage}" />
  199. </StackPanel>
  200. </StackPanel>
  201. </suki:GroupBox>
  202. </suki:GlassCard>
  203. </StackPanel>
  204. </Grid>
  205. </UserControl>