Search in sources :

Example 1 with ProgListener

use of jmri.ProgListener in project JMRI by JMRI.

the class ProgDebugger method writeCV.

@Override
public void writeCV(int CV, int val, ProgListener p) throws ProgrammerException {
    nOperations++;
    final ProgListener m = p;
    // log out the request
    log.info("write CV: " + CV + " to: " + val + " mode: " + getMode());
    _lastWriteVal = val;
    _lastWriteCv = CV;
    // save for later retrieval
    mValues.put(CV, val);
    // return a notification via the queue to ensure end
    Runnable r = new Runnable() {

        ProgListener l = m;

        @Override
        public void run() {
            log.debug("write CV reply");
            if (l != null) {
                l.programmingOpReply(-1, 0);
            }
        }
    };
    sendReturn(r);
}
Also used : ProgListener(jmri.ProgListener)

Example 2 with ProgListener

use of jmri.ProgListener in project JMRI by JMRI.

the class AddressedHighCvProgrammerFacadeTest method testWriteReadDirectHighCV.

public void testWriteReadDirectHighCV() throws jmri.ProgrammerException, InterruptedException {
    ProgDebugger dp = new ProgDebugger();
    dp.setTestReadLimit(1024);
    dp.setTestWriteLimit(1024);
    Programmer p = new AddressedHighCvProgrammerFacade(dp, "256", "253", "254", "255", "100");
    ProgListener l = new ProgListener() {

        @Override
        public void programmingOpReply(int value, int status) {
            log.debug("callback value=" + value + " status=" + status);
            replied = true;
            readValue = value;
        }
    };
    p.writeCV("258", 12, l);
    waitReply();
    Assert.assertEquals("target written", 12, dp.getCvVal(258));
    Assert.assertTrue("index H not written", !dp.hasBeenWritten(253));
    Assert.assertTrue("index L not written", !dp.hasBeenWritten(254));
    Assert.assertTrue("index val not written", !dp.hasBeenWritten(255));
    p.readCV("258", l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
}
Also used : Programmer(jmri.Programmer) ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Example 3 with ProgListener

use of jmri.ProgListener in project JMRI by JMRI.

the class AddressedHighCvProgrammerFacadeTest method testWriteReadDirect.

public void testWriteReadDirect() throws jmri.ProgrammerException, InterruptedException {
    ProgDebugger dp = new ProgDebugger();
    dp.setTestReadLimit(256);
    dp.setTestWriteLimit(256);
    Programmer p = new AddressedHighCvProgrammerFacade(dp, "256", "253", "254", "255", "100");
    ProgListener l = new ProgListener() {

        @Override
        public void programmingOpReply(int value, int status) {
            log.debug("callback value=" + value + " status=" + status);
            replied = true;
            readValue = value;
        }
    };
    p.writeCV("4", 12, l);
    waitReply();
    Assert.assertEquals("target written", 12, dp.getCvVal(4));
    Assert.assertTrue("index H not written", !dp.hasBeenWritten(253));
    Assert.assertTrue("index L not written", !dp.hasBeenWritten(254));
    Assert.assertTrue("index val not written", !dp.hasBeenWritten(255));
    p.readCV(4, l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
}
Also used : Programmer(jmri.Programmer) ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Example 4 with ProgListener

use of jmri.ProgListener in project JMRI by JMRI.

the class ResettingOffsetHighCvProgrammerFacadeTest method testWriteReadDirect.

public void testWriteReadDirect() throws jmri.ProgrammerException, InterruptedException {
    ProgDebugger dp = new ProgDebugger();
    dp.setTestReadLimit(256);
    dp.setTestWriteLimit(256);
    Programmer p = new ResettingOffsetHighCvProgrammerFacade(dp, "256", "7", "10", "100", "200");
    ProgListener l = new ProgListener() {

        @Override
        public void programmingOpReply(int value, int status) {
            log.debug("callback value=" + value + " status=" + status);
            replied = true;
            readValue = value;
        }
    };
    p.writeCV("4", 12, l);
    waitReply();
    Assert.assertEquals("target written", 12, dp.getCvVal(4));
    Assert.assertTrue("index not written", !dp.hasBeenWritten(7));
    p.readCV(4, l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
}
Also used : Programmer(jmri.Programmer) ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Example 5 with ProgListener

use of jmri.ProgListener in project JMRI by JMRI.

the class ResettingOffsetHighCvProgrammerFacadeTest method testWriteReadIndexed.

public void testWriteReadIndexed() throws jmri.ProgrammerException, InterruptedException {
    ProgDebugger dp = new ProgDebugger();
    dp.setTestReadLimit(256);
    dp.setTestWriteLimit(256);
    Programmer p = new ResettingOffsetHighCvProgrammerFacade(dp, "256", "7", "10", "100", "200");
    ProgListener l = new ProgListener() {

        @Override
        public void programmingOpReply(int value, int status) {
            log.debug("callback value=" + value + " status=" + status);
            replied = true;
            readValue = value;
        }
    };
    p.writeCV("258", 12, l);
    waitReply();
    Assert.assertTrue("target not written", !dp.hasBeenWritten(258));
    // wrote 220, then wrote back
    Assert.assertEquals("index written", 0, dp.getCvVal(7));
    Assert.assertEquals("value written", 12, dp.getCvVal(58));
    Assert.assertEquals("did 3 operations", 3, dp.nOperations);
}
Also used : Programmer(jmri.Programmer) ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Aggregations

ProgListener (jmri.ProgListener)53 Programmer (jmri.Programmer)27 ProgDebugger (jmri.progdebugger.ProgDebugger)27 ProgrammerException (jmri.ProgrammerException)3