00001
00002
00003
00004
00005
00006
00007 package GuiComponents.SctApi;
00008
00013 public class TimDiagnostics extends javax.swing.JPanel {
00014 TimTableModel tableModel;
00015
00016 int partition;
00017 int crate;
00018
00019 Sct_SctApi.SctApiIPC api;
00020
00022 public TimDiagnostics() {
00023 initComponents();
00024 }
00025
00027 public TimDiagnostics(int p, int c, Sct_SctApi.SctApiIPC a) {
00028 partition = p;
00029 crate = c;
00030 api = a;
00031
00032 initComponents();
00033
00034 }
00035
00041 private void initComponents() {
00042 jPanel2 = new javax.swing.JPanel();
00043 jLabel3 = new javax.swing.JLabel();
00044 jTextField2 = new javax.swing.JTextField();
00045 jLabel4 = new javax.swing.JLabel();
00046 jTextField3 = new javax.swing.JTextField();
00047 jPanel1 = new javax.swing.JPanel();
00048 jScrollPane1 = new javax.swing.JScrollPane();
00049 jTable1 = new javax.swing.JTable();
00050
00051 setLayout(new java.awt.BorderLayout());
00052
00053 jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.X_AXIS));
00054
00055 jLabel3.setText("Partition");
00056 jPanel2.add(jLabel3);
00057
00058 jTextField2.setEditable(false);
00059 jTextField2.setText(new Integer(getPartition()).toString());
00060 jPanel2.add(jTextField2);
00061
00062 jLabel4.setText("Crate");
00063 jPanel2.add(jLabel4);
00064
00065 jTextField3.setEditable(false);
00066 jTextField3.setText(new Integer(getCrate()).toString());
00067 jPanel2.add(jTextField3);
00068
00069 add(jPanel2, java.awt.BorderLayout.NORTH);
00070
00071 jTable1.setModel(getTimTableModel());
00072 jScrollPane1.setViewportView(jTable1);
00073
00074 jPanel1.add(jScrollPane1);
00075
00076 add(jPanel1, java.awt.BorderLayout.CENTER);
00077
00078 }
00079
00080 int getPartition() {
00081 return partition;
00082 }
00083
00084 int getCrate() {
00085 return crate;
00086 }
00087
00088 TimTableModel getTimTableModel() {
00089 if(tableModel == null)
00090 tableModel = new TimTableModel();
00091 return tableModel;
00092 }
00093
00094 static final String timRegNames[] = {
00095 "Enables", "Command", "Burst Count", "Frequency",
00096 "Window", "Delay", "Status", "FIFO",
00097 "Trigger IDlo", "Trigger IDhi", "Trigger Bunch", "Trigger Type",
00098 "Run Enables", "Sequencer", "Sequencer End", "ROD mask",
00099 "ROD BUSY", "ROD latch", "ROD Monitor", "TTC Data",
00100 "TTC Select", "TTC BCID", "TTCrx Access", "TTC status",
00101 "TIM Output", "TIM ID"
00102 };
00103
00104
00105 public class TimTableModel extends javax.swing.table.AbstractTableModel {
00106 String [] dataArray;
00107
00108 public TimTableModel() {
00109
00110 }
00111
00112 public void newData(String [] data) {
00113 dataArray = data;
00114 fireTableDataChanged();
00115 }
00116
00117 public int getColumnCount() {
00118 return 3;
00119 }
00120
00121 public int getRowCount() {
00122 return 32;
00123 }
00124
00125 public Object getValueAt(int rowIndex, int columnIndex) {
00126 switch(columnIndex) {
00127 case 0: return "" + (rowIndex * 2);
00128 case 1: return timRegNames[rowIndex];
00129 case 2: return "0x" + api.timReadRegister(partition, crate, (short)rowIndex);
00130 default: return "---";
00131 }
00132 }
00133
00134 public void setValueAt(Object value, int rowIndex, int columnIndex) {
00135 if(columnIndex == 2) {
00136 Integer intValue = Integer.decode((String)value);
00137 api.timWriteRegister(partition, crate, (short)rowIndex, intValue.shortValue());
00138 }
00139 }
00140
00141 public String getColumnName(int columnIndex) {
00142 String retValue;
00143
00144 switch(columnIndex) {
00145 case 0: retValue = "Address"; break;
00146 case 1: retValue = "Name"; break;
00147 case 2: retValue = "Value"; break;
00148 default: retValue = "Unkown"; break;
00149 }
00150
00151 return retValue;
00152 }
00153 }
00154
00155
00156 private javax.swing.JLabel jLabel3;
00157 private javax.swing.JLabel jLabel4;
00158 private javax.swing.JPanel jPanel1;
00159 private javax.swing.JPanel jPanel2;
00160 private javax.swing.JScrollPane jScrollPane1;
00161 private javax.swing.JTable jTable1;
00162 private javax.swing.JTextField jTextField2;
00163 private javax.swing.JTextField jTextField3;
00164
00165
00166 }