00001
00002
00003
00004
00005
00006
00007 package GuiComponents.SctApi;
00008
00009 import javax.swing.DefaultComboBoxModel;
00010 import GuiComponents.System.SystemInterface;
00011
00017 public class DdcDiagnostics extends javax.swing.JPanel {
00018
00019
00020 private Sct_SctApi.SctApiDDCServer apiDDC;
00021
00022 private String dataValue;
00023
00025 public DdcDiagnostics(Sct_SctApi.SctApiDDCServer a) {
00026 apiDDC = a;
00027 initComponents();
00028 }
00029
00031 public DdcDiagnostics() {
00032 apiDDC = SystemInterface.getInstance().getSctApiDDCServer();
00033 initComponents();
00034 }
00035
00036 public static void main(String [] args) {
00037 javax.swing.JFrame f = new javax.swing.JFrame("DDC Diag test");
00038
00039 f.getContentPane().add(new DdcDiagnostics());
00040 f.pack();
00041 f.setVisible(true);
00042 }
00043
00049 private void initComponents() {
00050 jPanel1 = new javax.swing.JPanel();
00051 jPanel2 = new javax.swing.JPanel();
00052 jLabel1 = new javax.swing.JLabel();
00053 crateValueText = new javax.swing.JTextField();
00054 jPanel4 = new javax.swing.JPanel();
00055 allChannelCheck = new javax.swing.JCheckBox();
00056 jPanel5 = new javax.swing.JPanel();
00057 jLabel2 = new javax.swing.JLabel();
00058 channelValueText = new javax.swing.JTextField();
00059 jLabel3 = new javax.swing.JLabel();
00060 stateCombo = new javax.swing.JComboBox();
00061 jPanel3 = new javax.swing.JPanel();
00062 jButton1 = new javax.swing.JButton();
00063 jButton2 = new javax.swing.JButton();
00064 jButton3 = new javax.swing.JButton();
00065 jPanel6 = new javax.swing.JPanel();
00066 jLabel4 = new javax.swing.JLabel();
00067 parameterCombo = new javax.swing.JComboBox();
00068 jLabel5 = new javax.swing.JLabel();
00069 jPanel8 = new javax.swing.JPanel();
00070 valueFloatText = new javax.swing.JTextField();
00071 valueText = new javax.swing.JTextField();
00072 jPanel7 = new javax.swing.JPanel();
00073 jButton4 = new javax.swing.JButton();
00074 jButton5 = new javax.swing.JButton();
00075 jButton6 = new javax.swing.JButton();
00076 jPanel9 = new javax.swing.JPanel();
00077 jButton7 = new javax.swing.JButton();
00078 jButton8 = new javax.swing.JButton();
00079 jButton9 = new javax.swing.JButton();
00080
00081 setLayout(new java.awt.BorderLayout());
00082
00083 jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.Y_AXIS));
00084
00085 jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.X_AXIS));
00086
00087 jLabel1.setText("Crate");
00088 jPanel2.add(jLabel1);
00089
00090 crateValueText.setText("0");
00091 jPanel2.add(crateValueText);
00092
00093 jPanel4.setLayout(new javax.swing.BoxLayout(jPanel4, javax.swing.BoxLayout.Y_AXIS));
00094
00095 allChannelCheck.setText("All Channels");
00096 allChannelCheck.addChangeListener(new javax.swing.event.ChangeListener() {
00097 public void stateChanged(javax.swing.event.ChangeEvent evt) {
00098 allChannelsStateChanged(evt);
00099 }
00100 });
00101
00102 jPanel4.add(allChannelCheck);
00103
00104 jPanel5.setLayout(new javax.swing.BoxLayout(jPanel5, javax.swing.BoxLayout.X_AXIS));
00105
00106 jLabel2.setText("Channel");
00107 jPanel5.add(jLabel2);
00108
00109 channelValueText.setText("0");
00110 jPanel5.add(channelValueText);
00111
00112 jPanel4.add(jPanel5);
00113
00114 jPanel2.add(jPanel4);
00115
00116 jLabel3.setText("New State");
00117 jPanel2.add(jLabel3);
00118
00119 stateCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "ON", "OFF", "STANDBY" }));
00120 jPanel2.add(stateCombo);
00121
00122 jPanel1.add(jPanel2);
00123
00124 jPanel3.setLayout(new javax.swing.BoxLayout(jPanel3, javax.swing.BoxLayout.X_AXIS));
00125
00126 jButton1.setText("Perform Hard Reset");
00127 jButton1.addActionListener(new java.awt.event.ActionListener() {
00128 public void actionPerformed(java.awt.event.ActionEvent evt) {
00129 hardResetActionPerformed(evt);
00130 }
00131 });
00132
00133 jPanel3.add(jButton1);
00134
00135 jButton2.setText("Change state");
00136 jButton2.addActionListener(new java.awt.event.ActionListener() {
00137 public void actionPerformed(java.awt.event.ActionEvent evt) {
00138 changeStateActionPerformed(evt);
00139 }
00140 });
00141
00142 jPanel3.add(jButton2);
00143
00144 jButton3.setText("Load configuration to ELMB FLASH");
00145 jButton3.addActionListener(new java.awt.event.ActionListener() {
00146 public void actionPerformed(java.awt.event.ActionEvent evt) {
00147 loadConfigActionPerformed(evt);
00148 }
00149 });
00150
00151 jPanel3.add(jButton3);
00152
00153 jPanel1.add(jPanel3);
00154
00155 jPanel6.setLayout(new javax.swing.BoxLayout(jPanel6, javax.swing.BoxLayout.X_AXIS));
00156
00157 jLabel4.setText("Parameter");
00158 jPanel6.add(jLabel4);
00159
00160 parameterCombo.setModel(new DefaultComboBoxModel(getParameterList()));
00161 jPanel6.add(parameterCombo);
00162
00163 jLabel5.setText("Value");
00164 jPanel6.add(jLabel5);
00165
00166 jPanel8.setLayout(new javax.swing.BoxLayout(jPanel8, javax.swing.BoxLayout.Y_AXIS));
00167
00168 valueFloatText.setEditable(false);
00169 valueFloatText.setText(null);
00170 jPanel8.add(valueFloatText);
00171
00172 valueText.setEditable(false);
00173 valueText.setText(null);
00174 jPanel8.add(valueText);
00175
00176 jPanel6.add(jPanel8);
00177
00178 jPanel1.add(jPanel6);
00179
00180 jButton4.setText("Get channel parameter");
00181 jButton4.addActionListener(new java.awt.event.ActionListener() {
00182 public void actionPerformed(java.awt.event.ActionEvent evt) {
00183 channelParameterGetPerformed(evt);
00184 }
00185 });
00186
00187 jPanel7.add(jButton4);
00188
00189 jButton5.setText("Get card parameter");
00190 jButton5.addActionListener(new java.awt.event.ActionListener() {
00191 public void actionPerformed(java.awt.event.ActionEvent evt) {
00192 cardParameterGetPerformed(evt);
00193 }
00194 });
00195
00196 jPanel7.add(jButton5);
00197
00198 jButton6.setText("Get crate parameter");
00199 jButton6.addActionListener(new java.awt.event.ActionListener() {
00200 public void actionPerformed(java.awt.event.ActionEvent evt) {
00201 crateParameterGetPerformed(evt);
00202 }
00203 });
00204
00205 jPanel7.add(jButton6);
00206
00207 jPanel1.add(jPanel7);
00208
00209 jButton7.setText("Set channel parameter");
00210 jButton7.addActionListener(new java.awt.event.ActionListener() {
00211 public void actionPerformed(java.awt.event.ActionEvent evt) {
00212 channelParameterSetPerformed(evt);
00213 }
00214 });
00215
00216 jPanel9.add(jButton7);
00217
00218 jButton8.setText("Set card parameter");
00219 jButton8.addActionListener(new java.awt.event.ActionListener() {
00220 public void actionPerformed(java.awt.event.ActionEvent evt) {
00221 cardParameterSetPerformed(evt);
00222 }
00223 });
00224
00225 jPanel9.add(jButton8);
00226
00227 jButton9.setText("Set crate parameter");
00228 jButton9.addActionListener(new java.awt.event.ActionListener() {
00229 public void actionPerformed(java.awt.event.ActionEvent evt) {
00230 crateParameterSetPerformed(evt);
00231 }
00232 });
00233
00234 jPanel9.add(jButton9);
00235
00236 jPanel1.add(jPanel9);
00237
00238 add(jPanel1, java.awt.BorderLayout.CENTER);
00239
00240 }
00241
00242 private void channelParameterSetPerformed(java.awt.event.ActionEvent evt) {
00243 System.out.println("Set channel parameter: " + getCrateValue() + " " + getChannelValue() + " " + getParameterName());
00244 if(apiDDC != null) {
00245 javax.swing.JOptionPane.showMessageDialog(null, "Channel set not implemented");
00246
00247 }
00248 }
00249
00250 private void crateParameterSetPerformed(java.awt.event.ActionEvent evt) {
00251 System.out.println("Set crate parameter: " + getCrateValue() + " " + getChannelValue() + " " + getParameterName());
00252 if(apiDDC != null) {
00253 javax.swing.JOptionPane.showMessageDialog(null, "Crate set not implemented");
00254
00255 }
00256 }
00257
00258 private void cardParameterSetPerformed(java.awt.event.ActionEvent evt) {
00259 System.out.println("Set card parameter: " + getCrateValue() + " " + getChannelValue() + " " + getParameterName());
00260 if(apiDDC != null) {
00261 javax.swing.JOptionPane.showMessageDialog(null, "Channel set not implemented");
00262
00263 }
00264 }
00265
00266 private void channelParameterGetPerformed(java.awt.event.ActionEvent evt) {
00267 System.out.println("Get channel: " + getCrateValue() + " " + getChannelValue() + " " + getParameterName());
00268 if(apiDDC != null) {
00269 String value = apiDDC.ddcGetChannelParameterString(getCrateValue(), getChannelValue(), getParameterName());
00270 valueText.setText(value);
00271 float floatValue = apiDDC.ddcGetChannelParameterFloat(getCrateValue(), getChannelValue(), getParameterName());
00272 valueFloatText.setText("(" + floatValue + ")");
00273 }
00274 }
00275
00276 private void cardParameterGetPerformed(java.awt.event.ActionEvent evt) {
00277 System.out.println("Get card: " + getCrateValue() + " " + getChannelValue() + " " + getParameterName());
00278 if(apiDDC != null) {
00279 String value = apiDDC.ddcGetCardParameterString(getCrateValue(), getChannelValue(), getParameterName());
00280 valueText.setText(value);
00281 float floatValue = apiDDC.ddcGetCardParameterFloat(getCrateValue(), getChannelValue(), getParameterName());
00282 valueFloatText.setText("(" + floatValue + ")");
00283 }
00284 }
00285
00286 private void crateParameterGetPerformed(java.awt.event.ActionEvent evt) {
00287 System.out.println("Get crate: " + getCrateValue() + " " + getParameterName());
00288 if(apiDDC != null) {
00289 String value = apiDDC.ddcGetCrateParameterString(getCrateValue(), getParameterName());
00290 valueText.setText(value);
00291 float floatValue = apiDDC.ddcGetCrateParameterFloat(getCrateValue(), getParameterName());
00292 valueFloatText.setText("(" + floatValue + ")");
00293 }
00294 }
00295
00296 private void hardResetActionPerformed(java.awt.event.ActionEvent evt) {
00297 if(allChannelCheck.isSelected()) {
00298 System.out.println("Hard reset all: " + getCrateValue());
00299 if(apiDDC != null) {
00300 apiDDC.ddcHardResetAll(getCrateValue());
00301 }
00302 } else {
00303 System.out.println("Hard reset: " + getCrateValue() + " " + getChannelValue());
00304 if(apiDDC != null) {
00305 apiDDC.ddcHardReset(getCrateValue(), getChannelValue());
00306 }
00307 }
00308 }
00309
00310 private void loadConfigActionPerformed(java.awt.event.ActionEvent evt) {
00311 System.out.println("Load configuration: " + getCrateValue() + " " + getNewState());
00312 if(apiDDC != null) {
00313 apiDDC.ddcLoadConfiguration(getCrateValue(), getNewState());
00314 }
00315 }
00316
00317 private void changeStateActionPerformed(java.awt.event.ActionEvent evt) {
00318 short state = getNewState();
00319
00320 if(state >=0 ) {
00321 if(allChannelCheck.isSelected()) {
00322 System.out.println("Change state all: " + getCrateValue() + " " + state);
00323 if(apiDDC != null) {
00324 apiDDC.ddcChangeStateAll(getCrateValue(), state);
00325 }
00326 } else {
00327 System.out.println("Change state: " + getCrateValue() + " " + getChannelValue() + " " + state);
00328 if(apiDDC != null) {
00329 apiDDC.ddcChangeState(getCrateValue(), getChannelValue(), state);
00330 }
00331 }
00332 }
00333 }
00334
00335 private void allChannelsStateChanged(javax.swing.event.ChangeEvent evt) {
00336 channelValueText.setEnabled(!((javax.swing.JCheckBox)evt.getSource()).getModel().isSelected());
00337 }
00338
00339 String getDataValue() {
00340 return dataValue;
00341 }
00342
00343 int getCrateValue() {
00344 return Long.decode(crateValueText.getText()).intValue();
00345 }
00346
00347 short getNewState() {
00348 short state = -1;
00349
00350 if(stateCombo.getSelectedItem().equals("ON")) {
00351 state = 1;
00352 } else if(stateCombo.getSelectedItem().equals("OFF")) {
00353 state = 0;
00354 } else if(stateCombo.getSelectedItem().equals("STANDBY")) {
00355 state = 2;
00356 } else {
00357
00358 System.out.println("Strange state " + stateCombo.getSelectedItem());
00359 state = -1;
00360 }
00361
00362 return state;
00363 }
00364
00365 int getChannelValue() {
00366 return Long.decode(channelValueText.getText()).intValue();
00367 }
00368
00369 String getParameterName() {
00370 return (String)parameterCombo.getSelectedItem();
00371 }
00372
00373 public String[] getParameterList() {
00374 SystemInterface sys = SystemInterface.getInstance();
00375 sctConf.Configuration conf = sys.getConfigurationService();
00376 try {
00377 String[] channel = conf.listDCSChannelParams();
00378 String[] card = conf.listDCSCardParams();
00379 String[] crate = conf.listDCSCrateParams();
00380 String[] result = new String[channel.length + card.length + crate.length];
00381 for(int i=0; i<channel.length; i++) {
00382 result[i] = channel[i];
00383 }
00384 for(int i=0; i<card.length; i++) {
00385 result[i + channel.length] = card[i];
00386 }
00387 for(int i=0; i<crate.length; i++) {
00388 result[i + channel.length + card.length] = crate[i];
00389 }
00390 return result;
00391 } catch(sctConf.ConfigurationException e) {
00392 String [] defaults = {"LVch_Vcc"};
00393
00394 return defaults;
00395 }
00396 }
00397
00398
00399 private javax.swing.JCheckBox allChannelCheck;
00400 private javax.swing.JTextField channelValueText;
00401 private javax.swing.JTextField crateValueText;
00402 private javax.swing.JButton jButton1;
00403 private javax.swing.JButton jButton2;
00404 private javax.swing.JButton jButton3;
00405 private javax.swing.JButton jButton4;
00406 private javax.swing.JButton jButton5;
00407 private javax.swing.JButton jButton6;
00408 private javax.swing.JButton jButton7;
00409 private javax.swing.JButton jButton8;
00410 private javax.swing.JButton jButton9;
00411 private javax.swing.JLabel jLabel1;
00412 private javax.swing.JLabel jLabel2;
00413 private javax.swing.JLabel jLabel3;
00414 private javax.swing.JLabel jLabel4;
00415 private javax.swing.JLabel jLabel5;
00416 private javax.swing.JPanel jPanel1;
00417 private javax.swing.JPanel jPanel2;
00418 private javax.swing.JPanel jPanel3;
00419 private javax.swing.JPanel jPanel4;
00420 private javax.swing.JPanel jPanel5;
00421 private javax.swing.JPanel jPanel6;
00422 private javax.swing.JPanel jPanel7;
00423 private javax.swing.JPanel jPanel8;
00424 private javax.swing.JPanel jPanel9;
00425 private javax.swing.JComboBox parameterCombo;
00426 private javax.swing.JComboBox stateCombo;
00427 private javax.swing.JTextField valueFloatText;
00428 private javax.swing.JTextField valueText;
00429
00430
00431 }