This commit is contained in:
gac-S_Changer
2018-10-11 13:42:31 +02:00
parent 37e183bd30
commit cfc4b3a0da
18 changed files with 1025 additions and 511 deletions

View File

@@ -1,5 +1,5 @@
#Fri Sep 21 16:29:05 CEST 2018
holdingCurrent=30.0
#Wed Oct 03 14:07:43 CEST 2018
holdingCurrent=50.0
mountCurrent=10.0
remanenceCurrent=-10.0
restingCurrent=10.0

View File

@@ -16,24 +16,36 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="panelCommands" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
<Component id="pnDry" alignment="0" pref="314" max="32767" attributes="0"/>
<Component id="pnMotion" alignment="0" max="32767" attributes="0"/>
<Component id="pnDatabase" alignment="0" max="32767" attributes="0"/>
<Component id="pnLowLevel" alignment="0" max="32767" attributes="0"/>
<Component id="pnTransfer" alignment="0" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="panelCommands" min="-2" max="-2" attributes="0"/>
<Group type="102" attributes="0">
<Component id="pnDry" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
<Component id="pnTransfer" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
<Component id="pnLowLevel" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
<Component id="pnDatabase" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
<Component id="pnMotion" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Container class="javax.swing.JPanel" name="panelCommands">
<Container class="javax.swing.JPanel" name="pnDry">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Commands"/>
<TitledBorder title="Drying"/>
</Border>
</Property>
</Properties>
@@ -41,50 +53,21 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="buttonMoveHeater" linkSize="7" alignment="0" pref="140" max="32767" attributes="0"/>
<Component id="buttonClearSampleDb" linkSize="7" alignment="0" min="-2" pref="140" max="-2" attributes="0"/>
<Component id="buttonGetDewar" linkSize="7" alignment="0" pref="140" max="32767" attributes="0"/>
<Component id="buttonDry" linkSize="7" alignment="0" min="-2" pref="140" max="-2" attributes="0"/>
<Component id="buttonPutDewar" linkSize="7" alignment="0" pref="140" max="32767" attributes="0"/>
<Component id="buttonGetGonio" linkSize="7" alignment="0" pref="140" max="32767" attributes="0"/>
<Component id="buttonPutGonio" linkSize="7" alignment="0" pref="140" max="32767" attributes="0"/>
<Component id="buttonMovePark" linkSize="7" alignment="0" pref="140" max="32767" attributes="0"/>
<Component id="buttonRecover" linkSize="7" alignment="0" min="-2" pref="140" max="-2" attributes="0"/>
<Component id="buttonMoveCold" linkSize="7" alignment="0" min="-2" pref="140" max="-2" attributes="0"/>
<Component id="buttonMount" linkSize="7" alignment="0" pref="140" max="32767" attributes="0"/>
<Component id="buttonUnmount" linkSize="7" alignment="0" pref="140" max="32767" attributes="0"/>
<Component id="buttonDry" linkSize="14" min="-2" pref="100" max="-2" attributes="0"/>
<Component id="ckeckParkOnDry" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="32767" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="jLabel6" min="-2" max="-2" attributes="0"/>
<Component id="jLabel7" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="103" alignment="1" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="buttonMoveScanner" linkSize="7" pref="140" max="32767" attributes="0"/>
<Component id="buttonMoveHome" linkSize="7" pref="140" max="32767" attributes="0"/>
<Component id="buttonMoveDewar" linkSize="7" pref="140" max="32767" attributes="0"/>
<Component id="buttonHomingHexiposi" linkSize="7" pref="140" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
</Group>
<Component id="jPanel5" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="buttonEnableAll" linkSize="7" alignment="1" min="-2" pref="140" max="-2" attributes="0"/>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="1" attributes="0">
<Component id="jLabel6" min="-2" max="-2" attributes="0"/>
<Component id="jLabel7" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="spinnerDrySpeed" pref="92" max="32767" attributes="0"/>
<Component id="spinnerDryTime" max="32767" attributes="0"/>
</Group>
</Group>
</Group>
<Component id="buttonMoveGonio" linkSize="7" alignment="1" pref="140" max="32767" attributes="0"/>
<Component id="buttonResetPuckIds" linkSize="7" alignment="1" min="-2" pref="140" max="-2" attributes="0"/>
<Component id="spinnerDrySpeed" linkSize="14" min="-2" pref="100" max="-2" attributes="0"/>
<Component id="spinnerDryTime" linkSize="14" min="-2" pref="100" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
@@ -92,46 +75,8 @@
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Group type="102" attributes="0">
<Component id="buttonMount" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonUnmount" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="buttonGetDewar" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonPutDewar" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="jPanel5" max="32767" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonGetGonio" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonHomingHexiposi" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonPutGonio" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonMoveGonio" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonMovePark" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonMoveHome" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonMoveDewar" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonMoveCold" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonMoveHeater" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonMoveScanner" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
@@ -142,21 +87,105 @@
<Group type="103" groupAlignment="3" attributes="0">
<Component id="spinnerDrySpeed" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel7" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="ckeckParkOnDry" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Component id="jLabel6" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonClearSampleDb" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonResetPuckIds" alignment="3" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel6">
<Properties>
<Property name="text" type="java.lang.String" value="Heat time(s):"/>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="spinnerDryTime">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="30.0" maximum="30.0" minimum="1.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new ch.psi.utils.swing.HorizontalSpinner()"/>
</AuxValues>
</Component>
<Component class="javax.swing.JButton" name="buttonDry">
<Properties>
<Property name="text" type="java.lang.String" value="Dry"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonDryActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JSpinner" name="spinnerDrySpeed">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="0.5" maximum="10.0" minimum="0.1" numberType="java.lang.Double" stepSize="1.0" type="number"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new ch.psi.utils.swing.HorizontalSpinner()"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="jLabel7">
<Properties>
<Property name="text" type="java.lang.String" value="Speed(%):"/>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="ckeckParkOnDry">
<Properties>
<Property name="text" type="java.lang.String" value="Park on finish"/>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnTransfer">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Sample Transfer"/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="buttonMount" linkSize="11" alignment="0" min="-2" pref="100" max="-2" attributes="0"/>
<Component id="buttonUnmount" linkSize="11" alignment="0" min="-2" pref="100" max="-2" attributes="0"/>
<Component id="buttonScanPin" linkSize="11" alignment="0" min="-2" pref="100" max="-2" attributes="0"/>
<Component id="buttonScanPin1" alignment="0" min="-2" pref="100" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonRecover" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonEnableAll" alignment="3" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" pref="31" max="32767" attributes="0"/>
<Component id="jPanel5" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="buttonMount" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonUnmount" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonScanPin" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonScanPin1" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="jPanel5" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -170,46 +199,6 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMountActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonUnmount">
<Properties>
<Property name="text" type="java.lang.String" value="Unmount"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonUnmountActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonGetDewar">
<Properties>
<Property name="text" type="java.lang.String" value="Get Dewar"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonGetDewarActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonPutDewar">
<Properties>
<Property name="text" type="java.lang.String" value="Put Dewar"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonPutDewarActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonGetGonio">
<Properties>
<Property name="text" type="java.lang.String" value="Get Gonio"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonGetGonioActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonPutGonio">
<Properties>
<Property name="text" type="java.lang.String" value="Put Gonio"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonPutGonioActionPerformed"/>
</Events>
</Component>
<Container class="javax.swing.JPanel" name="jPanel5">
<Layout>
@@ -221,16 +210,16 @@
<Component id="jLabel3" linkSize="1" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jLabel2" linkSize="1" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jLabel1" linkSize="1" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jLabel4" min="-2" max="-2" attributes="0"/>
<Component id="jLabel5" min="-2" max="-2" attributes="0"/>
<Component id="jLabel4" linkSize="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel5" linkSize="1" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="spinnerPuck" alignment="0" max="32767" attributes="0"/>
<Component id="spinnerPuck" linkSize="9" alignment="0" min="-2" pref="100" max="-2" attributes="0"/>
<Component id="checkForce" min="-2" max="-2" attributes="0"/>
<Component id="checkDatamatrix" min="-2" max="-2" attributes="0"/>
<Component id="spinnerSample" alignment="0" pref="97" max="32767" attributes="0"/>
<Component id="spinnerSegment" alignment="0" max="32767" attributes="0"/>
<Component id="spinnerSample" linkSize="9" alignment="0" min="-2" pref="100" max="-2" attributes="0"/>
<Component id="spinnerSegment" linkSize="9" alignment="0" min="-2" pref="100" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
</Group>
@@ -272,11 +261,13 @@
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel4">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
<Property name="text" type="java.lang.String" value="Force:"/>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="checkForce">
<Properties>
<Property name="selected" type="boolean" value="true"/>
<Property name="horizontalTextPosition" type="int" value="10"/>
</Properties>
</Component>
@@ -302,11 +293,13 @@
</Component>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
<Property name="text" type="java.lang.String" value="Segment:"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel2">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
<Property name="text" type="java.lang.String" value="Puck:"/>
</Properties>
</Component>
@@ -329,11 +322,13 @@
</Component>
<Component class="javax.swing.JLabel" name="jLabel3">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
<Property name="text" type="java.lang.String" value="Sample:"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel5">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
<Property name="text" type="java.lang.String" value="Read DM:"/>
</Properties>
</Component>
@@ -344,6 +339,106 @@
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JButton" name="buttonUnmount">
<Properties>
<Property name="text" type="java.lang.String" value="Unmount"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonUnmountActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonScanPin">
<Properties>
<Property name="text" type="java.lang.String" value="Scan Pin"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonScanPinActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonScanPin1">
<Properties>
<Property name="text" type="java.lang.String" value="Scan Puck"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonScanPin1ActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnLowLevel">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Low-level Motion Commands"/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="buttonMovePark" linkSize="10" alignment="0" min="-2" pref="114" max="-2" attributes="0"/>
<Component id="buttonHomingHexiposi" linkSize="10" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="buttonMoveCold" linkSize="10" alignment="0" min="-2" pref="114" max="-2" attributes="0"/>
<Component id="buttonMoveHeater" linkSize="10" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="buttonGetGonio" linkSize="10" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="buttonGetDewar" linkSize="10" alignment="0" min="-2" pref="114" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="buttonPutDewar" linkSize="10" alignment="0" min="-2" pref="101" max="-2" attributes="0"/>
<Component id="buttonPutGonio" linkSize="10" alignment="0" min="-2" pref="101" max="-2" attributes="0"/>
<Component id="buttonMoveGonio" linkSize="10" alignment="0" min="-2" pref="101" max="-2" attributes="0"/>
<Component id="buttonMoveHome" linkSize="10" alignment="0" min="-2" pref="101" max="-2" attributes="0"/>
<Component id="buttonMoveDewar" linkSize="10" alignment="0" min="-2" pref="101" max="-2" attributes="0"/>
<Component id="buttonMoveScanner" linkSize="10" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonGetDewar" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonPutDewar" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonGetGonio" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonPutGonio" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonMoveGonio" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonHomingHexiposi" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonMovePark" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonMoveHome" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonMoveDewar" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonMoveCold" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonMoveHeater" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonMoveScanner" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JButton" name="buttonMovePark">
<Properties>
<Property name="text" type="java.lang.String" value="Move Park"/>
@@ -352,108 +447,6 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveParkActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonHomingHexiposi">
<Properties>
<Property name="text" type="java.lang.String" value="Homing Hexiposi"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonHomingHexiposiActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveHome">
<Properties>
<Property name="text" type="java.lang.String" value="Move Home"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveHomeActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveGonio">
<Properties>
<Property name="text" type="java.lang.String" value="Move Gonio"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveGonioActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveDewar">
<Properties>
<Property name="text" type="java.lang.String" value="Move Dewar"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveDewarActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveScanner">
<Properties>
<Property name="text" type="java.lang.String" value="Move Scanner"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveScannerActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveHeater">
<Properties>
<Property name="text" type="java.lang.String" value="Move Heater"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveHeaterActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonDry">
<Properties>
<Property name="text" type="java.lang.String" value="Dry"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonDryActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JSpinner" name="spinnerDryTime">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="30.0" maximum="30.0" minimum="1.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new ch.psi.utils.swing.HorizontalSpinner()"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="jLabel6">
<Properties>
<Property name="text" type="java.lang.String" value="Heat time(s):"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel7">
<Properties>
<Property name="text" type="java.lang.String" value="Speed(%):"/>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="spinnerDrySpeed">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="0.5" maximum="10.0" minimum="0.1" numberType="java.lang.Double" stepSize="1.0" type="number"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new ch.psi.utils.swing.HorizontalSpinner()"/>
</AuxValues>
</Component>
<Component class="javax.swing.JButton" name="buttonRecover">
<Properties>
<Property name="text" type="java.lang.String" value="Recover"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonRecoverActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonEnableAll">
<Properties>
<Property name="text" type="java.lang.String" value="Enable Motion"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonEnableAllActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveCold">
<Properties>
<Property name="text" type="java.lang.String" value="Move Cold"/>
@@ -462,6 +455,123 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveColdActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveGonio">
<Properties>
<Property name="text" type="java.lang.String" value="Move Gonio"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveGonioActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveHeater">
<Properties>
<Property name="text" type="java.lang.String" value="Move Heater"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveHeaterActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonGetGonio">
<Properties>
<Property name="text" type="java.lang.String" value="Get Gonio"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonGetGonioActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonPutGonio">
<Properties>
<Property name="text" type="java.lang.String" value="Put Gonio"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonPutGonioActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveDewar">
<Properties>
<Property name="text" type="java.lang.String" value="Move Dewar"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveDewarActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveHome">
<Properties>
<Property name="text" type="java.lang.String" value="Move Home"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveHomeActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonMoveScanner">
<Properties>
<Property name="text" type="java.lang.String" value="Move Scanner"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMoveScannerActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonGetDewar">
<Properties>
<Property name="text" type="java.lang.String" value="Get Dewar"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonGetDewarActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonPutDewar">
<Properties>
<Property name="text" type="java.lang.String" value="Put Dewar"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonPutDewarActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonHomingHexiposi">
<Properties>
<Property name="text" type="java.lang.String" value="Homing Hexiposi"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonHomingHexiposiActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnDatabase">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Database"/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonClearSampleDb" linkSize="12" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="32767" attributes="0"/>
<Component id="buttonResetPuckIds" linkSize="12" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonClearSampleDb" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonResetPuckIds" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JButton" name="buttonClearSampleDb">
<Properties>
<Property name="text" type="java.lang.String" value="Clear Sample Db"/>
@@ -480,5 +590,58 @@
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnMotion">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Motion"/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonRecover" linkSize="13" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="buttonEnableAll" linkSize="13" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonRecover" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonEnableAll" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JButton" name="buttonRecover">
<Properties>
<Property name="text" type="java.lang.String" value="Dewar Recovery"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonRecoverActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonEnableAll">
<Properties>
<Property name="text" type="java.lang.String" value="Enable Motion"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonEnableAllActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
</SubComponents>
</Form>

View File

@@ -50,7 +50,7 @@ public class Commands extends Panel {
@Override
public void onStateChange(State state, State former) {
for (Component c: SwingUtils.getComponentsByType(panelCommands, JComponent.class)){
for (Component c: SwingUtils.getComponentsByType(this, JComponent.class)){
c.setEnabled(state == State.Ready);
}
buttonHomingHexiposi.setEnabled(state == State.Ready);
@@ -113,13 +113,15 @@ public class Commands extends Panel {
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
panelCommands = new javax.swing.JPanel();
pnDry = new javax.swing.JPanel();
jLabel6 = new javax.swing.JLabel();
spinnerDryTime = new ch.psi.utils.swing.HorizontalSpinner();
buttonDry = new javax.swing.JButton();
spinnerDrySpeed = new ch.psi.utils.swing.HorizontalSpinner();
jLabel7 = new javax.swing.JLabel();
ckeckParkOnDry = new javax.swing.JCheckBox();
pnTransfer = new javax.swing.JPanel();
buttonMount = new javax.swing.JButton();
buttonUnmount = new javax.swing.JButton();
buttonGetDewar = new javax.swing.JButton();
buttonPutDewar = new javax.swing.JButton();
buttonGetGonio = new javax.swing.JButton();
buttonPutGonio = new javax.swing.JButton();
jPanel5 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
checkForce = new javax.swing.JCheckBox();
@@ -131,25 +133,89 @@ public class Commands extends Panel {
jLabel3 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
checkDatamatrix = new javax.swing.JCheckBox();
buttonUnmount = new javax.swing.JButton();
buttonScanPin = new javax.swing.JButton();
buttonScanPin1 = new javax.swing.JButton();
pnLowLevel = new javax.swing.JPanel();
buttonMovePark = new javax.swing.JButton();
buttonHomingHexiposi = new javax.swing.JButton();
buttonMoveHome = new javax.swing.JButton();
buttonMoveGonio = new javax.swing.JButton();
buttonMoveDewar = new javax.swing.JButton();
buttonMoveScanner = new javax.swing.JButton();
buttonMoveHeater = new javax.swing.JButton();
buttonDry = new javax.swing.JButton();
spinnerDryTime = new ch.psi.utils.swing.HorizontalSpinner();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
spinnerDrySpeed = new ch.psi.utils.swing.HorizontalSpinner();
buttonRecover = new javax.swing.JButton();
buttonEnableAll = new javax.swing.JButton();
buttonMoveCold = new javax.swing.JButton();
buttonMoveGonio = new javax.swing.JButton();
buttonMoveHeater = new javax.swing.JButton();
buttonGetGonio = new javax.swing.JButton();
buttonPutGonio = new javax.swing.JButton();
buttonMoveDewar = new javax.swing.JButton();
buttonMoveHome = new javax.swing.JButton();
buttonMoveScanner = new javax.swing.JButton();
buttonGetDewar = new javax.swing.JButton();
buttonPutDewar = new javax.swing.JButton();
buttonHomingHexiposi = new javax.swing.JButton();
pnDatabase = new javax.swing.JPanel();
buttonClearSampleDb = new javax.swing.JButton();
buttonResetPuckIds = new javax.swing.JButton();
pnMotion = new javax.swing.JPanel();
buttonRecover = new javax.swing.JButton();
buttonEnableAll = new javax.swing.JButton();
panelCommands.setBorder(javax.swing.BorderFactory.createTitledBorder("Commands"));
pnDry.setBorder(javax.swing.BorderFactory.createTitledBorder("Drying"));
jLabel6.setText("Heat time(s):");
spinnerDryTime.setModel(new javax.swing.SpinnerNumberModel(30.0d, 1.0d, 30.0d, 1.0d));
buttonDry.setText("Dry");
buttonDry.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonDryActionPerformed(evt);
}
});
spinnerDrySpeed.setModel(new javax.swing.SpinnerNumberModel(0.5d, 0.1d, 10.0d, 1.0d));
jLabel7.setText("Speed(%):");
ckeckParkOnDry.setText("Park on finish");
javax.swing.GroupLayout pnDryLayout = new javax.swing.GroupLayout(pnDry);
pnDry.setLayout(pnDryLayout);
pnDryLayout.setHorizontalGroup(
pnDryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnDryLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnDryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonDry, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ckeckParkOnDry))
.addGap(18, 18, Short.MAX_VALUE)
.addGroup(pnDryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel6)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnDryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(spinnerDrySpeed, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerDryTime, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
pnDryLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonDry, spinnerDrySpeed, spinnerDryTime});
pnDryLayout.setVerticalGroup(
pnDryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnDryLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnDryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnDryLayout.createSequentialGroup()
.addGroup(pnDryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonDry)
.addComponent(spinnerDryTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnDryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(spinnerDrySpeed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7)
.addComponent(ckeckParkOnDry)))
.addComponent(jLabel6))
.addContainerGap())
);
pnTransfer.setBorder(javax.swing.BorderFactory.createTitledBorder("Sample Transfer"));
buttonMount.setText("Mount");
buttonMount.addActionListener(new java.awt.event.ActionListener() {
@@ -158,57 +224,28 @@ public class Commands extends Panel {
}
});
buttonUnmount.setText("Unmount");
buttonUnmount.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonUnmountActionPerformed(evt);
}
});
buttonGetDewar.setText("Get Dewar");
buttonGetDewar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonGetDewarActionPerformed(evt);
}
});
buttonPutDewar.setText("Put Dewar");
buttonPutDewar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonPutDewarActionPerformed(evt);
}
});
buttonGetGonio.setText("Get Gonio");
buttonGetGonio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonGetGonioActionPerformed(evt);
}
});
buttonPutGonio.setText("Put Gonio");
buttonPutGonio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonPutGonioActionPerformed(evt);
}
});
jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel4.setText("Force:");
checkForce.setSelected(true);
checkForce.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
spinnerSample.setModel(new javax.swing.SpinnerNumberModel(1, 1, 16, 1));
spinnerPuck.setModel(new javax.swing.SpinnerNumberModel(1, 1, 5, 1));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel1.setText("Segment:");
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel2.setText("Puck:");
spinnerSegment.setModel(new javax.swing.SpinnerListModel(new String[] {"A", "B", "C", "D", "E", "F"}));
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel3.setText("Sample:");
jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel5.setText("Read DM:");
checkDatamatrix.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
@@ -227,15 +264,17 @@ public class Commands extends Panel {
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(spinnerPuck)
.addComponent(spinnerPuck, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(checkForce)
.addComponent(checkDatamatrix)
.addComponent(spinnerSample, javax.swing.GroupLayout.DEFAULT_SIZE, 97, Short.MAX_VALUE)
.addComponent(spinnerSegment))
.addComponent(spinnerSample, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerSegment, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, 0))
);
jPanel5Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel1, jLabel2, jLabel3});
jPanel5Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel1, jLabel2, jLabel3, jLabel4, jLabel5});
jPanel5Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerPuck, spinnerSample, spinnerSegment});
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -263,6 +302,64 @@ public class Commands extends Panel {
.addGap(0, 0, 0))
);
buttonUnmount.setText("Unmount");
buttonUnmount.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonUnmountActionPerformed(evt);
}
});
buttonScanPin.setText("Scan Pin");
buttonScanPin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonScanPinActionPerformed(evt);
}
});
buttonScanPin1.setText("Scan Puck");
buttonScanPin1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonScanPin1ActionPerformed(evt);
}
});
javax.swing.GroupLayout pnTransferLayout = new javax.swing.GroupLayout(pnTransfer);
pnTransfer.setLayout(pnTransferLayout);
pnTransferLayout.setHorizontalGroup(
pnTransferLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnTransferLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnTransferLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonMount, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonUnmount, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonScanPin, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonScanPin1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 31, Short.MAX_VALUE)
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pnTransferLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonMount, buttonScanPin, buttonUnmount});
pnTransferLayout.setVerticalGroup(
pnTransferLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnTransferLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnTransferLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnTransferLayout.createSequentialGroup()
.addComponent(buttonMount)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonUnmount)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonScanPin)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonScanPin1))
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
pnLowLevel.setBorder(javax.swing.BorderFactory.createTitledBorder("Low-level Motion Commands"));
buttonMovePark.setText("Move Park");
buttonMovePark.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -270,17 +367,10 @@ public class Commands extends Panel {
}
});
buttonHomingHexiposi.setText("Homing Hexiposi");
buttonHomingHexiposi.addActionListener(new java.awt.event.ActionListener() {
buttonMoveCold.setText("Move Cold");
buttonMoveCold.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonHomingHexiposiActionPerformed(evt);
}
});
buttonMoveHome.setText("Move Home");
buttonMoveHome.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonMoveHomeActionPerformed(evt);
buttonMoveColdActionPerformed(evt);
}
});
@@ -291,6 +381,27 @@ public class Commands extends Panel {
}
});
buttonMoveHeater.setText("Move Heater");
buttonMoveHeater.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonMoveHeaterActionPerformed(evt);
}
});
buttonGetGonio.setText("Get Gonio");
buttonGetGonio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonGetGonioActionPerformed(evt);
}
});
buttonPutGonio.setText("Put Gonio");
buttonPutGonio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonPutGonioActionPerformed(evt);
}
});
buttonMoveDewar.setText("Move Dewar");
buttonMoveDewar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -298,6 +409,13 @@ public class Commands extends Panel {
}
});
buttonMoveHome.setText("Move Home");
buttonMoveHome.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonMoveHomeActionPerformed(evt);
}
});
buttonMoveScanner.setText("Move Scanner");
buttonMoveScanner.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -305,48 +423,84 @@ public class Commands extends Panel {
}
});
buttonMoveHeater.setText("Move Heater");
buttonMoveHeater.addActionListener(new java.awt.event.ActionListener() {
buttonGetDewar.setText("Get Dewar");
buttonGetDewar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonMoveHeaterActionPerformed(evt);
buttonGetDewarActionPerformed(evt);
}
});
buttonDry.setText("Dry");
buttonDry.addActionListener(new java.awt.event.ActionListener() {
buttonPutDewar.setText("Put Dewar");
buttonPutDewar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonDryActionPerformed(evt);
buttonPutDewarActionPerformed(evt);
}
});
spinnerDryTime.setModel(new javax.swing.SpinnerNumberModel(30.0d, 1.0d, 30.0d, 1.0d));
jLabel6.setText("Heat time(s):");
jLabel7.setText("Speed(%):");
spinnerDrySpeed.setModel(new javax.swing.SpinnerNumberModel(0.5d, 0.1d, 10.0d, 1.0d));
buttonRecover.setText("Recover");
buttonRecover.addActionListener(new java.awt.event.ActionListener() {
buttonHomingHexiposi.setText("Homing Hexiposi");
buttonHomingHexiposi.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonRecoverActionPerformed(evt);
buttonHomingHexiposiActionPerformed(evt);
}
});
buttonEnableAll.setText("Enable Motion");
buttonEnableAll.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonEnableAllActionPerformed(evt);
}
});
javax.swing.GroupLayout pnLowLevelLayout = new javax.swing.GroupLayout(pnLowLevel);
pnLowLevel.setLayout(pnLowLevelLayout);
pnLowLevelLayout.setHorizontalGroup(
pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnLowLevelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonMovePark, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonHomingHexiposi)
.addComponent(buttonMoveCold, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonMoveHeater)
.addComponent(buttonGetGonio)
.addComponent(buttonGetDewar, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonPutDewar, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonPutGonio, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonMoveGonio, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonMoveHome, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonMoveDewar, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonMoveScanner))
.addContainerGap())
);
buttonMoveCold.setText("Move Cold");
buttonMoveCold.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonMoveColdActionPerformed(evt);
}
});
pnLowLevelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonGetDewar, buttonGetGonio, buttonHomingHexiposi, buttonMoveCold, buttonMoveDewar, buttonMoveGonio, buttonMoveHeater, buttonMoveHome, buttonMovePark, buttonMoveScanner, buttonPutDewar, buttonPutGonio});
pnLowLevelLayout.setVerticalGroup(
pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnLowLevelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonGetDewar)
.addComponent(buttonPutDewar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonGetGonio)
.addComponent(buttonPutGonio))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonMoveGonio)
.addComponent(buttonHomingHexiposi))
.addGap(18, 18, 18)
.addGroup(pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonMovePark)
.addComponent(buttonMoveHome))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonMoveDewar)
.addComponent(buttonMoveCold))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnLowLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonMoveHeater)
.addComponent(buttonMoveScanner))
.addContainerGap())
);
pnDatabase.setBorder(javax.swing.BorderFactory.createTitledBorder("Database"));
buttonClearSampleDb.setText("Clear Sample Db");
buttonClearSampleDb.addActionListener(new java.awt.event.ActionListener() {
@@ -362,119 +516,93 @@ public class Commands extends Panel {
}
});
javax.swing.GroupLayout panelCommandsLayout = new javax.swing.GroupLayout(panelCommands);
panelCommands.setLayout(panelCommandsLayout);
panelCommandsLayout.setHorizontalGroup(
panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelCommandsLayout.createSequentialGroup()
javax.swing.GroupLayout pnDatabaseLayout = new javax.swing.GroupLayout(pnDatabase);
pnDatabase.setLayout(pnDatabaseLayout);
pnDatabaseLayout.setHorizontalGroup(
pnDatabaseLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnDatabaseLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonMoveHeater, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonClearSampleDb, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonGetDewar, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonDry, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonPutDewar, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonGetGonio, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonPutGonio, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonMovePark, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonRecover, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonMoveCold, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonMount, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonUnmount, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE))
.addComponent(buttonClearSampleDb)
.addGap(18, 18, Short.MAX_VALUE)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelCommandsLayout.createSequentialGroup()
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonMoveScanner, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonMoveHome, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonMoveDewar, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonHomingHexiposi, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE))
.addGap(1, 1, 1))
.addComponent(jPanel5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonEnableAll, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(panelCommandsLayout.createSequentialGroup()
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel6)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(spinnerDrySpeed, javax.swing.GroupLayout.DEFAULT_SIZE, 92, Short.MAX_VALUE)
.addComponent(spinnerDryTime))))
.addComponent(buttonMoveGonio, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
.addComponent(buttonResetPuckIds, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(buttonResetPuckIds)
.addContainerGap())
);
panelCommandsLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonClearSampleDb, buttonDry, buttonEnableAll, buttonGetDewar, buttonGetGonio, buttonHomingHexiposi, buttonMount, buttonMoveCold, buttonMoveDewar, buttonMoveGonio, buttonMoveHeater, buttonMoveHome, buttonMovePark, buttonMoveScanner, buttonPutDewar, buttonPutGonio, buttonRecover, buttonResetPuckIds, buttonUnmount});
pnDatabaseLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonClearSampleDb, buttonResetPuckIds});
panelCommandsLayout.setVerticalGroup(
panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelCommandsLayout.createSequentialGroup()
.addGap(18, 18, 18)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(panelCommandsLayout.createSequentialGroup()
.addComponent(buttonMount)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonUnmount)
.addGap(18, 18, 18)
.addComponent(buttonGetDewar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonPutDewar))
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonGetGonio)
.addComponent(buttonHomingHexiposi))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonPutGonio)
.addComponent(buttonMoveGonio))
.addGap(18, 18, 18)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonMovePark)
.addComponent(buttonMoveHome))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonMoveDewar)
.addComponent(buttonMoveCold))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonMoveHeater)
.addComponent(buttonMoveScanner))
.addGap(18, 18, 18)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelCommandsLayout.createSequentialGroup()
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonDry)
.addComponent(spinnerDryTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(spinnerDrySpeed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7)))
.addComponent(jLabel6))
.addGap(18, 18, 18)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
pnDatabaseLayout.setVerticalGroup(
pnDatabaseLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnDatabaseLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnDatabaseLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonClearSampleDb)
.addComponent(buttonResetPuckIds))
.addGap(18, 18, 18)
.addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addContainerGap())
);
pnMotion.setBorder(javax.swing.BorderFactory.createTitledBorder("Motion"));
buttonRecover.setText("Dewar Recovery");
buttonRecover.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonRecoverActionPerformed(evt);
}
});
buttonEnableAll.setText("Enable Motion");
buttonEnableAll.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonEnableAllActionPerformed(evt);
}
});
javax.swing.GroupLayout pnMotionLayout = new javax.swing.GroupLayout(pnMotion);
pnMotion.setLayout(pnMotionLayout);
pnMotionLayout.setHorizontalGroup(
pnMotionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnMotionLayout.createSequentialGroup()
.addContainerGap()
.addComponent(buttonRecover)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonEnableAll)
.addContainerGap())
);
pnMotionLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonEnableAll, buttonRecover});
pnMotionLayout.setVerticalGroup(
pnMotionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnMotionLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnMotionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonRecover)
.addComponent(buttonEnableAll))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(panelCommands, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(pnDry, javax.swing.GroupLayout.PREFERRED_SIZE, 314, Short.MAX_VALUE)
.addComponent(pnMotion, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pnDatabase, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pnLowLevel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pnTransfer, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelCommands, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(pnDry, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(pnTransfer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(pnLowLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(pnDatabase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(pnMotion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
@@ -557,8 +685,9 @@ public class Commands extends Panel {
private void buttonDryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDryActionPerformed
double dryTime = (Double) spinnerDryTime.getValue();
double streamTime = (Double) spinnerDrySpeed.getValue();
boolean park = ckeckParkOnDry.isSelected();
execute("dry(" + dryTime + ", " + streamTime + ")");
execute("dry(" + dryTime + ", " + streamTime + (park ? ", wait_cold=-1": "") + ")");
}//GEN-LAST:event_buttonDryActionPerformed
private void buttonRecoverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRecoverActionPerformed
@@ -577,6 +706,21 @@ public class Commands extends Panel {
execute("reset_puck_datamatrix()", true);
}//GEN-LAST:event_buttonResetPuckIdsActionPerformed
private void buttonScanPinActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonScanPinActionPerformed
String segment = (String) spinnerSegment.getValue();
int puck = (Integer) spinnerPuck.getValue();
int sample = (Integer) spinnerSample.getValue();
String force = checkForce.isSelected() ? "True" : "False";
execute("scan_pin('" + segment + "'," + puck + "," + sample + ", force=" + force + ")", false, true);
}//GEN-LAST:event_buttonScanPinActionPerformed
private void buttonScanPin1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonScanPin1ActionPerformed
String segment = (String) spinnerSegment.getValue();
int puck = (Integer) spinnerPuck.getValue();
String force = checkForce.isSelected() ? "True" : "False";
execute("scan_puck('" + segment + "'," + puck + ", force=" + force + ")", false, true);
}//GEN-LAST:event_buttonScanPin1ActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonClearSampleDb;
private javax.swing.JButton buttonDry;
@@ -596,9 +740,12 @@ public class Commands extends Panel {
private javax.swing.JButton buttonPutGonio;
private javax.swing.JButton buttonRecover;
private javax.swing.JButton buttonResetPuckIds;
private javax.swing.JButton buttonScanPin;
private javax.swing.JButton buttonScanPin1;
private javax.swing.JButton buttonUnmount;
private javax.swing.JCheckBox checkDatamatrix;
private javax.swing.JCheckBox checkForce;
private javax.swing.JCheckBox ckeckParkOnDry;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
@@ -607,7 +754,11 @@ public class Commands extends Panel {
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel panelCommands;
private javax.swing.JPanel pnDatabase;
private javax.swing.JPanel pnDry;
private javax.swing.JPanel pnLowLevel;
private javax.swing.JPanel pnMotion;
private javax.swing.JPanel pnTransfer;
private javax.swing.JSpinner spinnerDrySpeed;
private javax.swing.JSpinner spinnerDryTime;
private javax.swing.JSpinner spinnerPuck;

View File

@@ -3,6 +3,7 @@ import ch.psi.pshell.device.Readable;
import ch.psi.pshell.serial.SerialPortDevice;
import ch.psi.pshell.serial.SerialPortDeviceConfig;
import static ch.psi.utils.BitMask.*;
import ch.psi.utils.State;
import java.io.IOException;
/*
@@ -35,6 +36,8 @@ public class LaserUE extends SerialPortDevice{
protected void doInitialize() throws IOException, InterruptedException{
super.doInitialize();
//TODO: Start DAQ in ILD1320: http://www.micro-epsilon.com/download/manuals/man--optoNCDT-1320--en.pdf
setState(State.Ready);
write("OUTPUT RS422\n\r");
}
public Readable getReadable(){

Binary file not shown.

View File

@@ -0,0 +1,81 @@
import plotutils
from mathutils import fit_gaussian, Gaussian
d = robot.get_distance_to_pnt("pLaser")
if d<0:
raise Exception ("Error calculating distance to laser: " + str(d))
if d>20:
raise Exception ("Should be near the laser position to perform the scan")
RANGE = [-2.0, 2.0] #[-1.5, 1.5]
STEP = 0.02
Z_OFFSET = 0 #-1.0
LATENCY = 0.025
BORDER_SIZE = 0.15
robot.enable()
robot.set_motors_enabled(True)
current_positon = robot_x.getPosition()
robot_z.moveRel(Z_OFFSET)
robot.setPolling(25)
try:
ret = lscan(robot_x, ue.readable, RANGE[0], RANGE[1], STEP, latency = LATENCY, relative = True)
finally:
robot.setPolling(DEFAULT_ROBOT_POLLING)
d = ret.getReadable(0)
first_index = -1
last_index = -1
for i in range(len(d)):
if not math.isnan(d[i]):
if first_index<0:
first_index = i
last_index = i
if first_index == -1 or last_index < first_index:
raise Exception("Invalid range")
remove = int(max(BORDER_SIZE, STEP) / STEP)
_range = [first_index+remove, last_index-remove]
if _range[1] <= _range[0]:
raise Exception("Invalid range: " + str(_range))
center_index = int((_range[0] + _range[1])/2)
center_positon = ret.getPositions(0)[center_index]
y = ret.getReadable(0)[_range[0] : _range[1]]
x = ret.getPositions(0)[_range[0]: _range[1]]
#x = enforce_monotonic(x)
#(normalization, mean_val, sigma) = fit_gaussian([-v for v in y], x)
closest_x = x[y.indexOf(min(y))]
closest_y = y[y.indexOf(min(y))]
if closest_x is None or closest_x <= ret.getPositions(0)[first_index] or closest_x >= ret.getPositions(0)[last_index]:
raise Exception("Invalid Fit")
center_offset = center_positon-closest_y
#center_offset = current_positon-closest_y
p=get_plots()[0]
p.addMarker(closest_y, p.AxisId.X, str(closest_y), Color.GREEN)
robot.set_motors_enabled(True)
robot_x.move(closest_x)

View File

@@ -37,14 +37,14 @@ for i in range(len(d)):
last_index = i
if first_index == -1 or last_index < first_index:
raise Exception("Invalid X detection")
raise Exception("Invalid range")
remove = int(max(BORDER_SIZE, STEP) / STEP)
_range = [first_index+remove, last_index-remove]
if _range[1] <= _range[0]:
raise Exception("invalid range: " + str(_range))
raise Exception("Invalid range: " + str(_range))
center_index = int((_range[0] + _range[1])/2)

View File

@@ -0,0 +1,65 @@
import plotutils
from mathutils import fit_gaussian, Gaussian
cal_tool = TOOL_CALIBRATION
robot.set_tool(cal_tool)
robot.enable()
move_to_laser()
robot.set_motors_enabled(True)
robot.set_joint_motors_enabled(True)
initial_pos = robot.get_cartesian_pos()
#robot.align()
run("calibration/ScanX")
pos1 = robot.get_cartesian_pos()
x1, l1 = closest_x, closest_y
print "Closest 1: ", [x1, l1]
print "Position 1: ", pos1
pj6 = robot_j6.position
if pj6>0:
robot_j6.move(pj6 - 180.0)
else:
robot_j6.move(pj6 + 180.0)
run("calibration/ScanX")
x2, l2 = closest_x, closest_y
pos2 = robot.get_cartesian_pos()
print "Closest 2: ", [x2, l2]
print "Position 2: ", pos2
#Updates the tool
t=robot.get_tool_trsf(TOOL_DEFAULT)
xoff = (x1-x2)/2
yoff = (l2 - l1)/2
xrot = math.degrees(math.atan(yoff/t[2]))
yrot = math.degrees(math.atan(xoff/t[2]))
print "Former tool: " + str(t)
t[0]=xoff
t[1]=-yoff
print "Offset: ", [t[0], t[1]]
print "CALIBRATED tool: " + str(t)
#robot.set_tool_trsf(t, TOOL_DEFAULT)
robot.set_tool(TOOL_DEFAULT)
d = robot.get_distance_to_pnt("pLaser")
if d<POSITION_TOLERANCE:
print "Moving calibrated tool to laser"
#move_to_laser()
else:
print "Cannot move calibrated tool to laser: too big offset"

View File

@@ -134,7 +134,6 @@ def update_puck_table():
#Sample mount/unmount
def update_samples_info_sample_mount(puck_address, sample_position, sample_detected, sample_id):
print ""
try:
if (samples_info is not None) and (puck_address is not None):
for si in samples_info:
@@ -169,6 +168,24 @@ def update_samples_info_sample_unmount(puck_address, sample_position):
except:
pass
def update_samples_info_sample_scan(puck_address, sample_position, sample_detected, sample_id):
try:
if (samples_info is not None) and (puck_address is not None):
for si in samples_info:
if str(si["puckAddress"]) == str(puck_address) and str(si["samplePosition"]) == str(sample_position):
if sample_detected:
if si["sampleStatus"] == "Unknown":
si["sampleStatus"] = "Present"
else:
if si["sampleStatus"] == "Present":
si["sampleStatus"] = "Unknown"
if sample_id is not None:
si["sampleBarcode"] = sample_id
save_samples_info()
return
except:
pass
test_sample_data = [ \

View File

@@ -14,4 +14,4 @@ listenerAI = ListenerAI()
ue.addListener(listenerAI)
laser_distance=LaserDistance()
add_device(laser_distance, True)
add_device(laser_distance, True)

View File

@@ -57,7 +57,8 @@ class RobotSC(RobotTCP):
def put_gonio(self):
pin_offset = get_pin_offset()
self.start_task('putGonio', pin_offset)
pin_angle_offset = get_pin_angle_offset()
self.start_task('putGonio', pin_offset, pin_angle_offset)
self.wait_task_finished(TASK_WAIT_ROBOT_POLLING)
self.assert_gonio()

View File

@@ -124,9 +124,7 @@ def release_psys():
###################################################################################################
# Drier
###################################################################################################
MAX_HEATER_TIME = 45000
MAX_HEATER_TIME = 60000
def set_air_stream(state):
"""
@@ -138,6 +136,16 @@ def set_air_stream(state):
set_heater_chrono = None
def monitor_heater_time():
"""
"""
return valve_1.read()
def get_heater():
"""
"""
return gripper_dryer.read()
time.sleep(0.5)
try:
while get_heater():
@@ -165,8 +173,3 @@ def get_air_stream():
"""
return valve_1.read()
def get_heater():
"""
"""
return gripper_dryer.read()

View File

@@ -95,6 +95,7 @@ run("motion/move_cold")
run("motion/move_scanner")
run("motion/dry")
run("motion/homing_hexiposi")
run("motion/scan_pin")
run("motion/robot_recover")
run("motion/recover")
run("imgproc/Utils")
@@ -240,7 +241,7 @@ def is_puck_loading():
def set_pin_offset(val):
if abs(val) >5:
raise Exception("Invlid pin offset: " + str(val))
raise Exception("Invalid pin offset: " + str(val))
try:
set_setting("pin_offset",float(val))
except:
@@ -250,12 +251,31 @@ def get_pin_offset():
try:
ret = float(get_setting("pin_offset"))
if abs(ret) >5:
raise Exception("Invlid configured pin offset: " + str(ret))
raise Exception("Invalid configured pin offset: " + str(ret))
return ret
except:
log("Error getting pin offset: " + str(sys.exc_info()[1]), False)
return 0.0
def set_pin_angle_offset(val):
if (abs(val) > 180.0) or (abs(val) < -180.0):
raise Exception("Invalid pin angle offset: " + str(val))
try:
set_setting("pin_angle_offset",float(val))
except:
log("Error setting pin angle offset: " + str(sys.exc_info()[1]), False)
def get_pin_angle_offset():
try:
ret = float(get_setting("pin_angle_offset"))
if (abs(ret) > 180.0) or (abs(ret) < -180.0):
raise Exception("Invalid configured pin angle offset: " + str(ret))
return ret
except:
log("Error getting pin angle offset: " + str(sys.exc_info()[1]), False)
return 0.0
def is_force_dry():
try:
dry_mount_counter = int(get_setting("dry_mount_counter"))

View File

@@ -1,6 +1,6 @@
def dry(heat_time=30.0, speed=0.5, wait_cold = 30.0):
def dry(heat_time=30.0, speed=0.4, wait_cold = 30.0):
"""
heat_time (float): in seconds
speed (float): % of nominal speed
@@ -9,7 +9,7 @@ def dry(heat_time=30.0, speed=0.5, wait_cold = 30.0):
"""
print "dry"
#Initial checks
#Initial chec
robot.assert_no_task()
robot.reset_motion()
robot.wait_ready()
@@ -40,4 +40,4 @@ def dry(heat_time=30.0, speed=0.5, wait_cold = 30.0):
robot.move_cold()
time.sleep(wait_cold)
else:
robot.move_dewar()
robot.move_park()

View File

@@ -56,7 +56,7 @@ def mount(segment, puck, sample, force=False, read_dm=False):
if read_dm:
barcode_reader.start_read(10.0)
robot.move_scanner()
time.sleep(1.0)
#time.sleep(1.0)
robot.move_gonio()

View File

@@ -1,3 +1,4 @@
def move_scanner():
"""
"""
@@ -13,14 +14,17 @@ def move_scanner():
#Enabling
enable_motion()
#barcode_reader.start_read(20.0)
barcode_reader.start_read(10.0)
if not robot.is_scanner():
robot.move_scanner()
#robot.do_scan()
#dm = barcode_reader.get_readout()
dm = barcode_reader.read(0.5)
time.sleep(0.25)
dm = barcode_reader.get_readout()
if dm is None:
detected = is_pin_detected_in_scanner()
else:
detected = True
print "Datamatrix: " , dm
#print "Datamatrix: " , barcode_reader.wait_readout()
print ("Detected: " + str( detected) + " - Datamatrix: " + str(dm))
return (detected, dm)

View File

@@ -1,48 +1,42 @@
segment, puck, sample, force = "B",1,1, True
pin_name = get_sample_name(segment, puck, sample)
def scan_pin(segment, puck, sample, force=False):
pin_name = get_sample_name(segment, puck, sample)
print "scan pin", pin_name
#Initial checks
assert_valid_address(segment, puck, sample)
assert_puck_detected(segment, puck)
robot.assert_no_task()
robot.reset_motion()
robot.wait_ready()
robot.assert_cleared()
#robot.assert_in_known_point()
#Enabling
set_status("Scanning pin: " + str(pin_name))
enable_motion()
set_hexiposi(segment)
if not force:
visual_check_hexiposi(segment)
if not robot.is_dewar():
robot.move_dewar()
robot.get_dewar(segment, puck, sample)
(detected, dm) = move_scanner()
update_samples_info_sample_scan(get_puck_name(segment, puck), sample, detected, dm)
robot.move_dewar()
robot.put_dewar(segment, puck, sample)
return (detected, dm)
print "scan pin", pin_name
#Initial checks
robot.assert_no_task()
robot.reset_motion()
robot.wait_ready()
robot.assert_cleared()
#robot.assert_in_known_point()
#Enabling
set_status("Scanning pin: " + str(pin_name))
enable_motion()
set_hexiposi(segment)
if not force:
visual_check_hexiposi(segment)
robot.move_park()
gripper_cam.update()
background_img = gripper_cam.getImage()
if not robot.is_dewar():
robot.move_dewar()
robot.get_dewar(segment, puck, sample)
robot.move_park()
gripper_cam.update()
sample_img = gripper_cam.getImage()
barcode_reader.start_read(10.0)
robot.move_scanner()
time.sleep(1.0)
mount_sample_id = barcode_reader.get_readout()
print "Datamatrix: " , mount_sample_id
robot.move_dewar()
robot.put_dewar(segment, puck, sample)
def scan_puck(segment, puck, force=False):
ret = []
for i in range(16):
ret.append(scan_pin (segment, puck, i+1, force))
return ret

View File

@@ -155,4 +155,16 @@ def get_sample_name(segment, puck, sample):
puck_name = get_puck_name(segment, puck)
return None if (puck_name is None) else puck_name + str(sample)
def is_pin_detected_in_scanner():
samples = []
for i in range(10):
samples.append(laser_distance.read())
time.sleep(0.05)
av = mean(samples)
for s in samples:
if s<=1:
return False
if abs(s-av) > 0.1:
return False
return True