774 lines
31 KiB
Java
774 lines
31 KiB
Java
package jmri.jmrix.can.cbus;
|
|
|
|
import jmri.jmrix.can.CanMessage;
|
|
import jmri.jmrix.can.CanReply;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
* @author Steve Young Copyright (C) 2018 2019
|
|
*/
|
|
public class CbusMessageTest {
|
|
|
|
// no testCtor as class only supplies static methods
|
|
|
|
@Test
|
|
public void testOpcRangeToSTL() {
|
|
CanReply r = new CanReply();
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x93); // ARON OPC
|
|
CanReply m = CbusMessage.opcRangeToStl(r);
|
|
Assert.assertTrue("ARON OPC Changed", m.getElement(0) == 0x90); // ACON OPC
|
|
|
|
r = new CanReply();
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x94); // AROF OPC
|
|
m = CbusMessage.opcRangeToStl(r);
|
|
Assert.assertTrue("AROF OPC Changed", m.getElement(0) == 0x91); // ACOF OPC
|
|
|
|
r = new CanReply();
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x9d); // ARSON OPC
|
|
m = CbusMessage.opcRangeToStl(r);
|
|
Assert.assertTrue("ARSON OPC Changed", m.getElement(0) == 0x98); // ASON OPC
|
|
|
|
r = new CanReply();
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x9e); // ARSOF OPC
|
|
m = CbusMessage.opcRangeToStl(r);
|
|
Assert.assertTrue("ARSOF OPC Changed", m.getElement(0) == 0x99); // ASOF OPC
|
|
|
|
r = new CanReply();
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x95); // EVULN OPC
|
|
m = CbusMessage.opcRangeToStl(r);
|
|
Assert.assertTrue("Other OPCs do not change", m.getElement(0) == 0x95); // EVULN OPC
|
|
}
|
|
|
|
@Test
|
|
public void testgetNodeNumberMessage() {
|
|
CanMessage m = new CanMessage(0x12);
|
|
m.setNumDataElements(5);
|
|
m.setElement(0, 0x90); // ACON OPC
|
|
m.setElement(1, 0xee);
|
|
m.setElement(2, 0x56);
|
|
m.setElement(3, 0x11);
|
|
m.setElement(4, 0x16);
|
|
Assert.assertTrue("Node calculated OK", CbusMessage.getNodeNumber(m) == 61014);
|
|
m.setElement(0, 0x95); // EVULN OPC
|
|
Assert.assertTrue("Not an event returns node 0", CbusMessage.getNodeNumber(m) == 0 );
|
|
}
|
|
|
|
@Test
|
|
public void testgetNodeNumberReply() {
|
|
CanReply r = new CanReply();
|
|
r.setNumDataElements(5);
|
|
r.setElement(0, 0x90); // ACON OPC
|
|
r.setElement(1, 0xee);
|
|
r.setElement(2, 0x56);
|
|
r.setElement(3, 0x11);
|
|
r.setElement(4, 0x16);
|
|
Assert.assertTrue("Node calculated OK", CbusMessage.getNodeNumber(r) == 61014);
|
|
r.setElement(0, 0x95); // EVULN OPC
|
|
Assert.assertTrue("Not an event returns node 0", CbusMessage.getNodeNumber(r) == 0 );
|
|
}
|
|
|
|
@Test
|
|
public void testgetEventMessage() {
|
|
CanMessage m = new CanMessage(0x12);
|
|
m.setNumDataElements(5);
|
|
m.setElement(0, 0x90); // ACON OPC
|
|
m.setElement(1, 0xee);
|
|
m.setElement(2, 0x56);
|
|
m.setElement(3, 0x11);
|
|
m.setElement(4, 0x16);
|
|
Assert.assertTrue("Event calculated OK", CbusMessage.getEvent(m) == 4374);
|
|
m.setElement(0, 0x95); // EVULN OPC
|
|
Assert.assertTrue("Not an event returns -1", CbusMessage.getEvent(m) == -1 );
|
|
}
|
|
|
|
@Test
|
|
public void testgetEventReply() {
|
|
CanReply r = new CanReply();
|
|
r.setNumDataElements(5);
|
|
r.setElement(0, 0x90); // ACON OPC
|
|
r.setElement(1, 0xee);
|
|
r.setElement(2, 0x56);
|
|
r.setElement(3, 0x11);
|
|
r.setElement(4, 0x16);
|
|
Assert.assertTrue("Event calculated OK", CbusMessage.getEvent(r) == 4374);
|
|
r.setElement(0, 0x95); // EVULN OPC
|
|
Assert.assertTrue("Not an event returns -1", CbusMessage.getEvent(r) == -1 );
|
|
}
|
|
|
|
@Test
|
|
public void testgetEventTypeMessage() {
|
|
CanMessage m = new CanMessage(0x12);
|
|
m.setNumDataElements(1);
|
|
m.setElement(0, 0x90); // ACON OPC
|
|
Assert.assertTrue("Event Type On", CbusMessage.getEventType(m) == CbusConstants.EVENT_ON);
|
|
m.setElement(0, 0x99); // ASOF OPC
|
|
Assert.assertTrue("Event Type Off", CbusMessage.getEventType(m) == CbusConstants.EVENT_OFF );
|
|
}
|
|
|
|
@Test
|
|
public void testgetEventTypeReply() {
|
|
CanReply r = new CanReply();
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x90); // ACON OPC
|
|
Assert.assertTrue("Event Type On", CbusMessage.getEventType(r) == CbusConstants.EVENT_ON);
|
|
r.setElement(0, 0x99); // ASOF OPC
|
|
Assert.assertTrue("Event Type Off", CbusMessage.getEventType(r) == CbusConstants.EVENT_OFF );
|
|
}
|
|
|
|
@Test
|
|
public void testisEventMessage() {
|
|
CanMessage m = new CanMessage(0x12);
|
|
m.setNumDataElements(1);
|
|
m.setElement(0, 0x90); // ACON OPC
|
|
Assert.assertTrue("Is Event", CbusMessage.isEvent(m) == true);
|
|
m.setElement(0, 0x95); // EVULN OPC
|
|
Assert.assertTrue("Is Not Event", CbusMessage.isEvent(m) == false );
|
|
}
|
|
|
|
@Test
|
|
public void testisEventReply() {
|
|
CanReply r = new CanReply(0x12);
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x90); // ACON OPC
|
|
Assert.assertTrue("Is Event", CbusMessage.isEvent(r) == true);
|
|
r.setElement(0, 0x95); // EVULN OPC
|
|
Assert.assertTrue("Is Not Event", CbusMessage.isEvent(r) == false );
|
|
}
|
|
|
|
@Test
|
|
public void testisShortMessage() {
|
|
CanMessage m = new CanMessage(0x12);
|
|
m.setNumDataElements(1);
|
|
m.setElement(0, 0x90); // ACON OPC
|
|
Assert.assertTrue("Is Not Short", CbusMessage.isShort(m) == false);
|
|
m.setElement(0, 0x99); // ASOF OPC
|
|
Assert.assertTrue("Is Short", CbusMessage.isShort(m) == true );
|
|
}
|
|
|
|
@Test
|
|
public void testisShortReply() {
|
|
CanReply r = new CanReply(0x12);
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x90); // ACON OPC
|
|
Assert.assertTrue("Is Not Short", CbusMessage.isShort(r) == false);
|
|
r.setElement(0, 0x99); // ASOF OPC
|
|
Assert.assertTrue("Is Short", CbusMessage.isShort(r) == true );
|
|
}
|
|
|
|
@Test
|
|
public void testtoAddressMessage() {
|
|
CanMessage m = new CanMessage(0x12);
|
|
m.setNumDataElements(5);
|
|
m.setElement(0, 0x90); // ACON OPC
|
|
m.setElement(1, 0xdd);
|
|
m.setElement(2, 0xab);
|
|
m.setElement(3, 0x4b);
|
|
m.setElement(4, 0xb3);
|
|
|
|
Assert.assertEquals("string toAddressMessageAcon","+n56747e19379",CbusMessage.toAddress(m));
|
|
m.setElement(0, 0x91); // ACOF OPC
|
|
Assert.assertEquals("toAddressMessageAcof","-n56747e19379",CbusMessage.toAddress(m) );
|
|
m.setElement(0, 0x98); // ASON OPC
|
|
Assert.assertEquals("toAddressMessageAson", "+19379",CbusMessage.toAddress(m) );
|
|
m.setElement(0, 0x99); // ASOF OPC
|
|
Assert.assertEquals("toAddressMessageAsof", "-19379",CbusMessage.toAddress(m) );
|
|
m.setElement(0, 0x9e); // ARSON OPC
|
|
Assert.assertEquals("toAddressMessageArson", "X9EDDAB4BB3", CbusMessage.toAddress(m) );
|
|
}
|
|
|
|
@Test
|
|
public void testtoAddressReply() {
|
|
CanReply r = new CanReply(0x12);
|
|
r.setNumDataElements(5);
|
|
r.setElement(0, 0x90); // ACON OPC
|
|
r.setElement(1, 0xdd);
|
|
r.setElement(2, 0xab);
|
|
r.setElement(3, 0x4b);
|
|
r.setElement(4, 0xb3);
|
|
|
|
Assert.assertEquals("toAddressReplyAcon","+n56747e19379",CbusMessage.toAddress(r));
|
|
r.setElement(0, 0x91); // ACOF OPC
|
|
Assert.assertEquals("toAddressReplyAcof", "-n56747e19379",CbusMessage.toAddress(r) );
|
|
r.setElement(0, 0x98); // ASON OPC
|
|
Assert.assertEquals("toAddressReplyAson", "+19379",CbusMessage.toAddress(r) );
|
|
r.setElement(0, 0x99); // ASOF OPC
|
|
Assert.assertEquals("toAddressReplyAsof", "-19379",CbusMessage.toAddress(r) );
|
|
r.setElement(0, 0x9e); // ARSON OPC
|
|
Assert.assertEquals("toAddressReplyArson", "X9EDDAB4BB3",CbusMessage.toAddress(r) );
|
|
}
|
|
|
|
@Test
|
|
public void testisRequestTrackOffMessage() {
|
|
CanMessage m = new CanMessage(0x12,1);
|
|
m.setElement(0, 0x08); // RTOF OPC
|
|
Assert.assertEquals("isRequestTrackOff Good Message", CbusMessage.isRequestTrackOff(m),true);
|
|
m = new CanMessage(0x12,1);
|
|
m.setElement(0, 0x09); // RTON OPC
|
|
Assert.assertEquals("isRequestTrackOff Bad Message", CbusMessage.isRequestTrackOff(m),false);
|
|
}
|
|
|
|
@Test
|
|
public void testisRequestTrackOnMessage() {
|
|
CanMessage m = new CanMessage(0x12,1);
|
|
m.setElement(0, 0x09); // RTON OPC
|
|
Assert.assertEquals("isRequestTrackOn Good Message", CbusMessage.isRequestTrackOn(m),true);
|
|
m = new CanMessage(0x12,1);
|
|
m.setElement(0, 0x08); // RTOF OPC
|
|
Assert.assertEquals("isRequestTrackOn Bad Message", CbusMessage.isRequestTrackOn(m),false);
|
|
}
|
|
|
|
@Test
|
|
public void testisTrackOnReply() {
|
|
CanReply r = new CanReply(0x12);
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x05); // TON OPC
|
|
Assert.assertEquals("isRequestTrackOn Good Reply", CbusMessage.isTrackOn(r),true);
|
|
r = new CanReply(0x12);
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x04); // TOF OPC
|
|
Assert.assertEquals("isRequestTrackOn Bad Reply", CbusMessage.isTrackOn(r),false);
|
|
}
|
|
|
|
@Test
|
|
public void testisTrackOffReply() {
|
|
CanReply r = new CanReply(0x12);
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x04); // TOF OPC
|
|
Assert.assertEquals("isRequestTrackOff Good Reply", CbusMessage.isTrackOff(r),true);
|
|
r = new CanReply(0x12);
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x05); // TON OPC
|
|
Assert.assertEquals("isRequestTrackOff Bad Reply", CbusMessage.isTrackOff(r),false);
|
|
}
|
|
|
|
@Test
|
|
public void testgetRequestTrackOnMessage() {
|
|
CanMessage m = CbusMessage.getRequestTrackOn(0x12);
|
|
Assert.assertTrue("getRequestTrackOn OPC", m.getElement(0) == 0x09); // RTON OPC
|
|
Assert.assertTrue("getRequestTrackOn Length", m.getNumDataElements() == 1);
|
|
}
|
|
|
|
@Test
|
|
public void testgetRequestTrackOffMessage() {
|
|
CanMessage m = CbusMessage.getRequestTrackOff(0x12);
|
|
Assert.assertTrue("getRequestTrackOff OPC", m.getElement(0) == 0x08); // RTON OPC
|
|
Assert.assertTrue("getRequestTrackOff Length", m.getNumDataElements() == 1);
|
|
}
|
|
|
|
@Test
|
|
public void testgetDataLength() {
|
|
CanReply r = new CanReply(0x12);
|
|
CanMessage m = new CanMessage(0x12);
|
|
r.setElement(0, 0x04); // TOF OPC
|
|
m.setElement(0, 0x04); // TOF OPC
|
|
Assert.assertEquals("Data Length 0 r",0,CbusMessage.getDataLength(r));
|
|
Assert.assertEquals("Data Length 0 m",0,CbusMessage.getDataLength(m));
|
|
r.setElement(0, 0x11); // RQMN
|
|
m.setElement(0, 0x11); // RQMN
|
|
Assert.assertEquals("Data Length 0 r",0,CbusMessage.getDataLength(r));
|
|
Assert.assertEquals("Data Length 0 m",0,CbusMessage.getDataLength(m));
|
|
|
|
r.setElement(0, 0x83); // WCVB OPC
|
|
m.setElement(0, 0x83); // WCVB OPC
|
|
Assert.assertEquals("Data Length 4 r",4,CbusMessage.getDataLength(r));
|
|
Assert.assertEquals("Data Length 4 m",4,CbusMessage.getDataLength(m));
|
|
r.setElement(0, 0xe2); // NAME
|
|
m.setElement(0, 0xe2); // NAME
|
|
Assert.assertEquals("Data Length 7 r",7,CbusMessage.getDataLength(r));
|
|
Assert.assertEquals("Data Length 7 m",7,CbusMessage.getDataLength(m));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testsetgetPriority() {
|
|
|
|
try {
|
|
CbusMessage.setPri(null,0x01);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("null is Not a CanMutableFrame", e.getMessage());
|
|
}
|
|
|
|
try {
|
|
CbusMessage.getPri(null);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("null is Not a CanFrame", e.getMessage());
|
|
}
|
|
|
|
|
|
CanReply r = new CanReply(0x00);
|
|
CanMessage m = new CanMessage(0x00);
|
|
Assert.assertEquals("Priority 0 r",0,CbusMessage.getPri(r));
|
|
Assert.assertEquals("Priority 0 m",0,CbusMessage.getPri(m));
|
|
|
|
try {
|
|
CbusMessage.setPri(r,0xff);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("Invalid CBUS Priority value: 255", e.getMessage());
|
|
}
|
|
|
|
try {
|
|
CbusMessage.setPri(m,0xff);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("Invalid CBUS Priority value: 255", e.getMessage());
|
|
}
|
|
|
|
CbusMessage.setPri(m,CbusConstants.DEFAULT_MINOR_PRIORITY);
|
|
CbusMessage.setPri(r,CbusConstants.DEFAULT_MINOR_PRIORITY);
|
|
Assert.assertEquals("Priority DEFAULT_MINOR_PRIORITY r",3,CbusMessage.getPri(r));
|
|
Assert.assertEquals("Priority DEFAULT_MINOR_PRIORITY m",3,CbusMessage.getPri(m));
|
|
|
|
CbusMessage.setPri(m,CbusConstants.DEFAULT_DYNAMIC_PRIORITY);
|
|
CbusMessage.setPri(r,CbusConstants.DEFAULT_DYNAMIC_PRIORITY);
|
|
Assert.assertEquals("Priority DEFAULT_DYNAMIC_PRIORITY r",2,CbusMessage.getPri(r));
|
|
Assert.assertEquals("Priority DEFAULT_DYNAMIC_PRIORITY m",2,CbusMessage.getPri(m));
|
|
|
|
r.setExtended(true);
|
|
|
|
try {
|
|
CbusMessage.setPri(r,CbusConstants.DEFAULT_MINOR_PRIORITY);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("Extended CBUS CAN Frames do not have a priority concept.", e.getMessage());
|
|
}
|
|
|
|
m.setExtended(true);
|
|
|
|
try {
|
|
CbusMessage.setPri(m,CbusConstants.DEFAULT_MINOR_PRIORITY);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("Extended CBUS CAN Frames do not have a priority concept.", e.getMessage());
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testsetgetId() {
|
|
|
|
try {
|
|
CbusMessage.setId(null,0x01);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("null is Not a CanMutableFrame", e.getMessage());
|
|
}
|
|
|
|
try {
|
|
CbusMessage.getId(null);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("null is Not a CanFrame", e.getMessage());
|
|
}
|
|
|
|
|
|
CanReply r = new CanReply(0x00);
|
|
CanMessage m = new CanMessage(0x00);
|
|
Assert.assertEquals("getId 0 r",0,CbusMessage.getId(r));
|
|
Assert.assertEquals("getId 0 m",0,CbusMessage.getId(m));
|
|
CbusMessage.setId(r,0x01);
|
|
CbusMessage.setId(m,0x01);
|
|
Assert.assertEquals("getId 1 r",1,CbusMessage.getId(r));
|
|
Assert.assertEquals("getId 1 m",1,CbusMessage.getId(m));
|
|
CbusMessage.setId(r,120);
|
|
CbusMessage.setId(m,120);
|
|
Assert.assertEquals("getId 120 r",120,CbusMessage.getId(r));
|
|
Assert.assertEquals("getId 120 m",120,CbusMessage.getId(m));
|
|
try {
|
|
CbusMessage.setId(r,0xff);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
}
|
|
|
|
try {
|
|
CbusMessage.setId(m,0xff);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
}
|
|
|
|
r.setExtended(true);
|
|
m.setExtended(true);
|
|
|
|
try {
|
|
CbusMessage.setId(r,0x05);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("No CAN ID Concept on Extended CBUS CAN Frame.", e.getMessage());
|
|
}
|
|
|
|
try {
|
|
CbusMessage.setId(m,0x05);
|
|
Assert.fail("Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("No CAN ID Concept on Extended CBUS CAN Frame.", e.getMessage());
|
|
}
|
|
|
|
r.setExtended(false);
|
|
m.setExtended(false);
|
|
|
|
try {
|
|
CbusMessage.setId(r,0xffffff);
|
|
Assert.fail("r Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("invalid standard ID value: 16777215", e.getMessage());
|
|
}
|
|
|
|
try {
|
|
CbusMessage.setId(m,0xffffff);
|
|
Assert.fail("m Should have thrown an exception");
|
|
} catch (IllegalArgumentException e) {
|
|
Assert.assertEquals("invalid standard ID value: 16777215", e.getMessage());
|
|
}
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testisArst() {
|
|
CanReply r = new CanReply(0x12);
|
|
r.setNumDataElements(1);
|
|
r.setElement(0, 0x07); // Arst OPC
|
|
Assert.assertTrue(CbusMessage.isArst(r));
|
|
r.setElement(0, 0x06);
|
|
Assert.assertFalse(CbusMessage.isArst(r));
|
|
}
|
|
|
|
@Test
|
|
public void testgetReadCV() {
|
|
CanMessage m = CbusMessage.getReadCV(1,jmri.ProgrammingMode.PAGEMODE,0x12);
|
|
Assert.assertEquals("PAGEMODE","[592] 84 FF 00 01 02",m.toString());
|
|
m = CbusMessage.getReadCV(255,jmri.ProgrammingMode.DIRECTBITMODE,0x12);
|
|
Assert.assertEquals("DIRECTBITMODE","[592] 84 FF 00 FF 01",m.toString());
|
|
m = CbusMessage.getReadCV(214,jmri.ProgrammingMode.DIRECTBYTEMODE,0x12);
|
|
Assert.assertEquals("DIRECTBYTEMODE","[592] 84 FF 00 D6 00",m.toString());
|
|
m = CbusMessage.getReadCV(214,jmri.ProgrammingMode.REGISTERMODE,0x12);
|
|
Assert.assertEquals("REGISTERMODE","[592] 84 FF 00 D6 03",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetVerifyCV() {
|
|
CanMessage m = CbusMessage.getVerifyCV(1,jmri.ProgrammingMode.PAGEMODE,0x57,0x12);
|
|
Assert.assertEquals("PAGEMODE","[592] A4 FF 00 01 02 57",m.toString());
|
|
m = CbusMessage.getVerifyCV(255,jmri.ProgrammingMode.DIRECTBITMODE,0x63,0x12);
|
|
Assert.assertEquals("DIRECTBITMODE","[592] A4 FF 00 FF 01 63",m.toString());
|
|
m = CbusMessage.getVerifyCV(214,jmri.ProgrammingMode.DIRECTBYTEMODE,0x13,0x12);
|
|
Assert.assertEquals("DIRECTBYTEMODE","[592] A4 FF 00 D6 00 13",m.toString());
|
|
m = CbusMessage.getVerifyCV(213,jmri.ProgrammingMode.REGISTERMODE,0xB9,0x12);
|
|
Assert.assertEquals("REGISTERMODE","[592] A4 FF 00 D5 03 B9",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetgetWriteCV() {
|
|
CanMessage m = CbusMessage.getWriteCV(1,211,jmri.ProgrammingMode.PAGEMODE,0x12);
|
|
Assert.assertEquals("PAGEMODE","[592] A2 FF 00 01 02 D3",m.toString());
|
|
m = CbusMessage.getWriteCV(255,1,jmri.ProgrammingMode.DIRECTBITMODE,0x12);
|
|
Assert.assertEquals("DIRECTBITMODE","[592] A2 FF 00 FF 01 01",m.toString());
|
|
m = CbusMessage.getWriteCV(214,0,jmri.ProgrammingMode.DIRECTBYTEMODE,0x12);
|
|
Assert.assertEquals("DIRECTBYTEMODE","[592] A2 FF 00 D6 00 00",m.toString());
|
|
m = CbusMessage.getWriteCV(214,123,jmri.ProgrammingMode.REGISTERMODE,0x12);
|
|
Assert.assertEquals("REGISTERMODE","[592] A2 FF 00 D6 03 7B",m.toString());
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testgetOpsModeWriteCV() {
|
|
CanMessage m = CbusMessage.getOpsModeWriteCV(22,false,211,255,0x12);
|
|
Assert.assertEquals("getOpsModeWriteCV","[592] C1 00 16 00 D3 05 FF",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootEntry() {
|
|
CanMessage m = CbusMessage.getBootEntry(43215,0x12);
|
|
Assert.assertEquals("getBootEntry","[592] 5C A8 CF",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootNop() {
|
|
CanMessage m = CbusMessage.getBootNop(0x123456,0x12);
|
|
Assert.assertEquals("getBootNop","[4] 56 34 12 00 1D 00 00 00",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootReset() {
|
|
CanMessage m = CbusMessage.getBootReset(0x12);
|
|
Assert.assertEquals("getBootReset","[4] 00 00 00 00 1D 01 00 00",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootInitialise() {
|
|
CanMessage m = CbusMessage.getBootInitialise(0x123456,0x12);
|
|
Assert.assertEquals("getBootInitialise","[4] 56 34 12 00 1D 02 00 00",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootCheck() {
|
|
CanMessage m = CbusMessage.getBootCheck(123,0x12);
|
|
Assert.assertEquals("getBootCheck","[4] 00 00 00 00 1D 03 7B 00",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootTest() {
|
|
CanMessage m = CbusMessage.getBootTest(0x12);
|
|
Assert.assertEquals("getBootTest","[4] 00 00 00 00 1D 04 00 00",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootDevId() {
|
|
CanMessage m = CbusMessage.getBootDevId(0x12);
|
|
Assert.assertEquals("getBootDevid","[4] 00 00 00 00 1D 05 00 00",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootId() {
|
|
CanMessage m = CbusMessage.getBootId(0x12);
|
|
Assert.assertEquals("getBootBootid","[4] 00 00 00 00 1D 06 00 00",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootEnables() {
|
|
CanMessage m = CbusMessage.getBootEnables(0x3, 0x12);
|
|
Assert.assertEquals("getBootEnables","[4] 00 00 00 00 1D 07 03 00",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testgetBootWriteData() {
|
|
CanMessage m = CbusMessage.getBootWriteData( new int[]{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},0x12);
|
|
Assert.assertEquals("getBootWriteData","[5] 01 02 03 04 05 06 07 08",m.toString());
|
|
|
|
m = CbusMessage.getBootWriteData( new int[]{0x01,0x02},0x12);
|
|
Assert.assertEquals("getBootWriteData","[5] 01 02",m.toString());
|
|
|
|
m = CbusMessage.getBootWriteData( new byte[]{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},0x12);
|
|
Assert.assertEquals("getBootWriteData","[5] 01 02 03 04 05 06 07 08",m.toString());
|
|
|
|
m = CbusMessage.getBootWriteData( new byte[]{0x01,0x02},0x12);
|
|
Assert.assertEquals("getBootWriteData","[5] 01 02",m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testisBootError() {
|
|
CanReply r = new CanReply(1);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootError fff",false,CbusMessage.isBootError(r)); // false false false
|
|
r.setElement(0,0);
|
|
Assert.assertEquals("isBootError ffp",false,CbusMessage.isBootError(r)); // ffp
|
|
r.setHeader(0x10000004);
|
|
Assert.assertEquals("isBootError fpp",false,CbusMessage.isBootError(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootError fpf",false,CbusMessage.isBootError(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootError ppf",false,CbusMessage.isBootError(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootError pff",false,CbusMessage.isBootError(r)); // pff
|
|
r.setHeader(0x10000004);
|
|
r.setElement(0,0);
|
|
Assert.assertEquals("isBootError ppp",true,CbusMessage.isBootError(r)); // ppp
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testisBootDataError() {
|
|
CanReply r = new CanReply(1);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootDataError fff",false,CbusMessage.isBootDataError(r)); // false false false
|
|
r.setElement(0,0);
|
|
Assert.assertEquals("isBootDataError ffp",false,CbusMessage.isBootDataError(r)); // ffp
|
|
r.setHeader(0x10000005);
|
|
Assert.assertEquals("isBootDataError fpp",false,CbusMessage.isBootDataError(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootDataError fpf",false,CbusMessage.isBootDataError(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootDataError ppf",false,CbusMessage.isBootDataError(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootDataError pff",false,CbusMessage.isBootDataError(r)); // pff
|
|
r.setHeader(0x10000005);
|
|
r.setElement(0,0);
|
|
Assert.assertEquals("isBootDataError ppp",true,CbusMessage.isBootDataError(r)); // ppp
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testisBootOK() {
|
|
CanReply r = new CanReply(1);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootOK fff",false,CbusMessage.isBootOK(r)); // false false false
|
|
r.setElement(0,1);
|
|
Assert.assertEquals("isBootOK ffp",false,CbusMessage.isBootOK(r)); // ffp
|
|
r.setHeader(0x10000004);
|
|
Assert.assertEquals("isBootOK fpp",false,CbusMessage.isBootOK(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootOK fpf",false,CbusMessage.isBootOK(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootOK ppf",false,CbusMessage.isBootOK(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootOK pff",false,CbusMessage.isBootOK(r)); // pff
|
|
r.setHeader(0x10000004);
|
|
r.setElement(0,1);
|
|
Assert.assertEquals("isBootOK ppp",true,CbusMessage.isBootOK(r)); // ppp
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testisBootDataOK() {
|
|
CanReply r = new CanReply(1);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootDataOK fff",false,CbusMessage.isBootDataOK(r)); // false false false
|
|
r.setElement(0,1);
|
|
Assert.assertEquals("isBootDataOK ffp",false,CbusMessage.isBootDataOK(r)); // ffp
|
|
r.setHeader(0x10000005);
|
|
Assert.assertEquals("isBootDataOK fpp",false,CbusMessage.isBootDataOK(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootDataOK fpf",false,CbusMessage.isBootDataOK(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootDataOK ppf",false,CbusMessage.isBootDataOK(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootDataOK pff",false,CbusMessage.isBootDataOK(r)); // pff
|
|
r.setHeader(0x10000005);
|
|
r.setElement(0,1);
|
|
Assert.assertEquals("isBootDataOK ppp",true,CbusMessage.isBootDataOK(r)); // ppp
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testisBootOutOfRange() {
|
|
CanReply r = new CanReply(1);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootOutOfRange fff",false,CbusMessage.isBootOutOfRange(r)); // false false false
|
|
r.setElement(0,1);
|
|
Assert.assertEquals("isBootOutOfRange ffp",false,CbusMessage.isBootOutOfRange(r)); // ffp
|
|
r.setHeader(0x10000004);
|
|
Assert.assertEquals("isBootOutOfRange fpp",false,CbusMessage.isBootOutOfRange(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootOutOfRange fpf",false,CbusMessage.isBootOutOfRange(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootOutOfRange ppf",false,CbusMessage.isBootOutOfRange(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootOutOfRange pff",false,CbusMessage.isBootOutOfRange(r)); // pff
|
|
r.setHeader(0x10000004);
|
|
r.setElement(0,3);
|
|
Assert.assertEquals("isBootOutOfRange ppp",true,CbusMessage.isBootOutOfRange(r)); // ppp
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testisBootDataOutOfRange() {
|
|
CanReply r = new CanReply(1);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootDataOutOfRange fff",false,CbusMessage.isBootDataOutOfRange(r)); // false false false
|
|
r.setElement(0,1);
|
|
Assert.assertEquals("isBootDataOutOfRange ffp",false,CbusMessage.isBootDataOutOfRange(r)); // ffp
|
|
r.setHeader(0x10000004);
|
|
Assert.assertEquals("isBootDataOutOfRange fpp",false,CbusMessage.isBootDataOutOfRange(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootDataOutOfRange fpf",false,CbusMessage.isBootDataOutOfRange(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootDataOutOfRange ppf",false,CbusMessage.isBootDataOutOfRange(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootDataOutOfRange pff",false,CbusMessage.isBootDataOutOfRange(r)); // pff
|
|
r.setHeader(0x10000005);
|
|
r.setElement(0,3);
|
|
Assert.assertEquals("isBootDataOutOfRange ppp",true,CbusMessage.isBootDataOutOfRange(r)); // ppp
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
public void testisBootConfirm() {
|
|
CanReply r = new CanReply(1);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootConfirm fff",false,CbusMessage.isBootConfirm(r)); // false false false
|
|
r.setElement(0,2);
|
|
Assert.assertEquals("isBootConfirm ffp",false,CbusMessage.isBootConfirm(r)); // ffp
|
|
r.setHeader(0x10000004);
|
|
Assert.assertEquals("isBootConfirm fpp",false,CbusMessage.isBootConfirm(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootConfirm fpf",false,CbusMessage.isBootConfirm(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootConfirm ppf",false,CbusMessage.isBootConfirm(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootConfirm pff",false,CbusMessage.isBootConfirm(r)); // pff
|
|
r.setHeader(0x10000004);
|
|
r.setElement(0,2);
|
|
Assert.assertEquals("isBootConfirm ppp",true,CbusMessage.isBootConfirm(r)); // ppp
|
|
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testisBootDevId() {
|
|
CanReply r = new CanReply(7);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootDevId fff",false,CbusMessage.isBootDevId(r)); // false false false
|
|
r.setElement(0,2);
|
|
Assert.assertEquals("isBootDevId ffp",false,CbusMessage.isBootDevId(r)); // ffp
|
|
r.setHeader(0x10000004);
|
|
Assert.assertEquals("isBootDevId fpp",false,CbusMessage.isBootDevId(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootDevId fpf",false,CbusMessage.isBootDevId(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootDevId ppf",false,CbusMessage.isBootDevId(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootDevId pff",false,CbusMessage.isBootDevId(r)); // pff
|
|
r.setHeader(0x10000004);
|
|
r.setElement(0,5);
|
|
Assert.assertEquals("isBootDevId ppp",true,CbusMessage.isBootDevId(r)); // ppp
|
|
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testisBootBootId() {
|
|
CanReply r = new CanReply(5);
|
|
r.setExtended(false);
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootBootId fff",false,CbusMessage.isBootId(r)); // false false false
|
|
r.setElement(0,2);
|
|
Assert.assertEquals("isBootBootId ffp",false,CbusMessage.isBootId(r)); // ffp
|
|
r.setHeader(0x10000004);
|
|
Assert.assertEquals("isBootBootId fpp",false,CbusMessage.isBootId(r)); // fpp
|
|
r.setElement(0,7);
|
|
Assert.assertEquals("isBootBootId fpf",false,CbusMessage.isBootId(r)); // fpf
|
|
r.setExtended(true);
|
|
Assert.assertEquals("isBootBootId ppf",false,CbusMessage.isBootId(r)); // ppf
|
|
r.setHeader(0x14);
|
|
Assert.assertEquals("isBootBootId pff",false,CbusMessage.isBootId(r)); // pff
|
|
r.setHeader(0x10000004);
|
|
r.setElement(0,6);
|
|
Assert.assertEquals("isBootBootId ppp",true,CbusMessage.isBootId(r)); // ppp
|
|
|
|
}
|
|
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
// private static final Logger log = LoggerFactory.getLogger(CbusMessageTest.class);
|
|
|
|
}
|