diff --git a/deploy/packaging/debian/rfxdevices.noarch b/deploy/packaging/debian/rfxdevices.noarch index d0d097077a..27f5fc35ab 100644 --- a/deploy/packaging/debian/rfxdevices.noarch +++ b/deploy/packaging/debian/rfxdevices.noarch @@ -28,6 +28,8 @@ ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_COMPONENT.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_CONVERSION.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_DUTY_CYCLE.py +./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_EPICS_IN.py +./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_EPICS_OUT.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_EXPR.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_FFT.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_GAM.py diff --git a/deploy/packaging/redhat/rfxdevices.noarch b/deploy/packaging/redhat/rfxdevices.noarch index a21081378a..cf3c3ef3df 100644 --- a/deploy/packaging/redhat/rfxdevices.noarch +++ b/deploy/packaging/redhat/rfxdevices.noarch @@ -29,6 +29,8 @@ ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_COMPONENT.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_CONVERSION.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_DUTY_CYCLE.py +./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_EPICS_IN.py +./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_EPICS_OUT.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_EXPR.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_FFT.py ./usr/local/mdsplus/pydevices/RfxDevices/MARTE2_GAM.py diff --git a/device_support/national/cRioFAUfunction.cpp b/device_support/national/cRioFAUfunction.cpp index 14ff38fa13..9893de2c30 100644 --- a/device_support/national/cRioFAUfunction.cpp +++ b/device_support/national/cRioFAUfunction.cpp @@ -1,4 +1,6 @@ #include "cRioFAUfunction.h" +//#include +#include using namespace MDSplus; @@ -50,25 +52,26 @@ class FAUSaveItem void save() { -#include - - struct timespec before, after; - long elapsed_nsecs; + //struct timespec before, after; + //long elapsed_nsecs; /* handle connection */ + + Tree *tree = new Tree(((Tree *)treePtr)->getName(), ((Tree *)treePtr)->getShot()); + try { - clock_gettime(CLOCK_REALTIME, &before); + //clock_gettime(CLOCK_REALTIME, &before); for (int j = 0; j < nDio; j++) { TreeNode *currNode = - new TreeNode(((int *)dataNids)[j], (Tree *)treePtr); + new TreeNode(((int *)dataNids)[j], (Tree *)tree); timeArrData = new Float64Array(&time[j * currSize], currSizeA[j]); start = new Float64(time[j * currSize]); - end = new Float64(time[(currSizeA[j] - 1) + j * currSize]); + end = new Float64(time[(currSizeA[j] - 1) + j * currSize]); dataArrData = new Uint8Array(&data[j * currSize], currSizeA[j]); currNode->makeSegment(start, end, timeArrData, dataArrData); @@ -86,9 +89,10 @@ class FAUSaveItem free(time); free(data); + /* clock_gettime(CLOCK_REALTIME, &after); - /* + elapsed_nsecs = (after.tv_sec - before.tv_sec) * 1000000000 + (after.tv_nsec - before.tv_nsec); @@ -108,22 +112,31 @@ extern "C" void *FAUhandleSave(void *listPtr); class FAUSaveList { public: - pthread_cond_t FAUitemAvailable; pthread_t thread; bool threadCreated; FAUSaveItem *saveHead, *saveTail; bool stopReq; pthread_mutex_t mutex; + pthread_cond_t FAUitemAvailable; public: FAUSaveList() { int status = pthread_mutex_init(&mutex, NULL); + printf("pthread_mutex_init status %d\n", status); + status = pthread_cond_init(&FAUitemAvailable, NULL); + printf("pthread_cond_init status %d %p\n", status, &FAUitemAvailable); + saveHead = saveTail = NULL; stopReq = false; threadCreated = false; } + ~FAUSaveList() + { + printf("Destructor\n"); + } + void addItem(uint8_t *value, double *time, double trigTime, int *currSizeA, int currSize, size_t nDio, int *dataNids, Tree *treePtr) { @@ -145,29 +158,30 @@ class FAUSaveList void executeItems() { int __count = 0; - // printf("Start executeItems\n"); + printf("Start executeItems\n"); + while (true) { - // printf("Get mutex executeItems\n"); + //printf("Get mutex executeItems\n"); pthread_mutex_lock(&mutex); if (stopReq && saveHead == NULL) { - // printf("Stop executeItems\n"); + printf("Stop executeItems\n"); pthread_mutex_unlock(&mutex); pthread_exit(NULL); } while (saveHead == NULL) { - // printf("Wait executeItems %p\n", &FAUitemAvailable); + //printf("Wait executeItems %p %p\n", this_id, &FAUitemAvailable); pthread_cond_wait(&FAUitemAvailable, &mutex); if (stopReq && saveHead == NULL) { - // printf("Stop executeItems\n"); + printf("Stop executeItems\n"); pthread_mutex_unlock(&mutex); pthread_exit(NULL); } - // printf("Exit Wait executeItems\n"); + printf("Exit Wait executeItems\n"); } FAUSaveItem *currItem = saveHead; saveHead = saveHead->getNext(); @@ -195,12 +209,14 @@ class FAUSaveList void start() { + printf("START SAVE THREAD\n"); pthread_create(&thread, NULL, FAUhandleSave, (void *)this); threadCreated = true; } + void stop() { - printf("START SAVE THREAD TERMINATED\n"); + printf("STOP SAVE THREAD %p %p\n"); printf("Pendig Items %d\n", getItemPending()); stopReq = true; pthread_cond_signal(&FAUitemAvailable); @@ -209,7 +225,7 @@ class FAUSaveList printf("Join thread\n"); pthread_join(thread, NULL); } - printf("EXIT SAVE THREAD TERMINATED\n"); + printf("EXIT SAVE THREAD\n"); } }; @@ -464,7 +480,7 @@ NiFpga_Status pauseFauAcquisition(NiFpga_Session session) int fauQueuedAcqData(NiFpga_Session session, void *fauList, double tickPeriod, double trigTime, size_t maxSamp, size_t nDio, - void *treePtr, void *dataNidPtr, uint8_t *stopFlag) + void *treePtr, void *dataNidPtr, int *stopFlag) { NiFpga_Status status = NiFpga_Status_Success; @@ -484,24 +500,24 @@ int fauQueuedAcqData(NiFpga_Session session, void *fauList, double tickPeriod, maxSamp = MIN_SEGMENT; data = (uint8_t *)calloc(maxSamp * nDio, sizeof(uint8_t)); - time = (double *)calloc(maxSamp, sizeof(double)); + time = (double *) calloc(maxSamp, sizeof(double)); - while ((!*(uint8_t *)stopFlag) == 1) + + while ((!*(int *)stopFlag) == 1) { - currSize = readFauFifoData(session, data, time, tickPeriod, &maxSamp, nDio, - stopFlag); + currSize = readFauFifoData(session, data, time, tickPeriod, &maxSamp, nDio, stopFlag); + + printf("curr size %d nDio %d maxSamp %d \n", currSize, nDio, maxSamp); if (currSize > 0) { - printf("\rFau Acq %c", simb[__count++ % 5]); - fflush(stdout); - - // printf("curr size %d nDio %d maxSamp %d \n", currSize, nDio, maxSamp); + //printf("\rFau Acq %c", simb[__count++ % 5]); + //fflush(stdout); uint8_t b; uint8_t *dataQ = (uint8_t *)calloc(currSize * nDio, sizeof(uint8_t)); - double *timeQ = (double *)calloc(currSize * nDio, sizeof(double)); - int *currSizeA = (int *)calloc(nDio, sizeof(int)); + double *timeQ = (double *) calloc(currSize * nDio, sizeof(double)); + int *currSizeA = (int *) calloc(nDio, sizeof(int)); for (int i = 0; i < currSize; i++) { @@ -509,8 +525,7 @@ int fauQueuedAcqData(NiFpga_Session session, void *fauList, double tickPeriod, { b = data[i + j * maxSamp]; - if (i == 0 || i == (currSize - 1) || - (i >= 1 && data[(i - 1) + j * maxSamp] != b)) + if (i == 0 || i == (currSize - 1) || (i >= 1 && data[(i - 1) + j * maxSamp] != b)) { dataQ[currSizeA[j] + j * currSize] = b; timeQ[currSizeA[j] + j * currSize] = time[i] + trigTime; @@ -518,24 +533,21 @@ int fauQueuedAcqData(NiFpga_Session session, void *fauList, double tickPeriod, } } } - - ((FAUSaveList *)fauList) - ->addItem(dataQ, timeQ, trigTime, currSizeA, currSize, nDio, dataNids, - (Tree *)treePtr); + ((FAUSaveList *)fauList)->addItem(dataQ, timeQ, trigTime, currSizeA, currSize, nDio, dataNids, (Tree *)treePtr); } } free(data); free(time); - printf("EXIT from fauQueuedAcqData %d \n", (!*(int *)stopFlag)); + printf("EXIT from fauQueuedAcqData %d \n", (*(int *)stopFlag)); return 0; } int fauSaveAcqData(NiFpga_Session session, double tickPeriod, double trigTime, size_t maxSamp, size_t nDio, void *treePtr, void *dataNidPtr, - uint8_t *stopFlag) + int *stopFlag) { NiFpga_Status status = NiFpga_Status_Success; int currSize = 0; @@ -546,10 +558,9 @@ int fauSaveAcqData(NiFpga_Session session, double tickPeriod, double trigTime, int *dataNids = (int *)dataNidPtr; data = (uint8_t *)calloc(maxSamp * nDio, sizeof(uint8_t)); - time = (double *)calloc(maxSamp, sizeof(double)); + time = (double *) calloc(maxSamp, sizeof(double)); - currSize = readFauFifoData(session, data, time, tickPeriod, &maxSamp, nDio, - stopFlag); + currSize = readFauFifoData(session, data, time, tickPeriod, &maxSamp, nDio, stopFlag); timeDio = (double *)calloc(currSize * nDio, sizeof(double)); currSizeA = (int *)calloc(nDio, sizeof(int)); @@ -559,8 +570,7 @@ int fauSaveAcqData(NiFpga_Session session, double tickPeriod, double trigTime, for (int j = 0; j < nDio; j++) { b = data[i + j * maxSamp]; - if (i == 0 || i == (currSize - 1) || - (i >= 1 && data[(i - 1) + j * maxSamp] != b)) + if (i == 0 || i == (currSize - 1) || (i >= 1 && data[(i - 1) + j * maxSamp] != b)) { data[currSizeA[j] + j * maxSamp] = b; timeDio[currSizeA[j] + j * currSize] = time[i] + trigTime; @@ -600,7 +610,7 @@ int fauSaveAcqData(NiFpga_Session session, double tickPeriod, double trigTime, end = new Float64(timeDio[(currSizeA[j] - 1) + j * currSize]); dataArrData = new Uint8Array(&data[j * maxSamp], currSizeA[j]); - // currNode[j]->beginSegment(start, end, timeArrData, dataArrData); + // currNode[j]->beginSegment(start, end, timeArrData, dataArrData); currNode[j]->makeSegment(start, end, timeArrData, dataArrData); delete dataArrData; @@ -623,7 +633,7 @@ int fauSaveAcqData(NiFpga_Session session, double tickPeriod, double trigTime, int readFauFifoData(NiFpga_Session session, uint8_t *data, double *time, double tickPeriod, size_t *maxSampPtr, size_t nDio, - uint8_t *stopFlag) + int *stopFlag) { NiFpga_Status status = NiFpga_Status_Success; size_t currSize = 0; @@ -650,26 +660,26 @@ int readFauFifoData(NiFpga_Session session, uint8_t *data, double *time, noDataCount = 0; // while( currSize < maxSamp && count < MAX_COUNT && !( count > MAX_COUNT/2 && // currSize > MIN_SEGMENT ) ) - while (currSize < maxSamp && count < MAX_COUNT && currSize < MIN_SEGMENT && - *(int *)stopFlag == 0) + while (currSize < maxSamp && count < MAX_COUNT && currSize < MIN_SEGMENT && *(int *)stopFlag == 0) { count++; - /* - if( __count % 10000 == 0 ) +/* + if( __count % 1 == 0 ) { printf("+"); fflush(stdout); } __count++; - */ - // Read elements in the queue +*/ + // Read number of elements in the queue NiFpga_MergeStatus( &status, NiFpga_ReadFifoU64( session, NiFpga_FAU_cRIO_FPGA_TargetToHostFifoU64_AcquisitionFIFOR, &dummy, 0, 0, &nElem)); + if (NiFpga_IsError(status)) { printf("Read Error\n"); diff --git a/device_support/national/cRioFAUfunction.h b/device_support/national/cRioFAUfunction.h index f5eb70c971..27189d76a0 100644 --- a/device_support/national/cRioFAUfunction.h +++ b/device_support/national/cRioFAUfunction.h @@ -31,16 +31,16 @@ extern "C" NiFpga_Status startFauFpga(NiFpga_Session session); int readFauFifoData(NiFpga_Session session, uint8_t *data, double *time, double tickPeriod, size_t *maxSamp, size_t nDio, - uint8_t *stopFlag); + int *stopFlag); int fauSaveAcqData(NiFpga_Session session, double tickPeriod, double trigTime, size_t maxSamp, size_t nDio, void *treePtr, void *dataNidPtr, - uint8_t *stopFlag); + int *stopFlag); // int fauQueuedAcqData(NiFpga_Session session, void *fauList, uint8_t *data, // double *time, double tickPeriod, size_t maxSamp, size_t nDio, void *treePtr, - // void *dataNidPtr, uint8_t *stopFlag); + // void *dataNidPtr, int *stopFlag); int fauQueuedAcqData(NiFpga_Session session, void *fauList, double tickPeriod, double trigTime, size_t maxSamp, size_t nDio, - void *treePtr, void *dataNidPtr, uint8_t *stopFlag); + void *treePtr, void *dataNidPtr, int *stopFlag); NiFpga_Status getFauAcqState(NiFpga_Session session, uint16_t *acqState); uint16_t IsFauFIFOOverflow(NiFpga_Session session); NiFpga_Status startFauAcquisition(NiFpga_Session session); diff --git a/epics/archiver/ChannelArchiver.java b/epics/archiver/ChannelArchiver.java index 50f83c303b..0b19676806 100644 --- a/epics/archiver/ChannelArchiver.java +++ b/epics/archiver/ChannelArchiver.java @@ -333,6 +333,7 @@ public void run() if( shot > 0 ) { + System.out.println("Experiment "+expName); tree = new Tree(expName, shot); isTrendShot = false; } @@ -1308,6 +1309,8 @@ public static void main(java.lang.String[] args) System.out.println("gov.aps.jca.Context.auto_addr_list " + jca.getProperty("gov.aps.jca.Context.auto_addr_list")); System.out.println("gov.aps.jca.Context.addr_list " + jca.getProperty("gov.aps.jca.Context.addr_list")); + System.out.println("Experiment "+experiment); + tree = new Tree(experiment, -1); if(createPulse) tree.createPulse(shot); diff --git a/java/jdevices/src/main/java/MARTE2_EPICS_INSetup.java b/java/jdevices/src/main/java/MARTE2_EPICS_INSetup.java new file mode 100644 index 0000000000..377a6977c8 --- /dev/null +++ b/java/jdevices/src/main/java/MARTE2_EPICS_INSetup.java @@ -0,0 +1,645 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/** + * + * @author mdsplus + */ +public class MARTE2_EPICS_INSetup extends DeviceSetup { + + /** + * Creates new form MARTE2_EPICS_INSetup + */ + public MARTE2_EPICS_INSetup() { + initComponents(); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + deviceButtons1 = new DeviceButtons(); + jPanel2 = new javax.swing.JPanel(); + jPanel3 = new javax.swing.JPanel(); + deviceField1 = new DeviceField(); + deviceField2 = new DeviceField(); + jPanel4 = new javax.swing.JPanel(); + deviceField3 = new DeviceField(); + deviceField4 = new DeviceField(); + jScrollPane1 = new javax.swing.JScrollPane(); + jPanel5 = new javax.swing.JPanel(); + jPanel1 = new javax.swing.JPanel(); + deviceField5 = new DeviceField(); + deviceChoice1 = new DeviceChoice(); + deviceField6 = new DeviceField(); + jPanel6 = new javax.swing.JPanel(); + deviceField7 = new DeviceField(); + deviceChoice2 = new DeviceChoice(); + deviceField8 = new DeviceField(); + jPanel7 = new javax.swing.JPanel(); + deviceField9 = new DeviceField(); + deviceChoice3 = new DeviceChoice(); + deviceField10 = new DeviceField(); + jPanel8 = new javax.swing.JPanel(); + deviceField11 = new DeviceField(); + deviceChoice4 = new DeviceChoice(); + deviceField12 = new DeviceField(); + jPanel9 = new javax.swing.JPanel(); + deviceField13 = new DeviceField(); + deviceChoice5 = new DeviceChoice(); + deviceField14 = new DeviceField(); + jPanel10 = new javax.swing.JPanel(); + deviceField15 = new DeviceField(); + deviceChoice6 = new DeviceChoice(); + deviceField16 = new DeviceField(); + jPanel11 = new javax.swing.JPanel(); + deviceField17 = new DeviceField(); + deviceChoice7 = new DeviceChoice(); + deviceField18 = new DeviceField(); + jPanel12 = new javax.swing.JPanel(); + deviceField19 = new DeviceField(); + deviceChoice8 = new DeviceChoice(); + deviceField20 = new DeviceField(); + jPanel13 = new javax.swing.JPanel(); + deviceField21 = new DeviceField(); + deviceChoice9 = new DeviceChoice(); + deviceField22 = new DeviceField(); + jPanel14 = new javax.swing.JPanel(); + deviceField23 = new DeviceField(); + deviceChoice10 = new DeviceChoice(); + deviceField24 = new DeviceField(); + jPanel15 = new javax.swing.JPanel(); + deviceField25 = new DeviceField(); + deviceChoice11 = new DeviceChoice(); + deviceField26 = new DeviceField(); + jPanel16 = new javax.swing.JPanel(); + deviceField27 = new DeviceField(); + deviceChoice12 = new DeviceChoice(); + deviceField28 = new DeviceField(); + jPanel17 = new javax.swing.JPanel(); + deviceField29 = new DeviceField(); + deviceChoice13 = new DeviceChoice(); + deviceField30 = new DeviceField(); + jPanel18 = new javax.swing.JPanel(); + deviceField31 = new DeviceField(); + deviceChoice14 = new DeviceChoice(); + deviceField32 = new DeviceField(); + jPanel19 = new javax.swing.JPanel(); + deviceField33 = new DeviceField(); + deviceChoice15 = new DeviceChoice(); + deviceField34 = new DeviceField(); + jPanel20 = new javax.swing.JPanel(); + deviceField35 = new DeviceField(); + deviceChoice16 = new DeviceChoice(); + deviceField36 = new DeviceField(); + + setDeviceProvider("spilds.rfx.local:8100"); + setDeviceTitle("EPICS In"); + setDeviceType("MARTE2_EPICS_IN"); + setHeight(500); + setWidth(900); + getContentPane().add(deviceButtons1, java.awt.BorderLayout.PAGE_END); + + jPanel2.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField1.setIdentifier(""); + deviceField1.setLabelString("Timebase: "); + deviceField1.setNumCols(25); + deviceField1.setOffsetNid(3); + jPanel3.add(deviceField1); + + deviceField2.setIdentifier(""); + deviceField2.setLabelString("Tibase div.:"); + deviceField2.setNumCols(6); + deviceField2.setOffsetNid(210); + jPanel3.add(deviceField2); + + jPanel2.add(jPanel3); + + deviceField3.setIdentifier(""); + deviceField3.setLabelString("EPICS CPU Mask: "); + deviceField3.setNumCols(6); + deviceField3.setOffsetNid(10); + jPanel4.add(deviceField3); + + deviceField4.setIdentifier(""); + deviceField4.setLabelString("Write CPU Mask: "); + deviceField4.setNumCols(6); + deviceField4.setOffsetNid(17); + jPanel4.add(deviceField4); + + jPanel2.add(jPanel4); + + getContentPane().add(jPanel2, java.awt.BorderLayout.PAGE_START); + + jPanel5.setLayout(new java.awt.GridLayout(16, 1)); + + jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("PV1")); + + deviceField5.setIdentifier(""); + deviceField5.setLabelString("PV Name: "); + deviceField5.setNumCols(20); + deviceField5.setOffsetNid(29); + deviceField5.setTextOnly(true); + jPanel1.add(deviceField5); + + deviceChoice1.setChoiceIntValues(new int[] {0, -1}); + deviceChoice1.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice1.setConvert(true); + deviceChoice1.setIdentifier(""); + deviceChoice1.setLabelString("Output: "); + deviceChoice1.setOffsetNid(22); + deviceChoice1.setUpdateIdentifier(""); + jPanel1.add(deviceChoice1); + + deviceField6.setIdentifier(""); + deviceField6.setLabelString("Seg. Len: "); + deviceField6.setNumCols(6); + deviceField6.setOffsetNid(23); + jPanel1.add(deviceField6); + + jPanel5.add(jPanel1); + + jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("PV2")); + + deviceField7.setIdentifier(""); + deviceField7.setLabelString("PV Name: "); + deviceField7.setNumCols(20); + deviceField7.setOffsetNid(41); + deviceField7.setTextOnly(true); + jPanel6.add(deviceField7); + + deviceChoice2.setChoiceIntValues(new int[] {0, -1}); + deviceChoice2.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice2.setConvert(true); + deviceChoice2.setIdentifier(""); + deviceChoice2.setLabelString("Output: "); + deviceChoice2.setOffsetNid(34); + deviceChoice2.setUpdateIdentifier(""); + jPanel6.add(deviceChoice2); + + deviceField8.setIdentifier(""); + deviceField8.setLabelString("Seg. Len: "); + deviceField8.setNumCols(6); + deviceField8.setOffsetNid(35); + jPanel6.add(deviceField8); + + jPanel5.add(jPanel6); + + jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("PV3")); + + deviceField9.setIdentifier(""); + deviceField9.setLabelString("PV Name: "); + deviceField9.setNumCols(20); + deviceField9.setOffsetNid(53); + deviceField9.setTextOnly(true); + jPanel7.add(deviceField9); + + deviceChoice3.setChoiceIntValues(new int[] {0, -1}); + deviceChoice3.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice3.setConvert(true); + deviceChoice3.setIdentifier(""); + deviceChoice3.setLabelString("Output: "); + deviceChoice3.setOffsetNid(46); + deviceChoice3.setUpdateIdentifier(""); + jPanel7.add(deviceChoice3); + + deviceField10.setIdentifier(""); + deviceField10.setLabelString("Seg. Len: "); + deviceField10.setNumCols(6); + deviceField10.setOffsetNid(47); + jPanel7.add(deviceField10); + + jPanel5.add(jPanel7); + + jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder("PV4")); + + deviceField11.setIdentifier(""); + deviceField11.setLabelString("PV Name: "); + deviceField11.setNumCols(20); + deviceField11.setOffsetNid(65); + deviceField11.setTextOnly(true); + jPanel8.add(deviceField11); + + deviceChoice4.setChoiceIntValues(new int[] {0, -1}); + deviceChoice4.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice4.setConvert(true); + deviceChoice4.setIdentifier(""); + deviceChoice4.setLabelString("Output: "); + deviceChoice4.setOffsetNid(58); + deviceChoice4.setUpdateIdentifier(""); + jPanel8.add(deviceChoice4); + + deviceField12.setIdentifier(""); + deviceField12.setLabelString("Seg. Len: "); + deviceField12.setNumCols(6); + deviceField12.setOffsetNid(59); + jPanel8.add(deviceField12); + + jPanel5.add(jPanel8); + + jPanel9.setBorder(javax.swing.BorderFactory.createTitledBorder("PV5")); + + deviceField13.setIdentifier(""); + deviceField13.setLabelString("PV Name: "); + deviceField13.setNumCols(20); + deviceField13.setOffsetNid(77); + deviceField13.setTextOnly(true); + jPanel9.add(deviceField13); + + deviceChoice5.setChoiceIntValues(new int[] {0, -1}); + deviceChoice5.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice5.setConvert(true); + deviceChoice5.setIdentifier(""); + deviceChoice5.setLabelString("Output: "); + deviceChoice5.setOffsetNid(70); + deviceChoice5.setUpdateIdentifier(""); + jPanel9.add(deviceChoice5); + + deviceField14.setIdentifier(""); + deviceField14.setLabelString("Seg. Len: "); + deviceField14.setNumCols(6); + deviceField14.setOffsetNid(71); + jPanel9.add(deviceField14); + + jPanel5.add(jPanel9); + + jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("PV6")); + + deviceField15.setIdentifier(""); + deviceField15.setLabelString("PV Name: "); + deviceField15.setNumCols(20); + deviceField15.setOffsetNid(89); + deviceField15.setTextOnly(true); + jPanel10.add(deviceField15); + + deviceChoice6.setChoiceIntValues(new int[] {0, -1}); + deviceChoice6.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice6.setConvert(true); + deviceChoice6.setIdentifier(""); + deviceChoice6.setLabelString("Output: "); + deviceChoice6.setOffsetNid(82); + deviceChoice6.setUpdateIdentifier(""); + jPanel10.add(deviceChoice6); + + deviceField16.setIdentifier(""); + deviceField16.setLabelString("Seg. Len: "); + deviceField16.setNumCols(6); + deviceField16.setOffsetNid(83); + jPanel10.add(deviceField16); + + jPanel5.add(jPanel10); + + jPanel11.setBorder(javax.swing.BorderFactory.createTitledBorder("PV7")); + + deviceField17.setIdentifier(""); + deviceField17.setLabelString("PV Name: "); + deviceField17.setNumCols(20); + deviceField17.setOffsetNid(101); + deviceField17.setTextOnly(true); + jPanel11.add(deviceField17); + + deviceChoice7.setChoiceIntValues(new int[] {0, -1}); + deviceChoice7.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice7.setConvert(true); + deviceChoice7.setIdentifier(""); + deviceChoice7.setLabelString("Output: "); + deviceChoice7.setOffsetNid(94); + deviceChoice7.setUpdateIdentifier(""); + jPanel11.add(deviceChoice7); + + deviceField18.setIdentifier(""); + deviceField18.setLabelString("Seg. Len: "); + deviceField18.setNumCols(6); + deviceField18.setOffsetNid(95); + jPanel11.add(deviceField18); + + jPanel5.add(jPanel11); + + jPanel12.setBorder(javax.swing.BorderFactory.createTitledBorder("PV8")); + + deviceField19.setIdentifier(""); + deviceField19.setLabelString("PV Name: "); + deviceField19.setNumCols(20); + deviceField19.setOffsetNid(113); + deviceField19.setTextOnly(true); + jPanel12.add(deviceField19); + + deviceChoice8.setChoiceIntValues(new int[] {0, -1}); + deviceChoice8.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice8.setConvert(true); + deviceChoice8.setIdentifier(""); + deviceChoice8.setLabelString("Output: "); + deviceChoice8.setOffsetNid(106); + deviceChoice8.setUpdateIdentifier(""); + jPanel12.add(deviceChoice8); + + deviceField20.setIdentifier(""); + deviceField20.setLabelString("Seg. Len: "); + deviceField20.setNumCols(6); + deviceField20.setOffsetNid(107); + jPanel12.add(deviceField20); + + jPanel5.add(jPanel12); + + jPanel13.setBorder(javax.swing.BorderFactory.createTitledBorder("PV9")); + + deviceField21.setIdentifier(""); + deviceField21.setLabelString("PV Name: "); + deviceField21.setNumCols(20); + deviceField21.setOffsetNid(125); + deviceField21.setTextOnly(true); + jPanel13.add(deviceField21); + + deviceChoice9.setChoiceIntValues(new int[] {0, -1}); + deviceChoice9.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice9.setConvert(true); + deviceChoice9.setIdentifier(""); + deviceChoice9.setLabelString("Output: "); + deviceChoice9.setOffsetNid(118); + deviceChoice9.setUpdateIdentifier(""); + jPanel13.add(deviceChoice9); + + deviceField22.setIdentifier(""); + deviceField22.setLabelString("Seg. Len: "); + deviceField22.setNumCols(6); + deviceField22.setOffsetNid(119); + jPanel13.add(deviceField22); + + jPanel5.add(jPanel13); + + jPanel14.setBorder(javax.swing.BorderFactory.createTitledBorder("PV10")); + + deviceField23.setIdentifier(""); + deviceField23.setLabelString("PV Name: "); + deviceField23.setNumCols(20); + deviceField23.setOffsetNid(137); + deviceField23.setTextOnly(true); + jPanel14.add(deviceField23); + + deviceChoice10.setChoiceIntValues(new int[] {0, -1}); + deviceChoice10.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice10.setConvert(true); + deviceChoice10.setIdentifier(""); + deviceChoice10.setLabelString("Output: "); + deviceChoice10.setOffsetNid(130); + deviceChoice10.setUpdateIdentifier(""); + jPanel14.add(deviceChoice10); + + deviceField24.setIdentifier(""); + deviceField24.setLabelString("Seg. Len: "); + deviceField24.setNumCols(6); + deviceField24.setOffsetNid(131); + jPanel14.add(deviceField24); + + jPanel5.add(jPanel14); + + jPanel15.setBorder(javax.swing.BorderFactory.createTitledBorder("PV11")); + + deviceField25.setIdentifier(""); + deviceField25.setLabelString("PV Name: "); + deviceField25.setNumCols(20); + deviceField25.setOffsetNid(149); + deviceField25.setTextOnly(true); + jPanel15.add(deviceField25); + + deviceChoice11.setChoiceIntValues(new int[] {0, -1}); + deviceChoice11.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice11.setConvert(true); + deviceChoice11.setIdentifier(""); + deviceChoice11.setLabelString("Output: "); + deviceChoice11.setOffsetNid(142); + deviceChoice11.setUpdateIdentifier(""); + jPanel15.add(deviceChoice11); + + deviceField26.setIdentifier(""); + deviceField26.setLabelString("Seg. Len: "); + deviceField26.setNumCols(6); + deviceField26.setOffsetNid(143); + jPanel15.add(deviceField26); + + jPanel5.add(jPanel15); + + jPanel16.setBorder(javax.swing.BorderFactory.createTitledBorder("PV12")); + + deviceField27.setIdentifier(""); + deviceField27.setLabelString("PV Name: "); + deviceField27.setNumCols(20); + deviceField27.setOffsetNid(161); + deviceField27.setTextOnly(true); + jPanel16.add(deviceField27); + + deviceChoice12.setChoiceIntValues(new int[] {0, -1}); + deviceChoice12.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice12.setConvert(true); + deviceChoice12.setIdentifier(""); + deviceChoice12.setLabelString("Output: "); + deviceChoice12.setOffsetNid(154); + deviceChoice12.setUpdateIdentifier(""); + jPanel16.add(deviceChoice12); + + deviceField28.setIdentifier(""); + deviceField28.setLabelString("Seg. Len: "); + deviceField28.setNumCols(6); + deviceField28.setOffsetNid(155); + jPanel16.add(deviceField28); + + jPanel5.add(jPanel16); + + jPanel17.setBorder(javax.swing.BorderFactory.createTitledBorder("PV13")); + + deviceField29.setIdentifier(""); + deviceField29.setLabelString("PV Name: "); + deviceField29.setNumCols(20); + deviceField29.setOffsetNid(173); + deviceField29.setTextOnly(true); + jPanel17.add(deviceField29); + + deviceChoice13.setChoiceIntValues(new int[] {0, -1}); + deviceChoice13.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice13.setConvert(true); + deviceChoice13.setIdentifier(""); + deviceChoice13.setLabelString("Output: "); + deviceChoice13.setOffsetNid(166); + deviceChoice13.setUpdateIdentifier(""); + jPanel17.add(deviceChoice13); + + deviceField30.setIdentifier(""); + deviceField30.setLabelString("Seg. Len: "); + deviceField30.setNumCols(6); + deviceField30.setOffsetNid(167); + jPanel17.add(deviceField30); + + jPanel5.add(jPanel17); + + jPanel18.setBorder(javax.swing.BorderFactory.createTitledBorder("PV14")); + + deviceField31.setIdentifier(""); + deviceField31.setLabelString("PV Name: "); + deviceField31.setNumCols(20); + deviceField31.setOffsetNid(185); + deviceField31.setTextOnly(true); + jPanel18.add(deviceField31); + + deviceChoice14.setChoiceIntValues(new int[] {0, -1}); + deviceChoice14.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice14.setConvert(true); + deviceChoice14.setIdentifier(""); + deviceChoice14.setLabelString("Output: "); + deviceChoice14.setOffsetNid(178); + deviceChoice14.setUpdateIdentifier(""); + jPanel18.add(deviceChoice14); + + deviceField32.setIdentifier(""); + deviceField32.setLabelString("Seg. Len: "); + deviceField32.setNumCols(6); + deviceField32.setOffsetNid(179); + jPanel18.add(deviceField32); + + jPanel5.add(jPanel18); + + jPanel19.setBorder(javax.swing.BorderFactory.createTitledBorder("PV15")); + + deviceField33.setIdentifier(""); + deviceField33.setLabelString("PV Name: "); + deviceField33.setNumCols(20); + deviceField33.setOffsetNid(197); + deviceField33.setTextOnly(true); + jPanel19.add(deviceField33); + + deviceChoice15.setChoiceIntValues(new int[] {0, -1}); + deviceChoice15.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice15.setConvert(true); + deviceChoice15.setIdentifier(""); + deviceChoice15.setLabelString("Output: "); + deviceChoice15.setOffsetNid(190); + deviceChoice15.setUpdateIdentifier(""); + jPanel19.add(deviceChoice15); + + deviceField34.setIdentifier(""); + deviceField34.setLabelString("Seg. Len: "); + deviceField34.setNumCols(6); + deviceField34.setOffsetNid(191); + jPanel19.add(deviceField34); + + jPanel5.add(jPanel19); + + jPanel20.setBorder(javax.swing.BorderFactory.createTitledBorder("PV16")); + + deviceField35.setIdentifier(""); + deviceField35.setLabelString("PV Name: "); + deviceField35.setNumCols(20); + deviceField35.setOffsetNid(209); + deviceField35.setTextOnly(true); + jPanel20.add(deviceField35); + + deviceChoice16.setChoiceIntValues(new int[] {0, -1}); + deviceChoice16.setChoiceItems(new String[] {"ENABLED", "DISABLED"}); + deviceChoice16.setConvert(true); + deviceChoice16.setIdentifier(""); + deviceChoice16.setLabelString("Output: "); + deviceChoice16.setOffsetNid(202); + deviceChoice16.setUpdateIdentifier(""); + jPanel20.add(deviceChoice16); + + deviceField36.setIdentifier(""); + deviceField36.setLabelString("Seg. Len: "); + deviceField36.setNumCols(6); + deviceField36.setOffsetNid(203); + jPanel20.add(deviceField36); + + jPanel5.add(jPanel20); + + jScrollPane1.setViewportView(jPanel5); + + getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); + + getAccessibleContext().setAccessibleName(""); + }// //GEN-END:initComponents + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private DeviceButtons deviceButtons1; + private DeviceChoice deviceChoice1; + private DeviceChoice deviceChoice10; + private DeviceChoice deviceChoice11; + private DeviceChoice deviceChoice12; + private DeviceChoice deviceChoice13; + private DeviceChoice deviceChoice14; + private DeviceChoice deviceChoice15; + private DeviceChoice deviceChoice16; + private DeviceChoice deviceChoice2; + private DeviceChoice deviceChoice3; + private DeviceChoice deviceChoice4; + private DeviceChoice deviceChoice5; + private DeviceChoice deviceChoice6; + private DeviceChoice deviceChoice7; + private DeviceChoice deviceChoice8; + private DeviceChoice deviceChoice9; + private DeviceField deviceField1; + private DeviceField deviceField10; + private DeviceField deviceField11; + private DeviceField deviceField12; + private DeviceField deviceField13; + private DeviceField deviceField14; + private DeviceField deviceField15; + private DeviceField deviceField16; + private DeviceField deviceField17; + private DeviceField deviceField18; + private DeviceField deviceField19; + private DeviceField deviceField2; + private DeviceField deviceField20; + private DeviceField deviceField21; + private DeviceField deviceField22; + private DeviceField deviceField23; + private DeviceField deviceField24; + private DeviceField deviceField25; + private DeviceField deviceField26; + private DeviceField deviceField27; + private DeviceField deviceField28; + private DeviceField deviceField29; + private DeviceField deviceField3; + private DeviceField deviceField30; + private DeviceField deviceField31; + private DeviceField deviceField32; + private DeviceField deviceField33; + private DeviceField deviceField34; + private DeviceField deviceField35; + private DeviceField deviceField36; + private DeviceField deviceField4; + private DeviceField deviceField5; + private DeviceField deviceField6; + private DeviceField deviceField7; + private DeviceField deviceField8; + private DeviceField deviceField9; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel10; + private javax.swing.JPanel jPanel11; + private javax.swing.JPanel jPanel12; + private javax.swing.JPanel jPanel13; + private javax.swing.JPanel jPanel14; + private javax.swing.JPanel jPanel15; + private javax.swing.JPanel jPanel16; + private javax.swing.JPanel jPanel17; + private javax.swing.JPanel jPanel18; + private javax.swing.JPanel jPanel19; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel20; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel4; + private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel6; + private javax.swing.JPanel jPanel7; + private javax.swing.JPanel jPanel8; + private javax.swing.JPanel jPanel9; + private javax.swing.JScrollPane jScrollPane1; + // End of variables declaration//GEN-END:variables +} diff --git a/java/jdevices/src/main/java/MARTE2_EPICS_OUTSetup.java b/java/jdevices/src/main/java/MARTE2_EPICS_OUTSetup.java new file mode 100644 index 0000000000..7b517747ef --- /dev/null +++ b/java/jdevices/src/main/java/MARTE2_EPICS_OUTSetup.java @@ -0,0 +1,757 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/** + * + * @author mdsplus + */ +public class MARTE2_EPICS_OUTSetup extends DeviceSetup { + + /** + * Creates new form MARTE2_EPICS_OUTSetup + */ + public MARTE2_EPICS_OUTSetup() { + initComponents(); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + deviceButtons1 = new DeviceButtons(); + jPanel2 = new javax.swing.JPanel(); + jPanel3 = new javax.swing.JPanel(); + deviceField1 = new DeviceField(); + deviceField2 = new DeviceField(); + jPanel4 = new javax.swing.JPanel(); + deviceField3 = new DeviceField(); + deviceField4 = new DeviceField(); + jScrollPane1 = new javax.swing.JScrollPane(); + jPanel1 = new javax.swing.JPanel(); + jPanel5 = new javax.swing.JPanel(); + jPanel6 = new javax.swing.JPanel(); + deviceField5 = new DeviceField(); + deviceChoice1 = new DeviceChoice(); + jPanel7 = new javax.swing.JPanel(); + deviceField6 = new DeviceField(); + jPanel8 = new javax.swing.JPanel(); + jPanel9 = new javax.swing.JPanel(); + deviceField7 = new DeviceField(); + deviceChoice2 = new DeviceChoice(); + jPanel10 = new javax.swing.JPanel(); + deviceField8 = new DeviceField(); + jPanel11 = new javax.swing.JPanel(); + jPanel12 = new javax.swing.JPanel(); + deviceField9 = new DeviceField(); + deviceChoice3 = new DeviceChoice(); + jPanel13 = new javax.swing.JPanel(); + deviceField10 = new DeviceField(); + jPanel14 = new javax.swing.JPanel(); + jPanel15 = new javax.swing.JPanel(); + deviceField11 = new DeviceField(); + deviceChoice4 = new DeviceChoice(); + jPanel16 = new javax.swing.JPanel(); + deviceField12 = new DeviceField(); + jPanel17 = new javax.swing.JPanel(); + jPanel18 = new javax.swing.JPanel(); + deviceField13 = new DeviceField(); + deviceChoice5 = new DeviceChoice(); + jPanel19 = new javax.swing.JPanel(); + deviceField14 = new DeviceField(); + jPanel20 = new javax.swing.JPanel(); + jPanel21 = new javax.swing.JPanel(); + deviceField15 = new DeviceField(); + deviceChoice6 = new DeviceChoice(); + jPanel22 = new javax.swing.JPanel(); + deviceField16 = new DeviceField(); + jPanel23 = new javax.swing.JPanel(); + jPanel24 = new javax.swing.JPanel(); + deviceField17 = new DeviceField(); + deviceChoice7 = new DeviceChoice(); + jPanel25 = new javax.swing.JPanel(); + deviceField18 = new DeviceField(); + jPanel26 = new javax.swing.JPanel(); + jPanel27 = new javax.swing.JPanel(); + deviceField19 = new DeviceField(); + deviceChoice8 = new DeviceChoice(); + jPanel28 = new javax.swing.JPanel(); + deviceField20 = new DeviceField(); + jPanel29 = new javax.swing.JPanel(); + jPanel30 = new javax.swing.JPanel(); + deviceField21 = new DeviceField(); + deviceChoice9 = new DeviceChoice(); + jPanel31 = new javax.swing.JPanel(); + deviceField22 = new DeviceField(); + jPanel32 = new javax.swing.JPanel(); + jPanel33 = new javax.swing.JPanel(); + deviceField23 = new DeviceField(); + deviceChoice10 = new DeviceChoice(); + jPanel34 = new javax.swing.JPanel(); + deviceField24 = new DeviceField(); + jPanel35 = new javax.swing.JPanel(); + jPanel36 = new javax.swing.JPanel(); + deviceField25 = new DeviceField(); + deviceChoice11 = new DeviceChoice(); + jPanel37 = new javax.swing.JPanel(); + deviceField26 = new DeviceField(); + jPanel38 = new javax.swing.JPanel(); + jPanel39 = new javax.swing.JPanel(); + deviceField27 = new DeviceField(); + deviceChoice12 = new DeviceChoice(); + jPanel40 = new javax.swing.JPanel(); + deviceField28 = new DeviceField(); + jPanel41 = new javax.swing.JPanel(); + jPanel42 = new javax.swing.JPanel(); + deviceField29 = new DeviceField(); + deviceChoice13 = new DeviceChoice(); + jPanel43 = new javax.swing.JPanel(); + deviceField30 = new DeviceField(); + jPanel44 = new javax.swing.JPanel(); + jPanel45 = new javax.swing.JPanel(); + deviceField31 = new DeviceField(); + deviceChoice14 = new DeviceChoice(); + jPanel46 = new javax.swing.JPanel(); + deviceField32 = new DeviceField(); + jPanel47 = new javax.swing.JPanel(); + jPanel48 = new javax.swing.JPanel(); + deviceField33 = new DeviceField(); + deviceChoice15 = new DeviceChoice(); + jPanel49 = new javax.swing.JPanel(); + deviceField34 = new DeviceField(); + jPanel50 = new javax.swing.JPanel(); + jPanel51 = new javax.swing.JPanel(); + deviceField35 = new DeviceField(); + deviceChoice16 = new DeviceChoice(); + jPanel52 = new javax.swing.JPanel(); + deviceField36 = new DeviceField(); + + setDeviceProvider("spilds.rfx.local:8100"); + setDeviceTitle("MARTe2 EPICS Out"); + setDeviceType("MARTE2_EPICS_OUT"); + setHeight(500); + setWidth(800); + getContentPane().add(deviceButtons1, java.awt.BorderLayout.PAGE_END); + + jPanel2.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField1.setIdentifier(""); + deviceField1.setLabelString("Timebase: "); + deviceField1.setNumCols(25); + deviceField1.setOffsetNid(3); + jPanel3.add(deviceField1); + + deviceField2.setIdentifier(""); + deviceField2.setLabelString("Timebase Div.: "); + deviceField2.setNumCols(6); + deviceField2.setOffsetNid(178); + jPanel3.add(deviceField2); + + jPanel2.add(jPanel3); + + deviceField3.setIdentifier(""); + deviceField3.setLabelString("EPICS CPU Mask: "); + deviceField3.setNumCols(6); + deviceField3.setOffsetNid(10); + jPanel4.add(deviceField3); + + deviceField4.setIdentifier(""); + deviceField4.setLabelString("Num. Buffers: "); + deviceField4.setNumCols(6); + deviceField4.setOffsetNid(16); + jPanel4.add(deviceField4); + + jPanel2.add(jPanel4); + + getContentPane().add(jPanel2, java.awt.BorderLayout.PAGE_START); + + jPanel1.setLayout(new java.awt.GridLayout(16, 1)); + + jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("PV1")); + jPanel5.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField5.setIdentifier(""); + deviceField5.setLabelString("PV Name: "); + deviceField5.setNumCols(15); + deviceField5.setOffsetNid(27); + deviceField5.setTextOnly(true); + jPanel6.add(deviceField5); + + deviceChoice1.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice1.setIdentifier(""); + deviceChoice1.setLabelString("Type: "); + deviceChoice1.setOffsetNid(19); + deviceChoice1.setUpdateIdentifier(""); + jPanel6.add(deviceChoice1); + + jPanel5.add(jPanel6); + + deviceField6.setIdentifier(""); + deviceField6.setLabelString("Value: "); + deviceField6.setNumCols(30); + deviceField6.setOffsetNid(22); + jPanel7.add(deviceField6); + + jPanel5.add(jPanel7); + + jPanel1.add(jPanel5); + + jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV2")); + jPanel8.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField7.setIdentifier(""); + deviceField7.setLabelString("PV Name: "); + deviceField7.setNumCols(15); + deviceField7.setOffsetNid(37); + deviceField7.setTextOnly(true); + jPanel9.add(deviceField7); + + deviceChoice2.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice2.setIdentifier(""); + deviceChoice2.setLabelString("Type: "); + deviceChoice2.setOffsetNid(29); + deviceChoice2.setUpdateIdentifier(""); + jPanel9.add(deviceChoice2); + + jPanel8.add(jPanel9); + + deviceField8.setIdentifier(""); + deviceField8.setLabelString("Value: "); + deviceField8.setNumCols(30); + deviceField8.setOffsetNid(32); + jPanel10.add(deviceField8); + + jPanel8.add(jPanel10); + + jPanel1.add(jPanel8); + + jPanel11.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV3")); + jPanel11.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField9.setIdentifier(""); + deviceField9.setLabelString("PV Name: "); + deviceField9.setNumCols(15); + deviceField9.setOffsetNid(47); + deviceField9.setTextOnly(true); + jPanel12.add(deviceField9); + + deviceChoice3.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice3.setIdentifier(""); + deviceChoice3.setLabelString("Type: "); + deviceChoice3.setOffsetNid(39); + deviceChoice3.setUpdateIdentifier(""); + jPanel12.add(deviceChoice3); + + jPanel11.add(jPanel12); + + deviceField10.setIdentifier(""); + deviceField10.setLabelString("Value: "); + deviceField10.setNumCols(30); + deviceField10.setOffsetNid(42); + jPanel13.add(deviceField10); + + jPanel11.add(jPanel13); + + jPanel1.add(jPanel11); + + jPanel14.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV4")); + jPanel14.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField11.setIdentifier(""); + deviceField11.setLabelString("PV Name: "); + deviceField11.setNumCols(15); + deviceField11.setOffsetNid(57); + deviceField11.setTextOnly(true); + jPanel15.add(deviceField11); + + deviceChoice4.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice4.setIdentifier(""); + deviceChoice4.setLabelString("Type: "); + deviceChoice4.setOffsetNid(49); + deviceChoice4.setUpdateIdentifier(""); + jPanel15.add(deviceChoice4); + + jPanel14.add(jPanel15); + + deviceField12.setIdentifier(""); + deviceField12.setLabelString("Value: "); + deviceField12.setNumCols(30); + deviceField12.setOffsetNid(52); + jPanel16.add(deviceField12); + + jPanel14.add(jPanel16); + + jPanel1.add(jPanel14); + + jPanel17.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV5")); + jPanel17.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField13.setIdentifier(""); + deviceField13.setLabelString("PV Name: "); + deviceField13.setNumCols(15); + deviceField13.setOffsetNid(67); + deviceField13.setTextOnly(true); + jPanel18.add(deviceField13); + + deviceChoice5.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice5.setIdentifier(""); + deviceChoice5.setLabelString("Type: "); + deviceChoice5.setOffsetNid(59); + deviceChoice5.setUpdateIdentifier(""); + jPanel18.add(deviceChoice5); + + jPanel17.add(jPanel18); + + deviceField14.setIdentifier(""); + deviceField14.setLabelString("Value: "); + deviceField14.setNumCols(30); + deviceField14.setOffsetNid(62); + jPanel19.add(deviceField14); + + jPanel17.add(jPanel19); + + jPanel1.add(jPanel17); + + jPanel20.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV6")); + jPanel20.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField15.setIdentifier(""); + deviceField15.setLabelString("PV Name: "); + deviceField15.setNumCols(15); + deviceField15.setOffsetNid(77); + deviceField15.setTextOnly(true); + jPanel21.add(deviceField15); + + deviceChoice6.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice6.setIdentifier(""); + deviceChoice6.setLabelString("Type: "); + deviceChoice6.setOffsetNid(69); + deviceChoice6.setUpdateIdentifier(""); + jPanel21.add(deviceChoice6); + + jPanel20.add(jPanel21); + + deviceField16.setIdentifier(""); + deviceField16.setLabelString("Value: "); + deviceField16.setNumCols(30); + deviceField16.setOffsetNid(72); + jPanel22.add(deviceField16); + + jPanel20.add(jPanel22); + + jPanel1.add(jPanel20); + + jPanel23.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV7")); + jPanel23.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField17.setIdentifier(""); + deviceField17.setLabelString("PV Name: "); + deviceField17.setNumCols(15); + deviceField17.setOffsetNid(87); + deviceField17.setTextOnly(true); + jPanel24.add(deviceField17); + + deviceChoice7.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice7.setIdentifier(""); + deviceChoice7.setLabelString("Type: "); + deviceChoice7.setOffsetNid(79); + deviceChoice7.setUpdateIdentifier(""); + jPanel24.add(deviceChoice7); + + jPanel23.add(jPanel24); + + deviceField18.setIdentifier(""); + deviceField18.setLabelString("Value: "); + deviceField18.setNumCols(30); + deviceField18.setOffsetNid(82); + jPanel25.add(deviceField18); + + jPanel23.add(jPanel25); + + jPanel1.add(jPanel23); + + jPanel26.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV8")); + jPanel26.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField19.setIdentifier(""); + deviceField19.setLabelString("PV Name: "); + deviceField19.setNumCols(15); + deviceField19.setOffsetNid(97); + deviceField19.setTextOnly(true); + jPanel27.add(deviceField19); + + deviceChoice8.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice8.setIdentifier(""); + deviceChoice8.setLabelString("Type: "); + deviceChoice8.setOffsetNid(89); + deviceChoice8.setUpdateIdentifier(""); + jPanel27.add(deviceChoice8); + + jPanel26.add(jPanel27); + + deviceField20.setIdentifier(""); + deviceField20.setLabelString("Value: "); + deviceField20.setNumCols(30); + deviceField20.setOffsetNid(92); + jPanel28.add(deviceField20); + + jPanel26.add(jPanel28); + + jPanel1.add(jPanel26); + + jPanel29.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV9")); + jPanel29.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField21.setIdentifier(""); + deviceField21.setLabelString("PV Name: "); + deviceField21.setNumCols(15); + deviceField21.setOffsetNid(107); + deviceField21.setTextOnly(true); + jPanel30.add(deviceField21); + + deviceChoice9.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice9.setIdentifier(""); + deviceChoice9.setLabelString("Type: "); + deviceChoice9.setOffsetNid(99); + deviceChoice9.setUpdateIdentifier(""); + jPanel30.add(deviceChoice9); + + jPanel29.add(jPanel30); + + deviceField22.setIdentifier(""); + deviceField22.setLabelString("Value: "); + deviceField22.setNumCols(30); + deviceField22.setOffsetNid(102); + jPanel31.add(deviceField22); + + jPanel29.add(jPanel31); + + jPanel1.add(jPanel29); + + jPanel32.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV10")); + jPanel32.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField23.setIdentifier(""); + deviceField23.setLabelString("PV Name: "); + deviceField23.setNumCols(15); + deviceField23.setOffsetNid(117); + deviceField23.setTextOnly(true); + jPanel33.add(deviceField23); + + deviceChoice10.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice10.setIdentifier(""); + deviceChoice10.setLabelString("Type: "); + deviceChoice10.setOffsetNid(109); + deviceChoice10.setUpdateIdentifier(""); + jPanel33.add(deviceChoice10); + + jPanel32.add(jPanel33); + + deviceField24.setIdentifier(""); + deviceField24.setLabelString("Value: "); + deviceField24.setNumCols(30); + deviceField24.setOffsetNid(112); + jPanel34.add(deviceField24); + + jPanel32.add(jPanel34); + + jPanel1.add(jPanel32); + + jPanel35.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV11")); + jPanel35.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField25.setIdentifier(""); + deviceField25.setLabelString("PV Name: "); + deviceField25.setNumCols(15); + deviceField25.setOffsetNid(127); + deviceField25.setTextOnly(true); + jPanel36.add(deviceField25); + + deviceChoice11.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice11.setIdentifier(""); + deviceChoice11.setLabelString("Type: "); + deviceChoice11.setOffsetNid(119); + deviceChoice11.setUpdateIdentifier(""); + jPanel36.add(deviceChoice11); + + jPanel35.add(jPanel36); + + deviceField26.setIdentifier(""); + deviceField26.setLabelString("Value: "); + deviceField26.setNumCols(30); + deviceField26.setOffsetNid(122); + jPanel37.add(deviceField26); + + jPanel35.add(jPanel37); + + jPanel1.add(jPanel35); + + jPanel38.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV12")); + jPanel38.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField27.setIdentifier(""); + deviceField27.setLabelString("PV Name: "); + deviceField27.setNumCols(15); + deviceField27.setOffsetNid(137); + deviceField27.setTextOnly(true); + jPanel39.add(deviceField27); + + deviceChoice12.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice12.setIdentifier(""); + deviceChoice12.setLabelString("Type: "); + deviceChoice12.setOffsetNid(129); + deviceChoice12.setUpdateIdentifier(""); + jPanel39.add(deviceChoice12); + + jPanel38.add(jPanel39); + + deviceField28.setIdentifier(""); + deviceField28.setLabelString("Value: "); + deviceField28.setNumCols(30); + deviceField28.setOffsetNid(132); + jPanel40.add(deviceField28); + + jPanel38.add(jPanel40); + + jPanel1.add(jPanel38); + + jPanel41.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV13")); + jPanel41.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField29.setIdentifier(""); + deviceField29.setLabelString("PV Name: "); + deviceField29.setNumCols(15); + deviceField29.setOffsetNid(147); + deviceField29.setTextOnly(true); + jPanel42.add(deviceField29); + + deviceChoice13.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice13.setIdentifier(""); + deviceChoice13.setLabelString("Type: "); + deviceChoice13.setOffsetNid(139); + deviceChoice13.setUpdateIdentifier(""); + jPanel42.add(deviceChoice13); + + jPanel41.add(jPanel42); + + deviceField30.setIdentifier(""); + deviceField30.setLabelString("Value: "); + deviceField30.setNumCols(30); + deviceField30.setOffsetNid(142); + jPanel43.add(deviceField30); + + jPanel41.add(jPanel43); + + jPanel1.add(jPanel41); + + jPanel44.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV14")); + jPanel44.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField31.setIdentifier(""); + deviceField31.setLabelString("PV Name: "); + deviceField31.setNumCols(15); + deviceField31.setOffsetNid(157); + deviceField31.setTextOnly(true); + jPanel45.add(deviceField31); + + deviceChoice14.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice14.setIdentifier(""); + deviceChoice14.setLabelString("Type: "); + deviceChoice14.setOffsetNid(149); + deviceChoice14.setUpdateIdentifier(""); + jPanel45.add(deviceChoice14); + + jPanel44.add(jPanel45); + + deviceField32.setIdentifier(""); + deviceField32.setLabelString("Value: "); + deviceField32.setNumCols(30); + deviceField32.setOffsetNid(152); + jPanel46.add(deviceField32); + + jPanel44.add(jPanel46); + + jPanel1.add(jPanel44); + + jPanel47.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV15")); + jPanel47.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField33.setIdentifier(""); + deviceField33.setLabelString("PV Name: "); + deviceField33.setNumCols(15); + deviceField33.setOffsetNid(167); + deviceField33.setTextOnly(true); + jPanel48.add(deviceField33); + + deviceChoice15.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice15.setIdentifier(""); + deviceChoice15.setLabelString("Type: "); + deviceChoice15.setOffsetNid(159); + deviceChoice15.setUpdateIdentifier(""); + jPanel48.add(deviceChoice15); + + jPanel47.add(jPanel48); + + deviceField34.setIdentifier(""); + deviceField34.setLabelString("Value: "); + deviceField34.setNumCols(30); + deviceField34.setOffsetNid(162); + jPanel49.add(deviceField34); + + jPanel47.add(jPanel49); + + jPanel1.add(jPanel47); + + jPanel50.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("PV2"), "PV16")); + jPanel50.setLayout(new java.awt.GridLayout(2, 1)); + + deviceField35.setIdentifier(""); + deviceField35.setLabelString("PV Name: "); + deviceField35.setNumCols(15); + deviceField35.setOffsetNid(177); + deviceField35.setTextOnly(true); + jPanel51.add(deviceField35); + + deviceChoice16.setChoiceItems(new String[] {"int32", "uint32", "float32"}); + deviceChoice16.setIdentifier(""); + deviceChoice16.setLabelString("Type: "); + deviceChoice16.setOffsetNid(169); + deviceChoice16.setUpdateIdentifier(""); + jPanel51.add(deviceChoice16); + + jPanel50.add(jPanel51); + + deviceField36.setIdentifier(""); + deviceField36.setLabelString("Value: "); + deviceField36.setNumCols(30); + deviceField36.setOffsetNid(172); + jPanel52.add(deviceField36); + + jPanel50.add(jPanel52); + + jPanel1.add(jPanel50); + + jScrollPane1.setViewportView(jPanel1); + + getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); + + getAccessibleContext().setAccessibleName(""); + }// //GEN-END:initComponents + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private DeviceButtons deviceButtons1; + private DeviceChoice deviceChoice1; + private DeviceChoice deviceChoice10; + private DeviceChoice deviceChoice11; + private DeviceChoice deviceChoice12; + private DeviceChoice deviceChoice13; + private DeviceChoice deviceChoice14; + private DeviceChoice deviceChoice15; + private DeviceChoice deviceChoice16; + private DeviceChoice deviceChoice2; + private DeviceChoice deviceChoice3; + private DeviceChoice deviceChoice4; + private DeviceChoice deviceChoice5; + private DeviceChoice deviceChoice6; + private DeviceChoice deviceChoice7; + private DeviceChoice deviceChoice8; + private DeviceChoice deviceChoice9; + private DeviceField deviceField1; + private DeviceField deviceField10; + private DeviceField deviceField11; + private DeviceField deviceField12; + private DeviceField deviceField13; + private DeviceField deviceField14; + private DeviceField deviceField15; + private DeviceField deviceField16; + private DeviceField deviceField17; + private DeviceField deviceField18; + private DeviceField deviceField19; + private DeviceField deviceField2; + private DeviceField deviceField20; + private DeviceField deviceField21; + private DeviceField deviceField22; + private DeviceField deviceField23; + private DeviceField deviceField24; + private DeviceField deviceField25; + private DeviceField deviceField26; + private DeviceField deviceField27; + private DeviceField deviceField28; + private DeviceField deviceField29; + private DeviceField deviceField3; + private DeviceField deviceField30; + private DeviceField deviceField31; + private DeviceField deviceField32; + private DeviceField deviceField33; + private DeviceField deviceField34; + private DeviceField deviceField35; + private DeviceField deviceField36; + private DeviceField deviceField4; + private DeviceField deviceField5; + private DeviceField deviceField6; + private DeviceField deviceField7; + private DeviceField deviceField8; + private DeviceField deviceField9; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel10; + private javax.swing.JPanel jPanel11; + private javax.swing.JPanel jPanel12; + private javax.swing.JPanel jPanel13; + private javax.swing.JPanel jPanel14; + private javax.swing.JPanel jPanel15; + private javax.swing.JPanel jPanel16; + private javax.swing.JPanel jPanel17; + private javax.swing.JPanel jPanel18; + private javax.swing.JPanel jPanel19; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel20; + private javax.swing.JPanel jPanel21; + private javax.swing.JPanel jPanel22; + private javax.swing.JPanel jPanel23; + private javax.swing.JPanel jPanel24; + private javax.swing.JPanel jPanel25; + private javax.swing.JPanel jPanel26; + private javax.swing.JPanel jPanel27; + private javax.swing.JPanel jPanel28; + private javax.swing.JPanel jPanel29; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel30; + private javax.swing.JPanel jPanel31; + private javax.swing.JPanel jPanel32; + private javax.swing.JPanel jPanel33; + private javax.swing.JPanel jPanel34; + private javax.swing.JPanel jPanel35; + private javax.swing.JPanel jPanel36; + private javax.swing.JPanel jPanel37; + private javax.swing.JPanel jPanel38; + private javax.swing.JPanel jPanel39; + private javax.swing.JPanel jPanel4; + private javax.swing.JPanel jPanel40; + private javax.swing.JPanel jPanel41; + private javax.swing.JPanel jPanel42; + private javax.swing.JPanel jPanel43; + private javax.swing.JPanel jPanel44; + private javax.swing.JPanel jPanel45; + private javax.swing.JPanel jPanel46; + private javax.swing.JPanel jPanel47; + private javax.swing.JPanel jPanel48; + private javax.swing.JPanel jPanel49; + private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel50; + private javax.swing.JPanel jPanel51; + private javax.swing.JPanel jPanel52; + private javax.swing.JPanel jPanel6; + private javax.swing.JPanel jPanel7; + private javax.swing.JPanel jPanel8; + private javax.swing.JPanel jPanel9; + private javax.swing.JScrollPane jScrollPane1; + // End of variables declaration//GEN-END:variables +} diff --git a/java/jdevices/src/main/java/MARTE2_NI6368_SYNCH_DISetup.form b/java/jdevices/src/main/java/MARTE2_NI6368_SYNCH_DISetup.form new file mode 100644 index 0000000000..e3fbee2c30 --- /dev/null +++ b/java/jdevices/src/main/java/MARTE2_NI6368_SYNCH_DISetup.form @@ -0,0 +1,133 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/jdevices/src/main/java/MARTE2_NI6368_SYNCH_DISetup.java b/java/jdevices/src/main/java/MARTE2_NI6368_SYNCH_DISetup.java index fa360609c7..73acca313b 100644 --- a/java/jdevices/src/main/java/MARTE2_NI6368_SYNCH_DISetup.java +++ b/java/jdevices/src/main/java/MARTE2_NI6368_SYNCH_DISetup.java @@ -38,12 +38,13 @@ private void initComponents() { jPanel4 = new javax.swing.JPanel(); deviceField6 = new DeviceField(); deviceField7 = new DeviceField(); + deviceField8 = new DeviceField(); - setDeviceProvider("scdevail.rfx.local:8100"); - setDeviceTitle("NI6368 Synch Digital In"); - setDeviceType("MARTE2_NI6368_SYNCH_DI"); + setDeviceProvider("spilds.rfx.local:8100"); + setDeviceTitle("NI6259 Synch Digital In"); + setDeviceType("MARTE2_NI6259_SYNCH_DI"); setHeight(200); - setWidth(600); + setWidth(800); getContentPane().add(deviceButtons1, java.awt.BorderLayout.PAGE_END); jPanel1.setLayout(new java.awt.GridLayout(3, 1)); @@ -94,6 +95,12 @@ private void initComponents() { deviceField7.setOffsetNid(49); jPanel4.add(deviceField7); + deviceField8.setIdentifier(""); + deviceField8.setLabelString("Write CPU Mask: "); + deviceField8.setNumCols(8); + deviceField8.setOffsetNid(35); + jPanel4.add(deviceField8); + jPanel1.add(jPanel4); getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); @@ -109,6 +116,7 @@ private void initComponents() { private DeviceField deviceField5; private DeviceField deviceField6; private DeviceField deviceField7; + private DeviceField deviceField8; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; diff --git a/java/jdevices/src/main/java/MARTE2_RTSMSetup.java b/java/jdevices/src/main/java/MARTE2_RTSMSetup.java index e901dc21f0..9b6f6efe48 100644 --- a/java/jdevices/src/main/java/MARTE2_RTSMSetup.java +++ b/java/jdevices/src/main/java/MARTE2_RTSMSetup.java @@ -38,12 +38,14 @@ private void initComponents() { jPanel219 = new javax.swing.JPanel(); deviceField41 = new DeviceField(); deviceField50 = new DeviceField(); + deviceField59 = new DeviceField(); jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); deviceField5 = new DeviceField(); deviceField6 = new DeviceField(); deviceField40 = new DeviceField(); + deviceField58 = new DeviceField(); jPanel4 = new javax.swing.JPanel(); jTabbedPane2 = new javax.swing.JTabbedPane(); jScrollPane1 = new javax.swing.JScrollPane(); @@ -144,6 +146,7 @@ private void initComponents() { deviceField286 = new DeviceField(); deviceField287 = new DeviceField(); deviceField288 = new DeviceField(); + deviceField57 = new DeviceField(); jPanel31 = new javax.swing.JPanel(); jTabbedPane18 = new javax.swing.JTabbedPane(); jScrollPane3 = new javax.swing.JScrollPane(); @@ -244,6 +247,7 @@ private void initComponents() { deviceField321 = new DeviceField(); deviceField322 = new DeviceField(); deviceField323 = new DeviceField(); + deviceField56 = new DeviceField(); jPanel58 = new javax.swing.JPanel(); jTabbedPane20 = new javax.swing.JTabbedPane(); jScrollPane5 = new javax.swing.JScrollPane(); @@ -344,6 +348,7 @@ private void initComponents() { deviceField356 = new DeviceField(); deviceField357 = new DeviceField(); deviceField358 = new DeviceField(); + deviceField55 = new DeviceField(); jPanel86 = new javax.swing.JPanel(); jTabbedPane22 = new javax.swing.JTabbedPane(); jScrollPane7 = new javax.swing.JScrollPane(); @@ -444,6 +449,7 @@ private void initComponents() { deviceField391 = new DeviceField(); deviceField392 = new DeviceField(); deviceField393 = new DeviceField(); + deviceField54 = new DeviceField(); jPanel113 = new javax.swing.JPanel(); jTabbedPane24 = new javax.swing.JTabbedPane(); jScrollPane9 = new javax.swing.JScrollPane(); @@ -544,6 +550,7 @@ private void initComponents() { deviceField426 = new DeviceField(); deviceField427 = new DeviceField(); deviceField428 = new DeviceField(); + deviceField53 = new DeviceField(); jPanel140 = new javax.swing.JPanel(); jTabbedPane26 = new javax.swing.JTabbedPane(); jScrollPane11 = new javax.swing.JScrollPane(); @@ -644,6 +651,7 @@ private void initComponents() { deviceField461 = new DeviceField(); deviceField462 = new DeviceField(); deviceField463 = new DeviceField(); + deviceField52 = new DeviceField(); jPanel167 = new javax.swing.JPanel(); jTabbedPane28 = new javax.swing.JTabbedPane(); jScrollPane13 = new javax.swing.JScrollPane(); @@ -744,6 +752,7 @@ private void initComponents() { deviceField496 = new DeviceField(); deviceField497 = new DeviceField(); deviceField498 = new DeviceField(); + deviceField51 = new DeviceField(); jPanel194 = new javax.swing.JPanel(); jTabbedPane30 = new javax.swing.JTabbedPane(); jScrollPane15 = new javax.swing.JScrollPane(); @@ -870,7 +879,7 @@ private void initComponents() { setDeviceTitle("MARTE2 RealTimeStateMachine"); setDeviceType("MARTE2_RTSM"); setHeight(800); - setWidth(800); + setWidth(1600); getContentPane().add(deviceButtons1, java.awt.BorderLayout.PAGE_END); jPanel2.setLayout(new java.awt.BorderLayout()); @@ -892,7 +901,7 @@ private void initComponents() { deviceField39.setIdentifier(""); deviceField39.setLabelString("Digital Inputs: "); deviceField39.setNumCols(25); - deviceField39.setOffsetNid(3625); + deviceField39.setOffsetNid(3673); jPanel475.add(deviceField39); deviceField4.setIdentifier(""); @@ -917,9 +926,14 @@ private void initComponents() { deviceField50.setIdentifier(""); deviceField50.setLabelString("Timebase div.:"); deviceField50.setNumCols(4); - deviceField50.setOffsetNid(3716); + deviceField50.setOffsetNid(3764); jPanel219.add(deviceField50); + deviceField59.setIdentifier(""); + deviceField59.setLabelString("Write CPU Mask:"); + deviceField59.setOffsetNid(3682); + jPanel219.add(deviceField59); + jPanel2.add(jPanel219, java.awt.BorderLayout.PAGE_END); getContentPane().add(jPanel2, java.awt.BorderLayout.PAGE_START); @@ -927,7 +941,7 @@ private void initComponents() { jPanel1.setLayout(new java.awt.BorderLayout()); deviceField5.setIdentifier(""); - deviceField5.setLabelString("Dead Time: "); + deviceField5.setLabelString("Dead/Join Time: "); deviceField5.setNumCols(20); deviceField5.setOffsetNid(19); jPanel3.add(deviceField5); @@ -944,6 +958,13 @@ private void initComponents() { deviceField40.setOffsetNid(193); jPanel3.add(deviceField40); + deviceField58.setIdentifier(""); + deviceField58.setLabelString("Comment"); + deviceField58.setNumCols(30); + deviceField58.setOffsetNid(3622); + deviceField58.setTextOnly(true); + jPanel3.add(deviceField58); + jPanel1.add(jPanel3, java.awt.BorderLayout.NORTH); jPanel4.setLayout(new java.awt.GridLayout(1, 2)); @@ -1403,7 +1424,7 @@ private void initComponents() { jPanel29.setLayout(new java.awt.BorderLayout()); deviceField286.setIdentifier(""); - deviceField286.setLabelString("Dead Time: "); + deviceField286.setLabelString("Dead/Join Time: "); deviceField286.setNumCols(20); deviceField286.setOffsetNid(196); jPanel30.add(deviceField286); @@ -1420,6 +1441,13 @@ private void initComponents() { deviceField288.setOffsetNid(370); jPanel30.add(deviceField288); + deviceField57.setIdentifier(""); + deviceField57.setLabelString("Comment"); + deviceField57.setNumCols(30); + deviceField57.setOffsetNid(3625); + deviceField57.setTextOnly(true); + jPanel30.add(deviceField57); + jPanel29.add(jPanel30, java.awt.BorderLayout.NORTH); jPanel31.setLayout(new java.awt.GridLayout(1, 2)); @@ -1879,7 +1907,7 @@ private void initComponents() { jPanel56.setLayout(new java.awt.BorderLayout()); deviceField321.setIdentifier(""); - deviceField321.setLabelString("Dead Time: "); + deviceField321.setLabelString("Dead/Join Time: "); deviceField321.setNumCols(20); deviceField321.setOffsetNid(373); jPanel57.add(deviceField321); @@ -1896,6 +1924,13 @@ private void initComponents() { deviceField323.setOffsetNid(547); jPanel57.add(deviceField323); + deviceField56.setIdentifier(""); + deviceField56.setLabelString("Comment"); + deviceField56.setNumCols(30); + deviceField56.setOffsetNid(3628); + deviceField56.setTextOnly(true); + jPanel57.add(deviceField56); + jPanel56.add(jPanel57, java.awt.BorderLayout.NORTH); jPanel58.setLayout(new java.awt.GridLayout(1, 2)); @@ -2355,7 +2390,7 @@ private void initComponents() { jPanel84.setLayout(new java.awt.BorderLayout()); deviceField356.setIdentifier(""); - deviceField356.setLabelString("Dead Time: "); + deviceField356.setLabelString("Dead/Join Time: "); deviceField356.setNumCols(20); deviceField356.setOffsetNid(550); jPanel85.add(deviceField356); @@ -2372,6 +2407,13 @@ private void initComponents() { deviceField358.setOffsetNid(724); jPanel85.add(deviceField358); + deviceField55.setIdentifier(""); + deviceField55.setLabelString("Comment"); + deviceField55.setNumCols(30); + deviceField55.setOffsetNid(3631); + deviceField55.setTextOnly(true); + jPanel85.add(deviceField55); + jPanel84.add(jPanel85, java.awt.BorderLayout.NORTH); jPanel86.setLayout(new java.awt.GridLayout(1, 2)); @@ -2831,7 +2873,7 @@ private void initComponents() { jPanel111.setLayout(new java.awt.BorderLayout()); deviceField391.setIdentifier(""); - deviceField391.setLabelString("Dead Time: "); + deviceField391.setLabelString("Dead/Join Time: "); deviceField391.setNumCols(20); deviceField391.setOffsetNid(727); jPanel112.add(deviceField391); @@ -2848,6 +2890,13 @@ private void initComponents() { deviceField393.setOffsetNid(901); jPanel112.add(deviceField393); + deviceField54.setIdentifier(""); + deviceField54.setLabelString("Comment"); + deviceField54.setNumCols(30); + deviceField54.setOffsetNid(3634); + deviceField54.setTextOnly(true); + jPanel112.add(deviceField54); + jPanel111.add(jPanel112, java.awt.BorderLayout.NORTH); jPanel113.setLayout(new java.awt.GridLayout(1, 2)); @@ -3307,7 +3356,7 @@ private void initComponents() { jPanel138.setLayout(new java.awt.BorderLayout()); deviceField426.setIdentifier(""); - deviceField426.setLabelString("Dead Time: "); + deviceField426.setLabelString("Dead/Join Time: "); deviceField426.setNumCols(20); deviceField426.setOffsetNid(904); jPanel139.add(deviceField426); @@ -3324,6 +3373,13 @@ private void initComponents() { deviceField428.setOffsetNid(1078); jPanel139.add(deviceField428); + deviceField53.setIdentifier(""); + deviceField53.setLabelString("Comment"); + deviceField53.setNumCols(30); + deviceField53.setOffsetNid(3637); + deviceField53.setTextOnly(true); + jPanel139.add(deviceField53); + jPanel138.add(jPanel139, java.awt.BorderLayout.NORTH); jPanel140.setLayout(new java.awt.GridLayout(1, 2)); @@ -3783,7 +3839,7 @@ private void initComponents() { jPanel165.setLayout(new java.awt.BorderLayout()); deviceField461.setIdentifier(""); - deviceField461.setLabelString("Dead Time: "); + deviceField461.setLabelString("Dead/Join Time: "); deviceField461.setNumCols(20); deviceField461.setOffsetNid(1081); jPanel166.add(deviceField461); @@ -3800,6 +3856,13 @@ private void initComponents() { deviceField463.setOffsetNid(1255); jPanel166.add(deviceField463); + deviceField52.setIdentifier(""); + deviceField52.setLabelString("Comment"); + deviceField52.setNumCols(30); + deviceField52.setOffsetNid(3640); + deviceField52.setTextOnly(true); + jPanel166.add(deviceField52); + jPanel165.add(jPanel166, java.awt.BorderLayout.NORTH); jPanel167.setLayout(new java.awt.GridLayout(1, 2)); @@ -4259,7 +4322,7 @@ private void initComponents() { jPanel192.setLayout(new java.awt.BorderLayout()); deviceField496.setIdentifier(""); - deviceField496.setLabelString("Dead Time: "); + deviceField496.setLabelString("Dead/Join Time: "); deviceField496.setNumCols(20); deviceField496.setOffsetNid(1258); jPanel193.add(deviceField496); @@ -4276,6 +4339,13 @@ private void initComponents() { deviceField498.setOffsetNid(1432); jPanel193.add(deviceField498); + deviceField51.setIdentifier(""); + deviceField51.setLabelString("Comment"); + deviceField51.setNumCols(30); + deviceField51.setOffsetNid(3643); + deviceField51.setTextOnly(true); + jPanel193.add(deviceField51); + jPanel192.add(jPanel193, java.awt.BorderLayout.NORTH); jPanel194.setLayout(new java.awt.GridLayout(1, 2)); @@ -4739,7 +4809,7 @@ private void initComponents() { deviceField42.setIdentifier(""); deviceField42.setLabelString("Segment Len.:"); deviceField42.setNumCols(6); - deviceField42.setOffsetNid(3649); + deviceField42.setOffsetNid(3697); jPanel220.add(deviceField42); deviceChoice9.setChoiceIntValues(new int[] {0, -1}); @@ -4747,7 +4817,7 @@ private void initComponents() { deviceChoice9.setConvert(true); deviceChoice9.setIdentifier(""); deviceChoice9.setLabelString("Output: "); - deviceChoice9.setOffsetNid(3648); + deviceChoice9.setOffsetNid(3696); deviceChoice9.setUpdateIdentifier(""); jPanel220.add(deviceChoice9); @@ -4758,7 +4828,7 @@ private void initComponents() { deviceField43.setIdentifier(""); deviceField43.setLabelString("Segment Len.:"); deviceField43.setNumCols(6); - deviceField43.setOffsetNid(3658); + deviceField43.setOffsetNid(3706); jPanel222.add(deviceField43); deviceChoice10.setChoiceIntValues(new int[] {0, -1}); @@ -4766,7 +4836,7 @@ private void initComponents() { deviceChoice10.setConvert(true); deviceChoice10.setIdentifier(""); deviceChoice10.setLabelString("Output: "); - deviceChoice10.setOffsetNid(3657); + deviceChoice10.setOffsetNid(3705); deviceChoice10.setUpdateIdentifier(""); jPanel222.add(deviceChoice10); @@ -4777,7 +4847,7 @@ private void initComponents() { deviceField44.setIdentifier(""); deviceField44.setLabelString("Segment Len.:"); deviceField44.setNumCols(6); - deviceField44.setOffsetNid(3667); + deviceField44.setOffsetNid(3715); jPanel223.add(deviceField44); deviceChoice11.setChoiceIntValues(new int[] {0, -1}); @@ -4785,7 +4855,7 @@ private void initComponents() { deviceChoice11.setConvert(true); deviceChoice11.setIdentifier(""); deviceChoice11.setLabelString("Output: "); - deviceChoice11.setOffsetNid(3666); + deviceChoice11.setOffsetNid(3714); deviceChoice11.setUpdateIdentifier(""); jPanel223.add(deviceChoice11); @@ -4796,7 +4866,7 @@ private void initComponents() { deviceField45.setIdentifier(""); deviceField45.setLabelString("Segment Len.:"); deviceField45.setNumCols(6); - deviceField45.setOffsetNid(3676); + deviceField45.setOffsetNid(3724); jPanel224.add(deviceField45); deviceChoice12.setChoiceIntValues(new int[] {0, -1}); @@ -4804,7 +4874,7 @@ private void initComponents() { deviceChoice12.setConvert(true); deviceChoice12.setIdentifier(""); deviceChoice12.setLabelString("Output: "); - deviceChoice12.setOffsetNid(3675); + deviceChoice12.setOffsetNid(3723); deviceChoice12.setUpdateIdentifier(""); jPanel224.add(deviceChoice12); @@ -4815,7 +4885,7 @@ private void initComponents() { deviceField46.setIdentifier(""); deviceField46.setLabelString("Segment Len.:"); deviceField46.setNumCols(6); - deviceField46.setOffsetNid(3685); + deviceField46.setOffsetNid(3733); jPanel225.add(deviceField46); deviceChoice13.setChoiceIntValues(new int[] {0, -1}); @@ -4823,7 +4893,7 @@ private void initComponents() { deviceChoice13.setConvert(true); deviceChoice13.setIdentifier(""); deviceChoice13.setLabelString("Output: "); - deviceChoice13.setOffsetNid(3684); + deviceChoice13.setOffsetNid(3732); deviceChoice13.setUpdateIdentifier(""); jPanel225.add(deviceChoice13); @@ -4834,7 +4904,7 @@ private void initComponents() { deviceField47.setIdentifier(""); deviceField47.setLabelString("Segment Len.:"); deviceField47.setNumCols(6); - deviceField47.setOffsetNid(3694); + deviceField47.setOffsetNid(3742); jPanel226.add(deviceField47); deviceChoice14.setChoiceIntValues(new int[] {0, -1}); @@ -4842,7 +4912,7 @@ private void initComponents() { deviceChoice14.setConvert(true); deviceChoice14.setIdentifier(""); deviceChoice14.setLabelString("Output: "); - deviceChoice14.setOffsetNid(3693); + deviceChoice14.setOffsetNid(3741); deviceChoice14.setUpdateIdentifier(""); jPanel226.add(deviceChoice14); @@ -4853,7 +4923,7 @@ private void initComponents() { deviceField48.setIdentifier(""); deviceField48.setLabelString("Segment Len.:"); deviceField48.setNumCols(6); - deviceField48.setOffsetNid(3703); + deviceField48.setOffsetNid(3751); jPanel227.add(deviceField48); deviceChoice15.setChoiceIntValues(new int[] {0, -1}); @@ -4861,7 +4931,7 @@ private void initComponents() { deviceChoice15.setConvert(true); deviceChoice15.setIdentifier(""); deviceChoice15.setLabelString("Output: "); - deviceChoice15.setOffsetNid(3702); + deviceChoice15.setOffsetNid(3750); deviceChoice15.setUpdateIdentifier(""); jPanel227.add(deviceChoice15); @@ -4872,7 +4942,7 @@ private void initComponents() { deviceField49.setIdentifier(""); deviceField49.setLabelString("Segment Len.:"); deviceField49.setNumCols(6); - deviceField49.setOffsetNid(3712); + deviceField49.setOffsetNid(3760); jPanel228.add(deviceField49); deviceChoice16.setChoiceIntValues(new int[] {0, -1}); @@ -4880,7 +4950,7 @@ private void initComponents() { deviceChoice16.setConvert(true); deviceChoice16.setIdentifier(""); deviceChoice16.setLabelString("Output: "); - deviceChoice16.setOffsetNid(3711); + deviceChoice16.setOffsetNid(3759); deviceChoice16.setUpdateIdentifier(""); jPanel228.add(deviceChoice16); @@ -5302,6 +5372,7 @@ private void initComponents() { private DeviceField deviceField507; private DeviceField deviceField508; private DeviceField deviceField509; + private DeviceField deviceField51; private DeviceField deviceField510; private DeviceField deviceField511; private DeviceField deviceField512; @@ -5312,6 +5383,7 @@ private void initComponents() { private DeviceField deviceField517; private DeviceField deviceField518; private DeviceField deviceField519; + private DeviceField deviceField52; private DeviceField deviceField520; private DeviceField deviceField521; private DeviceField deviceField522; @@ -5322,7 +5394,14 @@ private void initComponents() { private DeviceField deviceField527; private DeviceField deviceField528; private DeviceField deviceField529; + private DeviceField deviceField53; private DeviceField deviceField530; + private DeviceField deviceField54; + private DeviceField deviceField55; + private DeviceField deviceField56; + private DeviceField deviceField57; + private DeviceField deviceField58; + private DeviceField deviceField59; private DeviceField deviceField6; private DeviceField deviceField7; private DeviceField deviceField8; diff --git a/java/jdevices/src/main/java/MITICA_SETUPSetup.java b/java/jdevices/src/main/java/MITICA_SETUPSetup.java index 196fa4dc4e..4d43ed2bd9 100644 --- a/java/jdevices/src/main/java/MITICA_SETUPSetup.java +++ b/java/jdevices/src/main/java/MITICA_SETUPSetup.java @@ -13,7 +13,6 @@ * * Created on Feb 2, 2012, 2:19:27 PM */ - /** * * @author manduchi @@ -64,12 +63,6 @@ private void initComponents() { jPanel54 = new javax.swing.JPanel(); deviceField29 = new DeviceField(); deviceChoice10 = new DeviceChoice(); - jPanel34 = new javax.swing.JPanel(); - jPanel24 = new javax.swing.JPanel(); - deviceChoice3 = new DeviceChoice(); - deviceField41 = new DeviceField(); - deviceField21 = new DeviceField(); - deviceField22 = new DeviceField(); jPanel52 = new javax.swing.JPanel(); deviceField42 = new DeviceField(); deviceField43 = new DeviceField(); @@ -96,6 +89,8 @@ private void initComponents() { deviceWave3 = new DeviceWave(); jPanel13 = new javax.swing.JPanel(); deviceWave6 = new DeviceWave(); + jPanel56 = new javax.swing.JPanel(); + deviceWave14 = new DeviceWave(); jTabbedPane7 = new javax.swing.JTabbedPane(); jPanel10 = new javax.swing.JPanel(); deviceWave4 = new DeviceWave(); @@ -194,7 +189,10 @@ private void initComponents() { setDeviceTitle("MITICA Experiment Setup"); setDeviceType("MITICA_SETUP"); setHeight(650); - setWidth(1000); + setWidth(1200); + + deviceButtons1.setCheckExpressions(new String[] {}); + deviceButtons1.setCheckMessages(new String[] {}); getContentPane().add(deviceButtons1, java.awt.BorderLayout.PAGE_END); jTabbedPane1.addFocusListener(new java.awt.event.FocusAdapter() { @@ -240,6 +238,11 @@ public void focusLost(java.awt.event.FocusEvent evt) { jPanel28.add(jPanel30); jPanel29.setBorder(javax.swing.BorderFactory.createTitledBorder("Reference Waveform Time Limit")); + jPanel29.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusLost(java.awt.event.FocusEvent evt) { + jPanel29FocusLost(evt); + } + }); deviceField13.setIdentifier(""); deviceField13.setLabelString("Start Time: "); @@ -281,7 +284,7 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { jPanel17.setLayout(new java.awt.BorderLayout()); - jPanel3.setLayout(new java.awt.GridLayout(4, 0)); + jPanel3.setLayout(new java.awt.GridLayout(3, 0)); jPanel32.setBorder(javax.swing.BorderFactory.createTitledBorder("EG Modulation")); @@ -326,7 +329,7 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { jPanel33.add(jPanel53); - deviceField29.setIdentifier(""); + deviceField29.setIdentifier("isrf_te_v"); deviceField29.setLabelString("ISRF TE V:"); deviceField29.setOffsetNid(323); jPanel54.add(deviceField29); @@ -342,38 +345,6 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { jPanel3.add(jPanel33); - jPanel34.setBorder(javax.swing.BorderFactory.createTitledBorder("Filament")); - jPanel34.setLayout(new java.awt.GridLayout(2, 0)); - - deviceChoice3.setChoiceItems(new String[] {"ON", "OFF"}); - deviceChoice3.setIdentifier(""); - deviceChoice3.setLabelString("State:"); - deviceChoice3.setOffsetNid(130); - deviceChoice3.setUpdateIdentifier(""); - jPanel24.add(deviceChoice3); - - deviceField41.setIdentifier(""); - deviceField41.setLabelString("Ref. V:"); - deviceField41.setNumCols(8); - deviceField41.setOffsetNid(325); - jPanel24.add(deviceField41); - - deviceField21.setIdentifier(""); - deviceField21.setLabelString("Start Time:"); - deviceField21.setNumCols(20); - deviceField21.setOffsetNid(131); - jPanel24.add(deviceField21); - - deviceField22.setIdentifier(""); - deviceField22.setLabelString("Stop Time:"); - deviceField22.setNumCols(20); - deviceField22.setOffsetNid(132); - jPanel24.add(deviceField22); - - jPanel34.add(jPanel24); - - jPanel3.add(jPanel34); - jPanel52.setBorder(javax.swing.BorderFactory.createTitledBorder("Core Snubber")); deviceField42.setIdentifier(""); @@ -507,9 +478,18 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { jTabbedPane2.addTab("Bias I/V [A]/[V]", jPanel13); + jPanel56.setLayout(new java.awt.BorderLayout()); + + deviceWave14.setIdentifier(""); + deviceWave14.setOffsetNid(269); + deviceWave14.setUpdateExpression(""); + jPanel56.add(deviceWave14, java.awt.BorderLayout.CENTER); + + jTabbedPane2.addTab("Filament Bias [V] ", jPanel56); + jPanel10.setLayout(new java.awt.BorderLayout()); - deviceWave4.setIdentifier(""); + deviceWave4.setIdentifier("rf1_power"); deviceWave4.setOffsetNid(39); deviceWave4.setUpdateExpression(""); jPanel10.add(deviceWave4, java.awt.BorderLayout.CENTER); @@ -532,13 +512,13 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { deviceWave22.setUpdateExpression(""); jPanel48.add(deviceWave22, java.awt.BorderLayout.CENTER); - jTabbedPane7.addTab("RF1 Capacitance [nF]", jPanel48); + jTabbedPane7.addTab("RF1 Capacitance [pF]", jPanel48); jTabbedPane2.addTab("RF1 Setup", jTabbedPane7); jPanel15.setLayout(new java.awt.BorderLayout()); - deviceWave8.setIdentifier(""); + deviceWave8.setIdentifier("rf2_power"); deviceWave8.setOffsetNid(57); deviceWave8.setUpdateExpression(""); jPanel15.add(deviceWave8, java.awt.BorderLayout.CENTER); @@ -561,13 +541,13 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { deviceWave23.setUpdateExpression(""); jPanel49.add(deviceWave23, java.awt.BorderLayout.CENTER); - jTabbedPane8.addTab("RF2 Capacitance [nF]", jPanel49); + jTabbedPane8.addTab("RF2 Capacitance [pF]", jPanel49); jTabbedPane2.addTab("RF2 Setup", jTabbedPane8); jPanel50.setLayout(new java.awt.BorderLayout()); - deviceWave24.setIdentifier(""); + deviceWave24.setIdentifier("rf3_power"); deviceWave24.setOffsetNid(227); deviceWave24.setUpdateExpression(""); jPanel50.add(deviceWave24, java.awt.BorderLayout.CENTER); @@ -590,13 +570,13 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { deviceWave26.setUpdateExpression(""); jPanel65.add(deviceWave26, java.awt.BorderLayout.CENTER); - jTabbedPane9.addTab("RF3 Capacitance [nF]", jPanel65); + jTabbedPane9.addTab("RF3 Capacitance [pF]", jPanel65); jTabbedPane2.addTab("RF3 Setup", jTabbedPane9); jPanel66.setLayout(new java.awt.BorderLayout()); - deviceWave27.setIdentifier(""); + deviceWave27.setIdentifier("rf4_power"); deviceWave27.setOffsetNid(248); deviceWave27.setUpdateExpression(""); jPanel66.add(deviceWave27, java.awt.BorderLayout.CENTER); @@ -619,7 +599,7 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { deviceWave29.setUpdateExpression(""); jPanel68.add(deviceWave29, java.awt.BorderLayout.CENTER); - jTabbedPane10.addTab("RF4 Capacitance [nF]", jPanel68); + jTabbedPane10.addTab("RF4 Capacitance [pF]", jPanel68); jTabbedPane2.addTab("RF4 Setup", jTabbedPane10); @@ -954,6 +934,7 @@ public void propertyChange(java.beans.PropertyChangeEvent evt) { private void deviceField17PropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_deviceField17PropertyChange // TODO add your handling code here: + //updateWaves(); }//GEN-LAST:event_deviceField17PropertyChange @@ -961,24 +942,24 @@ private void updateWaves() { float maxX = 0, minX = 0; try { - // Data data = this.deviceField13.getData(); - // minX = (subtree.evaluateData(subtree.dataFromExpr("FLOAT(" + subtree.dataToString(data) + ")"), 0)).getFloat(); - minX = subtree.getFloat(this.deviceField13.getData()); + //MDSplus.Data data = (MDSplus.Data)this.deviceField13.getData(); + //minX = (subtree.evaluateData(subtree.dataFromExpr("FLOAT(" + subtree.dataToString(data) + ")"), 0)).getFloat(); + minX = subtree.getFloat(this.deviceField13.getData()); } catch (Exception ex) { JOptionPane.showMessageDialog(MITICA_SETUPSetup.this, "The value on the file Start Time in the Reference Wave Time Limit pannel isn't a valid float value or mdsplus expression.", - "Incorret Start Time Reference wave limits", JOptionPane.WARNING_MESSAGE); + "Incorret Start Time Reference wave limits ", JOptionPane.WARNING_MESSAGE); return; } try { - // Data data = this.deviceField17.getData(); - // maxX = (subtree.evaluateData(subtree.dataFromExpr("FLOAT(" + subtree.dataToString(data) + ")"), 0)).getFloat(); - maxX = subtree.getFloat(this.deviceField17.getData()); + //MDSplus.Data data = (MDSplus.Data)this.deviceField17.getFullData(); + //maxX = (subtree.evaluateData(subtree.dataFromExpr("FLOAT(" + subtree.dataToString(data) + ")"), 0)).getFloat(); + maxX = subtree.getFloat(this.deviceField17.getData()); } catch (Exception ex) { JOptionPane.showMessageDialog(MITICA_SETUPSetup.this, - "The value on the file Stop Time in the Reference Wave Time Limit pannel isn't a valid float value or mdsplus expression.", - "Incorret Start Time Reference wave limits", JOptionPane.WARNING_MESSAGE); + "The value on the file Stop Time in the Reference Wave Time Limit pannel isn't a valid float value or mdsplus expression.\n"+ex, + "Incorret Start Time Reference wave limits ", JOptionPane.WARNING_MESSAGE); return; } @@ -1005,6 +986,7 @@ private void updateWaves() deviceWave11.updateXLimit(minX, maxX); deviceWave12.updateXLimit(minX, maxX); deviceWave13.updateXLimit(minX, maxX); + deviceWave14.updateXLimit(minX, maxX); //deviceWave21.updateXLimit(minX, maxX); Reconnect Wave x limit fixed from 0 to 1 deviceWave22.updateXLimit(minX, maxX); deviceWave23.updateXLimit(minX, maxX); @@ -1018,13 +1000,22 @@ private void updateWaves() private void deviceField17FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_deviceField17FocusLost // TODO add your handling code here: + //System.out.println("deviceField17FocusLost"); + //updateWaves(); }//GEN-LAST:event_deviceField17FocusLost private void jTabbedPane1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTabbedPane1FocusLost // TODO add your handling code here: - updateWaves(); + //System.out.println("jTabbedPane1FocusLost"); + //updateWaves(); }//GEN-LAST:event_jTabbedPane1FocusLost + private void jPanel29FocusLost(java.awt.event.FocusEvent evt) { + System.out.println("jPanel29FocusLost"); + updateWaves(); + // TODO add your handling code here: + } + // Variables declaration - do not modify//GEN-BEGIN:variables private DeviceButtons deviceButtons1; @@ -1033,7 +1024,6 @@ private void jTabbedPane1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:e private DeviceChoice deviceChoice11; private DeviceChoice deviceChoice12; private DeviceChoice deviceChoice2; - private DeviceChoice deviceChoice3; private DeviceChoice deviceChoice4; private DeviceChoice deviceChoice5; private DeviceChoice deviceChoice6; @@ -1053,8 +1043,6 @@ private void jTabbedPane1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:e private DeviceField deviceField19; private DeviceField deviceField2; private DeviceField deviceField20; - private DeviceField deviceField21; - private DeviceField deviceField22; private DeviceField deviceField23; private DeviceField deviceField24; private DeviceField deviceField25; @@ -1075,7 +1063,6 @@ private void jTabbedPane1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:e private DeviceField deviceField39; private DeviceField deviceField4; private DeviceField deviceField40; - private DeviceField deviceField41; private DeviceField deviceField42; private DeviceField deviceField43; private DeviceField deviceField5; @@ -1088,6 +1075,7 @@ private void jTabbedPane1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:e private DeviceWave deviceWave11; private DeviceWave deviceWave12; private DeviceWave deviceWave13; + private DeviceWave deviceWave14; private DeviceWave deviceWave2; private DeviceWave deviceWave21; private DeviceWave deviceWave22; @@ -1123,7 +1111,6 @@ private void jTabbedPane1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:e private javax.swing.JPanel jPanel21; private javax.swing.JPanel jPanel22; private javax.swing.JPanel jPanel23; - private javax.swing.JPanel jPanel24; private javax.swing.JPanel jPanel25; private javax.swing.JPanel jPanel26; private javax.swing.JPanel jPanel27; @@ -1134,7 +1121,6 @@ private void jTabbedPane1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:e private javax.swing.JPanel jPanel31; private javax.swing.JPanel jPanel32; private javax.swing.JPanel jPanel33; - private javax.swing.JPanel jPanel34; private javax.swing.JPanel jPanel35; private javax.swing.JPanel jPanel36; private javax.swing.JPanel jPanel37; @@ -1158,6 +1144,7 @@ private void jTabbedPane1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:e private javax.swing.JPanel jPanel53; private javax.swing.JPanel jPanel54; private javax.swing.JPanel jPanel55; + private javax.swing.JPanel jPanel56; private javax.swing.JPanel jPanel59; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel60; diff --git a/java/jdevices/src/main/resources/MARTE2_EPICS_INSetup.form b/java/jdevices/src/main/resources/MARTE2_EPICS_INSetup.form new file mode 100644 index 0000000000..08e9137aa6 --- /dev/null +++ b/java/jdevices/src/main/resources/MARTE2_EPICS_INSetup.form @@ -0,0 +1,886 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/jdevices/src/main/resources/MARTE2_EPICS_OUTSetup.form b/java/jdevices/src/main/resources/MARTE2_EPICS_OUTSetup.form new file mode 100644 index 0000000000..e3bacd8fe7 --- /dev/null +++ b/java/jdevices/src/main/resources/MARTE2_EPICS_OUTSetup.form @@ -0,0 +1,1138 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/jdevices/src/main/resources/MARTE2_NI6368_SYNCH_DISetup.form b/java/jdevices/src/main/resources/MARTE2_NI6368_SYNCH_DISetup.form index ecdb3d2fe0..e3fbee2c30 100644 --- a/java/jdevices/src/main/resources/MARTE2_NI6368_SYNCH_DISetup.form +++ b/java/jdevices/src/main/resources/MARTE2_NI6368_SYNCH_DISetup.form @@ -2,11 +2,11 @@
- + - + @@ -21,7 +21,7 @@ - + @@ -117,6 +117,14 @@ + + + + + + + + diff --git a/java/jdevices/src/main/resources/MARTE2_RTSMSetup.form b/java/jdevices/src/main/resources/MARTE2_RTSMSetup.form index 2a80da6476..bea5ee43d0 100644 --- a/java/jdevices/src/main/resources/MARTE2_RTSMSetup.form +++ b/java/jdevices/src/main/resources/MARTE2_RTSMSetup.form @@ -6,7 +6,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -125,7 +125,14 @@ - + + + + + + + + @@ -164,7 +171,7 @@ - + @@ -185,6 +192,15 @@ + + + + + + + + + @@ -1242,7 +1258,7 @@ - + @@ -1263,6 +1279,15 @@ + + + + + + + + + @@ -2320,7 +2345,7 @@ - + @@ -2341,6 +2366,15 @@ + + + + + + + + + @@ -3398,7 +3432,7 @@ - + @@ -3419,6 +3453,15 @@ + + + + + + + + + @@ -4476,7 +4519,7 @@ - + @@ -4497,6 +4540,15 @@ + + + + + + + + + @@ -5554,7 +5606,7 @@ - + @@ -5575,6 +5627,15 @@ + + + + + + + + + @@ -6632,7 +6693,7 @@ - + @@ -6653,6 +6714,15 @@ + + + + + + + + + @@ -7710,7 +7780,7 @@ - + @@ -7731,6 +7801,15 @@ + + + + + + + + + @@ -8799,7 +8878,7 @@ - + @@ -8816,7 +8895,7 @@ - + @@ -8838,7 +8917,7 @@ - + @@ -8855,7 +8934,7 @@ - + @@ -8877,7 +8956,7 @@ - + @@ -8894,7 +8973,7 @@ - + @@ -8916,7 +8995,7 @@ - + @@ -8933,7 +9012,7 @@ - + @@ -8955,7 +9034,7 @@ - + @@ -8972,7 +9051,7 @@ - + @@ -8994,7 +9073,7 @@ - + @@ -9011,7 +9090,7 @@ - + @@ -9033,7 +9112,7 @@ - + @@ -9050,7 +9129,7 @@ - + @@ -9072,7 +9151,7 @@ - + @@ -9089,7 +9168,7 @@ - + diff --git a/pydevices/RfxDevices/CRIO_FAU.py b/pydevices/RfxDevices/CRIO_FAU.py index 473b96b248..a2da1ce64b 100644 --- a/pydevices/RfxDevices/CRIO_FAU.py +++ b/pydevices/RfxDevices/CRIO_FAU.py @@ -1,4 +1,4 @@ -from MDSplus import mdsExceptions, Device, Data, Range, Dimension, Window, Int32, Float32, Float64 +from MDSplus import mdsExceptions, Device, Data, Range, Dimension, Window, Int32, Float32, Float64, Tree from threading import Thread from ctypes import CDLL, byref, c_int, c_void_p, c_byte, c_float, c_char_p, c_uint, c_short, c_byte, c_double, c_uint64 import os @@ -101,44 +101,57 @@ def configure(self, device, tsmpFreq, treePtr): self.tsmpFreq = tsmpFreq self.treePtr = treePtr self.stopReq = False - self.stopFlag = c_byte(0); + ##self.stopFlag = c_byte(0); + def run(self): + self.device.setTree(Tree(self.device.getTree().name, self.device.getTree().shot)) + self.device = self.device.copy() + bufSize = self.device.buf_size.data() trigSource = self.device.trig_source.data() print ('AsynchStore trigget time', trigSource) - + chanNid = [] for mod in range(1,9): for chan in range(0,8): chanNid.append(getattr(self.device, 'module_%d_channel_%d_data'%(mod,chan)).getNid()) - + chanNid_c = (c_int * len(chanNid) )(*chanNid) - self.stopFlag.value = 0; - ##self.saveList = c_void_p(0) ## - ##CRIO_FAU.niInterfaceLib.FAUstartSave(byref(self.saveList)) ## + ##self.stopFlag.value = 0; + self.stopFlag = c_void_p(0) + CRIO_FAU.niInterfaceLib.getStopAcqFlag(byref(self.stopFlag)) + + self.saveList = c_void_p(0) ## + CRIO_FAU.niInterfaceLib.FAUstartSave(byref(self.saveList)) ## + + """ while not self.stopReq: - currElem = CRIO_FAU.niInterfaceLib.fauSaveAcqData(self.device.session, c_double(1./self.tsmpFreq), c_double(trigSource), c_int(bufSize), self.device.NUM_DIO, self.treePtr, chanNid_c, byref(self.stopFlag) ); - ##status = CRIO_FAU.niInterfaceLib.fauQueuedAcqData(self.device.session, byref(self.saveList), c_double(1./self.tsmpFreq), c_double(trigSource), c_int(bufSize), self.device.NUM_DIO, self.treePtr, chanNid_c, byref(self.stopFlag) ); + print ('AsynchStore LOOP') + ##currElem = CRIO_FAU.niInterfaceLib.fauSaveAcqData(self.device.session, c_double(1./self.tsmpFreq), c_double(trigSource), c_int(bufSize), self.device.NUM_DIO, self.treePtr, chanNid_c, byref(self.stopFlag) ); + """ + status = CRIO_FAU.niInterfaceLib.fauQueuedAcqData(self.device.session, (self.saveList), c_double(1./self.tsmpFreq), c_double(trigSource), c_int(bufSize), self.device.NUM_DIO, self.treePtr, chanNid_c, (self.stopFlag) ); + + #if self.stopFlag.value == 1: + # self.stopReq = True - if self.stopFlag: - self.stopReq = True - - print ('AsynchStore stop') + print ('AsynchStore stop LOOP') + CRIO_FAU.niInterfaceLib.FAUstopSave(self.saveList) ## + CRIO_FAU.niInterfaceLib.freeStopAcqFlag(self.stopFlag) - return def stop(self): print ('AsynchStore stop Request') - #self.stopReq = True - self.stopFlag.value = 1 - ##CRIO_FAU.niInterfaceLib.FAUstopSave(byref(self.saveList)) ## + self.stopReq = True + CRIO_FAU.niInterfaceLib.setStopAcqFlag(self.stopFlag) + #self.stopFlag.value = 1 + #############End Inner class AsynchStore @@ -229,7 +242,7 @@ def init(self): acqState = c_short(); CRIO_FAU.niInterfaceLib.getFauAcqState(self.session, byref(acqState)) - print ("Acquisition State ", acqState.value) + print ("Init Acquisition State ", acqState.value) return 1 @@ -261,7 +274,7 @@ def start_store(self): self.worker.daemon = True self.worker.stopReq = False - self.worker.configure(self, tsmpFreq, treePtr) + self.worker.configure(self.copy(), tsmpFreq, treePtr) """ trigMode = self.trig_mode.data() @@ -277,7 +290,7 @@ def start_store(self): acqState = c_short(); CRIO_FAU.niInterfaceLib.getFauAcqState(self.session, byref(acqState)) - print ("Acquisition State ", acqState.value) + print ("Start Store Acquisition State ", acqState.value) self.saveWorker() self.worker.start() @@ -302,11 +315,9 @@ def trigger(self): Data.execute('DevLogErr($1,$2)', self.getNid(), 'FAU start acquisition device error.') raise mdsExceptions.TclFAILED_ESSENTIAL - sleep(1) - acqState = c_short(); CRIO_FAU.niInterfaceLib.getFauAcqState(self.session, byref(acqState)) - print ("Acquisition State ", acqState.value) + print ("Trig Acquisition State ", acqState.value) return 1 diff --git a/pydevices/RfxDevices/MARTE2_EPICS_IN.py b/pydevices/RfxDevices/MARTE2_EPICS_IN.py new file mode 100644 index 0000000000..39f8a96f51 --- /dev/null +++ b/pydevices/RfxDevices/MARTE2_EPICS_IN.py @@ -0,0 +1,69 @@ +# +# Copyright (c) 2017, Massachusetts Institute of Technology All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +MC = __import__('MARTE2_COMPONENT', globals()) + + +@MC.BUILDER('EPICSCA::EPICSCAInput', MC.MARTE2_COMPONENT.MODE_INPUT) +class MARTE2_EPICS_IN(MC.MARTE2_COMPONENT): + outputs = [ + {'name': 'PV_1', 'type': 'uint32', 'dimensions': 0, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_1'}]}, + {'name': 'PV_2', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_2'}]}, + {'name': 'PV_3', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_3'}]}, + {'name': 'PV_4', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_4'}]}, + {'name': 'PV_5', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_5'}]}, + {'name': 'PV_6', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_6'}]}, + {'name': 'PV_7', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_7'}]}, + {'name': 'PV_8', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_8'}]}, + {'name': 'PV_9', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_9'}]}, + {'name': 'PV_10', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_10'}]}, + {'name': 'PV_11', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_11'}]}, + {'name': 'PV_12', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_12'}]}, + {'name': 'PV_13', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_13'}]}, + {'name': 'PV_14', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_14'}]}, + {'name': 'PV_15', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_15'}]}, + {'name': 'PV_16', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_16'}]}, + ] + parameters = [ + {'name': 'StackSize', 'type': 'int32', 'value': 1048576}, + {'name': 'CPUs', 'type': 'int32', 'value': 0xFF}, + ] + parts = [] diff --git a/pydevices/RfxDevices/MARTE2_EPICS_OUT.py b/pydevices/RfxDevices/MARTE2_EPICS_OUT.py new file mode 100644 index 0000000000..629edcee48 --- /dev/null +++ b/pydevices/RfxDevices/MARTE2_EPICS_OUT.py @@ -0,0 +1,70 @@ +# +# Copyright (c) 2017, Massachusetts Institute of Technology All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +MC = __import__('MARTE2_COMPONENT', globals()) + + +@MC.BUILDER('EPICSCA::EPICSCAOutput', MC.MARTE2_COMPONENT.MODE_OUTPUT) +class MARTE2_EPICS_OUT(MC.MARTE2_COMPONENT): + inputs = [ + {'name': 'PV_1', 'type': 'uint32', 'dimensions': 0, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_1'}]}, + {'name': 'PV_2', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_2'}]}, + {'name': 'PV_3', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_3'}]}, + {'name': 'PV_4', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_4'}]}, + {'name': 'PV_5', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_5'}]}, + {'name': 'PV_6', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_6'}]}, + {'name': 'PV_7', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_7'}]}, + {'name': 'PV_8', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_8'}]}, + {'name': 'PV_9', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_9'}]}, + {'name': 'PV_10', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_10'}]}, + {'name': 'PV_11', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_11'}]}, + {'name': 'PV_12', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_12'}]}, + {'name': 'PV_13', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_13'}]}, + {'name': 'PV_14', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_14'}]}, + {'name': 'PV_15', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_15'}]}, + {'name': 'PV_16', 'type': 'uint32', 'dimensions': -1, 'parameters': [ + {'name': 'PVName', 'type': 'string', 'value': 'PV_16'}]}, + ] + parameters = [ + {'name': 'StackSize', 'type': 'int32', 'value': 1048576}, + {'name': 'CPUs', 'type': 'int32', 'value': 0xFF}, + {'name': 'IgnoreBufferOverrun', 'type': 'int32', 'value': 1}, + {'name': 'NumberOfBuffers', 'type': 'int32', 'value': 10}] + parts = [] diff --git a/pydevices/RfxDevices/MARTE2_RTSM.py b/pydevices/RfxDevices/MARTE2_RTSM.py index bc65586c40..7faf1b2c7f 100644 --- a/pydevices/RfxDevices/MARTE2_RTSM.py +++ b/pydevices/RfxDevices/MARTE2_RTSM.py @@ -68,6 +68,10 @@ class MARTE2_RTSM(MC.MARTE2_COMPONENT): '.Next'+str(nextIdx+1)+'.State', 'type': 'int32'}) parameters.append({'name': 'OutBitsMask', 'type': 'int32', 'value': 0}) + for stateIdx in range(16): + parameters.append({'name': 'State'+str(stateIdx+1) + + '.Comment', 'type': 'string'}) + parts = [] diff --git a/pydevices/RfxDevices/MARTE2_SUPERVISOR.py b/pydevices/RfxDevices/MARTE2_SUPERVISOR.py index 8b712b2e0d..8cc396e354 100644 --- a/pydevices/RfxDevices/MARTE2_SUPERVISOR.py +++ b/pydevices/RfxDevices/MARTE2_SUPERVISOR.py @@ -1,9 +1,11 @@ -from MDSplus import Device, Event, VECTOR +from MDSplus import Device, Event, VECTOR, Uint8Array import subprocess import numpy as np import time import traceback +import os + MC = __import__('MARTE2_COMPONENT', globals()) @@ -55,6 +57,8 @@ class MARTE2_SUPERVISOR(Device): '.THREAD_'+str(threadIdx+1)+':GAM7', 'type': 'signal'}) parts.append({'path': '.TIMES.STATE_'+str(stateIdx+1) + '.THREAD_'+str(threadIdx+1)+':GAM8', 'type': 'signal'}) + parts.append({'path': ':MARTE_CONFIG', 'type': 'numeric'}) + parts.append({'path': ':INIT', 'type': 'action', 'valueExpr': "Action(Dispatch('MARTE_SERVER','INIT',50,None),Method(None,'startMarteIdle',head))", @@ -559,7 +563,12 @@ def buildConfiguration(self): confText += ' }\n' confText += '}\n' print (confText) + try: + os.system('mv /tmp/'+info['name']+'_marte_configuration.cfg '+'/tmp/'+info['name']+'_marte_configuration_OLD.cfg ') + except: + pass f = open('/tmp/'+info['name']+'_marte_configuration.cfg', 'w') + self.marte_config.putData(Uint8Array(bytearray(confText.encode()))) f.write(confText) f.close() print('END BUILD') diff --git a/pydevices/RfxDevices/NI6683.py b/pydevices/RfxDevices/NI6683.py index 1ca838f546..f966a7034f 100644 --- a/pydevices/RfxDevices/NI6683.py +++ b/pydevices/RfxDevices/NI6683.py @@ -35,7 +35,8 @@ from MDSplus import Device, Data, Uint64, Event, Float64, Tree from MDSplus.mdsExceptions import DevCOMM_ERROR, DevBAD_PARAMETER from threading import Thread -from ctypes import CDLL, Structure, c_int, byref, c_int8, c_uint8, c_uint32, c_uint64 +# from ctypes import CDLL, Structure, c_int, byref, c_int8, c_uint8, c_uint32, c_uint64, c +from ctypes import * import os import sys import numpy as np @@ -118,9 +119,9 @@ class NI6683(Device): eventTime = None class nisync_device_info(Structure): - _fields_ = [("driver_version", c_uint8 * 30), - ("model", c_uint8 * 10), - ("name", c_uint8 * 10), + _fields_ = [("driver_version", c_char* 30), + ("model", c_char * 10), + ("name", c_char * 10), ("state", c_int), ("time_since_sync", c_uint64), ("serial_number", c_uint32), @@ -195,13 +196,14 @@ def closeInfo(self): del(NI6683.ni6683Fds[self.nid]) for termName in NI6683.termNameDict.keys(): try: - os.close(self.termDict[termName]) + os.close(self.termDict[termName]) except Exception as e: emsg = 'Cannot close terminal %s : %s'%(termName, str(e)) Data.execute('DevLogErr($1,$2)', self.getNid(), emsg) raise DevCOMM_ERROR try: os.close(self.fd) + #self.fd.close() except: emsg = 'Cannot close device ' + str(self.fd) Data.execute('DevLogErr($1,$2)', self.getNid(), emsg) @@ -209,9 +211,9 @@ def closeInfo(self): def getAbsTime(self, relTime): + print ('DEBUG -> Abs time: ', NI6683.ni6683AbsTime, ' Reltime: ', relTime, ' RelStart: ', NI6683.ni6683RelTime) try: - print ('DEBUG -> Abs time: ', NI6683.ni6683AbsStart, ' Reltime: ', relTime, ' RelStart: ', NI6683.ni6683RelStart) - result = long((relTime - NI6683.ni6683RelStart)*1000000000 + NI6683.ni6683AbsStart) + result = long((relTime - NI6683.ni6683RelTime)*1000000000 + NI6683.ni6683AbsTime ) print ('DEBUG -> Result: ', result) return result except: @@ -222,12 +224,13 @@ def getAbsTime(self, relTime): def getStartEnd(self, termName): termNameNid = termName+str(self.nid) - try: start = NI6683.ni6683TermStarts[termNameNid] - if start <= NI6683.ni6683RelTime: - print ('WARNING: start time of ' + termName +' is equal or lower the pulse start time') - start = 0 # NISYNC_TIME_IMMEDIATE_NANOS in the API + if start < NI6683.ni6683RelTime: + emsg = 'Start time less than relative time in ' + termName + Data.execute('DevLogErr($1,$2)', self.getNid(), emsg) + raise DevBAD_PARAMETER + # start = 0 # NISYNC_TIME_IMMEDIATE_NANOS in the API else: start = self.getAbsTime(start) except: @@ -248,8 +251,10 @@ def getStartEnd(self, termName): return start, end def getStartPulse(self, termName): - try: - start = ni6683TermStarts[termNameNid] + termNameNid = termName+str(self.nid) + try: + print(NI6683.ni6683TermStarts) + start = NI6683.ni6683TermStarts[termNameNid] except: emsg = 'Error reading start time in ' + termName Data.execute('DevLogErr($1,$2)', self.getNid(), emsg) @@ -284,11 +289,16 @@ def checkStatus(self, status, message): def init(self): self.debugPrint('================= PXI 6683 init ===============') - print ("DEBUG INIT") self.restoreInfo() NI6683.ni6683RecorderDict[self.nid] = [] - + + # Resetting the device (N.B. WIP) + print("RESETTING DEVICE...") + status = NI6683.niLib.nisync_reset(self.fd) + self.checkStatus(status, 'Cannot reset the device') + print("DONE") + for termName in NI6683.termNameDict.keys(): termNameNid = termName+str(self.nid) @@ -378,21 +388,24 @@ def run(self): self.debugPrint('================= PXI 6683 trigger ===============') self.restoreInfo() - info = self.nisync_device_info("", "", "", 0, 0, 0, 0, 0, 0, 0) + info = self.nisync_device_info("","","", 0, 0, 0, 0, 0, 0, 0) trigger_event = NI6683.ni6683ModuleTriggerName if (trigger_event != None): # external time reference trigger eventObj=MyEvent(trigger_event) - eventObj.run() + eventObj.start() trigTime = c_uint64(self.eventTime) self.abs_start.putData(Uint64(trigTime)) else: # internal time reference + deltaT = 200 # ms + print ("MODULE TRIGGER NOT FOUND -> CONTINUING WITH ABS INTERNAL TIMING") curr_nanos = c_uint64() status = NI6683.niLib.nisync_get_time_ns(self.fd, byref(curr_nanos)) - self.abs_start.putData(Uint64(curr_nanos.value)) - + self.abs_start.putData(Uint64(curr_nanos.value + deltaT * 1000000)) + NI6683.ni6683AbsTime = self.abs_start.data() + NI6683.ni6683RelTime = self.rel_start.data() #NI6683.ni6683RecorderDict[self.nid] = [] for termName in NI6683.termNameDict.keys(): @@ -421,21 +434,22 @@ def run(self): enabled = c_int8() activeEdge = c_int() decimationCount = c_int() - status = NI6683.niLib.nisync_timestamp_trigger_configuration(c_int(self.termDict[termName]), - byref(enabled), byref(activeEdge), byref(decimationCount)) - self.checkStatus(status, 'Cannot inquire timestamp triggers') - if enabled.value != 0: - print('DISABLE TIMESTAMP for ' + termName + ' fd: '+ str(self.termDict[termName])) - status = NI6683.niLib.nisync_disable_timestamp_trigger(c_int(self.termDict[termName])) - self.checkStatus(status, 'Cannot disable timestamp triggers') + # status = NI6683.niLib.nisync_timestamp_trigger_configuration(c_int(self.termDict[termName]), + # byref(enabled), byref(activeEdge), byref(decimationCount)) + # self.checkStatus(status, 'Cannot inquire timestamp triggers') + # if enabled.value != 0: + # print('DISABLE TIMESTAMP for ' + termName + ' fd: '+ str(self.termDict[termName])) + # status = NI6683.niLib.nisync_disable_timestamp_trigger(c_int(self.termDict[termName])) + # self.checkStatus(status, 'Cannot disable timestamp triggers') status = NI6683.niLib.nisync_future_time_events_configuration(c_int(self.termDict[termName]), byref(enabled)) self.checkStatus(status, 'Cannot inquire future events') if enabled.value == 0: print('ENABLE FUTURE EVENT for ' + termName + ' fd: '+ str(self.termDict[termName])) status = NI6683.niLib.nisync_enable_future_time_events(c_int(self.termDict[termName])) self.checkStatus(status, 'Cannot enable future events') - status = NI6683.niLib.nisync_abort_all_ftes(c_int(self.termDict[termName])) - self.checkStatus(status, 'Cannot abort FTEs') + # status = NI6683.niLib.nisync_abort_all_ftes(c_int(self.termDict[termName])) + # self.checkStatus(status, 'Cannot abort FTEs') + startNs, endNs = self.getStartEnd(termName) periodNs = int(1000000000./float(freq)) dutyCycle = NI6683.ni6683DutyCycles[termNameNid] @@ -673,8 +687,8 @@ def configure(self, device): def getRelTime(self, absTime): try: - print("absTime: " + str(absTime) + " self.device.abs_start.data(): " + str(self.device.abs_start.data()) + " self.device.rel_start.data(): " +str(self.device.rel_start.data()) ) - return float((absTime - self.device.abs_start.data())/1E9 + self.device.rel_start.data()) + #print("absTime: " + str(absTime) + " self.device.abs_start.data(): " + str(self.device.abs_start.data()) + " self.device.rel_start.data(): " +str(self.device.rel_start.data()) ) + return float((absTime - NI6683.ni6683AbsStart)/1E9 + NI6683.ni6683RelStart) except: emsg = 'Cannot convert absolute time to relative ' + str(self.device.fd) Data.execute('DevLogErr($1,$2)', self.device.getNid(), emsg)