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