Search in sources :

Example 86 with LocoNetMessage

use of jmri.jmrix.loconet.LocoNetMessage in project JMRI by JMRI.

the class LlnmonTest method testTurnoutSensorStateMessages.

public void testTurnoutSensorStateMessages() {
    LocoNetMessage l;
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x00, 0x4E });
    assertEquals("Turnout sensor state test 01", "Turnout LT1 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x01, 0x00, 0x4E });
    assertEquals("Turnout sensor state test 02", "Turnout LT2 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x02, 0x00, 0x4E });
    assertEquals("Turnout sensor state test 03", "Turnout LT3 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x04, 0x00, 0x4E });
    assertEquals("Turnout sensor state test 04", "Turnout LT5 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x08, 0x00, 0x4E });
    assertEquals("Turnout sensor state test 05", "Turnout LT9 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x10, 0x00, 0x4E });
    assertEquals("Turnout sensor state test 06", "Turnout LT17 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x20, 0x00, 0x4E });
    assertEquals("Turnout sensor state test 07", "Turnout LT33 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x40, 0x00, 0x4E });
    assertEquals("Turnout sensor state test 08", "Turnout LT65 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x01, 0x4E });
    assertEquals("Turnout sensor state test 09", "Turnout LT129 () output state: Closed output is Off (open), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x32, 0x4E });
    assertEquals("Turnout sensor state test 10", "Turnout LT257 () output state: Closed output is On (sink), Thrown output is On (sink).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x24, 0x4E });
    assertEquals("Turnout sensor state test 11", "Turnout LT513 () output state: Closed output is On (sink), Thrown output is Off (open).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x18, 0x4E });
    assertEquals("Turnout sensor state test 12", "Turnout LT1025 () output state: Closed output is Off (open), Thrown output is On (sink).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x40, 0x4E });
    assertEquals("Turnout sensor state test 13", "Turnout LT1 () Aux input is Thrown (input on).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x50, 0x4E });
    assertEquals("Turnout sensor state test 14", "Turnout LT1 () Aux input is Closed (input off).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x60, 0x4E });
    assertEquals("Turnout sensor state test 15", "Turnout LT1 () Switch input is Thrown (input on).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB1, 0x00, 0x70, 0x4E });
    assertEquals("Turnout sensor state test 16", "Turnout LT1 () Switch input is Closed (input off).\n", f.displayMessage(l));
}
Also used : LocoNetMessage(jmri.jmrix.loconet.LocoNetMessage)

Example 87 with LocoNetMessage

use of jmri.jmrix.loconet.LocoNetMessage in project JMRI by JMRI.

the class LlnmonTest method testBasicSlotAccessMessages.

public void testBasicSlotAccessMessages() {
    LocoNetMessage l;
    l = new LocoNetMessage(new int[] { 0xBB, 0x40, 0x00, 0x04 });
    assertEquals(" Slot test 1", "Request data/status for slot 64.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51 });
    assertEquals(" Slot test 2", "Report of slot 64 information:\n" + "\tLoco 0 is Not Consisted, Free, operating in 28 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: Off/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x00 0x00 (0).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x7B, 0x00, 0x3F });
    assertEquals(" Slot test 3", "Request Fast Clock information.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x39, 0x7F, 0x57, 0x07, 0x77, 0x1F, 0x00, 0x00, 0x00, 0x17 });
    assertEquals(" Slot test 4", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 31, 15:20. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x7C, 0x00, 0x38 });
    assertEquals(" Slot test 5", "Request Programming Track information.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7C, 0x6B, 0x02, 0x00, 0x00, 0x07, 0x00, 0x1C, 0x06, 0x7F, 0x7F, 0x1E });
    assertEquals(" Slot test 6", "Programming Response: Write Byte in Direct Mode on Service Track Failed, No Write Acknowledge from decoder: CV29 value 6 (0x06, 00000110b).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x7D, 0x00, 0x39 });
    assertEquals(" Slot test 7", "Unable to parse LocoNet message.\ncontents: BB 7D 00 39\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C });
    assertEquals(" Slot test 8", "Unable to parse LocoNet message.\ncontents: E7 0E 7D 00 00 00 00 05 00 00 00 00 00 6C\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x7E, 0x00, 0x3A });
    assertEquals(" Slot test 9", "Unable to parse LocoNet message.\ncontents: BB 7E 00 3A\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F });
    assertEquals(" Slot test 10", "Unable to parse LocoNet message.\ncontents: E7 0E 7E 00 00 00 00 04 00 00 00 00 00 6F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBF, 0x21, 0x31, 0x50 });
    assertEquals(" Slot test 11", "Request slot for loco address 4273.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0x81, 0x7E });
    assertEquals(" Slot test 12", "Master is busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x01, 0x03, 0x31, 0x00, 0x00, 0x07, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03 });
    assertEquals(" Slot test 13", "Report of slot 1 information:\n" + "\tLoco 4273 is Not Consisted, Free, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x00 0x00 (0).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x01, 0x01, 0x45 });
    assertEquals(" Slot test 14", "Set status of slot 1 to IN_USE.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x01, 0x33, 0x31, 0x00, 0x20, 0x07, 0x00, 0x21, 0x00, 0x00, 0x00, 0x33 });
    assertEquals(" Slot test 15", "Report of slot 1 information:\n" + "\tLoco 4273 is Not Consisted, In-Use, operating in 128 SS mode, and is moving Reverse at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x00 0x00 (0).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBF, 0x1C, 0x02, 0x5E });
    assertEquals(" Slot test 16", "Request slot for loco address 3586.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x02, 0x03, 0x02, 0x00, 0x00, 0x07, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0E });
    assertEquals(" Slot test 17", "Report of slot 2 information:\n" + "\tLoco 3586 is Not Consisted, Free, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x00 0x00 (0).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBF, 0x00, 0x00, 0x40 });
    assertEquals(" Slot test 18", "Request slot for loco address 0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0x81, 0x7E });
    assertEquals(" Slot test 19", "Master is busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0x81, 0x7E });
    assertEquals(" Slot test 20", "Master is busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0x81, 0x7E });
    assertEquals(" Slot test 21", "Master is busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0x81, 0x7E });
    assertEquals(" Slot test 22", "Master is busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x02, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 });
    assertEquals(" Slot test 23", "Report of slot 2 information:\n" + "\tLoco 0 is Not Consisted, Free, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x00 0x00 (0).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA0, 0x0A, 0x00, 0x55 });
    assertEquals(" Slot test 24", "Set speed of loco in slot 10 to 0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA0, 0x02, 0x00, 0x5D });
    assertEquals(" Slot test 25", "Set speed of loco in slot 2 to 0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA0, 0x02, 0x00, 0x5D });
    assertEquals(" Slot test 26", "Set speed of loco in slot 2 to 0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA0, 0x08, 0x01, 0x56 });
    assertEquals(" Slot test 27", "Set speed of loco in slot 8 to EMERGENCY STOP!\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB5, 0x07, 0x13, 0x5E });
    assertEquals(" Slot test 28", "Write slot 7 with status value 19 (0x13) - Loco is Not Consisted, Common and operating in 128 speed step mode.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xEF, 0x0E, 0x08, 0x33, 0x15, 0x00, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x04, 0x44, 0x79 });
    assertEquals(" Slot test 29", "Write slot 8 information:\n" + "\tLoco 1813 is Not Consisted, In-Use, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x44 0x04 (8708).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x00, 0x41 });
    assertEquals(" Slot test 30", "Mark slot 4 as DISPATCHED.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x07, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 31", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB4, 0x3A, 0x00, 0x71 });
    assertEquals(" Slot test 32", "LONG_ACK: The Move Slots command was rejected.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB4, 0x6F, 0x7F, 0x5B });
    assertEquals(" Slot test 33", "LONG_ACK: Function not implemented, no reply will follow.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA2, 0x0E, 0x04, 0x57 });
    assertEquals(" Slot test 34", "Set loco in slot 14 Sound1/F5=Off Sound2/F6=Off Sound3/F7=On Sound4/F8=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA0, 0x0D, 0x7F, 0x2D });
    assertEquals(" Slot test 35", "Set speed of loco in slot 13 to 127.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xB5, 0x0F, 0x13, 0x56 });
    assertEquals(" Slot test 36", "Write slot 15 with status value 19 (0x13) - Loco is Not Consisted, Common and operating in 128 speed step mode.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA1, 0x55, 0x04, 0x49 });
    assertEquals(" Slot test 37", "Set loco in slot 85 direction Forward F0=Off F1=Off F2=Off F3=On F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA1, 0x13, 0x05, 0x1B });
    assertEquals(" Slot test 38", "Set loco in slot 19 direction Forward F0=Off F1=On F2=Off F3=On F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA1, 0x77, 0x10, 0x3B });
    assertEquals(" Slot test 39", "Set loco in slot 119 direction Forward F0=On F1=Off F2=Off F3=Off F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA1, 0x01, 0x10, 0x3B });
    assertEquals(" Slot test 40", "Set loco in slot 1 direction Forward F0=On F1=Off F2=Off F3=Off F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA1, 0x02, 0x36, 0x3B });
    assertEquals(" Slot test 41", "Set loco in slot 2 direction Reverse F0=On F1=Off F2=On F3=On F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA1, 0x38, 0x18, 0x7e });
    assertEquals(" Slot test 42", "Set loco in slot 56 direction Forward F0=On F1=Off F2=Off F3=Off F4=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA2, 0x55, 0x00, 0x08 });
    assertEquals(" Slot test 43", "Set loco in slot 85 Sound1/F5=Off Sound2/F6=Off Sound3/F7=Off Sound4/F8=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA2, 0x25, 0x04, 0x7C });
    assertEquals(" Slot test 44", "Set loco in slot 37 Sound1/F5=Off Sound2/F6=Off Sound3/F7=On Sound4/F8=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA2, 0x25, 0x0C, 0x74 });
    assertEquals(" Slot test 45", "Set loco in slot 37 Sound1/F5=Off Sound2/F6=Off Sound3/F7=On Sound4/F8=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA2, 0x25, 0x06, 0x7E });
    assertEquals(" Slot test 46", "Set loco in slot 37 Sound1/F5=Off Sound2/F6=On Sound3/F7=On Sound4/F8=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb5, 0x25, 0x1B, 0x74 });
    assertEquals(" Slot test 47", "Write slot 37 with status value 27 (0x1B) - Loco is Consist TOP, Common and operating in 128 speed step mode.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x2C, 0x4A });
    assertEquals(" Slot test 48", "Set consist in slot 47 direction Reverse F0=Off F1=Off F2=Off F3=On F4=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x2D, 0x4A });
    assertEquals(" Slot test 49", "Set consist in slot 47 direction Reverse F0=Off F1=On F2=Off F3=On F4=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA3, 0x02, 0x01, 0x5F });
    assertEquals(" Slot test 51", "Set (Intellibox-II format) loco in slot 2 F9=On F10=Off F11=Off F12=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA3, 0x10, 0x02, 0x5F });
    assertEquals(" Slot test 52", "Set (Intellibox-II format) loco in slot 16 F9=Off F10=On F11=Off F12=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA3, 0x02, 0x04, 0x5F });
    assertEquals(" Slot test 53", "Set (Intellibox-II format) loco in slot 2 F9=Off F10=Off F11=On F12=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA3, 0x10, 0x08, 0x5F });
    assertEquals(" Slot test 54", "Set (Intellibox-II format) loco in slot 16 F9=Off F10=Off F11=Off F12=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x02, 0x08, 0x01, 0x00 });
    assertEquals(" Slot test 55", "Set (Intellibox-II format) loco in slot 2 F13=On F14=Off F15=Off F16=Off F17=Off F18=Off F19=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x02, 0x08, 0x02, 0x00 });
    assertEquals(" Slot test 56", "Set (Intellibox-II format) loco in slot 2 F13=Off F14=On F15=Off F16=Off F17=Off F18=Off F19=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x02, 0x08, 0x04, 0x00 });
    assertEquals(" Slot test 57", "Set (Intellibox-II format) loco in slot 2 F13=Off F14=Off F15=On F16=Off F17=Off F18=Off F19=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x02, 0x08, 0x08, 0x00 });
    assertEquals(" Slot test 58", "Set (Intellibox-II format) loco in slot 2 F13=Off F14=Off F15=Off F16=On F17=Off F18=Off F19=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x02, 0x08, 0x10, 0x00 });
    assertEquals(" Slot test 59", "Set (Intellibox-II format) loco in slot 2 F13=Off F14=Off F15=Off F16=Off F17=On F18=Off F19=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x02, 0x08, 0x20, 0x00 });
    assertEquals(" Slot test 60", "Set (Intellibox-II format) loco in slot 2 F13=Off F14=Off F15=Off F16=Off F17=Off F18=On F19=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x02, 0x08, 0x40, 0x00 });
    assertEquals(" Slot test 61", "Set (Intellibox-II format) loco in slot 2 F13=Off F14=Off F15=Off F16=Off F17=Off F18=Off F19=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x09, 0x01, 0x01 });
    assertEquals(" Slot test 62", "Set (Intellibox-II format) loco in slot 112 F21=On F22=Off F23=Off F24=Off F25=Off F26=Off F27=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x09, 0x02, 0x01 });
    assertEquals(" Slot test 63", "Set (Intellibox-II format) loco in slot 112 F21=Off F22=On F23=Off F24=Off F25=Off F26=Off F27=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x09, 0x04, 0x01 });
    assertEquals(" Slot test 64", "Set (Intellibox-II format) loco in slot 112 F21=Off F22=Off F23=On F24=Off F25=Off F26=Off F27=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x09, 0x08, 0x01 });
    assertEquals(" Slot test 65", "Set (Intellibox-II format) loco in slot 112 F21=Off F22=Off F23=Off F24=On F25=Off F26=Off F27=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x09, 0x10, 0x01 });
    assertEquals(" Slot test 66", "Set (Intellibox-II format) loco in slot 112 F21=Off F22=Off F23=Off F24=Off F25=On F26=Off F27=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x09, 0x20, 0x01 });
    assertEquals(" Slot test 67", "Set (Intellibox-II format) loco in slot 112 F21=Off F22=Off F23=Off F24=Off F25=Off F26=On F27=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x09, 0x40, 0x01 });
    assertEquals(" Slot test 68", "Set (Intellibox-II format) loco in slot 112 F21=Off F22=Off F23=Off F24=Off F25=Off F26=Off F27=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x01, 0x05, 0x10, 0x01 });
    assertEquals(" Slot test 69", "Set (Intellibox-II format) loco in slot 1 F12=On F20=Off F28=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x05, 0x20, 0x01 });
    assertEquals(" Slot test 70", "Set (Intellibox-II format) loco in slot 112 F12=Off F20=On F28=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD4, 0x20, 0x70, 0x05, 0x40, 0x01 });
    assertEquals(" Slot test 71", "Set (Intellibox-II format) loco in slot 112 F12=Off F20=Off F28=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x7f, 0x00, 0x3A });
    assertEquals(" Slot test 72", "Request Command Station OpSwitches (or DCS210/DCS240 check for multiple command stations on LocoNet).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x43, 0x41 });
    assertEquals(" Slot test 73", "Move data in slot 4 to slot 67.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x00, 0x43, 0x41 });
    assertEquals(" Slot test 74", "Get most recently dispatched slot.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x79, 0x00, 0x4D });
    assertEquals(" Slot test 75", "Unable to parse LocoNet message.\ncontents: BB 79 00 4D\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x7A, 0x00, 0x4D });
    assertEquals(" Slot test 76", "Unable to parse LocoNet message.\ncontents: BB 7A 00 4D\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x7D, 0x00, 0x4D });
    assertEquals(" Slot test 77", "Unable to parse LocoNet message.\ncontents: BB 7D 00 4D\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBB, 0x7E, 0x00, 0x4D });
    assertEquals(" Slot test 78", "Unable to parse LocoNet message.\ncontents: BB 7E 00 4D\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBF, 0x7d, 0x04, 0x40 });
    assertEquals(" Slot test 79", "Request slot for loco address 4(short).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBF, 0x00, 0x70, 0x40 });
    assertEquals(" Slot test 80", "Request slot for loco address 112 (b2).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xA2, 0x25, 0x07, 0x7E });
    assertEquals(" Slot test 81", "Set loco in slot 37 Sound1/F5=On Sound2/F6=On Sound3/F7=On Sound4/F8=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x79, 0x38 });
    assertEquals(" Slot test 82", "Unable to parse LocoNet message.\ncontents: BA 04 79 38\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x7A, 0x3b });
    assertEquals(" Slot test 83", "Unable to parse LocoNet message.\ncontents: BA 04 7A 3B\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x7b, 0x3a });
    assertEquals(" Slot test 84", "Unable to parse LocoNet message.\ncontents: BA 04 7B 3A\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x7c, 0x3d });
    assertEquals(" Slot test 85", "Unable to parse LocoNet message.\ncontents: BA 04 7C 3D\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x7d, 0x3c });
    assertEquals(" Slot test 86", "Unable to parse LocoNet message.\ncontents: BA 04 7D 3C\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x7e, 0x3f });
    assertEquals(" Slot test 87", "Unable to parse LocoNet message.\ncontents: BA 04 7E 3F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xBA, 0x04, 0x7f, 0x3e });
    assertEquals(" Slot test 87", "Unable to parse LocoNet message.\ncontents: BA 04 7F 3E\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x00, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 88", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports DT200; Track Status: Off/Paused; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x01, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 89", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports DT200; Track Status: On/Paused; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x02, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 90", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports DT200; Track Status: Off/Running; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x03, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 91", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports DT200; Track Status: On/Running; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x04, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 92", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: Off/Paused; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x05, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 93", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Paused; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x06, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 94", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: Off/Running; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x08, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 88", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports DT200; Track Status: Off/Paused; Programming Track Status: Busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x09, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 95", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports DT200; Track Status: On/Paused; Programming Track Status: Busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x0A, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 96", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports DT200; Track Status: Off/Running; Programming Track Status: Busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x0b, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 97", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports DT200; Track Status: On/Running; Programming Track Status: Busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x0c, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 98", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: Off/Paused; Programming Track Status: Busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x0d, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 99", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Paused; Programming Track Status: Busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x0e, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 100", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: Off/Running; Programming Track Status: Busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x04, 0x07, 0x7A, 0x65, 0x0f, 0x6E, 0x20, 0x00, 0x00, 0x00, 0x38 });
    assertEquals(" Slot test 101", "Response Fast Clock is Synchronized, Running, rate is 4:1. Day 32, 06:34. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x2C, 0x4A });
    assertEquals(" Slot test 102", "Set consist in slot 47 direction Reverse F0=Off F1=Off F2=Off F3=On F4=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x00, 0x4A });
    assertEquals(" Slot test 103", "Set consist in slot 47 direction Forward F0=Off F1=Off F2=Off F3=Off F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x01, 0x4A });
    assertEquals(" Slot test 104", "Set consist in slot 47 direction Forward F0=Off F1=On F2=Off F3=Off F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x02, 0x4A });
    assertEquals(" Slot test 105", "Set consist in slot 47 direction Forward F0=Off F1=Off F2=On F3=Off F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x04, 0x4A });
    assertEquals(" Slot test 106", "Set consist in slot 47 direction Forward F0=Off F1=Off F2=Off F3=On F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x08, 0x4A });
    assertEquals(" Slot test 107", "Set consist in slot 47 direction Forward F0=Off F1=Off F2=Off F3=Off F4=On.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x10, 0x4A });
    assertEquals(" Slot test 108", "Set consist in slot 47 direction Forward F0=On F1=Off F2=Off F3=Off F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x20, 0x4A });
    assertEquals(" Slot test 109", "Set consist in slot 47 direction Reverse F0=Off F1=Off F2=Off F3=Off F4=Off.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xb6, 0x2F, 0x40, 0x26 });
    assertEquals(" Slot test 110", "Unable to parse LocoNet message.\ncontents: B6 2F 40 26\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xEF, 0x0E, 0x08, 0x33, 0x15, 0x00, 0x00, 0x27, 0x00, 0x0E, 0x00, 0x04, 0x44, 0x79 });
    assertEquals(" Slot test 111", "Write slot 8 information:\n" + "\tLoco 1813 is Not Consisted, In-Use, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x44 0x04 (8708).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x00, 0x39, 0x7F, 0x57, 0x07, 0x77, 0x1F, 0x00, 0x00, 0x00, 0x17 });
    assertEquals(" Slot test 112", "Response Fast Clock is Synchronized, Frozen, rate is 0:1. Day 31, 15:20. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x7B, 0x01, 0x39, 0x7F, 0x57, 0x07, 0x77, 0x1F, 0x20, 0x00, 0x00, 0x17 });
    assertEquals(" Slot test 113", "Response Fast Clock is  Running, rate is 1:1. Day 31, 15:20. Last set by ID 0x00 0x00 (0).\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xEF, 0x0E, 0x08, 0x33, 0x15, 0x00, 0x00, 0x27, 0x00, 0x0E, 0x01, 0x04, 0x44, 0x79 });
    assertEquals(" Slot test 111", "Write slot 8 information:\n" + "\tLoco 1813 is Not Consisted, In-Use, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=On, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x44 0x04 (8708).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xEF, 0x0E, 0x08, 0x33, 0x15, 0x00, 0x00, 0x27, 0x00, 0x0E, 0x02, 0x04, 0x44, 0x79 });
    assertEquals(" Slot test 111", "Write slot 8 information:\n" + "\tLoco 1813 is Not Consisted, In-Use, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=On, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x44 0x04 (8708).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xEF, 0x0E, 0x08, 0x33, 0x15, 0x00, 0x00, 0x27, 0x00, 0x0E, 0x04, 0x04, 0x44, 0x79 });
    assertEquals(" Slot test 111", "Write slot 8 information:\n" + "\tLoco 1813 is Not Consisted, In-Use, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=On, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x44 0x04 (8708).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xEF, 0x0E, 0x08, 0x33, 0x15, 0x00, 0x00, 0x27, 0x00, 0x0E, 0x08, 0x04, 0x44, 0x79 });
    assertEquals(" Slot test 111", "Write slot 8 information:\n" + "\tLoco 1813 is Not Consisted, In-Use, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=On\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x44 0x04 (8708).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x01, 0x03, 0x31, 0x00, 0x00, 0x07, 0x00, 0x7d, 0x00, 0x20, 0x30, 0x03 });
    assertEquals(" Slot test 13", "Report of slot 1 information:\n" + "\tLoco 49(short) is Not Consisted, Free, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x30 0x20 (6176).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xE7, 0x0E, 0x01, 0x03, 0x31, 0x00, 0x00, 0x07, 0x00, 0x7F, 0x00, 0x20, 0x30, 0x03 });
    assertEquals(" Slot test 13", "Report of slot 1 information:\n" + "\tLoco 49 (via an Alias) is Not Consisted, Free, operating in 128 SS mode, and is moving Forward at speed 0,\n" + "\tF0=Off, F1=Off, F2=Off, F3=Off, F4=Off, F5=Off, F6=Off, F7=Off, F8=Off\n" + "\tMaster supports LocoNet 1.1; Track Status: On/Running; Programming Track Status: Available; STAT2=0x00, ThrottleID=0x30 0x20 (6176).\n", f.displayMessage(l));
}
Also used : LocoNetMessage(jmri.jmrix.loconet.LocoNetMessage)

Example 88 with LocoNetMessage

use of jmri.jmrix.loconet.LocoNetMessage in project JMRI by JMRI.

the class LlnmonTest method testTrackPowerMessages.

public void testTrackPowerMessages() {
    LocoNetMessage l;
    l = new LocoNetMessage(new int[] { 0x82, 0x7d });
    assertEquals("Track Power test 1", "Set Global (Track) Power to 'OFF'.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0x81, 0x7e });
    assertEquals("Track Power test 2", "Master is busy.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0x83, 0x7c });
    assertEquals("Track Power test 3", "Set Global (Track) Power to 'ON'.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0x85, 0x7c });
    assertEquals("Track Power test 4", "Set Global (Track) Power to 'Force Idle, Broadcast Emergency STOP'.\n", f.displayMessage(l));
}
Also used : LocoNetMessage(jmri.jmrix.loconet.LocoNetMessage)

Example 89 with LocoNetMessage

use of jmri.jmrix.loconet.LocoNetMessage in project JMRI by JMRI.

the class LlnmonTest method testPM42OpSwMessages.

public void testPM42OpSwMessages() {
    LocoNetMessage l;
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x00, 0x70, 0x00, 0x3D });
    assertEquals("PM42 OpSws test 1", "PM4x 1 Query OpSw1 - Also acts as device query for some device types.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x00, 0x70, 0x02, 0x3D });
    assertEquals("PM42 OpSws test 1", "PM4x 1 Query OpSw2.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x00, 0x01, 0x15, 0x59 });
    assertEquals("PM42 OpSws test 2", "Device type report - BDL16x Board ID 1 Version 21 is present.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x01, 0x00, 0x00, 0x4C });
    assertEquals("PM42 OpSws test 3", "Device type report - PM4x Board ID 2 Version (unknown) is present.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x02, 0x02, 0x01, 0x4C });
    assertEquals("PM42 OpSws test 4", "Device type report - SE8C Board ID 3 Version 1 is present.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x40, 0x03, 0x28, 0x4C });
    assertEquals("PM42 OpSws test 5", "Device type report - DS64 Board ID 65 Version 40 is present.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x00, 0x70, 0x28, 0x4C });
    assertEquals("PM42 OpSws test 6", "PM4x 1 Query OpSw21.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x72, 0x00, 0x70, 0x28, 0x4C });
    assertEquals("PM42 OpSws test 7", "PM4x 1 Write OpSw21 value=0 (Thrown).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x72, 0x00, 0x70, 0x29, 0x4C });
    assertEquals("PM42 OpSws test 8", "PM4x 1 Write OpSw21 value=1 (Closed).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x72, 0x00, 0x71, 0x19, 0x4C });
    assertEquals("PM42 OpSws test 8", "BDL16x 1 Write OpSw13 value=1 (Closed).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x07, 0x71, 0x09, 0x4C });
    assertEquals("PM42 OpSws test 8", "BDL16x 8 Query OpSw5.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x72, 0x02, 0x72, 0x19, 0x4C });
    assertEquals("PM42 OpSws test 8", "SE8C 3 Write OpSw13 value=1 (Closed).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x01, 0x72, 0x09, 0x4C });
    assertEquals("PM42 OpSws test 8", "SE8C 2 Query OpSw5.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x72, 0x02, 0x73, 0x27, 0x4C });
    assertEquals("PM42 OpSws test 8", "DS64 3 Write OpSw20 value=1 (Closed).\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x05, 0x73, 0x79, 0x4C });
    assertEquals("PM42 OpSws test 8", "DS64 6 Query OpSw61.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xD0, 0x62, 0x05, 0x74, 0x79, 0x4C });
    assertEquals("PM42 OpSws test 8", "Unable to parse LocoNet message.\ncontents: D0 62 05 74 79 4C\n", f.displayMessage(l));
}
Also used : LocoNetMessage(jmri.jmrix.loconet.LocoNetMessage)

Example 90 with LocoNetMessage

use of jmri.jmrix.loconet.LocoNetMessage in project JMRI by JMRI.

the class LlnmonTest method testPeerXfer20DuplexQuery.

public void testPeerXfer20DuplexQuery() {
    LocoNetMessage l;
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x01, 0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex receiver query", "Query Duplex Receivers.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x01, 0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex receiver query", "Duplex Receiver Response.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x01, 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex receiver query", "Unable to parse LocoNet message.\ncontents: E5 14 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x02, 0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex channel query", "Query Duplex Channel.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x02, 0x00, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex channel set", "Set Duplex Channel to 128.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x02, 0x00, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex channel set", "Set Duplex Channel to 129.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x02, 0x00, 0, 0x40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex channel set", "Set Duplex Channel to 64.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x02, 0x10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex channel reply", "Reported Duplex Channel is 1.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x02, 0x10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex channel reply", "Reported Duplex Channel is 128.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x02, 0x09, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex bogus request", "Unable to parse LocoNet message.\ncontents: E5 14 02 09 01 00 00 00 00 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex name query", "Query Duplex Group Name.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x00, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to Fade2Blk.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x01, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to " + (char) 0xc6 + "ade2Blk.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x02, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to F" + (char) 0xe1 + "de2Blk.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x04, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to Fa" + (char) 0xe4 + "e2Blk.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x08, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to Fad" + (char) 0xe5 + "2Blk.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x00, 0x46, 0x61, 0x64, 0x65, 0x01, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to Fade" + (char) 0xb2 + "Blk.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x00, 0x46, 0x61, 0x64, 0x65, 0x02, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to Fade2" + (char) 0xc2 + "lk.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x00, 0x46, 0x61, 0x64, 0x65, 0x04, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to Fade2B" + (char) 0xEc + "k.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x00, 0x00, 0x46, 0x61, 0x64, 0x65, 0x08, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Set Duplex Group Name to Fade2Bl" + (char) 0xEb + ".\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2Blk\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x01, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"" + (char) 0xc6 + "ade2Blk\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x02, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"F" + (char) 0xe1 + "de2Blk\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x04, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fa" + (char) 0xe4 + "e2Blk\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x08, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fad" + (char) 0xe5 + "2Blk\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x01, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade" + (char) 0xb2 + "Blk\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x02, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2" + (char) 0xC2 + "lk\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x04, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2B" + (char) 0xec + "k\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x08, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2Bl" + (char) 0xeb + "\", Password=00000000, Channel=0, ID=0.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0x2f, 0x63, 0x3, 5, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2Blk\", Password=020F0603, Channel=3, ID=5.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 1, 0x2f, 0x63, 0x3, 5, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2Blk\", Password=0A0F0603, Channel=3, ID=5.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 2, 0x2f, 0x63, 0x3, 5, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2Blk\", Password=020F0E03, Channel=3, ID=5.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 4, 0x2f, 0x63, 0x3, 5, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2Blk\", Password=020F0603, Channel=131, ID=5.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 8, 0x2f, 0x63, 0x3, 5, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2Blk\", Password=020F0603, Channel=3, ID=133.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x10, 0x00, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 8, 0x2f, 0x63, 0x3, 5, 0x7f });
    assertEquals("duplex nzme report", "Reported Duplex Group Name=\"Fade2Blk\", Password=020F0603, Channel=3, ID=133.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x04, 0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex ID query", "Query Duplex ID.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x04, 0x10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex ID query", "Reported Duplex ID is 128.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x04, 0x10, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex ID query", "Reported Duplex ID is 137.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x04, 0x10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex ID query", "Reported Duplex ID is 1.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x04, 0x00, 1, 0x16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex ID query", "Set Duplex ID to 150.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x04, 0x00, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex ID query", "Set Duplex ID to 9.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Query Duplex Password.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x10, 0, 0x31, 0x32, 0x33, 0x34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Reported Duplex Password is 1234.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x10, 0, 0x35, 0x36, 0x37, 0x38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Reported Duplex Password is 5678.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x10, 0, 0x39, 0x30, 0x3a, 0x3b, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Reported Duplex Password is 90AB.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x36, 0x39, 0x33, 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Set Duplex Password to 6932.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x30, 0x30, 0x2F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 30 30 2F 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x30, 0x30, 0x3D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 30 30 3D 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x30, 0x30, 0x7f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 30 30 7F 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x30, 0x2F, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 30 2F 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x30, 0x3D, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 30 3D 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x30, 0x7f, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 30 7F 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x2F, 0x30, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 2F 30 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x3D, 0x30, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 3D 30 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x30, 0x7f, 0x30, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 30 7F 30 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x2F, 0x30, 0x30, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 2F 30 30 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x3D, 0x30, 0x30, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 3D 30 30 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x00, 0, 0x7f, 0x30, 0x30, 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 00 00 7F 30 30 30 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("Duplex Group RSSI query", "Query Duplex Channel 0 noise/activity.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x08, 0x00, 0x05, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("Duplex Group RSSI query", "Query Duplex Channel 5 noise/activity.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("Duplex Group RSSI query", "Query Duplex Channel 11 noise/activity.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x08, 0x00, 0x1a, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("Duplex Group RSSI query", "Query Duplex Channel 26 noise/activity.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x08, 0x00, 0x60, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("Duplex Group RSSI query", "Query Duplex Channel 96 noise/activity.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x08, 0x00, 0x7f, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("Duplex Group RSSI query", "Query Duplex Channel 127 noise/activity.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x01, 0, 0x00, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group RSSI query", "Unable to parse LocoNet message.\ncontents: E5 14 10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x10, 0, 0x00, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group RSSI query", "Reported Duplex Channel 0 noise/activity level is 0/255.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x10, 0x02, 0x0b, 0x00, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group RSSI query", "Reported Duplex Channel 11 noise/activity level is 128/255.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x10, 0x10, 0x00, 0x01A, 0x7f, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group RSSI query", "Reported Duplex Channel 26 noise/activity level is 127/255.\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x04, 0x01, 1, 0x16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex ID query (bogus)", "Unable to parse LocoNet message.\ncontents: E5 14 04 01 01 16 00 00 00 00 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x03, 0x02, 0x02, 0x46, 0x61, 0x64, 0x65, 0x00, 0x32, 0x42, 0x6c, 0x6b, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex nzme set", "Unable to parse LocoNet message.\ncontents: E5 14 03 02 02 46 61 64 65 00 32 42 6C 6B 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x07, 0x01, 0, 0x36, 0x39, 0x33, 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 07 01 00 36 39 33 32 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x02, 0x01, 0, 0x36, 0x39, 0x33, 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 02 01 00 36 39 33 32 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
    l = new LocoNetMessage(new int[] { 0xe5, 0x14, 0x01, 0x01, 0, 0x36, 0x39, 0x33, 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f });
    assertEquals("duplex Group Password query", "Unable to parse LocoNet message.\ncontents: E5 14 01 01 00 36 39 33 32 00 00 00 00 00 00 00 00 00 7F\n", f.displayMessage(l));
}
Also used : LocoNetMessage(jmri.jmrix.loconet.LocoNetMessage)

Aggregations

LocoNetMessage (jmri.jmrix.loconet.LocoNetMessage)103 Test (org.junit.Test)8 JFrame (javax.swing.JFrame)3 LocoNetInterfaceScaffold (jmri.jmrix.loconet.LocoNetInterfaceScaffold)3 LocoNetSystemConnectionMemo (jmri.jmrix.loconet.LocoNetSystemConnectionMemo)3 LocoStatsPanel (jmri.jmrix.loconet.locostats.swing.LocoStatsPanel)3 JmriJFrame (jmri.util.JmriJFrame)3 LocoNetSlot (jmri.jmrix.loconet.LocoNetSlot)2 SpjFile (jmri.jmrix.loconet.spjfile.SpjFile)2 BufferedReader (java.io.BufferedReader)1 IOException (java.io.IOException)1 InputStreamReader (java.io.InputStreamReader)1 StringTokenizer (java.util.StringTokenizer)1 LnPacketizer (jmri.jmrix.loconet.LnPacketizer)1 LnReporter (jmri.jmrix.loconet.LnReporter)1 LnTrafficController (jmri.jmrix.loconet.LnTrafficController)1 LnTurnout (jmri.jmrix.loconet.LnTurnout)1