ShakerConfigView.axaml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <UserControl
  2. x:Class="ShakerApp.Views.ShakerConfigView"
  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:local="clr-namespace:ShakerApp.Views"
  7. xmlns:main="using:ShakerApp"
  8. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  9. xmlns:suki="https://github.com/kikipoulet/SukiUI"
  10. xmlns:vm="clr-namespace:ShakerApp.ViewModels"
  11. d:DesignHeight="450"
  12. d:DesignWidth="800"
  13. x:DataType="vm:ShakerConfigViewModel"
  14. DataContext="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}}"
  15. FontSize="{StaticResource ItemFontSize}"
  16. mc:Ignorable="d">
  17. <TabControl>
  18. <TabItem
  19. Height="46"
  20. FontSize="24"
  21. Header="{DynamicResource Sensitivity}">
  22. <UniformGrid Rows="1">
  23. <UniformGrid Columns="1">
  24. <suki:GlassCard
  25. Width="320"
  26. Height="200"
  27. Margin="4"
  28. VerticalAlignment="Top">
  29. <suki:GroupBox>
  30. <suki:GroupBox.Header>
  31. <TextBlock
  32. VerticalAlignment="Center"
  33. FontSize="{StaticResource TabItemFontSize}"
  34. FontWeight="Bold"
  35. Text="{DynamicResource DisplacementSensor}" />
  36. </suki:GroupBox.Header>
  37. <StackPanel>
  38. <StackPanel
  39. HorizontalAlignment="Left"
  40. VerticalAlignment="Top"
  41. Orientation="Horizontal">
  42. <TextBlock VerticalAlignment="Center" Text="{DynamicResource Sensitivity}" />
  43. <NumericUpDown
  44. Width="120"
  45. Height="{StaticResource ItemHeight}"
  46. Margin="4,0,0,0"
  47. Increment="0.001"
  48. Minimum="0.001"
  49. Value="{Binding DisplacementSensitivity}" />
  50. <TextBlock
  51. Margin="4,0,0,0"
  52. VerticalAlignment="Center"
  53. Text="mV/mm" />
  54. </StackPanel>
  55. <StackPanel
  56. Margin="4,4,0,0"
  57. HorizontalAlignment="Left"
  58. VerticalAlignment="Center"
  59. Orientation="Horizontal">
  60. <TextBlock VerticalAlignment="Center" Text="{DynamicResource DisplacementBias}" />
  61. <NumericUpDown
  62. Width="120"
  63. Margin="4,0,0,0"
  64. Value="{Binding Source={x:Static vm:ShakerControlViewModel.Instance}, Path=DisplacementBias}" />
  65. <TextBlock
  66. Margin="4,0,0,0"
  67. VerticalAlignment="Center"
  68. Text="V" />
  69. </StackPanel>
  70. </StackPanel>
  71. </suki:GroupBox>
  72. </suki:GlassCard>
  73. <suki:GlassCard
  74. Width="320"
  75. Height="200"
  76. Margin="4"
  77. VerticalAlignment="Top">
  78. <suki:GroupBox>
  79. <suki:GroupBox.Header>
  80. <TextBlock
  81. VerticalAlignment="Center"
  82. FontSize="{StaticResource TabItemFontSize}"
  83. FontWeight="Bold"
  84. Text="{DynamicResource OutInputSignal}" />
  85. </suki:GroupBox.Header>
  86. <StackPanel
  87. HorizontalAlignment="Center"
  88. VerticalAlignment="Top"
  89. Orientation="Horizontal">
  90. <TextBlock VerticalAlignment="Center" Text="{DynamicResource OutSignalGain}" />
  91. <NumericUpDown
  92. Width="120"
  93. Height="{StaticResource ItemHeight}"
  94. Margin="4,0,0,0"
  95. Increment="0.001"
  96. Minimum="0.001"
  97. Value="{Binding OutSignalGain}" />
  98. <TextBlock
  99. Margin="4,0,0,0"
  100. VerticalAlignment="Center"
  101. Text="mm/V" />
  102. </StackPanel>
  103. </suki:GroupBox>
  104. </suki:GlassCard>
  105. </UniformGrid>
  106. <suki:GlassCard
  107. Width="320"
  108. Height="400"
  109. Margin="4"
  110. VerticalAlignment="Top">
  111. <suki:GroupBox>
  112. <suki:GroupBox.Header>
  113. <TextBlock
  114. VerticalAlignment="Center"
  115. FontSize="{StaticResource TabItemFontSize}"
  116. FontWeight="Bold"
  117. Text="{DynamicResource AccelerationSensor}" />
  118. </suki:GroupBox.Header>
  119. <StackPanel>
  120. <Grid Height="{StaticResource ItemHeight}" Background="{StaticResource TableTitleBackColor}">
  121. <Grid.ColumnDefinitions>
  122. <ColumnDefinition Width="30" />
  123. <ColumnDefinition Width="*" />
  124. <ColumnDefinition Width="*" />
  125. </Grid.ColumnDefinitions>
  126. <TextBlock
  127. HorizontalAlignment="Center"
  128. VerticalAlignment="Center"
  129. Text="{DynamicResource ServoValveIndex}"
  130. TextWrapping="Wrap" />
  131. <TextBlock
  132. Grid.Column="1"
  133. HorizontalAlignment="Center"
  134. VerticalAlignment="Center">
  135. <Run Text="{DynamicResource Sensitivity}" />
  136. <Run Text="(mv/g)" />
  137. </TextBlock>
  138. <TextBlock
  139. Grid.Column="2"
  140. HorizontalAlignment="Center"
  141. VerticalAlignment="Center"
  142. Text="{DynamicResource AccelerationPolarity}" />
  143. </Grid>
  144. <ItemsControl
  145. VerticalAlignment="Top"
  146. Background="Transparent"
  147. ItemsSource="{Binding Accelerations}"
  148. TabIndex="0">
  149. <ItemsControl.ItemTemplate>
  150. <DataTemplate>
  151. <Grid Height="{StaticResource ItemHeight}" Margin="0,4,0,4">
  152. <Grid.ColumnDefinitions>
  153. <ColumnDefinition Width="30" />
  154. <ColumnDefinition Width="*" />
  155. <ColumnDefinition Width="*" />
  156. </Grid.ColumnDefinitions>
  157. <TextBlock
  158. HorizontalAlignment="Center"
  159. VerticalAlignment="Center"
  160. IsEnabled="False"
  161. Text="{Binding Index}" />
  162. <NumericUpDown
  163. Grid.Column="1"
  164. Width="120"
  165. HorizontalAlignment="Center"
  166. VerticalAlignment="Center"
  167. Increment="0.001"
  168. Minimum="0.001"
  169. Value="{Binding Value.Sensitivity}" />
  170. <ComboBox
  171. ItemsSource="{Binding Value.Polarity, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
  172. SelectedValue="{Binding Path=Value.Polarity}"
  173. SelectedValueBinding="{Binding Value}">
  174. <ComboBox.ItemTemplate>
  175. <DataTemplate>
  176. <TextBlock Text="{main:ResourceBinding Key}" />
  177. </DataTemplate>
  178. </ComboBox.ItemTemplate>
  179. </ComboBox>
  180. </Grid>
  181. </DataTemplate>
  182. </ItemsControl.ItemTemplate>
  183. </ItemsControl>
  184. </StackPanel>
  185. </suki:GroupBox>
  186. </suki:GlassCard>
  187. </UniformGrid>
  188. </TabItem>
  189. <TabItem
  190. Height="46"
  191. FontSize="16"
  192. Header="{DynamicResource SecurityConfig}">
  193. <suki:GlassCard
  194. Width="860"
  195. Height="400"
  196. Margin="4"
  197. VerticalAlignment="Top">
  198. <suki:GroupBox>
  199. <suki:GroupBox.Header>
  200. <TextBlock
  201. VerticalAlignment="Center"
  202. FontSize="{StaticResource TabItemFontSize}"
  203. FontWeight="Bold"
  204. Text="{DynamicResource SecurityConfig}" />
  205. </suki:GroupBox.Header>
  206. <UniformGrid HorizontalAlignment="Center" Columns="3">
  207. <StackPanel Orientation="Horizontal">
  208. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxDisplacement}" />
  209. <NumericUpDown
  210. Width="120"
  211. Height="{StaticResource ItemHeight}"
  212. Margin="4,0,0,0"
  213. Increment="0.001"
  214. Minimum="0"
  215. Value="{Binding MaxDisplacement}" />
  216. <TextBlock
  217. Margin="4,0,0,0"
  218. VerticalAlignment="Center"
  219. Text="mm" />
  220. </StackPanel>
  221. <StackPanel Orientation="Horizontal">
  222. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxVelocity}" />
  223. <NumericUpDown
  224. Width="120"
  225. Height="{StaticResource ItemHeight}"
  226. Margin="4,0,0,0"
  227. Increment="0.001"
  228. Minimum="0"
  229. Value="{Binding MaxVelocity}" />
  230. <TextBlock
  231. Margin="4,0,0,0"
  232. VerticalAlignment="Center"
  233. Text="m/s" />
  234. </StackPanel>
  235. <StackPanel Orientation="Horizontal">
  236. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxAcceleration}" />
  237. <NumericUpDown
  238. Width="120"
  239. Height="{StaticResource ItemHeight}"
  240. Margin="4,0,0,0"
  241. Increment="0.001"
  242. Minimum="0"
  243. Value="{Binding MaxAcceleration}" />
  244. <TextBlock
  245. Margin="4,0,0,0"
  246. VerticalAlignment="Center"
  247. Text="g" />
  248. </StackPanel>
  249. <StackPanel Orientation="Horizontal">
  250. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxOutInput}" />
  251. <NumericUpDown
  252. Width="120"
  253. Height="{StaticResource ItemHeight}"
  254. Margin="4,0,0,0"
  255. Increment="0.001"
  256. Minimum="0"
  257. Value="{Binding MaxOutInput}" />
  258. <TextBlock
  259. Margin="4,0,0,0"
  260. VerticalAlignment="Center"
  261. Text="V" />
  262. </StackPanel>
  263. <StackPanel Orientation="Horizontal">
  264. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxDriver}" />
  265. <NumericUpDown
  266. Width="120"
  267. Height="{StaticResource ItemHeight}"
  268. Margin="4,0,0,0"
  269. Increment="0.001"
  270. Minimum="0"
  271. Value="{Binding MaxDriver}" />
  272. <TextBlock
  273. Margin="4,0,0,0"
  274. VerticalAlignment="Center"
  275. Text="V" />
  276. </StackPanel>
  277. <StackPanel Orientation="Horizontal">
  278. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxJitterDisplacement}" />
  279. <NumericUpDown
  280. Width="120"
  281. Height="{StaticResource ItemHeight}"
  282. Margin="4,0,0,0"
  283. Increment="0.001"
  284. Minimum="0"
  285. Value="{Binding MaxJitterDisplacement}" />
  286. <TextBlock
  287. Margin="4,0,0,0"
  288. VerticalAlignment="Center"
  289. Text="mm" />
  290. </StackPanel>
  291. <StackPanel Orientation="Horizontal">
  292. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxJitterAcceleration}" />
  293. <NumericUpDown
  294. Width="120"
  295. Height="{StaticResource ItemHeight}"
  296. Margin="4,0,0,0"
  297. Increment="0.001"
  298. Minimum="0"
  299. Value="{Binding MaxJitterAcceleration}" />
  300. <TextBlock
  301. Margin="4,0,0,0"
  302. VerticalAlignment="Center"
  303. Text="g" />
  304. </StackPanel>
  305. </UniformGrid>
  306. </suki:GroupBox>
  307. </suki:GlassCard>
  308. </TabItem>
  309. </TabControl>
  310. </UserControl>