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);
}
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);
}
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);
}
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);
}
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);
}
Aggregations