694 lines
40 KiB
Java
694 lines
40 KiB
Java
package jmri.jmrix.loconet.alm.almi;
|
|
|
|
import jmri.jmrix.loconet.LocoNetMessage;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
*
|
|
* @author B. Milhaupt Copyright (C) 2022
|
|
*/
|
|
class AlmirTest {
|
|
|
|
@Test
|
|
public void testAlmRouteCapabilitiesQuery() {
|
|
LocoNetMessage l;
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 15});
|
|
Assert.assertEquals("Routes capabilities (command station, DS7x, etc.) query.\n", Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x00, 0, 0x00, 0x0f, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 15});
|
|
Assert.assertEquals("Routes capabilities (command station, DS7x, etc.) query.\n", Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDataQuery1() {
|
|
LocoNetMessage l;
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x00, 0, 0x0, 0x00,0,0,0,0,0,0,0x7f,0});
|
|
Assert.assertEquals("Query command station Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 1 entries 1-4.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x01, 0x00, 0x0, 0x00,0,0,0,0,0,0,0x7f,0});
|
|
Assert.assertEquals("Query command station Route 1 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 1 entries 5-8.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 2, 0x00, 0x0, 0x00,0,0,0,0,0,0,0x7f,0});
|
|
Assert.assertEquals("Query command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 1 entries 9-12.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x03, 0x00, 0x0, 0x00,0,0,0,0,0,0,0x7f,0});
|
|
Assert.assertEquals("Query command station Route 2 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 1 entries 13-16.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x20, 0x00, 0x0, 0xF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7});
|
|
Assert.assertEquals("Query command station Route 17 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 9 entries 1-4.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7c, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 127 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 1-4.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7f, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 128 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 13-16.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7D, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 127 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 5-8.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7E, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 128 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 9-12.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7F, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 128 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 13-16.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDataReport1() {
|
|
LocoNetMessage l;
|
|
//E6 10 01 02 ALM-style command station Route Data Report
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x01, 0x02, 0x7F, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Report command station Route 128 entries 5-8 if 8 entries per route. Or if 16 entries per route, report command station Route 64 entries 13-16 with Unused, Unused, Unused, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x01, 0x02, 0x02, 0x00, 0x0F, 0x0C, 0x20, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x2B});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13c, Unused, Unused, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x20 ,0x7F ,0x10 ,0x00 ,0x31 ,0x7F ,0x7F ,0x75});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13c, 128t, 129c, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x20 ,0x7F ,0x10 ,0x00 ,0x31 ,0x7F ,0x7F ,0x75});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13c, 128t, 129c, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteCSDataWrite1() {
|
|
LocoNetMessage l;
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x03, 0x7F, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Write command station Route 128 entries 5-8 if 8 entries per route. Or if 16 entries per route, write command station Route 64 entries 13-16 with Unused, Unused, Unused, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteCSDataReport1() {
|
|
LocoNetMessage l;
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x20 ,0x7F ,0x10 ,0x00 ,0x31 ,0x00 ,0x34 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13c, 128t, 129c, 513c.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x10 ,0x7F ,0x10 ,0x00 ,0x31 ,0x00 ,0x34 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13t, 128t, 129c, 513c.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x10 ,0x7F ,0x30 ,0x00 ,0x31 ,0x00 ,0x34 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13t, 128c, 129c, 513c.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x10 ,0x7F ,0x30 ,0x00 ,0x11 ,0x00 ,0x34 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13t, 128c, 129t, 513c.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x10 ,0x7F ,0x30 ,0x00 ,0x11 ,0x00 ,0x14 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13t, 128c, 129t, 513t.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDeviceDeselect1() {
|
|
LocoNetMessage l;
|
|
//EE 10 02 00 ALM-style DS7x-series device de-selection for routes accesses
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03});
|
|
Assert.assertEquals(" ALM task 2 test 1 - deselect",
|
|
"De-select the device currently selected for ALM Routes configuration, if any.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteLengthTest1() {
|
|
LocoNetMessage l;
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,0});
|
|
Assert.assertEquals(" ALM task check length test 1",
|
|
"",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00});
|
|
Assert.assertEquals(" ALM task check length test 2",
|
|
"",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDevSel1() {
|
|
LocoNetMessage l;
|
|
//EE 10 02 0e ALM-style DS7x-series device selection for routes accesses
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x02, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x60, 0x00, 0x00, 0x00, 0x00, 0x03});
|
|
Assert.assertEquals(" ALM task 2 test 5 - selecting",
|
|
"Selecting device of type DS78V, s/n 0x0, using addresses 1 thru 8 for Routes programming.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteCSCapabilitiesReport1() {
|
|
//E6 10 01 00 ALM-style command station Routes Capability Report
|
|
LocoNetMessage l;
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x01, 0x00, 0x40, 0x00, 0x03, 0x02, 0x08, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03});
|
|
Assert.assertEquals(" ALM task 2 test 6 - reporting routes capabilities",
|
|
"Command Station Routes Capabilities reply: 32 routes, 8 entries each route.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDeviceCapabilitiesReport1() {
|
|
//E6 10 02 00 ALM-style DS7x-series Route capabilities Report
|
|
LocoNetMessage l;
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x02, 0x00, 0x10, 0x00, 0x00, 0x02, 0x08, 0x74, 0x02, 0x02, 0x06, 0x03, 0x04, 0x03});
|
|
Assert.assertEquals(" ALM task 2 test 7 - reporting routes capabilities 2",
|
|
"Device DS74 (s/n 0x302) in Slow motion mode (routes currently enabled), using turnout addresses 516 thru 519, with 8 routes of 8 entries per route, may be configured using ALM messaging.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x02, 0x00, 0x20, 0x00, 0x00, 0x02, 0x08, 0x7c, 0x04, 0x02, 0x06, 0x03, 0x04, 0x03});
|
|
Assert.assertEquals(" ALM task 2 test 7 - reporting routes capabilities 2",
|
|
"Device DS78V (s/n 0x302) in Servo (2-position) mode (routes currently enabled), using turnout addresses 516 thru 523, with 16 routes of 8 entries per route, may be configured using ALM messaging.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteSomeUndefineds1() {
|
|
LocoNetMessage l;
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x01, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0});
|
|
Assert.assertEquals("OPC_ALM_RD task 0 test 1 - Undefined operation",
|
|
"",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x02, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0});
|
|
Assert.assertEquals("OPC_ALM_RD task 0 test 2 - Undefined operation",
|
|
"",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x03, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0x00, 0, 0});
|
|
Assert.assertEquals("OPC_ALM_RD task 0 test 3 - Undefined operation",
|
|
"",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testRoutesALMGeneral() {
|
|
LocoNetMessage l;
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03});
|
|
Assert.assertEquals(" ALM task 2 test 1",
|
|
"De-select the device currently selected for ALM Routes configuration, if any.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x00, 0, 0x0, 0x00,0,0,0,0,0,0,0x7f,0});
|
|
Assert.assertEquals("Query command station Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 1 entries 1-4.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x01, 0x00, 0x0, 0x00,0,0,0,0,0,0,0x7f,0});
|
|
Assert.assertEquals("Query command station Route 1 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 1 entries 5-8.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 2, 0x00, 0x0, 0x00,0,0,0,0,0,0,0x7f,0});
|
|
Assert.assertEquals("Query command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 1 entries 9-12.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x03, 0x00, 0, 0x00,0,0,0,0,0,0,0x7f,0});
|
|
Assert.assertEquals("Query command station Route 2 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 1 entries 13-16.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 32, 0x00, 0, 0xF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7, 0xF, 0x2D});
|
|
|
|
Assert.assertEquals("Query command station Route 17 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 9 entries 1-4.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x78, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 125 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 63 entries 1-4.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7C, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 127 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 1-4.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7D, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 127 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 5-8.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7E, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 128 entries 1-4 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 9-12.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x02, 0x7F, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Query command station Route 128 entries 5-8 if 8 entries per route. Or if 16 entries per route, query command station Route 64 entries 13-16.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x03, 0x7F, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Write command station Route 128 entries 5-8 if 8 entries per route. Or if 16 entries per route, write command station Route 64 entries 13-16 with Unused, Unused, Unused, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x01, 0x02, 0x7F, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Report command station Route 128 entries 5-8 if 8 entries per route. Or if 16 entries per route, report command station Route 64 entries 13-16 with Unused, Unused, Unused, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x01, 0x02, 0x7F, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Report command station Route 128 entries 5-8 if 8 entries per route. Or if 16 entries per route, report command station Route 64 entries 13-16 with Unused, Unused, Unused, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x01, 0x02, 0x02, 0x00, 0x0F, 0x0C, 0x20, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x2B});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13c, Unused, Unused, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x20 ,0x7F ,0x10 ,0x00 ,0x31 ,0x7F ,0x7F ,0x75});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13c, 128t, 129c, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x20 ,0x7F ,0x10 ,0x00 ,0x31 ,0x7F ,0x7F ,0x75});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13c, 128t, 129c, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x20 ,0x7F ,0x10 ,0x00 ,0x31 ,0x00 ,0x34 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13c, 128t, 129c, 513c.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x10 ,0x7F ,0x10 ,0x00 ,0x31 ,0x00 ,0x34 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13t, 128t, 129c, 513c.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x10 ,0x7F ,0x30 ,0x00 ,0x31 ,0x00 ,0x34 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13t, 128c, 129c, 513c.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x10 ,0x7F ,0x30 ,0x00 ,0x11 ,0x00 ,0x34 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13t, 128c, 129t, 513c.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xE6 ,0x10 ,0x01 ,0x02 ,0x02 ,0x00 ,0x0F ,0x0C ,0x10 ,0x7F ,0x30 ,0x00 ,0x11 ,0x00 ,0x14 ,0x48});
|
|
Assert.assertEquals("Report command station Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, report command station Route 1 entries 9-12 with 13t, 128c, 129t, 513t.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDevDataReport() {
|
|
//E6 10 02 02 ALM-style DS7x-series Route Data Report
|
|
LocoNetMessage l = new LocoNetMessage(new int[] {
|
|
0xE6, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x44, 0x37, 0x39, 0x12, 0x75, 0x1B, 0x30});
|
|
Assert.assertEquals("check 1a","Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 32t, 965c, 314t, 1526t.\n", Almir.interpretAlmRoutes(l));
|
|
l.setElement(8,0);
|
|
l.setElement(9,0);
|
|
l.setElement(10,0);
|
|
l.setElement(11,0);
|
|
l.setElement(12,0);
|
|
l.setElement(13,0);
|
|
l.setElement(14,0);
|
|
int i;
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(7, i);
|
|
Assert.assertEquals("check 1 loop "+i,"Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with "+(i+1)+"t, 1t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(7,0);
|
|
for (i = 1; i < 0x10; ) {
|
|
l.setElement(8, i);
|
|
Assert.assertEquals("check 2 loop "+i,"Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with "+((i<<7)+1)+"t, 1t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(8,0);
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(9, i);
|
|
Assert.assertEquals("check 3 loop "+i,"Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, "+(i+1)+"t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(9,0);
|
|
for (i = 1; i < 0x10; ) {
|
|
l.setElement(10, i);
|
|
Assert.assertEquals("check 4 loop "+i,"Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, "+((i<<7)+1)+"t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(10,0);
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(11, i);
|
|
Assert.assertEquals("check 5 loop "+i,"Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, 1t, "+(i+1)+"t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(11,0);
|
|
for (i = 1; i < 0x10; ) {
|
|
l.setElement(12, i);
|
|
Assert.assertEquals("check 6 loop "+i,"Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, 1t, "+((i<<7)+1)+"t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(12,0);
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(13, i);
|
|
Assert.assertEquals("check 7 loop "+i,"Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, 1t, 1t, "+(i+1)+"t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(13,0);
|
|
for (i = 1; i < 0x10; ) {
|
|
l.setElement(14, i);
|
|
Assert.assertEquals("check 8 loop "+i,"Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, 1t, 1t, "+((i<<7)+1)+"t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(14,0);
|
|
l.setElement(8,0x20);
|
|
Assert.assertEquals("check closed turnout 1","Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1c, 1t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
l.setElement(8,0);
|
|
l.setElement(10,0x20);
|
|
Assert.assertEquals("check closed turnout 2","Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, 1c, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
l.setElement(10,0);
|
|
l.setElement(12,0x20);
|
|
Assert.assertEquals("check closed turnout 3","Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, 1t, 1c, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
l.setElement(12,0);
|
|
l.setElement(14,0x20);
|
|
Assert.assertEquals("check closed turnout 4","Report device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, report device Route 1 entries 1-4 with 1t, 1t, 1t, 1c.\n", Almir.interpretAlmRoutes(l));
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteCsDataWr() {
|
|
//EE 10 01 03 ALM-style Command station Route Data Write
|
|
LocoNetMessage l;
|
|
l = new LocoNetMessage(new int[] {0xE6, 0x10, 0x01, 0x03, 0x7F, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l = new LocoNetMessage(new int[] {0xEE, 0x10, 0x01, 0x03, 0x7D, 0x01, 0x0F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x74});
|
|
Assert.assertEquals("Write command station Route 127 entries 5-8 if 8 entries per route. Or if 16 entries per route, write command station Route 64 entries 5-8 with Unused, Unused, Unused, Unused.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDevRouteDataWrite() {
|
|
//EE 10 02 03 ALM-style DS7x-series Route Data Write
|
|
LocoNetMessage l = new LocoNetMessage(new int[] {
|
|
0xEE, 0x10, 0x02, 0x03, 0x02, 0x00, 0x00, 0x7F, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x30});
|
|
Assert.assertEquals("check 1a","Write device Route 2 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 9-12 with Unused, Unused, Unused, Unused.\n", Almir.interpretAlmRoutes(l));
|
|
|
|
l.setElement(4,1);
|
|
Assert.assertEquals("check 1b","Write device Route 1 entries 5-8 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 5-8 with Unused, Unused, Unused, Unused.\n", Almir.interpretAlmRoutes(l));
|
|
|
|
l.setElement(4,3);
|
|
Assert.assertEquals("check 1c","Write device Route 2 entries 5-8 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 13-16 with Unused, Unused, Unused, Unused.\n", Almir.interpretAlmRoutes(l));
|
|
|
|
l.setElement(4,0x7F);
|
|
Assert.assertEquals("check 1d","Write device Route 64 entries 5-8 if 8 entries per route. Or if 16 entries per route, write device Route 32 entries 13-16 with Unused, Unused, Unused, Unused.\n", Almir.interpretAlmRoutes(l));
|
|
|
|
l.setElement(4,0x00);
|
|
l.setElement(5, 0x01);
|
|
Assert.assertEquals("check 13","Write device Route 65 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 33 entries 1-4 with Unused, Unused, Unused, Unused.\n", Almir.interpretAlmRoutes(l));
|
|
|
|
l.setElement(4,0);
|
|
l.setElement(5,0);
|
|
l.setElement(8,0);
|
|
l.setElement(9,0);
|
|
l.setElement(10,0);
|
|
l.setElement(11,0);
|
|
l.setElement(12,0);
|
|
l.setElement(13,0);
|
|
l.setElement(14,0);
|
|
int i;
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(7, i);
|
|
Assert.assertEquals("check 1 loop "+i,"Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with "+(i+1)+"t, 1t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(7,0);
|
|
for (i = 1; i < 0x10; ) {
|
|
l.setElement(8, i);
|
|
Assert.assertEquals("check 2 loop "+i,"Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with "+((i<<7)+1)+"t, 1t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(8,0);
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(9, i);
|
|
Assert.assertEquals("check 3 loop "+i,"Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, "+(i+1)+"t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(9,0);
|
|
for (i = 1; i < 0x10; ) {
|
|
l.setElement(10, i);
|
|
Assert.assertEquals("check 4 loop "+i,"Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, "+((i<<7)+1)+"t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(10,0);
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(11, i);
|
|
Assert.assertEquals("check 5 loop "+i,"Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, 1t, "+(i+1)+"t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(11,0);
|
|
for (i = 1; i < 0x10; ) {
|
|
l.setElement(12, i);
|
|
Assert.assertEquals("check 6 loop "+i,"Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, 1t, "+((i<<7)+1)+"t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(12,0);
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(13, i);
|
|
Assert.assertEquals("check 7 loop "+i,"Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, 1t, 1t, "+(i+1)+"t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(13,0);
|
|
for (i = 1; i < 0x10; ) {
|
|
l.setElement(14, i);
|
|
Assert.assertEquals("check 8 loop "+i,"Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, 1t, 1t, "+((i<<7)+1)+"t.\n", Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(14,0);
|
|
l.setElement(8,0x20);
|
|
Assert.assertEquals("check closed turnout 1","Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1c, 1t, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
l.setElement(8,0);
|
|
l.setElement(10,0x20);
|
|
Assert.assertEquals("check closed turnout 2","Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, 1c, 1t, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
l.setElement(10,0);
|
|
l.setElement(12,0x20);
|
|
Assert.assertEquals("check closed turnout 3","Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, 1t, 1c, 1t.\n", Almir.interpretAlmRoutes(l));
|
|
l.setElement(12,0);
|
|
l.setElement(14,0x20);
|
|
Assert.assertEquals("check closed turnout 4","Write device Route 1 entries 1-4 if 8 entries per route. Or if 16 entries per route, write device Route 1 entries 1-4 with 1t, 1t, 1t, 1c.\n", Almir.interpretAlmRoutes(l));
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDevRouteDataQuery() {
|
|
//EE 10 02 02 ALM-style DS7x-series Route Data Query
|
|
LocoNetMessage l = new LocoNetMessage(new int[] {
|
|
0xEE, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x30});
|
|
Assert.assertEquals("check 1a","Query the selected device, Route 1, entries 1 thru 4.\n", Almir.interpretAlmRoutes(l));
|
|
int i;
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(4, i);
|
|
Assert.assertEquals("check 1 loop "+i,"Query the selected device, Route "
|
|
+ (1+(i/2)) + ", entries " + ((i&1)==1?"5 thru 8":"1 thru 4")
|
|
+ ".\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(4,0);
|
|
for (i = 1; i < 0x80; ) {
|
|
l.setElement(5, i);
|
|
if (i < 2) {
|
|
Assert.assertEquals("check 2 loop "+i,"Query the selected device, Route "
|
|
+(1+(i<<6))+", entries 1 thru 4.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
} else {
|
|
Assert.assertEquals("check 2 loop "+i,"",Almir.interpretAlmRoutes(l));
|
|
}
|
|
i <<= 1;
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDevChgAddr() {
|
|
//EE 10 02 0f ALM-style DS7x-series device change base address
|
|
//Device {0}, s/n 0x{1}, using addresses {2} thru {3} has been selected for Routes configuration.\n
|
|
LocoNetMessage l = new LocoNetMessage(new int[] {
|
|
0xEE, 0x10, 0x02, 0x0f, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x74, 0x00, 0x01, 0x02, 0x03, 0x04, 0x00});
|
|
Assert.assertEquals("basic check 1",
|
|
"Change DS74, s/n 0x101 to use new Base Address 516.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l.setElement(9,0x7c);
|
|
Assert.assertEquals("basic check 1",
|
|
"Change DS78V, s/n 0x101 to use new Base Address 516.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l.setElement(9,0x74);
|
|
int i;
|
|
l.setElement(12, 0);
|
|
for (i = 1; i < 0x80;) {
|
|
l.setElement(11, i);
|
|
Assert.assertEquals("basic check 3 loop "+i,
|
|
"Change DS74, s/n 0x"
|
|
+Integer.toHexString(i)+" to use new Base Address 516.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(9, 0x7C);
|
|
l.setElement(11, 0);
|
|
for (i = 1; i< 0x80;) {
|
|
l.setElement(12, i);
|
|
Assert.assertEquals("basic check 4 loop "+i,
|
|
"Change DS78V, s/n 0x"
|
|
+Integer.toHexString(i<<7)+" to use new Base Address 516.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(12, 0);
|
|
l.setElement(14, 0);
|
|
for (i = 1; i< 0x80;) {
|
|
l.setElement(13, i);
|
|
Assert.assertEquals("basic check 5 loop "+i,
|
|
"Change DS78V, s/n 0x0 to use new Base Address "+(i+1)+".\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
l.setElement(9, 0x74);
|
|
l.setElement(13, 0);
|
|
for (i = 1; i< 0x80;) {
|
|
l.setElement(14, i);
|
|
Assert.assertEquals("basic check 6 loop "+i,
|
|
"Change DS74, s/n 0x0 to use new Base Address "+Integer.toString(((i<<7)+1))+".\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
i <<= 1;
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testAlmRouteDevSelectReply() {
|
|
//E6 10 02 0E ALM-style Device selection Reply
|
|
//Device {0}, s/n 0x{1}, using addresses {2} thru {3} has been selected for Routes configuration.\n
|
|
LocoNetMessage l = new LocoNetMessage(new int[] {
|
|
0xE6, 0x10, 0x02, 0x0E, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
});
|
|
Assert.assertEquals("alm route dev select reply case 1",
|
|
"Device (Unknown), s/n 0x0, using addresses 1 thru 1 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
int i;
|
|
for (i = 0; i < 0x80;) {
|
|
l.setElement(13, i);
|
|
Assert.assertEquals("alm route dev select reply case 2 loop "+i,
|
|
"Device (Unknown), s/n 0x0, using addresses "+(i+1)+" thru "+(i+1)+" has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
if (i == 0) {
|
|
i = 1;
|
|
} else {
|
|
i <<= 1;
|
|
}
|
|
}
|
|
l.setElement(13, 0);
|
|
for (i = 0; i < 0x80;) {
|
|
l.setElement(14, i);
|
|
Assert.assertEquals("alm route dev select reply case 3 loop "+i,
|
|
"Device (Unknown), s/n 0x0, using addresses "+((i<<7)+1)+" thru "+((i<<7)+1)+" has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
if (i == 0) {
|
|
i = 1;
|
|
} else {
|
|
i <<= 1;
|
|
}
|
|
}
|
|
l.setElement(14, 0);
|
|
for (i = 0; i < 0x80;) {
|
|
l.setElement(11, i);
|
|
Assert.assertEquals("alm route dev select reply case 4 loop "+i,
|
|
"Device (Unknown), s/n 0x"+Integer.toHexString(i)+", using addresses 1 thru 1 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
if (i == 0) {
|
|
i = 1;
|
|
} else {
|
|
i <<= 1;
|
|
}
|
|
}
|
|
|
|
l.setElement(11, 0);
|
|
for (i = 0; i < 0x80;) {
|
|
l.setElement(12, i);
|
|
Assert.assertEquals("alm route dev select reply case 5 loop "+i,
|
|
"Device (Unknown), s/n 0x"+Integer.toHexString(i<<7)+", using addresses 1 thru 1 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
if (i == 0) {
|
|
i = 1;
|
|
} else {
|
|
i <<= 1;
|
|
}
|
|
}
|
|
l.setElement(12, 0);
|
|
l.setElement(9, 0x74);
|
|
Assert.assertEquals("alm route dev select reply case 6",
|
|
"Device DS74, s/n 0x0, using addresses 1 thru 4 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l.setElement(10, 4);
|
|
Assert.assertEquals("alm route dev select reply case 7",
|
|
"Device DS74, s/n 0x0, using addresses 1 thru 4 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l.setElement(10, 8);
|
|
Assert.assertEquals("alm route dev select reply case 8",
|
|
"Device DS74, s/n 0x0, using addresses 1 thru 4 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l.setElement(10, 10);
|
|
Assert.assertEquals("alm route dev select reply case 9",
|
|
"Device DS74, s/n 0x0, using addresses 1 thru 8 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l.setElement(10, 12);
|
|
Assert.assertEquals("alm route dev select reply case 10",
|
|
"Device DS74, s/n 0x0, using addresses 1 thru 4 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
l.setElement(10, 0);
|
|
l.setElement(9, 0x7c);
|
|
Assert.assertEquals("alm route dev select reply case 11",
|
|
"Device DS78V, s/n 0x0, using addresses 1 thru 8 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l.setElement(10, 4);
|
|
Assert.assertEquals("alm route dev select reply case 12",
|
|
"Device DS78V, s/n 0x0, using addresses 1 thru 8 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l.setElement(10, 8);
|
|
Assert.assertEquals("alm route dev select reply case 13",
|
|
"Device DS78V, s/n 0x0, using addresses 1 thru 8 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l.setElement(10, 10);
|
|
Assert.assertEquals("alm route dev select reply case 14",
|
|
"Device DS78V, s/n 0x0, using addresses 1 thru 8 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
l.setElement(10, 12);
|
|
Assert.assertEquals("alm route dev select reply case 15",
|
|
"Device DS78V, s/n 0x0, using addresses 1 thru 16 has been selected for Routes configuration.\n",
|
|
Almir.interpretAlmRoutes(l));
|
|
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
}
|