Search in sources :

Example 26 with ProgDebugger

use of jmri.progdebugger.ProgDebugger in project JMRI by JMRI.

the class VerifyWriteProgrammerFacadeTest method testWriteReadDirect.

public void testWriteReadDirect() throws jmri.ProgrammerException, InterruptedException {
    readCount = 0;
    ProgDebugger dp = new ProgDebugger() {

        @Override
        public boolean getCanRead(String cv) {
            return false;
        }

        @Override
        public boolean getCanRead() {
            return false;
        }

        @Override
        public void readCV(String cv, ProgListener p) throws ProgrammerException {
            readCount++;
            super.readCV(cv, p);
        }
    };
    Programmer p = new VerifyWriteProgrammerFacade(dp);
    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.assertEquals("reads", 0, readCount);
    p.readCV("4", l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
}
Also used : Programmer(jmri.Programmer) ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Example 27 with ProgDebugger

use of jmri.progdebugger.ProgDebugger in project JMRI by JMRI.

the class VerifyWriteProgrammerFacadeTest method testWriteReadVerify.

public void testWriteReadVerify() throws jmri.ProgrammerException, InterruptedException {
    readCount = 0;
    ProgDebugger dp = new ProgDebugger() {

        @Override
        public boolean getCanRead(String cv) {
            return true;
        }

        @Override
        public boolean getCanRead() {
            return true;
        }

        @Override
        public void readCV(String cv, ProgListener p) throws ProgrammerException {
            readCount++;
            super.readCV(cv, p);
        }
    };
    Programmer p = new VerifyWriteProgrammerFacade(dp);
    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.assertEquals("reads", 1, readCount);
    p.readCV("4", l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
}
Also used : Programmer(jmri.Programmer) ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Example 28 with ProgDebugger

use of jmri.progdebugger.ProgDebugger in project JMRI by JMRI.

the class MultiIndexProgrammerFacadeTest method testWriteReadDoubleIndexedCvListSkip.

public void testWriteReadDoubleIndexedCvListSkip() throws jmri.ProgrammerException, InterruptedException {
    ProgDebugger dp = new ProgDebugger();
    MultiIndexProgrammerFacade p = new MultiIndexProgrammerFacade(dp, "81", "82", false, true);
    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("45.46.123", 12, l);
    waitReply();
    Assert.assertEquals("index 1 written", 45, dp.getCvVal(81));
    Assert.assertEquals("index 2 written", 46, dp.getCvVal(82));
    Assert.assertEquals("value written", 12, dp.getCvVal(123));
    dp.clearHasBeenWritten(81);
    dp.clearHasBeenWritten(82);
    p.readCV("45.46.123", l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
    Assert.assertTrue("index 1 not written", !dp.hasBeenWritten(81));
    Assert.assertTrue("index 2 not written", !dp.hasBeenWritten(82));
    dp.clearHasBeenWritten(81);
    dp.clearHasBeenWritten(82);
    p.readCV("45.46.123", l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
    Assert.assertTrue("index 1 not written", !dp.hasBeenWritten(81));
    Assert.assertTrue("index 2 not written", !dp.hasBeenWritten(82));
    dp.clearHasBeenWritten(81);
    dp.clearHasBeenWritten(82);
    p.readCV("45.46.123", l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
    Assert.assertTrue("index 1 not written", !dp.hasBeenWritten(81));
    Assert.assertTrue("index 2 not written", !dp.hasBeenWritten(82));
    // add timeout
    p.lastOpTime = p.lastOpTime - 2 * p.maxDelay;
    dp.clearHasBeenWritten(81);
    dp.clearHasBeenWritten(82);
    p.readCV("45.46.123", l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
    Assert.assertEquals("index 1 written", 45, dp.getCvVal(81));
    Assert.assertEquals("index 2 written", 46, dp.getCvVal(82));
}
Also used : ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Example 29 with ProgDebugger

use of jmri.progdebugger.ProgDebugger in project JMRI by JMRI.

the class MultiIndexProgrammerFacadeTest method testWriteReadDirect.

public void testWriteReadDirect() throws jmri.ProgrammerException, InterruptedException {
    ProgDebugger dp = new ProgDebugger();
    Programmer p = new MultiIndexProgrammerFacade(dp, "81", null, true, false);
    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(81));
    p.readCV("4", l);
    waitReply();
    Assert.assertEquals("read back", 12, readValue);
    Assert.assertTrue("index not written", !dp.hasBeenWritten(81));
}
Also used : Programmer(jmri.Programmer) ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Example 30 with ProgDebugger

use of jmri.progdebugger.ProgDebugger in project JMRI by JMRI.

the class TwoIndexTcsProgrammerFacadeTest method testWriteReadTripleIndexed.

public void testWriteReadTripleIndexed() throws jmri.ProgrammerException, InterruptedException {
    ProgDebugger dp = new ProgDebugger();
    Programmer p = new TwoIndexTcsProgrammerFacade(dp);
    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("T3CV.10.20.30", 13, l);
    waitReply();
    Assert.assertEquals("index 1 written", 10, dp.getCvVal(201));
    Assert.assertEquals("value written", 13, dp.getCvVal(202));
    Assert.assertEquals("index written to MSB", 20, dp.getCvVal(203));
    Assert.assertEquals("index written to LSB", 30, dp.getCvVal(204));
    dp.clearHasBeenWritten(201);
    dp.resetCv(202, 13);
    dp.clearHasBeenWritten(203);
    dp.clearHasBeenWritten(204);
    p.readCV("T3CV.10.20.30", l);
    waitReply();
    Assert.assertEquals("index 1 written", 100 + 10, dp.getCvVal(201));
    Assert.assertEquals("SI not written, left at start value", 13, dp.getCvVal(202));
    Assert.assertEquals("index written to MSB", 20, dp.getCvVal(203));
    Assert.assertEquals("index written to LSB", 30, dp.getCvVal(204));
    Assert.assertEquals("read back", 13, readValue);
}
Also used : Programmer(jmri.Programmer) ProgDebugger(jmri.progdebugger.ProgDebugger) ProgListener(jmri.ProgListener)

Aggregations

ProgDebugger (jmri.progdebugger.ProgDebugger)40 Programmer (jmri.Programmer)33 ProgListener (jmri.ProgListener)27 JLabel (javax.swing.JLabel)4 Element (org.jdom2.Element)4 DocType (org.jdom2.DocType)2 Document (org.jdom2.Document)2 DefaultProgrammerManager (jmri.managers.DefaultProgrammerManager)1 Before (org.junit.Before)1