Search in sources :

Example 51 with XNetReply

use of jmri.jmrix.lenz.XNetReply in project JMRI by JMRI.

the class EliteXNetProgrammerTest method testReadCvSequence.

public void testReadCvSequence() throws JmriException {
    // infrastructure objects
    XNetInterfaceScaffold t = new XNetInterfaceScaffold(new HornbyEliteCommandStation());
    EliteXNetListenerScaffold l = new EliteXNetListenerScaffold();
    EliteXNetProgrammer p = new EliteXNetProgrammer(t);
    // and do the read
    p.readCV(10, l);
    // check "prog mode" message sent
    Assert.assertEquals("mode message sent", 2, t.outbound.size());
    Assert.assertEquals("read message contents", "22 15 0A 3D", t.outbound.elementAt(0).toString());
    // send reply
    XNetReply mr1 = new XNetReply();
    mr1.setElement(0, 0x61);
    mr1.setElement(1, 0x02);
    mr1.setElement(2, 0x63);
    t.sendTestMessage(mr1);
    Assert.assertEquals("enquire message sent", 2, t.outbound.size());
    Assert.assertEquals("enquire message contents", "21 10 31", t.outbound.elementAt(1).toString());
}
Also used : XNetInterfaceScaffold(jmri.jmrix.lenz.XNetInterfaceScaffold) XNetReply(jmri.jmrix.lenz.XNetReply)

Example 52 with XNetReply

use of jmri.jmrix.lenz.XNetReply in project JMRI by JMRI.

the class LI100XNetProgrammerTest method testWriteRegisterSequence.

public void testWriteRegisterSequence() throws JmriException {
    // infrastructure objects
    XNetInterfaceScaffold t = new XNetInterfaceScaffold(new LenzCommandStation());
    jmri.ProgListenerScaffold l = new jmri.ProgListenerScaffold();
    LI100XNetProgrammer p = new LI100XNetProgrammer(t) {

        @Override
        protected synchronized void restartTimer(int delay) {
            super.restartTimer(RESTART_TIME);
        }
    };
    // set register mode
    p.setMode(DefaultProgrammerManager.REGISTERMODE);
    // and do the write
    p.writeCV(29, 12, l);
    // check "prog mode" message sent
    Assert.assertEquals("read message sent", 1, t.outbound.size());
    Assert.assertEquals("write message contents", "23 12 05 0C 38", t.outbound.elementAt(0).toString());
    // send reply
    XNetReply mr1 = new XNetReply();
    mr1.setElement(0, 0x61);
    mr1.setElement(1, 0x02);
    mr1.setElement(2, 0x63);
    t.sendTestMessage(mr1);
    Assert.assertEquals("inquire message sent", 2, t.outbound.size());
    Assert.assertEquals("inquire message contents", "21 10 31", t.outbound.elementAt(1).toString());
    // send a result string
    XNetReply mr2 = new XNetReply();
    mr2.setElement(0, 0x63);
    mr2.setElement(1, 0x10);
    mr2.setElement(2, 0x05);
    mr2.setElement(3, 0x0C);
    mr2.setElement(4, 0x7A);
    t.sendTestMessage(mr2);
    // At this point, the LI100 XPressNet programmer
    // deviates from the standard XPressNet programmer.  
    // the LI100 version requests an exit from service 
    // before sending a result to the registered listeners.
    Assert.assertEquals("mode message sent", 3, t.outbound.size());
    Assert.assertEquals("exit service mode message contents", "21 81 A0", t.outbound.elementAt(2).toString());
    // send reply stating service mode has exited       
    XNetReply mr3 = new XNetReply();
    mr3.setElement(0, 0x61);
    mr3.setElement(1, 0x01);
    mr3.setElement(2, 0x60);
    t.sendTestMessage(mr3);
    jmri.util.JUnitUtil.releaseThread(this);
    //failure in this test occurs with the next line.
    Assert.assertFalse("Receive Called by Programmer", l.getRcvdInvoked() == 0);
    Assert.assertEquals("Register mode received value", 12, l.getRcvdValue());
}
Also used : XNetInterfaceScaffold(jmri.jmrix.lenz.XNetInterfaceScaffold) LenzCommandStation(jmri.jmrix.lenz.LenzCommandStation) XNetReply(jmri.jmrix.lenz.XNetReply)

Example 53 with XNetReply

use of jmri.jmrix.lenz.XNetReply in project JMRI by JMRI.

the class LI100XNetProgrammerTest method testWriteCvSequence.

public void testWriteCvSequence() throws JmriException {
    // infrastructure objects
    XNetInterfaceScaffold t = new XNetInterfaceScaffold(new LenzCommandStation());
    jmri.ProgListenerScaffold l = new jmri.ProgListenerScaffold();
    LI100XNetProgrammer p = new LI100XNetProgrammer(t) {

        @Override
        protected synchronized void restartTimer(int delay) {
            super.restartTimer(RESTART_TIME);
        }
    };
    // and do the write
    p.writeCV(29, 34, l);
    // check "prog mode" message sent
    Assert.assertEquals("mode message sent", 1, t.outbound.size());
    Assert.assertEquals("write message contents", "23 16 1D 22 0A", t.outbound.elementAt(0).toString());
    // send reply
    XNetReply mr1 = new XNetReply();
    mr1.setElement(0, 0x61);
    mr1.setElement(1, 0x02);
    mr1.setElement(2, 0x63);
    t.sendTestMessage(mr1);
    Assert.assertEquals("inquire message sent", 2, t.outbound.size());
    Assert.assertEquals("inquire message contents", "21 10 31", t.outbound.elementAt(1).toString());
    // send a result string
    XNetReply mr2 = new XNetReply();
    mr2.setElement(0, 0x63);
    mr2.setElement(1, 0x14);
    mr2.setElement(2, 0x1D);
    mr2.setElement(3, 0x22);
    mr2.setElement(4, 0x48);
    t.sendTestMessage(mr2);
    // At this point, the LI100 XPressNet programmer
    // deviates from the standard XPressNet programmer.  
    // the LI100 version requests an exit from service 
    // before sending a result to the registered listeners.
    Assert.assertEquals("mode message sent", 3, t.outbound.size());
    Assert.assertEquals("exit service mode message contents", "21 81 A0", t.outbound.elementAt(2).toString());
    // send reply stating service mode has exited       
    XNetReply mr3 = new XNetReply();
    mr3.setElement(0, 0x61);
    mr3.setElement(1, 0x01);
    mr3.setElement(2, 0x60);
    t.sendTestMessage(mr3);
    jmri.util.JUnitUtil.releaseThread(this);
    //failure in this test occurs with the next line.
    Assert.assertFalse("Receive Called by Programmer", l.getRcvdInvoked() == 0);
    Assert.assertEquals("Direct mode received value", 34, l.getRcvdValue());
}
Also used : XNetInterfaceScaffold(jmri.jmrix.lenz.XNetInterfaceScaffold) LenzCommandStation(jmri.jmrix.lenz.LenzCommandStation) XNetReply(jmri.jmrix.lenz.XNetReply)

Example 54 with XNetReply

use of jmri.jmrix.lenz.XNetReply in project JMRI by JMRI.

the class LI100XNetProgrammerTest method testReadRegisterSequence.

public void testReadRegisterSequence() throws JmriException {
    // infrastructure objects
    XNetInterfaceScaffold t = new XNetInterfaceScaffold(new LenzCommandStation());
    jmri.ProgListenerScaffold l = new jmri.ProgListenerScaffold();
    LI100XNetProgrammer p = new LI100XNetProgrammer(t) {

        @Override
        protected synchronized void restartTimer(int delay) {
            super.restartTimer(RESTART_TIME);
        }
    };
    // set register mode
    p.setMode(DefaultProgrammerManager.REGISTERMODE);
    // and do the read
    p.readCV(29, l);
    // check "prog mode" message sent
    Assert.assertEquals("mode message sent", 1, t.outbound.size());
    Assert.assertEquals("read message contents", "22 11 05 36", t.outbound.elementAt(0).toString());
    // send reply (enter service mode )
    XNetReply mr1 = new XNetReply();
    mr1.setElement(0, 0x61);
    mr1.setElement(1, 0x02);
    mr1.setElement(2, 0x63);
    t.sendTestMessage(mr1);
    Assert.assertEquals("inquire message sent", 2, t.outbound.size());
    Assert.assertEquals("inquire message contents", "21 10 31", t.outbound.elementAt(1).toString());
    // send a result string
    XNetReply mr2 = new XNetReply();
    mr2.setElement(0, 0x63);
    mr2.setElement(1, 0x10);
    mr2.setElement(2, 0x05);
    mr2.setElement(3, 0x22);
    mr2.setElement(4, 0x54);
    t.sendTestMessage(mr2);
    // At this point, the LI100 XPressNet programmer
    // deviates from the standard XPressNet programmer.  
    // the LI100 version requests an exit from service 
    // before sending a result to the registered listeners.
    //Assert.assertEquals("mode message sent", 3, t.outbound.size());
    Assert.assertEquals("exit service mode message contents", "21 81 A0", t.outbound.elementAt(2).toString());
    // send reply stating service mode has exited       
    XNetReply mr3 = new XNetReply();
    mr3.setElement(0, 0x61);
    mr3.setElement(1, 0x01);
    mr3.setElement(2, 0x60);
    t.sendTestMessage(mr3);
    jmri.util.JUnitUtil.releaseThread(this);
    //failure in this test occurs with the next line.
    Assert.assertFalse("Receive Called by Programmer", l.getRcvdInvoked() == 0);
    Assert.assertEquals("Register mode received value", 34, l.getRcvdValue());
}
Also used : XNetInterfaceScaffold(jmri.jmrix.lenz.XNetInterfaceScaffold) LenzCommandStation(jmri.jmrix.lenz.LenzCommandStation) XNetReply(jmri.jmrix.lenz.XNetReply)

Example 55 with XNetReply

use of jmri.jmrix.lenz.XNetReply in project JMRI by JMRI.

the class XNetSimulatorAdapterTest method testGenerateCSVersionReply.

@Test
public void testGenerateCSVersionReply() {
    XNetSimulatorAdapter a = new XNetSimulatorAdapter();
    // NOTE: this test uses reflection to test a private method.
    java.lang.reflect.Method generateReplyMethod = null;
    try {
        generateReplyMethod = a.getClass().getDeclaredMethod("generateReply", XNetMessage.class);
    } catch (java.lang.NoSuchMethodException nsm) {
        Assert.fail("Could not find method generateReply in XNetSimulatorAdapter class: ");
    }
    // override the default permissions.
    Assert.assertNotNull(generateReplyMethod);
    generateReplyMethod.setAccessible(true);
    try {
        XNetReply r = (XNetReply) generateReplyMethod.invoke(a, new XNetMessage("21 21 00"));
        Assert.assertEquals("CS Version Reply", new XNetReply("63 21 36 00 74"), r);
    } catch (java.lang.IllegalAccessException ite) {
        Assert.fail("could not access method generateReply in XNetSimulatoradapter class");
    } catch (java.lang.reflect.InvocationTargetException ite) {
        Throwable cause = ite.getCause();
        Assert.fail("generateReply execution failed reason: " + cause.getMessage());
    }
}
Also used : XNetReply(jmri.jmrix.lenz.XNetReply) XNetMessage(jmri.jmrix.lenz.XNetMessage) Test(org.junit.Test)

Aggregations

XNetReply (jmri.jmrix.lenz.XNetReply)57 XNetInterfaceScaffold (jmri.jmrix.lenz.XNetInterfaceScaffold)18 Test (org.junit.Test)17 XNetMessage (jmri.jmrix.lenz.XNetMessage)14 LenzCommandStation (jmri.jmrix.lenz.LenzCommandStation)10 IOException (java.io.IOException)3 BufferedReader (java.io.BufferedReader)2 InputStreamReader (java.io.InputStreamReader)2 ArrayList (java.util.ArrayList)2 Ignore (org.junit.Ignore)2 Z21Reply (jmri.jmrix.roco.z21.Z21Reply)1